<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def get_unspent_outputs(addresses, confirmations=None, limit=None, api_code=None):
 """Get unspent outputs for a single address. :param tuple addresses: addresses(xpub or base58) to look up :param int confirmations: minimum confirmations to include (optional) :param int limit: limit number of unspent outputs to fetch (optional) :param str api_code: Blockchain.info API code (optional) :return: an array of :class:`UnspentOutput` objects """


    if isinstance(addresses, basestring):
        resource = 'unspent?active=' + addresses
    else:
        resource = 'unspent?active=' + '|'.join(addresses)
    if confirmations is not None:
        resource += '&confirmations=' + str(confirmations)
    if limit is not None:
        resource += '&limit=' + str(limit)
    if api_code is not None:
        resource += '&api_code=' + api_code
    response = util.call_api(resource)
    json_response = json.loads(response)
    return [UnspentOutput(o) for o in json_response['unspent_outputs']]