int main(void)
{
	launch_data_t output_obj = NULL;

	assert(vproc_swap_complex(NULL, VPROC_GSK_ENVIRONMENT, NULL, &output_obj) == 0);

	assert(launch_data_get_type(output_obj) == LAUNCH_DATA_DICTIONARY);

	launch_data_dict_iterate(output_obj, my_callback, stdout);

	return 0;
}
CFDictionaryRef GTMCopyLaunchdExports(void) {
  launch_data_t resp;
  CFDictionaryRef dict = NULL;
  vproc_err_t err = vproc_swap_complex(NULL,
                                       VPROC_GSK_ENVIRONMENT_10_5,
                                       NULL,
                                       &resp);
  if (err) {
    err = vproc_swap_complex(NULL, VPROC_GSK_ENVIRONMENT_10_6, NULL, &resp);
  }
  if (err == NULL) {
    CFErrorRef error = NULL;
    dict = GTMCFTypeCreateFromLaunchData(resp, false, &error);
    if (error) {
#ifdef DEBUG
      CFShow(error);
#endif //  DEBUG
      CFRelease(error);
    }
    launch_data_free(resp);
  }
  return dict;
}