#define NULL ((void *)0)
typedef unsigned long size_t; // Customize by platform.
typedef long intptr_t;
typedef unsigned long uintptr_t;
typedef long scalar_t__; // Either arithmetic or pointer type.
/* By default, we understand bool (as a convenience). */
typedef int bool;
#define false 0
#define true 1

/* Forward declarations */

/* Type definitions */
typedef int /*<<< orphan*/ input;
typedef int /*<<< orphan*/ FILE;

/* Variables and functions */
int atoi(char *);
int /*<<< orphan*/ fclose(int /*<<< orphan*/ *);
int /*<<< orphan*/ feof(int /*<<< orphan*/ *);
int /*<<< orphan*/ fgets(char *, int, int /*<<< orphan*/ *);
int /*<<< orphan*/ *fopen(char *, char *);
char *my_strsep(char **, char *);
int /*<<< orphan*/ printf(char *, ...);
scalar_t__ strcmp(char *, char *);
scalar_t__ strstr(char *, char *);
char *strtok(char *, char *);
int main(int argc, char **argv) {
  FILE *fp;
  char *temp_ptr;
  char *temp_ptr2;
  char input[8096];
  int notify_recovery;
  int notify_warning;
  int notify_critical;
  int notify_down;
  int notify_unreachable;
  int option;
  int have_template = 0;
  int x = 0, y = 0;
  char *host_name;
  char *service_description;
  char *host_name2;
  char *service_description2;
  if (argc != 3) {
    printf("Nagios Config File Converter\n");
    printf("Written by Ethan Galstad (egalstad@nagios.org)\n");
    printf("Last Modified: 08-12-2005\n");
    printf("\n");
    printf("Usage: %s <config file> <object type>\n", argv[0]);
    printf("\n");
    printf("Valid object types include:\n");
    printf("\n");
    printf("\ttimeperiods\n");
    printf("\tcommands\n");
    printf("\tcontacts\n");
    printf("\tcontactgroups\n");
    printf("\thosts\n");
    printf("\thostgroups\n");
    printf("\thostgroupescalationss\n");
    printf("\tservices\n");
    printf("\tservicedependencies\n");
    printf("\tserviceescalations\n");
    printf("\n");
    printf("\thostextinfo\n");
    printf("\tserviceextinfo\n");
    printf("\n");
    printf("Notes:\n");
    printf("\n");
    printf(
        "This utility is designed to aide you in converting your old 'host'\n");
    printf(
        "config file(s) to the new template-based config file style.  It is\n");
    printf(
        "also capable of converting extended host and service information\n");
    printf("definitions in your old CGI config file.\n");
    printf("\n");
    printf("Supply the name of your old 'host' config file (or your old CGI "
           "config\n");
    printf("file if you're converting extended host/service definitions) on "
           "the\n");
    printf("command line, along with the type of object you would like to "
           "produce\n");
    printf("a new config file for.  Your old config file is not overwritten - "
           "new\n");
    printf("configuration data is printed to standard output, so you can "
           "redirect it\n");
    printf("wherever you like.\n");
    printf("\n");
    printf(
        "Please note that you can only specify one type of object at a time\n");
    printf("on the command line.\n");
    printf("\n");
    printf("IMPORTANT: This utility will generate Nagios 1.x compliant config "
           "files.\n");
    printf("However, the config files are not totally compatible with Nagios "
           "2.x, so\n");
    printf("you will have to do some manual tweaking.\n");
    printf("\n");
    return -1;
  }
  fp = fopen(argv[1], "r");
  if (fp == NULL) {
    printf("Error: Could not open file '%s' for reading.\n", argv[1]);
    return -1;
  }
  for (fgets(input, sizeof(input) - 1, fp); !feof(fp);
       fgets(input, sizeof(input) - 1, fp)) {
    if (input[0] == '#' || input[0] == '\x0' || input[0] == '\n' ||
        input[0] == '\r')
      continue;
    if (strstr(input, "timeperiod[") && !strcmp(argv[2], "timeperiods")) {
      temp_ptr2 = &input[0];
      temp_ptr = my_strsep(&temp_ptr2, "[");
      temp_ptr = my_strsep(&temp_ptr2, "]");
      printf("# '%s' timeperiod definition\n", temp_ptr);
      printf("define timeperiod{\n");
      printf("\ttimeperiod_name\t%s\n", temp_ptr);
      temp_ptr = my_strsep(&temp_ptr2, ";");
      printf("\talias\t\t%s\n", temp_ptr + 1);
      temp_ptr = my_strsep(&temp_ptr2, ";");
      if (temp_ptr != NULL && strcmp(temp_ptr, ""))
        printf("\tsunday\t\t%s\n", temp_ptr);
      temp_ptr = my_strsep(&temp_ptr2, ";");
      if (temp_ptr != NULL && strcmp(temp_ptr, ""))
        printf("\tmonday\t\t%s\n", temp_ptr);
      temp_ptr = my_strsep(&temp_ptr2, ";");
      if (temp_ptr != NULL && strcmp(temp_ptr, ""))
        printf("\ttuesday\t\t%s\n", temp_ptr);
      temp_ptr = my_strsep(&temp_ptr2, ";");
      if (temp_ptr != NULL && strcmp(temp_ptr, ""))
        printf("\twednesday\t%s\n", temp_ptr);
      temp_ptr = my_strsep(&temp_ptr2, ";");
      if (temp_ptr != NULL && strcmp(temp_ptr, ""))
        printf("\tthursday\t%s\n", temp_ptr);
      temp_ptr = my_strsep(&temp_ptr2, ";");
      if (temp_ptr != NULL && strcmp(temp_ptr, ""))
        printf("\tfriday\t\t%s\n", temp_ptr);
      temp_ptr = my_strsep(&temp_ptr2, ";\r\n");
      if (temp_ptr != NULL && strcmp(temp_ptr, ""))
        printf("\tsaturday\t%s\n", temp_ptr);
      printf("\t}\n\n\n");
    }
    if (strstr(input, "command[") && !strcmp(argv[2], "commands")) {
      temp_ptr = strtok(input, "[");
      temp_ptr = strtok(NULL, "]");
      printf("# '%s' command definition\n", temp_ptr);
      printf("define command{\n");
      printf("\tcommand_name\t%s\n", temp_ptr);
      temp_ptr = strtok(NULL, "\n");
      printf("\tcommand_line\t%s\n", temp_ptr + 1);
      printf("\t}\n\n\n");
    }
    if (strstr(input, "contact[") && !strcmp(argv[2], "contacts")) {
      temp_ptr2 = &input[0];
      temp_ptr = my_strsep(&temp_ptr2, "[");
      temp_ptr = my_strsep(&temp_ptr2, "]");
      printf("# '%s' contact definition\n", temp_ptr);
      printf("define contact{\n");
      printf("\tcontact_name\t\t\t%s\n", temp_ptr);
      temp_ptr = my_strsep(&temp_ptr2, ";");
      printf("\talias\t\t\t\t%s\n", temp_ptr + 1);
      temp_ptr = my_strsep(&temp_ptr2, ";");
      if (temp_ptr != NULL && strcmp(temp_ptr, ""))
        printf("\tservice_notification_period\t%s\n", temp_ptr);
      temp_ptr = my_strsep(&temp_ptr2, ";");
      if (temp_ptr != NULL && strcmp(temp_ptr, ""))
        printf("\thost_notification_period\t%s\n", temp_ptr);
      temp_ptr = my_strsep(&temp_ptr2, ";");
      notify_recovery = atoi(temp_ptr);
      temp_ptr = my_strsep(&temp_ptr2, ";");
      notify_critical = atoi(temp_ptr);
      temp_ptr = my_strsep(&temp_ptr2, ";");
      notify_warning = atoi(temp_ptr);
      option = 0;
      printf("\tservice_notification_options\t");
      if (notify_recovery == 1 || notify_critical == 1 || notify_warning == 1) {
        if (notify_warning == 1) {
          printf("w,u");
          option = 1;
        }
        if (notify_critical == 1) {
          if (option == 1)
            printf(",");
          printf("c");
          option = 1;
        }
        if (notify_recovery == 1) {
          if (option == 1)
            printf(",");
          printf("r");
        }
      } else
        printf("n");
      printf("\n");
      temp_ptr = my_strsep(&temp_ptr2, ";");
      notify_recovery = atoi(temp_ptr);
      temp_ptr = my_strsep(&temp_ptr2, ";");
      notify_down = atoi(temp_ptr);
      temp_ptr = my_strsep(&temp_ptr2, ";");
      notify_unreachable = atoi(temp_ptr);
      option = 0;
      printf("\thost_notification_options\t");
      if (notify_recovery == 1 || notify_down == 1 || notify_unreachable == 1) {
        if (notify_down == 1) {
          printf("d");
          option = 1;
        }
        if (notify_unreachable == 1) {
          if (option == 1)
            printf(",");
          printf("u");
          option = 1;
        }
        if (notify_recovery == 1) {
          if (option == 1)
            printf(",");
          printf("r");
        }
      } else
        printf("n");
      printf("\n");
      temp_ptr = my_strsep(&temp_ptr2, ";");
      if (temp_ptr != NULL && strcmp(temp_ptr, ""))
        printf("\tservice_notification_commands\t%s\n", temp_ptr);
      temp_ptr = my_strsep(&temp_ptr2, ";");
      if (temp_ptr != NULL && strcmp(temp_ptr, ""))
        printf("\thost_notification_commands\t%s\n", temp_ptr);
      temp_ptr = my_strsep(&temp_ptr2, ";");
      if (temp_ptr != NULL && strcmp(temp_ptr, ""))
        printf("\temail\t\t\t\t%s\n", temp_ptr);
      temp_ptr = my_strsep(&temp_ptr2, ";\r\n");
      if (temp_ptr != NULL && strcmp(temp_ptr, ""))
        printf("\tpager\t\t\t\t%s\n", temp_ptr);
      printf("\t}\n\n\n");
    }
    if (strstr(input, "contactgroup[") && !strcmp(argv[2], "contactgroups")) {
      temp_ptr = strtok(input, "[");
      temp_ptr = strtok(NULL, "]");
      printf("# '%s' contact group definition\n", temp_ptr);
      printf("define contactgroup{\n");
      printf("\tcontactgroup_name\t%s\n", temp_ptr);
      temp_ptr = strtok(NULL, ";");
      printf("\talias\t\t\t%s\n", temp_ptr + 1);
      temp_ptr = strtok(NULL, "\n");
      printf("\tmembers\t\t\t%s\n", temp_ptr);
      printf("\t}\n\n\n");
    }
    if (strstr(input, "host[") && !strcmp(argv[2], "hosts")) {
      if (have_template == 0) {
        printf("# Generic host definition template\n");
        printf("define host{\n");
        printf("\tname\t\t\t\tgeneric-host\t; The name of this host template - "
               "referenced in other host definitions, used for template "
               "recursion/resolution\n");
        printf(
            "\tactive_checks_enabled\t\t1\t; Active host checks are enabled\n");
        printf("\tpassive_checks_enabled\t\t1\t; Passive host checks are "
               "enabled/accepted\n");
        printf(
            "\tnotifications_enabled\t\t1\t; Host notifications are enabled\n");
        printf(
            "\tevent_handler_enabled\t\t1\t; Host event handler is enabled\n");
        printf("\tflap_detection_enabled\t\t1\t; Flap detection is enabled\n");
        printf("\tprocess_perf_data\t\t1\t; Process performance data\n");
        printf("\tretain_status_information\t1\t; Retain status information "
               "across program restarts\n");
        printf("\tretain_nonstatus_information\t1\t; Retain non-status "
               "information across program restarts\n");
        printf("\n");
        printf("\tregister\t\t\t0\t; DONT REGISTER THIS DEFINITION - ITS NOT A "
               "REAL HOST, JUST A TEMPLATE!\n");
        printf("\t}\n\n");
        have_template = 1;
      }
      temp_ptr2 = &input[0];
      temp_ptr = my_strsep(&temp_ptr2, "[");
      temp_ptr = my_strsep(&temp_ptr2, "]");
      printf("# '%s' host definition\n", temp_ptr);
      printf("define host{\n");
      printf("\tuse\t\t\tgeneric-host\t\t; Name of host template to use\n\n");
      printf("\thost_name\t\t%s\n", temp_ptr);
      temp_ptr = my_strsep(&temp_ptr2, ";");
      printf("\talias\t\t\t%s\n", temp_ptr + 1);
      temp_ptr = my_strsep(&temp_ptr2, ";");
      printf("\taddress\t\t\t%s\n", temp_ptr);
      temp_ptr = my_strsep(&temp_ptr2, ";");
      if (temp_ptr != NULL && strcmp(temp_ptr, ""))
        printf("\tparents\t\t\t%s\n", temp_ptr);
      temp_ptr = my_strsep(&temp_ptr2, ";");
      if (temp_ptr != NULL && strcmp(temp_ptr, ""))
        printf("\tcheck_command\t\t%s\n", temp_ptr);
      temp_ptr = my_strsep(&temp_ptr2, ";");
      printf("\tmax_check_attempts\t%d\n", atoi(temp_ptr));
      temp_ptr = my_strsep(&temp_ptr2, ";");
      printf("\tnotification_interval\t%d\n", atoi(temp_ptr));
      temp_ptr = my_strsep(&temp_ptr2, ";");
      if (temp_ptr != NULL && strcmp(temp_ptr, ""))
        printf("\tnotification_period\t%s\n", temp_ptr);
      temp_ptr = my_strsep(&temp_ptr2, ";");
      notify_recovery = atoi(temp_ptr);
      temp_ptr = my_strsep(&temp_ptr2, ";");
      notify_down = atoi(temp_ptr);
      temp_ptr = my_strsep(&temp_ptr2, ";");
      notify_unreachable = atoi(temp_ptr);
      option = 0;
      printf("\tnotification_options\t");
      if (notify_recovery == 1 || notify_down == 1 || notify_unreachable == 1) {
        if (notify_down == 1) {
          printf("d");
          option = 1;
        }
        if (notify_unreachable == 1) {
          if (option == 1)
            printf(",");
          printf("u");
          option = 1;
        }
        if (notify_recovery == 1) {
          if (option == 1)
            printf(",");
          printf("r");
        }
      } else
        printf("n");
      printf("\n");
      temp_ptr = my_strsep(&temp_ptr2, ";\r\n");
      if (temp_ptr != NULL && strcmp(temp_ptr, ""))
        printf("\tevent_handler\t\t%s\n", temp_ptr);
      printf("\t}\n\n\n");
    }
    if (strstr(input, "hostgroup[") && !strcmp(argv[2], "hostgroups")) {
      temp_ptr = strtok(input, "[");
      temp_ptr = strtok(NULL, "]");
      printf("# '%s' host group definition\n", temp_ptr);
      printf("define hostgroup{\n");
      printf("\thostgroup_name\t%s\n", temp_ptr);
      temp_ptr = strtok(NULL, ";");
      printf("\talias\t\t%s\n", temp_ptr + 1);
      temp_ptr = strtok(NULL, ";");
      temp_ptr = strtok(NULL, "\n");
      printf("\tmembers\t\t%s\n", temp_ptr);
      printf("\t}\n\n\n");
    }
    if (strstr(input, "service[") && !strcmp(argv[2], "services")) {
      if (have_template == 0) {
        printf("# Generic service definition template\n");
        printf("define service{\n");
        printf("\tname\t\t\t\tgeneric-service\t; The 'name' of this service "
               "template, referenced in other service definitions\n");
        printf("\tactive_checks_enabled\t\t1\t; Active service checks are "
               "enabled\n");
        printf("\tpassive_checks_enabled\t\t1\t; Passive service checks are "
               "enabled/accepted\n");
        printf("\tparallelize_check\t\t1\t; Active service checks should be "
               "parallelized (disabling this can lead to major performance "
               "problems)\n");
        printf("\tobsess_over_service\t\t1\t; We should obsess over this "
               "service (if necessary)\n");
        printf("\tcheck_freshness\t\t\t0\t; Default is to NOT check service "
               "'freshness'\n");
        printf("\tnotifications_enabled\t\t1\t; Service notifications are "
               "enabled\n");
        printf("\tevent_handler_enabled\t\t1\t; Service event handler is "
               "enabled\n");
        printf("\tflap_detection_enabled\t\t1\t; Flap detection is enabled\n");
        printf("\tprocess_perf_data\t\t1\t; Process performance data\n");
        printf("\tretain_status_information\t1\t; Retain status information "
               "across program restarts\n");
        printf("\tretain_nonstatus_information\t1\t; Retain non-status "
               "information across program restarts\n");
        printf("\n");
        printf("\tregister\t\t\t0\t; DONT REGISTER THIS DEFINITION - ITS NOT A "
               "REAL SERVICE, JUST A TEMPLATE!\n");
        printf("\t}\n\n");
        have_template = 1;
      }
      temp_ptr2 = &input[0];
      temp_ptr = my_strsep(&temp_ptr2, "[");
      temp_ptr = my_strsep(&temp_ptr2, "]");
      printf("# Service definition\n");
      printf("define service{\n");
      printf("\tuse\t\t\t\tgeneric-service\t\t; Name of service template to "
             "use\n\n");
      printf("\thost_name\t\t\t%s\n", temp_ptr);
      temp_ptr = my_strsep(&temp_ptr2, ";");
      printf("\tservice_description\t\t%s\n", temp_ptr + 1);
      temp_ptr = my_strsep(&temp_ptr2, ";");
      printf("\tis_volatile\t\t\t%d\n", atoi(temp_ptr));
      temp_ptr = my_strsep(&temp_ptr2, ";");
      printf("\tcheck_period\t\t\t%s\n", temp_ptr);
      temp_ptr = my_strsep(&temp_ptr2, ";");
      printf("\tmax_check_attempts\t\t%d\n", atoi(temp_ptr));
      temp_ptr = my_strsep(&temp_ptr2, ";");
      printf("\tnormal_check_interval\t\t%d\n", atoi(temp_ptr));
      temp_ptr = my_strsep(&temp_ptr2, ";");
      printf("\tretry_check_interval\t\t%d\n", atoi(temp_ptr));
      temp_ptr = my_strsep(&temp_ptr2, ";");
      if (temp_ptr != NULL && strcmp(temp_ptr, ""))
        printf("\tcontact_groups\t\t\t%s\n", temp_ptr);
      temp_ptr = my_strsep(&temp_ptr2, ";");
      printf("\tnotification_interval\t\t%d\n", atoi(temp_ptr));
      temp_ptr = my_strsep(&temp_ptr2, ";");
      if (temp_ptr != NULL && strcmp(temp_ptr, ""))
        printf("\tnotification_period\t\t%s\n", temp_ptr);
      temp_ptr = my_strsep(&temp_ptr2, ";");
      notify_recovery = atoi(temp_ptr);
      temp_ptr = my_strsep(&temp_ptr2, ";");
      notify_critical = atoi(temp_ptr);
      temp_ptr = my_strsep(&temp_ptr2, ";");
      notify_warning = atoi(temp_ptr);
      option = 0;
      printf("\tnotification_options\t\t");
      if (notify_recovery == 1 || notify_critical == 1 || notify_warning == 1) {
        if (notify_warning == 1) {
          printf("w,u");
          option = 1;
        }
        if (notify_critical == 1) {
          if (option == 1)
            printf(",");
          printf("c");
          option = 1;
        }
        if (notify_recovery == 1) {
          if (option == 1)
            printf(",");
          printf("r");
        }
      } else
        printf("n");
      printf("\n");
      temp_ptr = my_strsep(&temp_ptr2, ";");
      if (temp_ptr != NULL && strcmp(temp_ptr, ""))
        printf("\tevent_handler\t\t%s\n", temp_ptr);
      temp_ptr = my_strsep(&temp_ptr2, ";\r\n");
      if (temp_ptr != NULL && strcmp(temp_ptr, ""))
        printf("\tcheck_command\t\t\t%s\n", temp_ptr);
      printf("\t}\n\n\n");
    }
    if (strstr(input, "hostgroupescalation[") &&
        !strcmp(argv[2], "hostgroupescalations")) {
      x++;
      temp_ptr2 = &input[0];
      temp_ptr = my_strsep(&temp_ptr2, "[");
      temp_ptr = my_strsep(&temp_ptr2, "]");
      printf("# Hostgroup '%s' escalation definition\n", temp_ptr);
      printf("define hostgroupescalation{\n");
      printf("\thostgroup_name\t\t%s\n", temp_ptr);
      temp_ptr = my_strsep(&temp_ptr2, "-");
      printf("\tfirst_notification\t\t%d\n", atoi(temp_ptr + 1));
      temp_ptr = my_strsep(&temp_ptr2, ";");
      printf("\tlast_notification\t\t%d\n", atoi(temp_ptr));
      temp_ptr = my_strsep(&temp_ptr2, ";");
      printf("\tcontact_groups\t\t\t%s\n", temp_ptr);
      temp_ptr = my_strsep(&temp_ptr2, ";\r\n");
      printf("\tnotification_interval\t\t%d\n", atoi(temp_ptr));
      printf("\t}\n\n\n");
    }
    if (strstr(input, "serviceescalation[") &&
        !strcmp(argv[2], "serviceescalations")) {
      x++;
      printf("# Serviceescalation definition\n");
      printf("define serviceescalation{\n");
      temp_ptr2 = &input[0];
      temp_ptr = my_strsep(&temp_ptr2, "[");
      host_name = my_strsep(&temp_ptr2, ";");
      service_description = my_strsep(&temp_ptr2, "]");
      printf("\thost_name\t\t%s\n", host_name);
      printf("\tservice_description\t\t%s\n", service_description);
      temp_ptr = my_strsep(&temp_ptr2, "-");
      printf("\tfirst_notification\t\t%d\n", atoi(temp_ptr + 1));
      temp_ptr = my_strsep(&temp_ptr2, ";");
      printf("\tlast_notification\t\t%d\n", atoi(temp_ptr));
      temp_ptr = my_strsep(&temp_ptr2, ";");
      printf("\tcontact_groups\t\t\t%s\n", temp_ptr);
      temp_ptr = my_strsep(&temp_ptr2, ";\r\n");
      printf("\tnotification_interval\t\t%d\n", atoi(temp_ptr));
      printf("\t}\n\n\n");
    }
    if (strstr(input, "servicedependency[") &&
        !strcmp(argv[2], "servicedependencies")) {
      temp_ptr2 = &input[0];
      temp_ptr = my_strsep(&temp_ptr2, "[");
      host_name = my_strsep(&temp_ptr2, ";");
      service_description = my_strsep(&temp_ptr2, "]");
      host_name2 = my_strsep(&temp_ptr2, ";") + 1;
      service_description2 = my_strsep(&temp_ptr2, ";");
      temp_ptr = my_strsep(&temp_ptr2, ";");
      x++;
      printf("# Servicedependency definition\n");
      printf("define servicedependency{\n");
      printf("\thost_name\t\t\t%s\n", host_name2);
      printf("\tservice_description\t\t%s\n", service_description2);
      printf("\tdependent_host_name\t\t%s\n", host_name);
      printf("\tdependent_service_description\t%s\n", service_description);
      printf("\texecution_failure_criteria\t");
      for (y = 0; temp_ptr[y] != '\x0'; y++)
        printf("%s%c", (y > 0) ? "," : "", temp_ptr[y]);
      if (y == 0)
        printf("n");
      printf("\t; These are the criteria for which check execution will be "
             "suppressed\n");
      temp_ptr = my_strsep(&temp_ptr2, ";\r\n");
      printf("\tnotification_failure_criteria\t");
      for (y = 0; temp_ptr[y] != '\x0'; y++)
        printf("%s%c", (y > 0) ? "," : "", temp_ptr[y]);
      if (y == 0)
        printf("n");
      printf("\t; These are the criteria for which notifications will be "
             "suppressed\n");
      printf("\t}\n\n\n");
    }
    if (strstr(input, "hostextinfo[") && !strcmp(argv[2], "hostextinfo")) {
      temp_ptr2 = &input[0];
      temp_ptr = my_strsep(&temp_ptr2, "[");
      temp_ptr = my_strsep(&temp_ptr2, "]");
      printf("# '%s' hostextinfo definition\n", temp_ptr);
      printf("define hostextinfo{\n");
      printf("\thost_name\t\t%s\t\t; The name of the host this data is "
             "associated with\n",
             temp_ptr);
      temp_ptr = my_strsep(&temp_ptr2, ";");
      if (temp_ptr + 1 != NULL && strcmp(temp_ptr + 1, ""))
        printf("\tnotes_url\t\t\t%s\n", temp_ptr + 1);
      temp_ptr = my_strsep(&temp_ptr2, ";");
      if (temp_ptr != NULL && strcmp(temp_ptr, ""))
        printf("\ticon_image\t\t%s\n", temp_ptr);
      temp_ptr = my_strsep(&temp_ptr2, ";");
      if (temp_ptr != NULL && strcmp(temp_ptr, ""))
        printf("\tvrml_image\t\t%s\n", temp_ptr);
      temp_ptr = my_strsep(&temp_ptr2, ";");
      if (temp_ptr != NULL && strcmp(temp_ptr, ""))
        printf("\tstatusmap_image\t\t%s\n", temp_ptr);
      temp_ptr = my_strsep(&temp_ptr2, ";");
      if (temp_ptr != NULL && strcmp(temp_ptr, ""))
        printf("\ticon_image_alt\t\t%s\n", temp_ptr);
      temp_ptr = my_strsep(&temp_ptr2, ";");
      if (temp_ptr != NULL && strcmp(temp_ptr, ""))
        printf("\t2d_coords\t\t%s\n", temp_ptr);
      temp_ptr = my_strsep(&temp_ptr2, ";\r\n");
      if (temp_ptr != NULL && strcmp(temp_ptr, ""))
        printf("\t3d_coords\t\t%s\n", temp_ptr);
      printf("\t}\n\n\n");
    }
    if (strstr(input, "serviceextinfo[") &&
        !strcmp(argv[2], "serviceextinfo")) {
      temp_ptr2 = &input[0];
      temp_ptr = my_strsep(&temp_ptr2, "[");
      temp_ptr = my_strsep(&temp_ptr2, ";");
      printf("# serviceextinfo definition\n", temp_ptr);
      printf("define serviceextinfo{\n");
      printf("\thost_name\t\t%s\t\t; The name of the service this data is "
             "associated with\n",
             temp_ptr);
      temp_ptr = my_strsep(&temp_ptr2, "]");
      printf("\tservice_description\t%s\n", temp_ptr);
      temp_ptr = my_strsep(&temp_ptr2, ";");
      if (temp_ptr + 1 != NULL && strcmp(temp_ptr + 1, ""))
        printf("\tnotes_url\t\t%s\n", temp_ptr + 1);
      temp_ptr = my_strsep(&temp_ptr2, ";");
      if (temp_ptr != NULL && strcmp(temp_ptr, ""))
        printf("\ticon_image\t\t%s\n", temp_ptr);
      temp_ptr = my_strsep(&temp_ptr2, ";\r\n");
      if (temp_ptr != NULL && strcmp(temp_ptr, ""))
        printf("\ticon_image_alt\t\t%s\n", temp_ptr);
      printf("\t}\n\n\n");
    }
  }
  fclose(fp);
  return 0;
}


x86 assembly (clang, -O0):
<main>:
push   %rbp
mov    %rsp,%rbp
sub    $0x2020,%rsp
movl   $0x0,-0x4(%rbp)
mov    %edi,-0x8(%rbp)
mov    %rsi,-0x10(%rbp)
movl   $0x0,-0x1fec(%rbp)
movl   $0x0,-0x1ff0(%rbp)
movl   $0x0,-0x1ff4(%rbp)
cmpl   $0x3,-0x8(%rbp)
je     144e <main+0x2ae>
lea    0x2e18(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0x2e28(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0x2e4a(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0x33e6(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
mov    -0x10(%rbp),%rax
mov    (%rax),%rsi
lea    0x2e42(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0x33c3(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0x2e4d(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0x33a7(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0x2e4e(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0x2e4e(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0x2e4b(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0x2e48(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0x2e4a(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0x2e44(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0x2e43(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0x2e4d(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0x2e4a(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0x2e52(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0x330d(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0x2e4b(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0x2e4b(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0x32e3(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0x2e40(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0x32c7(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0x2e2c(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0x2e62(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0x2e98(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0x2ecc(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0x3281(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0x2eda(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0x2f14(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0x2f4b(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0x2f84(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0x2fbd(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0x2ff9(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0x321f(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0x2ff1(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0x3027(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0x31f5(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0x3021(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0x305d(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0x3099(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0x31bd(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
movl   $0xffffffff,-0x4(%rbp)
jmp    34f1 <main+0x2351>
mov    -0x10(%rbp),%rax
mov    0x8(%rax),%rdi
lea    0x3094(%rip),%rsi
call   1090 <fopen@plt>
mov    %rax,-0x18(%rbp)
cmpq   $0x0,-0x18(%rbp)
jne    1493 <main+0x2f3>
mov    -0x10(%rbp),%rax
mov    0x8(%rax),%rsi
lea    0x3073(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
movl   $0xffffffff,-0x4(%rbp)
jmp    34f1 <main+0x2351>
lea    -0x1fd0(%rbp),%rdi
mov    -0x18(%rbp),%rdx
mov    $0x1f9f,%esi
call   1050 <fgets@plt>
mov    -0x18(%rbp),%rdi
call   1070 <feof@plt>
cmp    $0x0,%eax
setne  %al
xor    $0xff,%al
test   $0x1,%al
jne    14c6 <main+0x326>
jmp    34e1 <main+0x2341>
movsbl -0x1fd0(%rbp),%eax
cmp    $0x23,%eax
je     1506 <main+0x366>
movsbl -0x1fd0(%rbp),%eax
cmp    $0x0,%eax
je     1506 <main+0x366>
movsbl -0x1fd0(%rbp),%eax
cmp    $0xa,%eax
je     1506 <main+0x366>
movsbl -0x1fd0(%rbp),%eax
cmp    $0xd,%eax
jne    150b <main+0x36b>
jmp    34c7 <main+0x2327>
lea    -0x1fd0(%rbp),%rdi
lea    0x3008(%rip),%rsi
call   10c0 <strstr@plt>
cmp    $0x0,%rax
je     17f0 <main+0x650>
mov    -0x10(%rbp),%rax
mov    0x10(%rax),%rdi
lea    0x2ff6(%rip),%rsi
call   1060 <strcmp@plt>
cmp    $0x0,%rax
jne    17f0 <main+0x650>
lea    -0x1fd0(%rbp),%rax
mov    %rax,-0x28(%rbp)
lea    -0x28(%rbp),%rdi
lea    0x30a5(%rip),%rsi
call   1080 <my_strsep@plt>
mov    %rax,-0x20(%rbp)
lea    -0x28(%rbp),%rdi
lea    0x2fc9(%rip),%rsi
call   1080 <my_strsep@plt>
mov    %rax,-0x20(%rbp)
mov    -0x20(%rbp),%rsi
lea    0x2fb7(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0x2fc7(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
mov    -0x20(%rbp),%rsi
lea    0x2fc9(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    -0x28(%rbp),%rdi
lea    0x2fcc(%rip),%rsi
call   1080 <my_strsep@plt>
mov    %rax,-0x20(%rbp)
mov    -0x20(%rbp),%rsi
add    $0x1,%rsi
lea    0x2fb6(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    -0x28(%rbp),%rdi
lea    0x2fa2(%rip),%rsi
call   1080 <my_strsep@plt>
mov    %rax,-0x20(%rbp)
cmpq   $0x0,-0x20(%rbp)
je     1620 <main+0x480>
mov    -0x20(%rbp),%rdi
lea    0x3b40(%rip),%rsi
call   1060 <strcmp@plt>
cmp    $0x0,%rax
je     1620 <main+0x480>
mov    -0x20(%rbp),%rsi
lea    0x2f77(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    -0x28(%rbp),%rdi
lea    0x2f57(%rip),%rsi
call   1080 <my_strsep@plt>
mov    %rax,-0x20(%rbp)
cmpq   $0x0,-0x20(%rbp)
je     166b <main+0x4cb>
mov    -0x20(%rbp),%rdi
lea    0x3af5(%rip),%rsi
call   1060 <strcmp@plt>
cmp    $0x0,%rax
je     166b <main+0x4cb>
mov    -0x20(%rbp),%rsi
lea    0x2f39(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    -0x28(%rbp),%rdi
lea    0x2f0c(%rip),%rsi
call   1080 <my_strsep@plt>
mov    %rax,-0x20(%rbp)
cmpq   $0x0,-0x20(%rbp)
je     16b6 <main+0x516>
mov    -0x20(%rbp),%rdi
lea    0x3aaa(%rip),%rsi
call   1060 <strcmp@plt>
cmp    $0x0,%rax
je     16b6 <main+0x516>
mov    -0x20(%rbp),%rsi
lea    0x2efb(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    -0x28(%rbp),%rdi
lea    0x2ec1(%rip),%rsi
call   1080 <my_strsep@plt>
mov    %rax,-0x20(%rbp)
cmpq   $0x0,-0x20(%rbp)
je     1701 <main+0x561>
mov    -0x20(%rbp),%rdi
lea    0x3a5f(%rip),%rsi
call   1060 <strcmp@plt>
cmp    $0x0,%rax
je     1701 <main+0x561>
mov    -0x20(%rbp),%rsi
lea    0x2ebe(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    -0x28(%rbp),%rdi
lea    0x2e76(%rip),%rsi
call   1080 <my_strsep@plt>
mov    %rax,-0x20(%rbp)
cmpq   $0x0,-0x20(%rbp)
je     174c <main+0x5ac>
mov    -0x20(%rbp),%rdi
lea    0x3a14(%rip),%rsi
call   1060 <strcmp@plt>
cmp    $0x0,%rax
je     174c <main+0x5ac>
mov    -0x20(%rbp),%rsi
lea    0x2e82(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    -0x28(%rbp),%rdi
lea    0x2e2b(%rip),%rsi
call   1080 <my_strsep@plt>
mov    %rax,-0x20(%rbp)
cmpq   $0x0,-0x20(%rbp)
je     1797 <main+0x5f7>
mov    -0x20(%rbp),%rdi
lea    0x39c9(%rip),%rsi
call   1060 <strcmp@plt>
cmp    $0x0,%rax
je     1797 <main+0x5f7>
mov    -0x20(%rbp),%rsi
lea    0x2e45(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    -0x28(%rbp),%rdi
lea    0x2e40(%rip),%rsi
call   1080 <my_strsep@plt>
mov    %rax,-0x20(%rbp)
cmpq   $0x0,-0x20(%rbp)
je     17e2 <main+0x642>
mov    -0x20(%rbp),%rdi
lea    0x397e(%rip),%rsi
call   1060 <strcmp@plt>
cmp    $0x0,%rax
je     17e2 <main+0x642>
mov    -0x20(%rbp),%rsi
lea    0x2e0b(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0x2e0b(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    -0x1fd0(%rbp),%rdi
lea    0x2dfc(%rip),%rsi
call   10c0 <strstr@plt>
cmp    $0x0,%rax
je     18c0 <main+0x720>
mov    -0x10(%rbp),%rax
mov    0x10(%rax),%rdi
lea    0x2de7(%rip),%rsi
call   1060 <strcmp@plt>
cmp    $0x0,%rax
jne    18c0 <main+0x720>
lea    -0x1fd0(%rbp),%rdi
lea    0x2dc8(%rip),%rsi
call   10a0 <strtok@plt>
mov    %rax,-0x20(%rbp)
xor    %eax,%eax
mov    %eax,%edi
lea    0x2cec(%rip),%rsi
call   10a0 <strtok@plt>
mov    %rax,-0x20(%rbp)
mov    -0x20(%rbp),%rsi
lea    0x2dab(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0x2db8(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
mov    -0x20(%rbp),%rsi
lea    0x2db7(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
xor    %eax,%eax
mov    %eax,%edi
lea    0x2d65(%rip),%rsi
call   10a0 <strtok@plt>
mov    %rax,-0x20(%rbp)
mov    -0x20(%rbp),%rsi
add    $0x1,%rsi
lea    0x2d9f(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0x2d3b(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    -0x1fd0(%rbp),%rdi
lea    0x2d8e(%rip),%rsi
call   10c0 <strstr@plt>
cmp    $0x0,%rax
je     1e22 <main+0xc82>
mov    -0x10(%rbp),%rax
mov    0x10(%rax),%rdi
lea    0x2d79(%rip),%rsi
call   1060 <strcmp@plt>
cmp    $0x0,%rax
jne    1e22 <main+0xc82>
lea    -0x1fd0(%rbp),%rax
mov    %rax,-0x28(%rbp)
lea    -0x28(%rbp),%rdi
lea    0x2cf0(%rip),%rsi
call   1080 <my_strsep@plt>
mov    %rax,-0x20(%rbp)
lea    -0x28(%rbp),%rdi
lea    0x2c14(%rip),%rsi
call   1080 <my_strsep@plt>
mov    %rax,-0x20(%rbp)
mov    -0x20(%rbp),%rsi
lea    0x2d35(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0x2d42(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
mov    -0x20(%rbp),%rsi
lea    0x2d41(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    -0x28(%rbp),%rdi
lea    0x2c17(%rip),%rsi
call   1080 <my_strsep@plt>
mov    %rax,-0x20(%rbp)
mov    -0x20(%rbp),%rsi
add    $0x1,%rsi
lea    0x2d2b(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    -0x28(%rbp),%rdi
lea    0x2bed(%rip),%rsi
call   1080 <my_strsep@plt>
mov    %rax,-0x20(%rbp)
cmpq   $0x0,-0x20(%rbp)
je     19d5 <main+0x835>
mov    -0x20(%rbp),%rdi
lea    0x378b(%rip),%rsi
call   1060 <strcmp@plt>
cmp    $0x0,%rax
je     19d5 <main+0x835>
mov    -0x20(%rbp),%rsi
lea    0x2cee(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    -0x28(%rbp),%rdi
lea    0x2ba2(%rip),%rsi
call   1080 <my_strsep@plt>
mov    %rax,-0x20(%rbp)
cmpq   $0x0,-0x20(%rbp)
je     1a20 <main+0x880>
mov    -0x20(%rbp),%rdi
lea    0x3740(%rip),%rsi
call   1060 <strcmp@plt>
cmp    $0x0,%rax
je     1a20 <main+0x880>
mov    -0x20(%rbp),%rsi
lea    0x2cc4(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    -0x28(%rbp),%rdi
lea    0x2b57(%rip),%rsi
call   1080 <my_strsep@plt>
mov    %rax,-0x20(%rbp)
mov    -0x20(%rbp),%rdi
call   10b0 <atoi@plt>
mov    %eax,-0x1fd4(%rbp)
lea    -0x28(%rbp),%rdi
lea    0x2b34(%rip),%rsi
call   1080 <my_strsep@plt>
mov    %rax,-0x20(%rbp)
mov    -0x20(%rbp),%rdi
call   10b0 <atoi@plt>
mov    %eax,-0x1fdc(%rbp)
lea    -0x28(%rbp),%rdi
lea    0x2b11(%rip),%rsi
call   1080 <my_strsep@plt>
mov    %rax,-0x20(%rbp)
mov    -0x20(%rbp),%rdi
call   10b0 <atoi@plt>
mov    %eax,-0x1fd8(%rbp)
movl   $0x0,-0x1fe8(%rbp)
lea    0x2c61(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
cmpl   $0x1,-0x1fd4(%rbp)
je     1ac8 <main+0x928>
cmpl   $0x1,-0x1fdc(%rbp)
je     1ac8 <main+0x928>
cmpl   $0x1,-0x1fd8(%rbp)
jne    1b68 <main+0x9c8>
cmpl   $0x1,-0x1fd8(%rbp)
jne    1aed <main+0x94d>
lea    0x2c3e(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
movl   $0x1,-0x1fe8(%rbp)
cmpl   $0x1,-0x1fdc(%rbp)
jne    1b2d <main+0x98d>
cmpl   $0x1,-0x1fe8(%rbp)
jne    1b15 <main+0x975>
lea    0x2c10(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0x3810(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
movl   $0x1,-0x1fe8(%rbp)
cmpl   $0x1,-0x1fd4(%rbp)
jne    1b63 <main+0x9c3>
cmpl   $0x1,-0x1fe8(%rbp)
jne    1b55 <main+0x9b5>
lea    0x2bd0(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0x2995(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
jmp    1b76 <main+0x9d6>
lea    0x2bb1(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0x2a7b(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    -0x28(%rbp),%rdi
lea    0x29f3(%rip),%rsi
call   1080 <my_strsep@plt>
mov    %rax,-0x20(%rbp)
mov    -0x20(%rbp),%rdi
call   10b0 <atoi@plt>
mov    %eax,-0x1fd4(%rbp)
lea    -0x28(%rbp),%rdi
lea    0x29d0(%rip),%rsi
call   1080 <my_strsep@plt>
mov    %rax,-0x20(%rbp)
mov    -0x20(%rbp),%rdi
call   10b0 <atoi@plt>
mov    %eax,-0x1fe0(%rbp)
lea    -0x28(%rbp),%rdi
lea    0x29ad(%rip),%rsi
call   1080 <my_strsep@plt>
mov    %rax,-0x20(%rbp)
mov    -0x20(%rbp),%rdi
call   10b0 <atoi@plt>
mov    %eax,-0x1fe4(%rbp)
movl   $0x0,-0x1fe8(%rbp)
lea    0x2b24(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
cmpl   $0x1,-0x1fd4(%rbp)
je     1c2c <main+0xa8c>
cmpl   $0x1,-0x1fe0(%rbp)
je     1c2c <main+0xa8c>
cmpl   $0x1,-0x1fe4(%rbp)
jne    1ccc <main+0xb2c>
cmpl   $0x1,-0x1fe0(%rbp)
jne    1c51 <main+0xab1>
lea    0x2afe(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
movl   $0x1,-0x1fe8(%rbp)
cmpl   $0x1,-0x1fe4(%rbp)
jne    1c91 <main+0xaf1>
cmpl   $0x1,-0x1fe8(%rbp)
jne    1c79 <main+0xad9>
lea    0x2aac(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0x2a9c(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
movl   $0x1,-0x1fe8(%rbp)
cmpl   $0x1,-0x1fd4(%rbp)
jne    1cc7 <main+0xb27>
cmpl   $0x1,-0x1fe8(%rbp)
jne    1cb9 <main+0xb19>
lea    0x2a6c(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0x2831(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
jmp    1cda <main+0xb3a>
lea    0x2a4d(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0x2917(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    -0x28(%rbp),%rdi
lea    0x288f(%rip),%rsi
call   1080 <my_strsep@plt>
mov    %rax,-0x20(%rbp)
cmpq   $0x0,-0x20(%rbp)
je     1d33 <main+0xb93>
mov    -0x20(%rbp),%rdi
lea    0x342d(%rip),%rsi
call   1060 <strcmp@plt>
cmp    $0x0,%rax
je     1d33 <main+0xb93>
mov    -0x20(%rbp),%rsi
lea    0x2a14(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    -0x28(%rbp),%rdi
lea    0x2844(%rip),%rsi
call   1080 <my_strsep@plt>
mov    %rax,-0x20(%rbp)
cmpq   $0x0,-0x20(%rbp)
je     1d7e <main+0xbde>
mov    -0x20(%rbp),%rdi
lea    0x33e2(%rip),%rsi
call   1060 <strcmp@plt>
cmp    $0x0,%rax
je     1d7e <main+0xbde>
mov    -0x20(%rbp),%rsi
lea    0x29ec(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    -0x28(%rbp),%rdi
lea    0x27f9(%rip),%rsi
call   1080 <my_strsep@plt>
mov    %rax,-0x20(%rbp)
cmpq   $0x0,-0x20(%rbp)
je     1dc9 <main+0xc29>
mov    -0x20(%rbp),%rdi
lea    0x3397(%rip),%rsi
call   1060 <strcmp@plt>
cmp    $0x0,%rax
je     1dc9 <main+0xc29>
mov    -0x20(%rbp),%rsi
lea    0x29c1(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    -0x28(%rbp),%rdi
lea    0x280e(%rip),%rsi
call   1080 <my_strsep@plt>
mov    %rax,-0x20(%rbp)
cmpq   $0x0,-0x20(%rbp)
je     1e14 <main+0xc74>
mov    -0x20(%rbp),%rdi
lea    0x334c(%rip),%rsi
call   1060 <strcmp@plt>
cmp    $0x0,%rax
je     1e14 <main+0xc74>
mov    -0x20(%rbp),%rsi
lea    0x2984(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0x27d9(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    -0x1fd0(%rbp),%rdi
lea    0x296f(%rip),%rsi
call   10c0 <strstr@plt>
cmp    $0x0,%rax
je     1f18 <main+0xd78>
mov    -0x10(%rbp),%rax
mov    0x10(%rax),%rdi
lea    0x295f(%rip),%rsi
call   1060 <strcmp@plt>
cmp    $0x0,%rax
jne    1f18 <main+0xd78>
lea    -0x1fd0(%rbp),%rdi
lea    0x2796(%rip),%rsi
call   10a0 <strtok@plt>
mov    %rax,-0x20(%rbp)
xor    %eax,%eax
mov    %eax,%edi
lea    0x26ba(%rip),%rsi
call   10a0 <strtok@plt>
mov    %rax,-0x20(%rbp)
mov    -0x20(%rbp),%rsi
lea    0x2928(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0x293b(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
mov    -0x20(%rbp),%rsi
lea    0x293f(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
xor    %eax,%eax
mov    %eax,%edi
lea    0x26bd(%rip),%rsi
call   10a0 <strtok@plt>
mov    %rax,-0x20(%rbp)
mov    -0x20(%rbp),%rsi
add    $0x1,%rsi
lea    0x292c(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
xor    %eax,%eax
mov    %eax,%edi
lea    0x2709(%rip),%rsi
call   10a0 <strtok@plt>
mov    %rax,-0x20(%rbp)
mov    -0x20(%rbp),%rsi
lea    0x2913(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0x26e3(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    -0x1fd0(%rbp),%rdi
lea    0x28ff(%rip),%rsi
call   10c0 <strstr@plt>
cmp    $0x0,%rax
je     23e9 <main+0x1249>
mov    -0x10(%rbp),%rax
mov    0x10(%rax),%rdi
lea    0x28e7(%rip),%rsi
call   1060 <strcmp@plt>
cmp    $0x0,%rax
jne    23e9 <main+0x1249>
cmpl   $0x0,-0x1fec(%rbp)
jne    202e <main+0xe8e>
lea    0x28ca(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0x28e0(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0x28e0(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0x2959(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0x2987(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0x29c0(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0x29ee(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0x2a1b(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0x2a45(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0x2a69(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0x2aad(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0x25f7(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0x2aea(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0x2b33(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
movl   $0x1,-0x1fec(%rbp)
lea    -0x1fd0(%rbp),%rax
mov    %rax,-0x28(%rbp)
lea    -0x28(%rbp),%rdi
lea    0x25bd(%rip),%rsi
call   1080 <my_strsep@plt>
mov    %rax,-0x20(%rbp)
lea    -0x28(%rbp),%rdi
lea    0x24e1(%rip),%rsi
call   1080 <my_strsep@plt>
mov    %rax,-0x20(%rbp)
mov    -0x20(%rbp),%rsi
lea    0x2ae9(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0x27db(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0x2ae5(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
mov    -0x20(%rbp),%rsi
lea    0x2b09(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    -0x28(%rbp),%rdi
lea    0x24d6(%rip),%rsi
call   1080 <my_strsep@plt>
mov    %rax,-0x20(%rbp)
mov    -0x20(%rbp),%rsi
add    $0x1,%rsi
lea    0x2745(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    -0x28(%rbp),%rdi
lea    0x24ac(%rip),%rsi
call   1080 <my_strsep@plt>
mov    %rax,-0x20(%rbp)
mov    -0x20(%rbp),%rsi
lea    0x2ac9(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    -0x28(%rbp),%rdi
lea    0x2486(%rip),%rsi
call   1080 <my_strsep@plt>
mov    %rax,-0x20(%rbp)
cmpq   $0x0,-0x20(%rbp)
je     213c <main+0xf9c>
mov    -0x20(%rbp),%rdi
lea    0x3024(%rip),%rsi
call   1060 <strcmp@plt>
cmp    $0x0,%rax
je     213c <main+0xf9c>
mov    -0x20(%rbp),%rsi
lea    0x2a8d(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    -0x28(%rbp),%rdi
lea    0x243b(%rip),%rsi
call   1080 <my_strsep@plt>
mov    %rax,-0x20(%rbp)
cmpq   $0x0,-0x20(%rbp)
je     2187 <main+0xfe7>
mov    -0x20(%rbp),%rdi
lea    0x2fd9(%rip),%rsi
call   1060 <strcmp@plt>
cmp    $0x0,%rax
je     2187 <main+0xfe7>
mov    -0x20(%rbp),%rsi
lea    0x2a51(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    -0x28(%rbp),%rdi
lea    0x23f0(%rip),%rsi
call   1080 <my_strsep@plt>
mov    %rax,-0x20(%rbp)
mov    -0x20(%rbp),%rdi
call   10b0 <atoi@plt>
mov    %eax,%esi
lea    0x2a38(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    -0x28(%rbp),%rdi
lea    0x23c3(%rip),%rsi
call   1080 <my_strsep@plt>
mov    %rax,-0x20(%rbp)
mov    -0x20(%rbp),%rdi
call   10b0 <atoi@plt>
mov    %eax,%esi
lea    0x2a23(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    -0x28(%rbp),%rdi
lea    0x2396(%rip),%rsi
call   1080 <my_strsep@plt>
mov    %rax,-0x20(%rbp)
cmpq   $0x0,-0x20(%rbp)
je     222c <main+0x108c>
mov    -0x20(%rbp),%rdi
lea    0x2f34(%rip),%rsi
call   1060 <strcmp@plt>
cmp    $0x0,%rax
je     222c <main+0x108c>
mov    -0x20(%rbp),%rsi
lea    0x29f3(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    -0x28(%rbp),%rdi
lea    0x234b(%rip),%rsi
call   1080 <my_strsep@plt>
mov    %rax,-0x20(%rbp)
mov    -0x20(%rbp),%rdi
call   10b0 <atoi@plt>
mov    %eax,-0x1fd4(%rbp)
lea    -0x28(%rbp),%rdi
lea    0x2328(%rip),%rsi
call   1080 <my_strsep@plt>
mov    %rax,-0x20(%rbp)
mov    -0x20(%rbp),%rdi
call   10b0 <atoi@plt>
mov    %eax,-0x1fe0(%rbp)
lea    -0x28(%rbp),%rdi
lea    0x2305(%rip),%rsi
call   1080 <my_strsep@plt>
mov    %rax,-0x20(%rbp)
mov    -0x20(%rbp),%rdi
call   10b0 <atoi@plt>
mov    %eax,-0x1fe4(%rbp)
movl   $0x0,-0x1fe8(%rbp)
lea    0x298b(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
cmpl   $0x1,-0x1fd4(%rbp)
je     22d4 <main+0x1134>
cmpl   $0x1,-0x1fe0(%rbp)
je     22d4 <main+0x1134>
cmpl   $0x1,-0x1fe4(%rbp)
jne    2374 <main+0x11d4>
cmpl   $0x1,-0x1fe0(%rbp)
jne    22f9 <main+0x1159>
lea    0x2456(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
movl   $0x1,-0x1fe8(%rbp)
cmpl   $0x1,-0x1fe4(%rbp)
jne    2339 <main+0x1199>
cmpl   $0x1,-0x1fe8(%rbp)
jne    2321 <main+0x1181>
lea    0x2404(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0x23f4(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
movl   $0x1,-0x1fe8(%rbp)
cmpl   $0x1,-0x1fd4(%rbp)
jne    236f <main+0x11cf>
cmpl   $0x1,-0x1fe8(%rbp)
jne    2361 <main+0x11c1>
lea    0x23c4(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0x2189(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
jmp    2382 <main+0x11e2>
lea    0x23a5(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0x226f(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    -0x28(%rbp),%rdi
lea    0x2247(%rip),%rsi
call   1080 <my_strsep@plt>
mov    %rax,-0x20(%rbp)
cmpq   $0x0,-0x20(%rbp)
je     23db <main+0x123b>
mov    -0x20(%rbp),%rdi
lea    0x2d85(%rip),%rsi
call   1060 <strcmp@plt>
cmp    $0x0,%rax
je     23db <main+0x123b>
mov    -0x20(%rbp),%rsi
lea    0x2874(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0x2212(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    -0x1fd0(%rbp),%rdi
lea    0x2865(%rip),%rsi
call   10c0 <strstr@plt>
cmp    $0x0,%rax
je     24f3 <main+0x1353>
mov    -0x10(%rbp),%rax
mov    0x10(%rax),%rdi
lea    0x2852(%rip),%rsi
call   1060 <strcmp@plt>
cmp    $0x0,%rax
jne    24f3 <main+0x1353>
lea    -0x1fd0(%rbp),%rdi
lea    0x21cf(%rip),%rsi
call   10a0 <strtok@plt>
mov    %rax,-0x20(%rbp)
xor    %eax,%eax
mov    %eax,%edi
lea    0x20f3(%rip),%rsi
call   10a0 <strtok@plt>
mov    %rax,-0x20(%rbp)
mov    -0x20(%rbp),%rsi
lea    0x2818(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0x2828(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
mov    -0x20(%rbp),%rsi
lea    0x2829(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
xor    %eax,%eax
mov    %eax,%edi
lea    0x20f6(%rip),%rsi
call   10a0 <strtok@plt>
mov    %rax,-0x20(%rbp)
mov    -0x20(%rbp),%rsi
add    $0x1,%rsi
lea    0x20e0(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
xor    %eax,%eax
mov    %eax,%edi
lea    0x20cc(%rip),%rsi
call   10a0 <strtok@plt>
mov    %rax,-0x20(%rbp)
xor    %eax,%eax
mov    %eax,%edi
lea    0x212e(%rip),%rsi
call   10a0 <strtok@plt>
mov    %rax,-0x20(%rbp)
mov    -0x20(%rbp),%rsi
lea    0x27d9(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0x2108(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    -0x1fd0(%rbp),%rdi
lea    0x27c4(%rip),%rsi
call   10c0 <strstr@plt>
cmp    $0x0,%rax
je     2a71 <main+0x18d1>
mov    -0x10(%rbp),%rax
mov    0x10(%rax),%rdi
lea    0x27af(%rip),%rsi
call   1060 <strcmp@plt>
cmp    $0x0,%rax
jne    2a71 <main+0x18d1>
cmpl   $0x0,-0x1fec(%rbp)
jne    2633 <main+0x1493>
lea    0x2795(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0x27ae(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0x27b1(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0x280c(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0x283d(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0x2879(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0x28e9(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0x2928(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0x295e(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0x298f(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0x2416(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0x2440(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0x2464(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0x24a8(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0x1ff2(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0x2979(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0x252e(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
movl   $0x1,-0x1fec(%rbp)
lea    -0x1fd0(%rbp),%rax
mov    %rax,-0x28(%rbp)
lea    -0x28(%rbp),%rdi
lea    0x1fb8(%rip),%rsi
call   1080 <my_strsep@plt>
mov    %rax,-0x20(%rbp)
lea    -0x28(%rbp),%rdi
lea    0x1edc(%rip),%rsi
call   1080 <my_strsep@plt>
mov    %rax,-0x20(%rbp)
lea    0x297a(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0x2683(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0x2974(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
mov    -0x20(%rbp),%rsi
lea    0x299f(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    -0x28(%rbp),%rdi
lea    0x1ed5(%rip),%rsi
call   1080 <my_strsep@plt>
mov    %rax,-0x20(%rbp)
mov    -0x20(%rbp),%rsi
add    $0x1,%rsi
lea    0x2986(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    -0x28(%rbp),%rdi
lea    0x1eab(%rip),%rsi
call   1080 <my_strsep@plt>
mov    %rax,-0x20(%rbp)
mov    -0x20(%rbp),%rdi
call   10b0 <atoi@plt>
mov    %eax,%esi
lea    0x2973(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    -0x28(%rbp),%rdi
lea    0x1e7e(%rip),%rsi
call   1080 <my_strsep@plt>
mov    %rax,-0x20(%rbp)
mov    -0x20(%rbp),%rsi
lea    0x2960(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    -0x28(%rbp),%rdi
lea    0x1e58(%rip),%rsi
call   1080 <my_strsep@plt>
mov    %rax,-0x20(%rbp)
mov    -0x20(%rbp),%rdi
call   10b0 <atoi@plt>
mov    %eax,%esi
lea    0x2947(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    -0x28(%rbp),%rdi
lea    0x1e2b(%rip),%rsi
call   1080 <my_strsep@plt>
mov    %rax,-0x20(%rbp)
mov    -0x20(%rbp),%rdi
call   10b0 <atoi@plt>
mov    %eax,%esi
lea    0x2933(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    -0x28(%rbp),%rdi
lea    0x1dfe(%rip),%rsi
call   1080 <my_strsep@plt>
mov    %rax,-0x20(%rbp)
mov    -0x20(%rbp),%rdi
call   10b0 <atoi@plt>
mov    %eax,%esi
lea    0x2922(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    -0x28(%rbp),%rdi
lea    0x1dd1(%rip),%rsi
call   1080 <my_strsep@plt>
mov    %rax,-0x20(%rbp)
cmpq   $0x0,-0x20(%rbp)
je     27f1 <main+0x1651>
mov    -0x20(%rbp),%rdi
lea    0x296f(%rip),%rsi
call   1060 <strcmp@plt>
cmp    $0x0,%rax
je     27f1 <main+0x1651>
mov    -0x20(%rbp),%rsi
lea    0x28f2(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    -0x28(%rbp),%rdi
lea    0x1d86(%rip),%rsi
call   1080 <my_strsep@plt>
mov    %rax,-0x20(%rbp)
mov    -0x20(%rbp),%rdi
call   10b0 <atoi@plt>
mov    %eax,%esi
lea    0x28db(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    -0x28(%rbp),%rdi
lea    0x1d59(%rip),%rsi
call   1080 <my_strsep@plt>
mov    %rax,-0x20(%rbp)
cmpq   $0x0,-0x20(%rbp)
je     2869 <main+0x16c9>
mov    -0x20(%rbp),%rdi
lea    0x28f7(%rip),%rsi
call   1060 <strcmp@plt>
cmp    $0x0,%rax
je     2869 <main+0x16c9>
mov    -0x20(%rbp),%rsi
lea    0x28ac(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    -0x28(%rbp),%rdi
lea    0x1d0e(%rip),%rsi
call   1080 <my_strsep@plt>
mov    %rax,-0x20(%rbp)
mov    -0x20(%rbp),%rdi
call   10b0 <atoi@plt>
mov    %eax,-0x1fd4(%rbp)
lea    -0x28(%rbp),%rdi
lea    0x1ceb(%rip),%rsi
call   1080 <my_strsep@plt>
mov    %rax,-0x20(%rbp)
mov    -0x20(%rbp),%rdi
call   10b0 <atoi@plt>
mov    %eax,-0x1fdc(%rbp)
lea    -0x28(%rbp),%rdi
lea    0x1cc8(%rip),%rsi
call   1080 <my_strsep@plt>
mov    %rax,-0x20(%rbp)
mov    -0x20(%rbp),%rdi
call   10b0 <atoi@plt>
mov    %eax,-0x1fd8(%rbp)
movl   $0x0,-0x1fe8(%rbp)
lea    0x2845(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
cmpl   $0x1,-0x1fd4(%rbp)
je     2911 <main+0x1771>
cmpl   $0x1,-0x1fdc(%rbp)
je     2911 <main+0x1771>
cmpl   $0x1,-0x1fd8(%rbp)
jne    29b1 <main+0x1811>
cmpl   $0x1,-0x1fd8(%rbp)
jne    2936 <main+0x1796>
lea    0x1df5(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
movl   $0x1,-0x1fe8(%rbp)
cmpl   $0x1,-0x1fdc(%rbp)
jne    2976 <main+0x17d6>
cmpl   $0x1,-0x1fe8(%rbp)
jne    295e <main+0x17be>
lea    0x1dc7(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0x29c7(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
movl   $0x1,-0x1fe8(%rbp)
cmpl   $0x1,-0x1fd4(%rbp)
jne    29ac <main+0x180c>
cmpl   $0x1,-0x1fe8(%rbp)
jne    299e <main+0x17fe>
lea    0x1d87(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0x1b4c(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
jmp    29bf <main+0x181f>
lea    0x1d68(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0x1c32(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    -0x28(%rbp),%rdi
lea    0x1baa(%rip),%rsi
call   1080 <my_strsep@plt>
mov    %rax,-0x20(%rbp)
cmpq   $0x0,-0x20(%rbp)
je     2a18 <main+0x1878>
mov    -0x20(%rbp),%rdi
lea    0x2748(%rip),%rsi
call   1060 <strcmp@plt>
cmp    $0x0,%rax
je     2a18 <main+0x1878>
mov    -0x20(%rbp),%rsi
lea    0x2237(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    -0x28(%rbp),%rdi
lea    0x1bbf(%rip),%rsi
call   1080 <my_strsep@plt>
mov    %rax,-0x20(%rbp)
cmpq   $0x0,-0x20(%rbp)
je     2a63 <main+0x18c3>
mov    -0x20(%rbp),%rdi
lea    0x26fd(%rip),%rsi
call   1060 <strcmp@plt>
cmp    $0x0,%rax
je     2a63 <main+0x18c3>
mov    -0x20(%rbp),%rsi
lea    0x26e4(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0x1b8a(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    -0x1fd0(%rbp),%rdi
lea    0x26d6(%rip),%rsi
call   10c0 <strstr@plt>
cmp    $0x0,%rax
je     2bdf <main+0x1a3f>
mov    -0x10(%rbp),%rax
mov    0x10(%rax),%rdi
lea    0x26cd(%rip),%rsi
call   1060 <strcmp@plt>
cmp    $0x0,%rax
jne    2bdf <main+0x1a3f>
mov    -0x1ff0(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x1ff0(%rbp)
lea    -0x1fd0(%rbp),%rax
mov    %rax,-0x28(%rbp)
lea    -0x28(%rbp),%rdi
lea    0x1b30(%rip),%rsi
call   1080 <my_strsep@plt>
mov    %rax,-0x20(%rbp)
lea    -0x28(%rbp),%rdi
lea    0x1a54(%rip),%rsi
call   1080 <my_strsep@plt>
mov    %rax,-0x20(%rbp)
mov    -0x20(%rbp),%rsi
lea    0x2686(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0x26a0(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
mov    -0x20(%rbp),%rsi
lea    0x26ab(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    -0x28(%rbp),%rdi
lea    0x26ae(%rip),%rsi
call   1080 <my_strsep@plt>
mov    %rax,-0x20(%rbp)
mov    -0x20(%rbp),%rdi
add    $0x1,%rdi
call   10b0 <atoi@plt>
mov    %eax,%esi
lea    0x2691(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    -0x28(%rbp),%rdi
lea    0x1a26(%rip),%rsi
call   1080 <my_strsep@plt>
mov    %rax,-0x20(%rbp)
mov    -0x20(%rbp),%rdi
call   10b0 <atoi@plt>
mov    %eax,%esi
lea    0x267d(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    -0x28(%rbp),%rdi
lea    0x19f9(%rip),%rsi
call   1080 <my_strsep@plt>
mov    %rax,-0x20(%rbp)
mov    -0x20(%rbp),%rsi
lea    0x253f(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    -0x28(%rbp),%rdi
lea    0x1a33(%rip),%rsi
call   1080 <my_strsep@plt>
mov    %rax,-0x20(%rbp)
mov    -0x20(%rbp),%rdi
call   10b0 <atoi@plt>
mov    %eax,%esi
lea    0x2528(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0x1a1c(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    -0x1fd0(%rbp),%rdi
lea    0x261f(%rip),%rsi
call   10c0 <strstr@plt>
cmp    $0x0,%rax
je     2d7b <main+0x1bdb>
mov    -0x10(%rbp),%rax
mov    0x10(%rax),%rdi
lea    0x2614(%rip),%rsi
call   1060 <strcmp@plt>
cmp    $0x0,%rax
jne    2d7b <main+0x1bdb>
mov    -0x1ff0(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x1ff0(%rbp)
lea    0x2602(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0x2614(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    -0x1fd0(%rbp),%rax
mov    %rax,-0x28(%rbp)
lea    -0x28(%rbp),%rdi
lea    0x19a6(%rip),%rsi
call   1080 <my_strsep@plt>
mov    %rax,-0x20(%rbp)
lea    -0x28(%rbp),%rdi
lea    0x1913(%rip),%rsi
call   1080 <my_strsep@plt>
mov    %rax,-0x2000(%rbp)
lea    -0x28(%rbp),%rdi
lea    0x18b3(%rip),%rsi
call   1080 <my_strsep@plt>
mov    %rax,-0x2008(%rbp)
mov    -0x2000(%rbp),%rsi
lea    0x1f03(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
mov    -0x2008(%rbp),%rsi
lea    0x2396(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    -0x28(%rbp),%rdi
lea    0x2512(%rip),%rsi
call   1080 <my_strsep@plt>
mov    %rax,-0x20(%rbp)
mov    -0x20(%rbp),%rdi
add    $0x1,%rdi
call   10b0 <atoi@plt>
mov    %eax,%esi
lea    0x24f5(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    -0x28(%rbp),%rdi
lea    0x188a(%rip),%rsi
call   1080 <my_strsep@plt>
mov    %rax,-0x20(%rbp)
mov    -0x20(%rbp),%rdi
call   10b0 <atoi@plt>
mov    %eax,%esi
lea    0x24e1(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    -0x28(%rbp),%rdi
lea    0x185d(%rip),%rsi
call   1080 <my_strsep@plt>
mov    %rax,-0x20(%rbp)
mov    -0x20(%rbp),%rsi
lea    0x23a3(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    -0x28(%rbp),%rdi
lea    0x1897(%rip),%rsi
call   1080 <my_strsep@plt>
mov    %rax,-0x20(%rbp)
mov    -0x20(%rbp),%rdi
call   10b0 <atoi@plt>
mov    %eax,%esi
lea    0x238c(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0x1880(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    -0x1fd0(%rbp),%rdi
lea    0x24e4(%rip),%rsi
call   10c0 <strstr@plt>
cmp    $0x0,%rax
je     3034 <main+0x1e94>
mov    -0x10(%rbp),%rax
mov    0x10(%rax),%rdi
lea    0x24d9(%rip),%rsi
call   1060 <strcmp@plt>
cmp    $0x0,%rax
jne    3034 <main+0x1e94>
lea    -0x1fd0(%rbp),%rax
mov    %rax,-0x28(%rbp)
lea    -0x28(%rbp),%rdi
lea    0x1835(%rip),%rsi
call   1080 <my_strsep@plt>
mov    %rax,-0x20(%rbp)
lea    -0x28(%rbp),%rdi
lea    0x17a2(%rip),%rsi
call   1080 <my_strsep@plt>
mov    %rax,-0x2000(%rbp)
lea    -0x28(%rbp),%rdi
lea    0x1742(%rip),%rsi
call   1080 <my_strsep@plt>
mov    %rax,-0x2008(%rbp)
lea    -0x28(%rbp),%rdi
lea    0x1774(%rip),%rsi
call   1080 <my_strsep@plt>
add    $0x1,%rax
mov    %rax,-0x2010(%rbp)
lea    -0x28(%rbp),%rdi
lea    0x1759(%rip),%rsi
call   1080 <my_strsep@plt>
mov    %rax,-0x2018(%rbp)
lea    -0x28(%rbp),%rdi
lea    0x1742(%rip),%rsi
call   1080 <my_strsep@plt>
mov    %rax,-0x20(%rbp)
mov    -0x1ff0(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x1ff0(%rbp)
lea    0x2435(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0x2447(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
mov    -0x2010(%rbp),%rsi
lea    0x21b8(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
mov    -0x2018(%rbp),%rsi
lea    0x21b4(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
mov    -0x2000(%rbp),%rsi
lea    0x2423(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
mov    -0x2008(%rbp),%rsi
lea    0x2428(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0x243d(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
movl   $0x0,-0x1ff4(%rbp)
mov    -0x20(%rbp),%rax
movslq -0x1ff4(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x0,%eax
je     2f44 <main+0x1da4>
mov    -0x1ff4(%rbp),%ecx
lea    0x223a(%rip),%rsi
lea    0x1812(%rip),%rax
cmp    $0x0,%ecx
cmovg  %rax,%rsi
mov    -0x20(%rbp),%rax
movslq -0x1ff4(%rbp),%rcx
movsbl (%rax,%rcx,1),%edx
lea    0x2400(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
mov    -0x1ff4(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x1ff4(%rbp)
jmp    2ee0 <main+0x1d40>
cmpl   $0x0,-0x1ff4(%rbp)
jne    2f5f <main+0x1dbf>
lea    0x17c8(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0x23c8(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    -0x28(%rbp),%rdi
lea    0x166a(%rip),%rsi
call   1080 <my_strsep@plt>
mov    %rax,-0x20(%rbp)
lea    0x23ee(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
movl   $0x0,-0x1ff4(%rbp)
mov    -0x20(%rbp),%rax
movslq -0x1ff4(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x0,%eax
je     2ffd <main+0x1e5d>
mov    -0x1ff4(%rbp),%ecx
lea    0x2181(%rip),%rsi
lea    0x1759(%rip),%rax
cmp    $0x0,%ecx
cmovg  %rax,%rsi
mov    -0x20(%rbp),%rax
movslq -0x1ff4(%rbp),%rcx
movsbl (%rax,%rcx,1),%edx
lea    0x2347(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
mov    -0x1ff4(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x1ff4(%rbp)
jmp    2f99 <main+0x1df9>
cmpl   $0x0,-0x1ff4(%rbp)
jne    3018 <main+0x1e78>
lea    0x170f(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0x2377(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0x15c7(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    -0x1fd0(%rbp),%rdi
lea    0x239a(%rip),%rsi
call   10c0 <strstr@plt>
cmp    $0x0,%rax
je     32fe <main+0x215e>
mov    -0x10(%rbp),%rax
mov    0x10(%rax),%rdi
lea    0x2389(%rip),%rsi
call   1060 <strcmp@plt>
cmp    $0x0,%rax
jne    32fe <main+0x215e>
lea    -0x1fd0(%rbp),%rax
mov    %rax,-0x28(%rbp)
lea    -0x28(%rbp),%rdi
lea    0x157c(%rip),%rsi
call   1080 <my_strsep@plt>
mov    %rax,-0x20(%rbp)
lea    -0x28(%rbp),%rdi
lea    0x14a0(%rip),%rsi
call   1080 <my_strsep@plt>
mov    %rax,-0x20(%rbp)
mov    -0x20(%rbp),%rsi
lea    0x2348(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0x2359(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
mov    -0x20(%rbp),%rsi
lea    0x235c(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    -0x28(%rbp),%rdi
lea    0x14a3(%rip),%rsi
call   1080 <my_strsep@plt>
mov    %rax,-0x20(%rbp)
mov    -0x20(%rbp),%rax
add    $0x1,%rax
cmp    $0x0,%rax
je     312e <main+0x1f8e>
mov    -0x20(%rbp),%rdi
add    $0x1,%rdi
lea    0x2036(%rip),%rsi
call   1060 <strcmp@plt>
cmp    $0x0,%rax
je     312e <main+0x1f8e>
mov    -0x20(%rbp),%rsi
add    $0x1,%rsi
lea    0x2347(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    -0x28(%rbp),%rdi
lea    0x1449(%rip),%rsi
call   1080 <my_strsep@plt>
mov    %rax,-0x20(%rbp)
cmpq   $0x0,-0x20(%rbp)
je     3179 <main+0x1fd9>
mov    -0x20(%rbp),%rdi
lea    0x1fe7(%rip),%rsi
call   1060 <strcmp@plt>
cmp    $0x0,%rax
je     3179 <main+0x1fd9>
mov    -0x20(%rbp),%rsi
lea    0x230d(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    -0x28(%rbp),%rdi
lea    0x13fe(%rip),%rsi
call   1080 <my_strsep@plt>
mov    %rax,-0x20(%rbp)
cmpq   $0x0,-0x20(%rbp)
je     31c4 <main+0x2024>
mov    -0x20(%rbp),%rdi
lea    0x1f9c(%rip),%rsi
call   1060 <strcmp@plt>
cmp    $0x0,%rax
je     31c4 <main+0x2024>
mov    -0x20(%rbp),%rsi
lea    0x22d3(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    -0x28(%rbp),%rdi
lea    0x13b3(%rip),%rsi
call   1080 <my_strsep@plt>
mov    %rax,-0x20(%rbp)
cmpq   $0x0,-0x20(%rbp)
je     320f <main+0x206f>
mov    -0x20(%rbp),%rdi
lea    0x1f51(%rip),%rsi
call   1060 <strcmp@plt>
cmp    $0x0,%rax
je     320f <main+0x206f>
mov    -0x20(%rbp),%rsi
lea    0x2299(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    -0x28(%rbp),%rdi
lea    0x1368(%rip),%rsi
call   1080 <my_strsep@plt>
mov    %rax,-0x20(%rbp)
cmpq   $0x0,-0x20(%rbp)
je     325a <main+0x20ba>
mov    -0x20(%rbp),%rdi
lea    0x1f06(%rip),%rsi
call   1060 <strcmp@plt>
cmp    $0x0,%rax
je     325a <main+0x20ba>
mov    -0x20(%rbp),%rsi
lea    0x2264(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    -0x28(%rbp),%rdi
lea    0x131d(%rip),%rsi
call   1080 <my_strsep@plt>
mov    %rax,-0x20(%rbp)
cmpq   $0x0,-0x20(%rbp)
je     32a5 <main+0x2105>
mov    -0x20(%rbp),%rdi
lea    0x1ebb(%rip),%rsi
call   1060 <strcmp@plt>
cmp    $0x0,%rax
je     32a5 <main+0x2105>
mov    -0x20(%rbp),%rsi
lea    0x222e(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    -0x28(%rbp),%rdi
lea    0x1332(%rip),%rsi
call   1080 <my_strsep@plt>
mov    %rax,-0x20(%rbp)
cmpq   $0x0,-0x20(%rbp)
je     32f0 <main+0x2150>
mov    -0x20(%rbp),%rdi
lea    0x1e70(%rip),%rsi
call   1060 <strcmp@plt>
cmp    $0x0,%rax
je     32f0 <main+0x2150>
mov    -0x20(%rbp),%rsi
lea    0x21f3(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0x12fd(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    -0x1fd0(%rbp),%rdi
lea    0x21e0(%rip),%rsi
call   10c0 <strstr@plt>
cmp    $0x0,%rax
je     34c2 <main+0x2322>
mov    -0x10(%rbp),%rax
mov    0x10(%rax),%rdi
lea    0x21d2(%rip),%rsi
call   1060 <strcmp@plt>
cmp    $0x0,%rax
jne    34c2 <main+0x2322>
lea    -0x1fd0(%rbp),%rax
mov    %rax,-0x28(%rbp)
lea    -0x28(%rbp),%rdi
lea    0x12b2(%rip),%rsi
call   1080 <my_strsep@plt>
mov    %rax,-0x20(%rbp)
lea    -0x28(%rbp),%rdi
lea    0x121f(%rip),%rsi
call   1080 <my_strsep@plt>
mov    %rax,-0x20(%rbp)
mov    -0x20(%rbp),%rsi
lea    0x2194(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0x21a3(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
mov    -0x20(%rbp),%rsi
lea    0x21a9(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    -0x28(%rbp),%rdi
lea    0x1190(%rip),%rsi
call   1080 <my_strsep@plt>
mov    %rax,-0x20(%rbp)
mov    -0x20(%rbp),%rsi
lea    0x21cb(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    -0x28(%rbp),%rdi
lea    0x11b3(%rip),%rsi
call   1080 <my_strsep@plt>
mov    %rax,-0x20(%rbp)
mov    -0x20(%rbp),%rax
add    $0x1,%rax
cmp    $0x0,%rax
je     341e <main+0x227e>
mov    -0x20(%rbp),%rdi
add    $0x1,%rdi
lea    0x1d46(%rip),%rsi
call   1060 <strcmp@plt>
cmp    $0x0,%rax
je     341e <main+0x227e>
mov    -0x20(%rbp),%rsi
add    $0x1,%rsi
lea    0x218a(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    -0x28(%rbp),%rdi
lea    0x1159(%rip),%rsi
call   1080 <my_strsep@plt>
mov    %rax,-0x20(%rbp)
cmpq   $0x0,-0x20(%rbp)
je     3469 <main+0x22c9>
mov    -0x20(%rbp),%rdi
lea    0x1cf7(%rip),%rsi
call   1060 <strcmp@plt>
cmp    $0x0,%rax
je     3469 <main+0x22c9>
mov    -0x20(%rbp),%rsi
lea    0x201d(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    -0x28(%rbp),%rdi
lea    0x116e(%rip),%rsi
call   1080 <my_strsep@plt>
mov    %rax,-0x20(%rbp)
cmpq   $0x0,-0x20(%rbp)
je     34b4 <main+0x2314>
mov    -0x20(%rbp),%rdi
lea    0x1cac(%rip),%rsi
call   1060 <strcmp@plt>
cmp    $0x0,%rax
je     34b4 <main+0x2314>
mov    -0x20(%rbp),%rsi
lea    0x200a(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0x1139(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
jmp    34c7 <main+0x2327>
lea    -0x1fd0(%rbp),%rdi
mov    -0x18(%rbp),%rdx
mov    $0x1f9f,%esi
call   1050 <fgets@plt>
jmp    14a8 <main+0x308>
mov    -0x18(%rbp),%rdi
call   1030 <fclose@plt>
movl   $0x0,-0x4(%rbp)
mov    -0x4(%rbp),%eax
add    $0x2020,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<main>:
push   %rbp
push   %r15
push   %r14
push   %r13
push   %r12
push   %rbx
sub    $0x1fc8,%rsp
mov    %rsi,%r12
cmp    $0x3,%edi
jne    122a <main+0x6a>
mov    0x8(%r12),%rdi
lea    0x2e64(%rip),%rsi
call   10b0 <fopen@plt>
test   %rax,%rax
je     1422 <main+0x262>
mov    %rax,%r15
lea    0x20(%rsp),%r13
mov    %r13,%rdi
mov    $0x1f9f,%esi
mov    %rax,%rdx
call   1070 <fgets@plt>
mov    %r15,%rdi
call   1090 <feof@plt>
test   %eax,%eax
je     144c <main+0x28c>
mov    %r15,%rdi
call   1050 <fclose@plt>
xor    %eax,%eax
jmp    143a <main+0x27a>
lea    0x2dfd(%rip),%rdi
call   1040 <puts@plt>
lea    0x2e0e(%rip),%rdi
call   1040 <puts@plt>
lea    0x2e31(%rip),%rdi
call   1040 <puts@plt>
mov    $0xa,%edi
call   1030 <putchar@plt>
mov    (%r12),%rsi
lea    0x1d9d(%rip),%rdi
xor    %eax,%eax
call   1060 <printf@plt>
mov    $0xa,%edi
call   1030 <putchar@plt>
lea    0x2e19(%rip),%rdi
call   1040 <puts@plt>
mov    $0xa,%edi
call   1030 <putchar@plt>
lea    0x2e1f(%rip),%rdi
call   1040 <puts@plt>
lea    0x2e20(%rip),%rdi
call   1040 <puts@plt>
lea    0x2e1e(%rip),%rdi
call   1040 <puts@plt>
lea    0x2e1c(%rip),%rdi
call   1040 <puts@plt>
lea    0x2e1f(%rip),%rdi
call   1040 <puts@plt>
lea    0x2e1a(%rip),%rdi
call   1040 <puts@plt>
lea    0x2e1a(%rip),%rdi
call   1040 <puts@plt>
lea    0x2e25(%rip),%rdi
call   1040 <puts@plt>
lea    0x2e23(%rip),%rdi
call   1040 <puts@plt>
lea    0x2e2c(%rip),%rdi
call   1040 <puts@plt>
mov    $0xa,%edi
call   1030 <putchar@plt>
lea    0x2e2a(%rip),%rdi
call   1040 <puts@plt>
lea    0x2e2b(%rip),%rdi
call   1040 <puts@plt>
mov    $0xa,%edi
call   1030 <putchar@plt>
lea    0x2e25(%rip),%rdi
call   1040 <puts@plt>
mov    $0xa,%edi
call   1030 <putchar@plt>
lea    0x2e16(%rip),%rdi
call   1040 <puts@plt>
lea    0x2e4d(%rip),%rdi
call   1040 <puts@plt>
lea    0x2e84(%rip),%rdi
call   1040 <puts@plt>
lea    0x2eb9(%rip),%rdi
call   1040 <puts@plt>
mov    $0xa,%edi
call   1030 <putchar@plt>
lea    0x2ecc(%rip),%rdi
call   1040 <puts@plt>
lea    0x2f07(%rip),%rdi
call   1040 <puts@plt>
lea    0x2f3f(%rip),%rdi
call   1040 <puts@plt>
lea    0x2f79(%rip),%rdi
call   1040 <puts@plt>
lea    0x2fb3(%rip),%rdi
call   1040 <puts@plt>
lea    0x2ff0(%rip),%rdi
call   1040 <puts@plt>
mov    $0xa,%edi
call   1030 <putchar@plt>
lea    0x2fed(%rip),%rdi
call   1040 <puts@plt>
lea    0x3024(%rip),%rdi
call   1040 <puts@plt>
mov    $0xa,%edi
call   1030 <putchar@plt>
lea    0x3023(%rip),%rdi
call   1040 <puts@plt>
lea    0x3060(%rip),%rdi
call   1040 <puts@plt>
lea    0x309d(%rip),%rdi
call   1040 <puts@plt>
mov    $0xa,%edi
call   1030 <putchar@plt>
jmp    1435 <main+0x275>
mov    0x8(%r12),%rsi
lea    0x1bf9(%rip),%rdi
xor    %eax,%eax
call   1060 <printf@plt>
mov    $0xffffffff,%eax
add    $0x1fc8,%rsp
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
ret
mov    %rsp,%r14
movabs $0x800002401,%rbp
movl   $0x0,0xc(%rsp)
mov    %r15,0x18(%rsp)
mov    %r12,0x10(%rsp)
jmp    14b0 <main+0x2f0>
lea    0x2bb5(%rip),%rdi
call   1040 <puts@plt>
movabs $0x800002401,%rbp
cs nopw 0x0(%rax,%rax,1)
nopl   (%rax)
mov    %r13,%rdi
mov    $0x1f9f,%esi
mov    %r15,%rdx
call   1070 <fgets@plt>
mov    %r15,%rdi
call   1090 <feof@plt>
test   %eax,%eax
jne    121b <main+0x5b>
movzbl 0x20(%rsp),%eax
cmp    $0x23,%rax
ja     14c1 <main+0x301>
bt     %rax,%rbp
jb     1490 <main+0x2d0>
mov    %r13,%rdi
lea    0x1b8a(%rip),%rsi
call   10e0 <strstr@plt>
test   %rax,%rax
je     1716 <main+0x556>
mov    0x10(%r12),%rdi
lea    0x2bcc(%rip),%rsi
call   1080 <strcmp@plt>
test   %rax,%rax
jne    1716 <main+0x556>
mov    %r13,(%rsp)
mov    %r14,%rdi
lea    0x1c0e(%rip),%rsi
call   10a0 <my_strsep@plt>
mov    %r14,%rdi
lea    0x1b51(%rip),%rsi
call   10a0 <my_strsep@plt>
mov    %rax,%rbx
lea    0x1b44(%rip),%rdi
mov    %rax,%rsi
xor    %eax,%eax
call   1060 <printf@plt>
lea    0x2ae6(%rip),%rdi
call   1040 <puts@plt>
lea    0x1b45(%rip),%rdi
mov    %rbx,%rsi
xor    %eax,%eax
call   1060 <printf@plt>
mov    %r14,%rdi
lea    0x1b46(%rip),%rbx
mov    %rbx,%rsi
call   10a0 <my_strsep@plt>
lea    0x1(%rax),%rsi
lea    0x1b35(%rip),%rdi
xor    %eax,%eax
call   1060 <printf@plt>
mov    %r14,%rdi
mov    %rbx,%rsi
call   10a0 <my_strsep@plt>
test   %rax,%rax
je     15a2 <main+0x3e2>
mov    %rax,%rbx
mov    %rax,%rdi
lea    0x1f80(%rip),%rsi
call   1080 <strcmp@plt>
test   %rax,%rax
je     15a2 <main+0x3e2>
lea    0x1b0c(%rip),%rdi
mov    %rbx,%rsi
xor    %eax,%eax
call   1060 <printf@plt>
mov    %r14,%rdi
lea    0x1aea(%rip),%rsi
call   10a0 <my_strsep@plt>
test   %rax,%rax
je     15de <main+0x41e>
mov    %rax,%rbx
mov    %rax,%rdi
lea    0x1f44(%rip),%rsi
call   1080 <strcmp@plt>
test   %rax,%rax
je     15de <main+0x41e>
lea    0x1add(%rip),%rdi
mov    %rbx,%rsi
xor    %eax,%eax
call   1060 <printf@plt>
mov    %r14,%rdi
lea    0x1aae(%rip),%rsi
call   10a0 <my_strsep@plt>
test   %rax,%rax
je     161a <main+0x45a>
mov    %rax,%rbx
mov    %rax,%rdi
lea    0x1f08(%rip),%rsi
call   1080 <strcmp@plt>
test   %rax,%rax
je     161a <main+0x45a>
lea    0x1aae(%rip),%rdi
mov    %rbx,%rsi
xor    %eax,%eax
call   1060 <printf@plt>
mov    %r14,%rdi
lea    0x1a72(%rip),%rsi
call   10a0 <my_strsep@plt>
test   %rax,%rax
je     1656 <main+0x496>
mov    %rax,%rbx
mov    %rax,%rdi
lea    0x1ecc(%rip),%rsi
call   1080 <strcmp@plt>
test   %rax,%rax
je     1656 <main+0x496>
lea    0x1a80(%rip),%rdi
mov    %rbx,%rsi
xor    %eax,%eax
call   1060 <printf@plt>
mov    %r14,%rdi
lea    0x1a36(%rip),%rsi
call   10a0 <my_strsep@plt>
test   %rax,%rax
je     1692 <main+0x4d2>
mov    %rax,%rbx
mov    %rax,%rdi
lea    0x1e90(%rip),%rsi
call   1080 <strcmp@plt>
test   %rax,%rax
je     1692 <main+0x4d2>
lea    0x1a53(%rip),%rdi
mov    %rbx,%rsi
xor    %eax,%eax
call   1060 <printf@plt>
mov    %r14,%rdi
lea    0x19fa(%rip),%rsi
call   10a0 <my_strsep@plt>
test   %rax,%rax
je     16ce <main+0x50e>
mov    %rax,%rbx
mov    %rax,%rdi
lea    0x1e54(%rip),%rsi
call   1080 <strcmp@plt>
test   %rax,%rax
je     16ce <main+0x50e>
lea    0x1a25(%rip),%rdi
mov    %rbx,%rsi
xor    %eax,%eax
call   1060 <printf@plt>
mov    %r14,%rdi
lea    0x1a1e(%rip),%rsi
call   10a0 <my_strsep@plt>
test   %rax,%rax
je     170a <main+0x54a>
mov    %rax,%rbx
mov    %rax,%rdi
lea    0x1e18(%rip),%rsi
call   1080 <strcmp@plt>
test   %rax,%rax
je     170a <main+0x54a>
lea    0x19fa(%rip),%rdi
mov    %rbx,%rsi
xor    %eax,%eax
call   1060 <printf@plt>
lea    0x2918(%rip),%rdi
call   1040 <puts@plt>
mov    %r13,%rdi
lea    0x19e8(%rip),%rsi
call   10e0 <strstr@plt>
test   %rax,%rax
je     17be <main+0x5fe>
mov    0x10(%r12),%rdi
lea    0x2984(%rip),%rsi
call   1080 <strcmp@plt>
test   %rax,%rax
jne    17be <main+0x5fe>
mov    %r13,%rdi
lea    0x19c1(%rip),%rsi
call   10c0 <strtok@plt>
xor    %edi,%edi
lea    0x1905(%rip),%rsi
call   10c0 <strtok@plt>
mov    %rax,%rbx
lea    0x19a6(%rip),%rdi
mov    %rax,%rsi
xor    %eax,%eax
call   1060 <printf@plt>
lea    0x288a(%rip),%rdi
call   1040 <puts@plt>
lea    0x19a4(%rip),%rdi
mov    %rbx,%rsi
xor    %eax,%eax
call   1060 <printf@plt>
xor    %edi,%edi
lea    0x2891(%rip),%rsi
call   10c0 <strtok@plt>
lea    0x1(%rax),%rsi
lea    0x1993(%rip),%rdi
xor    %eax,%eax
call   1060 <printf@plt>
lea    0x2870(%rip),%rdi
call   1040 <puts@plt>
mov    %r13,%rdi
lea    0x1988(%rip),%rsi
call   10e0 <strstr@plt>
test   %rax,%rax
je     1b8b <main+0x9cb>
mov    0x10(%r12),%rdi
lea    0x28e6(%rip),%rsi
call   1080 <strcmp@plt>
test   %rax,%rax
jne    1b8b <main+0x9cb>
mov    %r13,(%rsp)
mov    %r14,%rdi
lea    0x1911(%rip),%rsi
call   10a0 <my_strsep@plt>
mov    %r14,%rdi
lea    0x1854(%rip),%rsi
call   10a0 <my_strsep@plt>
mov    %rax,%rbx
lea    0x193d(%rip),%rdi
mov    %rax,%rsi
xor    %eax,%eax
call   1060 <printf@plt>
lea    0x27c9(%rip),%rdi
call   1040 <puts@plt>
lea    0x193b(%rip),%rdi
mov    %rbx,%rsi
xor    %eax,%eax
call   1060 <printf@plt>
mov    %r14,%rdi
lea    0x1849(%rip),%rbx
mov    %rbx,%rsi
call   10a0 <my_strsep@plt>
lea    0x1(%rax),%rsi
lea    0x1928(%rip),%rdi
xor    %eax,%eax
call   1060 <printf@plt>
mov    %r14,%rdi
mov    %rbx,%rsi
call   10a0 <my_strsep@plt>
test   %rax,%rax
lea    0x1c8b(%rip),%rbp
je     18a2 <main+0x6e2>
mov    %rax,%rbx
mov    %rax,%rdi
mov    %rbp,%rsi
call   1080 <strcmp@plt>
test   %rax,%rax
je     18a2 <main+0x6e2>
lea    0x18fe(%rip),%rdi
mov    %rbx,%rsi
xor    %eax,%eax
call   1060 <printf@plt>
mov    %r14,%rdi
lea    0x17ea(%rip),%rsi
call   10a0 <my_strsep@plt>
test   %rax,%rax
je     18da <main+0x71a>
mov    %rax,%rbx
mov    %rax,%rdi
mov    %rbp,%rsi
call   1080 <strcmp@plt>
test   %rax,%rax
je     18da <main+0x71a>
lea    0x18e7(%rip),%rdi
mov    %rbx,%rsi
xor    %eax,%eax
call   1060 <printf@plt>
mov    %r14,%rdi
lea    0x17b2(%rip),%r15
mov    %r15,%rsi
call   10a0 <my_strsep@plt>
mov    %rax,%rdi
call   10d0 <atoi@plt>
mov    %eax,%r12d
mov    %r14,%rdi
mov    %r15,%rsi
call   10a0 <my_strsep@plt>
mov    %rax,%rdi
call   10d0 <atoi@plt>
mov    %eax,%ebx
mov    %r14,%rdi
mov    %r15,%rsi
call   10a0 <my_strsep@plt>
mov    %rax,%rdi
call   10d0 <atoi@plt>
mov    %eax,%ebp
lea    0x18ad(%rip),%rdi
xor    %eax,%eax
call   1060 <printf@plt>
cmp    $0x1,%r12d
je     1944 <main+0x784>
cmp    $0x1,%ebx
je     1944 <main+0x784>
mov    $0x6e,%edi
cmp    $0x1,%ebp
jne    1999 <main+0x7d9>
cmp    $0x1,%ebp
jne    1968 <main+0x7a8>
lea    0x18a4(%rip),%rdi
xor    %eax,%eax
call   1060 <printf@plt>
cmp    $0x1,%ebx
jne    1977 <main+0x7b7>
mov    $0x2c,%edi
call   1030 <putchar@plt>
jmp    196d <main+0x7ad>
cmp    $0x1,%ebx
jne    198e <main+0x7ce>
mov    $0x63,%edi
call   1030 <putchar@plt>
cmp    $0x1,%r12d
jne    199e <main+0x7de>
mov    $0x2c,%edi
call   1030 <putchar@plt>
mov    $0x72,%edi
jmp    1999 <main+0x7d9>
mov    $0x72,%edi
cmp    $0x1,%r12d
jne    199e <main+0x7de>
call   1030 <putchar@plt>
mov    $0xa,%edi
call   1030 <putchar@plt>
mov    %rsp,%rbp
mov    %rbp,%rdi
lea    0x16e1(%rip),%rbx
mov    %rbx,%rsi
call   10a0 <my_strsep@plt>
mov    %rax,%rdi
call   10d0 <atoi@plt>
mov    %eax,%r12d
mov    %rbp,%rdi
mov    %rbx,%rsi
call   10a0 <my_strsep@plt>
mov    %rax,%rdi
call   10d0 <atoi@plt>
mov    %eax,%r15d
mov    %rbp,%rdi
mov    %rbx,%rsi
call   10a0 <my_strsep@plt>
mov    %rax,%rdi
call   10d0 <atoi@plt>
mov    %eax,%ebp
lea    0x1800(%rip),%rdi
xor    %eax,%eax
call   1060 <printf@plt>
cmp    $0x1,%r12d
je     1a17 <main+0x857>
cmp    $0x1,%r15d
je     1a17 <main+0x857>
mov    $0x6e,%edi
cmp    $0x1,%ebp
jne    1a69 <main+0x8a9>
cmp    $0x1,%r15d
jne    1a38 <main+0x878>
mov    $0x64,%edi
call   1030 <putchar@plt>
cmp    $0x1,%ebp
jne    1a47 <main+0x887>
mov    $0x2c,%edi
call   1030 <putchar@plt>
jmp    1a3d <main+0x87d>
cmp    $0x1,%ebp
jne    1a5e <main+0x89e>
mov    $0x75,%edi
call   1030 <putchar@plt>
cmp    $0x1,%r12d
jne    1a6e <main+0x8ae>
mov    $0x2c,%edi
call   1030 <putchar@plt>
mov    $0x72,%edi
jmp    1a69 <main+0x8a9>
mov    $0x72,%edi
cmp    $0x1,%r12d
jne    1a6e <main+0x8ae>
call   1030 <putchar@plt>
mov    $0xa,%edi
call   1030 <putchar@plt>
mov    %rsp,%r14
mov    %r14,%rdi
lea    0x1611(%rip),%rsi
call   10a0 <my_strsep@plt>
test   %rax,%rax
je     1ab7 <main+0x8f7>
mov    %rax,%rbx
mov    %rax,%rdi
lea    0x1a6b(%rip),%rsi
call   1080 <strcmp@plt>
test   %rax,%rax
je     1ab7 <main+0x8f7>
lea    0x1769(%rip),%rdi
mov    %rbx,%rsi
xor    %eax,%eax
call   1060 <printf@plt>
mov    %r14,%rdi
lea    0x15d5(%rip),%rsi
call   10a0 <my_strsep@plt>
test   %rax,%rax
mov    0x18(%rsp),%r15
lea    0x1a32(%rip),%rsi
je     1af8 <main+0x938>
mov    %rax,%rbx
mov    %rax,%rdi
call   1080 <strcmp@plt>
test   %rax,%rax
je     1af8 <main+0x938>
lea    0x174b(%rip),%rdi
mov    %rbx,%rsi
xor    %eax,%eax
call   1060 <printf@plt>
mov    %r14,%rdi
lea    0x1594(%rip),%rsi
call   10a0 <my_strsep@plt>
test   %rax,%rax
mov    0x10(%rsp),%r12
movabs $0x800002401,%rbp
je     1b43 <main+0x983>
mov    %rax,%rbx
mov    %rax,%rdi
lea    0x19df(%rip),%rsi
call   1080 <strcmp@plt>
test   %rax,%rax
je     1b43 <main+0x983>
lea    0x1720(%rip),%rdi
mov    %rbx,%rsi
xor    %eax,%eax
call   1060 <printf@plt>
mov    %r14,%rdi
lea    0x15a9(%rip),%rsi
call   10a0 <my_strsep@plt>
test   %rax,%rax
je     1b7f <main+0x9bf>
mov    %rax,%rbx
mov    %rax,%rdi
lea    0x19a3(%rip),%rsi
call   1080 <strcmp@plt>
test   %rax,%rax
je     1b7f <main+0x9bf>
lea    0x16f2(%rip),%rdi
mov    %rbx,%rsi
xor    %eax,%eax
call   1060 <printf@plt>
lea    0x24a3(%rip),%rdi
call   1040 <puts@plt>
mov    %r13,%rdi
lea    0x16e0(%rip),%rsi
call   10e0 <strstr@plt>
test   %rax,%rax
je     1c56 <main+0xa96>
mov    0x10(%r12),%rdi
lea    0x2523(%rip),%rsi
call   1080 <strcmp@plt>
test   %rax,%rax
jne    1c56 <main+0xa96>
mov    %r13,%rdi
lea    0x1548(%rip),%rsi
call   10c0 <strtok@plt>
xor    %edi,%edi
lea    0x148c(%rip),%rsi
call   10c0 <strtok@plt>
mov    %rax,%rbx
lea    0x169f(%rip),%rdi
mov    %rax,%rsi
xor    %eax,%eax
call   1060 <printf@plt>
lea    0x23ec(%rip),%rdi
call   1040 <puts@plt>
lea    0x16a3(%rip),%rdi
mov    %rbx,%rsi
xor    %eax,%eax
call   1060 <printf@plt>
xor    %edi,%edi
lea    0x1482(%rip),%rsi
call   10c0 <strtok@plt>
lea    0x1(%rax),%rsi
lea    0x1697(%rip),%rdi
xor    %eax,%eax
call   1060 <printf@plt>
xor    %edi,%edi
lea    0x23f8(%rip),%rsi
call   10c0 <strtok@plt>
lea    0x1688(%rip),%rdi
mov    %rax,%rsi
xor    %eax,%eax
call   1060 <printf@plt>
lea    0x23d8(%rip),%rdi
call   1040 <puts@plt>
mov    %r13,%rdi
lea    0x1677(%rip),%rsi
call   10e0 <strstr@plt>
test   %rax,%rax
je     1ff8 <main+0xe38>
mov    0x10(%r12),%rdi
lea    0x2467(%rip),%rsi
call   1080 <strcmp@plt>
test   %rax,%rax
jne    1ff8 <main+0xe38>
cmpl   $0x0,0xc(%rsp)
jne    1d39 <main+0xb79>
lea    0x2030(%rip),%rdi
call   1040 <puts@plt>
lea    0x2047(%rip),%rdi
call   1040 <puts@plt>
lea    0x2048(%rip),%rdi
call   1040 <puts@plt>
lea    0x20c2(%rip),%rdi
call   1040 <puts@plt>
lea    0x20f1(%rip),%rdi
call   1040 <puts@plt>
lea    0x212b(%rip),%rdi
call   1040 <puts@plt>
lea    0x215a(%rip),%rdi
call   1040 <puts@plt>
lea    0x2188(%rip),%rdi
call   1040 <puts@plt>
lea    0x21b3(%rip),%rdi
call   1040 <puts@plt>
lea    0x21d8(%rip),%rdi
call   1040 <puts@plt>
lea    0x221d(%rip),%rdi
call   1040 <puts@plt>
mov    $0xa,%edi
call   1030 <putchar@plt>
lea    0x225f(%rip),%rdi
call   1040 <puts@plt>
lea    0x22a9(%rip),%rdi
call   1040 <puts@plt>
mov    %r13,(%rsp)
mov    %r14,%rdi
lea    0x13c8(%rip),%rsi
call   10a0 <my_strsep@plt>
mov    %r14,%rdi
lea    0x130b(%rip),%rsi
call   10a0 <my_strsep@plt>
mov    %rax,%rbx
lea    0x1578(%rip),%rdi
mov    %rax,%rsi
xor    %eax,%eax
call   1060 <printf@plt>
lea    0x1f77(%rip),%rdi
call   1040 <puts@plt>
lea    0x1f13(%rip),%rdi
call   1040 <puts@plt>
lea    0x1567(%rip),%rdi
mov    %rbx,%rsi
xor    %eax,%eax
call   1060 <printf@plt>
mov    %r14,%rdi
lea    0x12f4(%rip),%rbx
mov    %rbx,%rsi
call   10a0 <my_strsep@plt>
lea    0x1(%rax),%rsi
lea    0x1506(%rip),%rdi
xor    %eax,%eax
call   1060 <printf@plt>
mov    %r14,%rdi
mov    %rbx,%rsi
call   10a0 <my_strsep@plt>
lea    0x1537(%rip),%rdi
mov    %rax,%rsi
xor    %eax,%eax
call   1060 <printf@plt>
mov    %r14,%rdi
mov    %rbx,%rsi
call   10a0 <my_strsep@plt>
test   %rax,%rax
lea    0x171a(%rip),%rbp
je     1e13 <main+0xc53>
mov    %rax,%rbx
mov    %rax,%rdi
mov    %rbp,%rsi
call   1080 <strcmp@plt>
test   %rax,%rax
je     1e13 <main+0xc53>
lea    0x150b(%rip),%rdi
mov    %rbx,%rsi
xor    %eax,%eax
call   1060 <printf@plt>
mov    %r14,%rdi
lea    0x1279(%rip),%rsi
call   10a0 <my_strsep@plt>
test   %rax,%rax
je     1e4b <main+0xc8b>
mov    %rax,%rbx
mov    %rax,%rdi
mov    %rbp,%rsi
call   1080 <strcmp@plt>
test   %rax,%rax
je     1e4b <main+0xc8b>
lea    0x14e2(%rip),%rdi
mov    %rbx,%rsi
xor    %eax,%eax
call   1060 <printf@plt>
mov    %r14,%rdi
lea    0x1241(%rip),%rbx
mov    %rbx,%rsi
call   10a0 <my_strsep@plt>
mov    %rax,%rdi
call   10d0 <atoi@plt>
lea    0x14cb(%rip),%rdi
mov    %eax,%esi
xor    %eax,%eax
call   1060 <printf@plt>
mov    %r14,%rdi
mov    %rbx,%rsi
call   10a0 <my_strsep@plt>
mov    %rax,%rdi
call   10d0 <atoi@plt>
lea    0x14c0(%rip),%rdi
mov    %eax,%esi
xor    %eax,%eax
call   1060 <printf@plt>
mov    %r14,%rdi
mov    %rbx,%rsi
call   10a0 <my_strsep@plt>
test   %rax,%rax
je     1ecc <main+0xd0c>
mov    %rax,%rbx
mov    %rax,%rdi
mov    %rbp,%rsi
call   1080 <strcmp@plt>
test   %rax,%rax
je     1ecc <main+0xd0c>
lea    0x14a8(%rip),%rdi
mov    %rbx,%rsi
xor    %eax,%eax
call   1060 <printf@plt>
mov    %r14,%rdi
lea    0x11c0(%rip),%rbp
mov    %rbp,%rsi
call   10a0 <my_strsep@plt>
mov    %rax,%rdi
call   10d0 <atoi@plt>
mov    %eax,%r12d
mov    %r14,%rdi
mov    %rbp,%rsi
call   10a0 <my_strsep@plt>
mov    %rax,%rdi
call   10d0 <atoi@plt>
mov    %eax,%ebx
mov    %r14,%rdi
mov    %rbp,%rsi
call   10a0 <my_strsep@plt>
mov    %rax,%rdi
call   10d0 <atoi@plt>
mov    %eax,%ebp
lea    0x1469(%rip),%rdi
xor    %eax,%eax
call   1060 <printf@plt>
cmp    $0x1,%r12d
je     1f36 <main+0xd76>
cmp    $0x1,%ebx
je     1f36 <main+0xd76>
mov    $0x6e,%edi
cmp    $0x1,%ebp
jne    1f87 <main+0xdc7>
cmp    $0x1,%ebx
jne    1f56 <main+0xd96>
mov    $0x64,%edi
call   1030 <putchar@plt>
cmp    $0x1,%ebp
jne    1f65 <main+0xda5>
mov    $0x2c,%edi
call   1030 <putchar@plt>
jmp    1f5b <main+0xd9b>
cmp    $0x1,%ebp
jne    1f7c <main+0xdbc>
mov    $0x75,%edi
call   1030 <putchar@plt>
cmp    $0x1,%r12d
jne    1f8c <main+0xdcc>
mov    $0x2c,%edi
call   1030 <putchar@plt>
mov    $0x72,%edi
jmp    1f87 <main+0xdc7>
mov    $0x72,%edi
cmp    $0x1,%r12d
jne    1f8c <main+0xdcc>
call   1030 <putchar@plt>
mov    $0xa,%edi
call   1030 <putchar@plt>
mov    %rsp,%r14
mov    %r14,%rdi
lea    0x1153(%rip),%rsi
call   10a0 <my_strsep@plt>
test   %rax,%rax
lea    0x1555(%rip),%rsi
je     1fd5 <main+0xe15>
mov    %rax,%rbx
mov    %rax,%rdi
call   1080 <strcmp@plt>
test   %rax,%rax
je     1fd5 <main+0xe15>
lea    0x13cf(%rip),%rdi
mov    %rbx,%rsi
xor    %eax,%eax
call   1060 <printf@plt>
lea    0x204d(%rip),%rdi
call   1040 <puts@plt>
movl   $0x1,0xc(%rsp)
mov    0x10(%rsp),%r12
movabs $0x800002401,%rbp
mov    %r13,%rdi
lea    0x13ac(%rip),%rsi
call   10e0 <strstr@plt>
test   %rax,%rax
je     20d0 <main+0xf10>
mov    0x10(%r12),%rdi
lea    0x20cc(%rip),%rsi
call   1080 <strcmp@plt>
test   %rax,%rax
jne    20d0 <main+0xf10>
mov    %r13,%rdi
lea    0x10db(%rip),%rsi
call   10c0 <strtok@plt>
xor    %edi,%edi
lea    0x101f(%rip),%rsi
call   10c0 <strtok@plt>
mov    %rax,%rbx
lea    0x1368(%rip),%rdi
mov    %rax,%rsi
xor    %eax,%eax
call   1060 <printf@plt>
lea    0x1c21(%rip),%rdi
call   1040 <puts@plt>
lea    0x1369(%rip),%rdi
mov    %rbx,%rsi
xor    %eax,%eax
call   1060 <printf@plt>
xor    %edi,%edi
lea    0x1015(%rip),%rbx
mov    %rbx,%rsi
call   10c0 <strtok@plt>
lea    0x1(%rax),%rsi
lea    0x1004(%rip),%rdi
xor    %eax,%eax
call   1060 <printf@plt>
xor    %edi,%edi
mov    %rbx,%rsi
call   10c0 <strtok@plt>
xor    %edi,%edi
lea    0x1f7e(%rip),%rsi
call   10c0 <strtok@plt>
lea    0x1331(%rip),%rdi
mov    %rax,%rsi
xor    %eax,%eax
call   1060 <printf@plt>
lea    0x1f5e(%rip),%rdi
call   1040 <puts@plt>
mov    %r13,%rdi
lea    0x131f(%rip),%rsi
call   10e0 <strstr@plt>
test   %rax,%rax
je     2502 <main+0x1342>
mov    0x10(%r12),%rdi
lea    0x2017(%rip),%rsi
call   1080 <strcmp@plt>
test   %rax,%rax
jne    2502 <main+0x1342>
cmpl   $0x0,0xc(%rsp)
jne    21d7 <main+0x1017>
lea    0x186a(%rip),%rdi
call   1040 <puts@plt>
lea    0x1884(%rip),%rdi
call   1040 <puts@plt>
lea    0x1888(%rip),%rdi
call   1040 <puts@plt>
lea    0x18e4(%rip),%rdi
call   1040 <puts@plt>
lea    0x1916(%rip),%rdi
call   1040 <puts@plt>
lea    0x1953(%rip),%rdi
call   1040 <puts@plt>
lea    0x19c4(%rip),%rdi
call   1040 <puts@plt>
lea    0x1a04(%rip),%rdi
call   1040 <puts@plt>
lea    0x1a3b(%rip),%rdi
call   1040 <puts@plt>
lea    0x1a6d(%rip),%rdi
call   1040 <puts@plt>
lea    0x1cea(%rip),%rdi
call   1040 <puts@plt>
lea    0x1d15(%rip),%rdi
call   1040 <puts@plt>
lea    0x1d3a(%rip),%rdi
call   1040 <puts@plt>
lea    0x1d7f(%rip),%rdi
call   1040 <puts@plt>
mov    $0xa,%edi
call   1030 <putchar@plt>
lea    0x1a64(%rip),%rdi
call   1040 <puts@plt>
lea    0x1e0b(%rip),%rdi
call   1040 <puts@plt>
mov    %r13,(%rsp)
mov    %r14,%rdi
lea    0xf2a(%rip),%rsi
call   10a0 <my_strsep@plt>
mov    %r14,%rdi
lea    0xe6d(%rip),%rsi
call   10a0 <my_strsep@plt>
mov    %rax,%rbx
lea    0x172a(%rip),%rdi
call   1040 <puts@plt>
lea    0x1795(%rip),%rdi
call   1040 <puts@plt>
lea    0x1727(%rip),%rdi
call   1040 <puts@plt>
lea    0x11db(%rip),%rdi
mov    %rbx,%rsi
xor    %eax,%eax
call   1060 <printf@plt>
mov    %r14,%rdi
lea    0xe5b(%rip),%rbx
mov    %rbx,%rsi
call   10a0 <my_strsep@plt>
lea    0x1(%rax),%rsi
lea    0x11c5(%rip),%rdi
xor    %eax,%eax
call   1060 <printf@plt>
mov    %r14,%rdi
mov    %rbx,%rsi
call   10a0 <my_strsep@plt>
mov    %rax,%rdi
call   10d0 <atoi@plt>
lea    0x11be(%rip),%rdi
mov    %eax,%esi
xor    %eax,%eax
call   1060 <printf@plt>
mov    %r14,%rdi
mov    %rbx,%rsi
call   10a0 <my_strsep@plt>
lea    0x11b6(%rip),%rdi
mov    %rax,%rsi
xor    %eax,%eax
call   1060 <printf@plt>
mov    %r14,%rdi
mov    %rbx,%rsi
call   10a0 <my_strsep@plt>
mov    %rax,%rdi
call   10d0 <atoi@plt>
lea    0x11a6(%rip),%rdi
mov    %eax,%esi
xor    %eax,%eax
call   1060 <printf@plt>
mov    %r14,%rdi
mov    %rbx,%rsi
call   10a0 <my_strsep@plt>
mov    %rax,%rdi
call   10d0 <atoi@plt>
lea    0x119c(%rip),%rdi
mov    %eax,%esi
xor    %eax,%eax
call   1060 <printf@plt>
mov    %r14,%rdi
mov    %rbx,%rsi
call   10a0 <my_strsep@plt>
mov    %rax,%rdi
call   10d0 <atoi@plt>
lea    0x1195(%rip),%rdi
mov    %eax,%esi
xor    %eax,%eax
call   1060 <printf@plt>
mov    %r14,%rdi
mov    %rbx,%rsi
call   10a0 <my_strsep@plt>
test   %rax,%rax
lea    0x11f5(%rip),%rbp
je     2338 <main+0x1178>
mov    %rax,%rbx
mov    %rax,%rdi
mov    %rbp,%rsi
call   1080 <strcmp@plt>
test   %rax,%rax
je     2338 <main+0x1178>
lea    0x1176(%rip),%rdi
mov    %rbx,%rsi
xor    %eax,%eax
call   1060 <printf@plt>
mov    %r14,%rdi
lea    0xd54(%rip),%rbx
mov    %rbx,%rsi
call   10a0 <my_strsep@plt>
mov    %rax,%rdi
call   10d0 <atoi@plt>
lea    0x1161(%rip),%rdi
mov    %eax,%esi
xor    %eax,%eax
call   1060 <printf@plt>
mov    %r14,%rdi
mov    %rbx,%rsi
call   10a0 <my_strsep@plt>
test   %rax,%rax
je     2396 <main+0x11d6>
mov    %rax,%rbx
mov    %rax,%rdi
mov    %rbp,%rsi
call   1080 <strcmp@plt>
test   %rax,%rax
je     2396 <main+0x11d6>
lea    0x114a(%rip),%rdi
mov    %rbx,%rsi
xor    %eax,%eax
call   1060 <printf@plt>
mov    %r14,%rdi
lea    0xcf6(%rip),%rbp
mov    %rbp,%rsi
call   10a0 <my_strsep@plt>
mov    %rax,%rdi
call   10d0 <atoi@plt>
mov    %eax,%r12d
mov    %r14,%rdi
mov    %rbp,%rsi
call   10a0 <my_strsep@plt>
mov    %rax,%rdi
call   10d0 <atoi@plt>
mov    %eax,%ebx
mov    %r14,%rdi
mov    %rbp,%rsi
call   10a0 <my_strsep@plt>
mov    %rax,%rdi
call   10d0 <atoi@plt>
mov    %eax,%ebp
lea    0x110c(%rip),%rdi
xor    %eax,%eax
call   1060 <printf@plt>
cmp    $0x1,%r12d
je     2400 <main+0x1240>
cmp    $0x1,%ebx
je     2400 <main+0x1240>
mov    $0x6e,%edi
cmp    $0x1,%ebp
jne    2455 <main+0x1295>
cmp    $0x1,%ebp
jne    2424 <main+0x1264>
lea    0xde8(%rip),%rdi
xor    %eax,%eax
call   1060 <printf@plt>
cmp    $0x1,%ebx
jne    2433 <main+0x1273>
mov    $0x2c,%edi
call   1030 <putchar@plt>
jmp    2429 <main+0x1269>
cmp    $0x1,%ebx
jne    244a <main+0x128a>
mov    $0x63,%edi
call   1030 <putchar@plt>
cmp    $0x1,%r12d
jne    245a <main+0x129a>
mov    $0x2c,%edi
call   1030 <putchar@plt>
mov    $0x72,%edi
jmp    2455 <main+0x1295>
mov    $0x72,%edi
cmp    $0x1,%r12d
jne    245a <main+0x129a>
call   1030 <putchar@plt>
mov    $0xa,%edi
call   1030 <putchar@plt>
mov    %rsp,%r14
mov    %r14,%rdi
lea    0xc25(%rip),%rsi
call   10a0 <my_strsep@plt>
test   %rax,%rax
je     24a3 <main+0x12e3>
mov    %rax,%rbx
mov    %rax,%rdi
lea    0x107f(%rip),%rsi
call   1080 <strcmp@plt>
test   %rax,%rax
je     24a3 <main+0x12e3>
lea    0xf01(%rip),%rdi
mov    %rbx,%rsi
xor    %eax,%eax
call   1060 <printf@plt>
mov    %r14,%rdi
lea    0xc49(%rip),%rsi
call   10a0 <my_strsep@plt>
test   %rax,%rax
lea    0x104b(%rip),%rsi
je     24df <main+0x131f>
mov    %rax,%rbx
mov    %rax,%rdi
call   1080 <strcmp@plt>
test   %rax,%rax
je     24df <main+0x131f>
lea    0x1033(%rip),%rdi
mov    %rbx,%rsi
xor    %eax,%eax
call   1060 <printf@plt>
lea    0x1b43(%rip),%rdi
call   1040 <puts@plt>
movl   $0x1,0xc(%rsp)
mov    0x10(%rsp),%r12
movabs $0x800002401,%rbp
mov    %r13,%rdi
lea    0x1011(%rip),%rsi
call   10e0 <strstr@plt>
test   %rax,%rax
je     2628 <main+0x1468>
mov    0x10(%r12),%rdi
lea    0x100c(%rip),%rsi
call   1080 <strcmp@plt>
test   %rax,%rax
jne    2628 <main+0x1468>
mov    %r13,(%rsp)
mov    %r14,%rdi
lea    0xbcd(%rip),%rsi
call   10a0 <my_strsep@plt>
mov    %r14,%rdi
lea    0xb10(%rip),%rsi
call   10a0 <my_strsep@plt>
mov    %rax,%rbx
lea    0xfe7(%rip),%rdi
mov    %rax,%rsi
xor    %eax,%eax
call   1060 <printf@plt>
lea    0x13a0(%rip),%rdi
call   1040 <puts@plt>
lea    0xff2(%rip),%rdi
mov    %rbx,%rsi
xor    %eax,%eax
call   1060 <printf@plt>
mov    %r14,%rdi
lea    0xff3(%rip),%rsi
call   10a0 <my_strsep@plt>
lea    0x1(%rax),%rdi
call   10d0 <atoi@plt>
lea    0xfe0(%rip),%rdi
mov    %eax,%esi
xor    %eax,%eax
call   1060 <printf@plt>
mov    %r14,%rdi
lea    0xadd(%rip),%rbx
mov    %rbx,%rsi
call   10a0 <my_strsep@plt>
mov    %rax,%rdi
call   10d0 <atoi@plt>
lea    0xfcf(%rip),%rdi
mov    %eax,%esi
xor    %eax,%eax
call   1060 <printf@plt>
mov    %r14,%rdi
mov    %rbx,%rsi
call   10a0 <my_strsep@plt>
lea    0xeb9(%rip),%rdi
mov    %rax,%rsi
xor    %eax,%eax
call   1060 <printf@plt>
mov    %r14,%rdi
lea    0xaf7(%rip),%rsi
call   10a0 <my_strsep@plt>
mov    %rax,%rdi
call   10d0 <atoi@plt>
lea    0xea7(%rip),%rdi
mov    %eax,%esi
xor    %eax,%eax
call   1060 <printf@plt>
lea    0x1a06(%rip),%rdi
call   1040 <puts@plt>
mov    %r13,%rdi
lea    0xf85(%rip),%rsi
call   10e0 <strstr@plt>
test   %rax,%rax
je     277a <main+0x15ba>
mov    0x10(%r12),%rdi
lea    0x1ade(%rip),%rsi
call   1080 <strcmp@plt>
test   %rax,%rax
jne    277a <main+0x15ba>
lea    0x1277(%rip),%rdi
call   1040 <puts@plt>
lea    0x128a(%rip),%rdi
call   1040 <puts@plt>
mov    %r13,(%rsp)
mov    %r14,%rdi
lea    0xa8f(%rip),%rsi
call   10a0 <my_strsep@plt>
mov    %r14,%rdi
lea    0xa07(%rip),%r12
mov    %r12,%rsi
call   10a0 <my_strsep@plt>
mov    %rax,%rbx
mov    %r14,%rdi
lea    0x9bd(%rip),%rsi
call   10a0 <my_strsep@plt>
mov    %rax,%rbp
lea    0xc42(%rip),%rdi
mov    %rbx,%rsi
xor    %eax,%eax
call   1060 <printf@plt>
lea    0xd4f(%rip),%rdi
mov    %rbp,%rsi
mov    %rsp,%r14
movabs $0x800002401,%rbp
xor    %eax,%eax
call   1060 <printf@plt>
mov    %r14,%rdi
lea    0xe9f(%rip),%rsi
call   10a0 <my_strsep@plt>
lea    0x1(%rax),%rdi
call   10d0 <atoi@plt>
lea    0xe8c(%rip),%rdi
mov    %eax,%esi
xor    %eax,%eax
call   1060 <printf@plt>
mov    %r14,%rdi
mov    %r12,%rsi
call   10a0 <my_strsep@plt>
mov    %rax,%rdi
call   10d0 <atoi@plt>
lea    0xe82(%rip),%rdi
mov    %eax,%esi
xor    %eax,%eax
call   1060 <printf@plt>
mov    %r14,%rdi
mov    %r12,%rsi
mov    0x10(%rsp),%r12
call   10a0 <my_strsep@plt>
lea    0xd67(%rip),%rdi
mov    %rax,%rsi
xor    %eax,%eax
call   1060 <printf@plt>
mov    %r14,%rdi
lea    0x9a5(%rip),%rsi
call   10a0 <my_strsep@plt>
mov    %rax,%rdi
call   10d0 <atoi@plt>
lea    0xd55(%rip),%rdi
mov    %eax,%esi
xor    %eax,%eax
call   1060 <printf@plt>
lea    0x18b4(%rip),%rdi
call   1040 <puts@plt>
mov    %r13,%rdi
lea    0xe46(%rip),%rsi
call   10e0 <strstr@plt>
test   %rax,%rax
je     2997 <main+0x17d7>
mov    0x10(%r12),%rdi
lea    0x1977(%rip),%rsi
call   1080 <strcmp@plt>
test   %rax,%rax
jne    2997 <main+0x17d7>
mov    %r13,(%rsp)
mov    %r14,%rdi
lea    0x955(%rip),%rsi
call   10a0 <my_strsep@plt>
mov    %r14,%rdi
lea    0x8cd(%rip),%rbp
mov    %rbp,%rsi
call   10a0 <my_strsep@plt>
mov    %rax,%rbx
mov    %r14,%rdi
lea    0x883(%rip),%rsi
call   10a0 <my_strsep@plt>
mov    %rax,%r12
mov    %r14,%rdi
mov    %rbp,%rsi
call   10a0 <my_strsep@plt>
lea    0x1(%rax),%r15
mov    %r14,%rdi
mov    %rbp,%rsi
call   10a0 <my_strsep@plt>
mov    %rax,%r13
mov    %r14,%rdi
mov    %rbp,%rsi
call   10a0 <my_strsep@plt>
mov    %rax,%rbp
lea    0xffb(%rip),%rdi
call   1040 <puts@plt>
lea    0x100e(%rip),%rdi
call   1040 <puts@plt>
lea    0xbd2(%rip),%rdi
mov    %r15,%rsi
xor    %eax,%eax
call   1060 <printf@plt>
lea    0xbd2(%rip),%rdi
mov    %r13,%rsi
xor    %eax,%eax
call   1060 <printf@plt>
lea    0xd8b(%rip),%rdi
mov    %rbx,%rsi
xor    %eax,%eax
call   1060 <printf@plt>
lea    0xd94(%rip),%rdi
mov    %r12,%rsi
xor    %eax,%eax
call   1060 <printf@plt>
lea    0xda6(%rip),%rdi
xor    %eax,%eax
call   1060 <printf@plt>
mov    0x0(%rbp),%r15b
test   %r15b,%r15b
je     28c9 <main+0x1709>
xor    %ebx,%ebx
mov    %r15d,%eax
lea    0xc77(%rip),%r14
lea    0x961(%rip),%r12
lea    0xd99(%rip),%r13
xchg   %ax,%ax
movsbl %al,%edx
test   %rbx,%rbx
mov    %r12,%rsi
cmove  %r14,%rsi
mov    %r13,%rdi
xor    %eax,%eax
call   1060 <printf@plt>
movzbl 0x1(%rbp,%rbx,1),%eax
add    $0x1,%rbx
test   %al,%al
jne    28a0 <main+0x16e0>
test   %r15b,%r15b
jne    28d3 <main+0x1713>
mov    $0x6e,%edi
call   1030 <putchar@plt>
lea    0xf72(%rip),%rdi
call   1040 <puts@plt>
mov    %rsp,%r14
mov    %r14,%rdi
lea    0x80a(%rip),%rsi
call   10a0 <my_strsep@plt>
mov    %rax,%rbx
lea    0xd41(%rip),%rdi
xor    %eax,%eax
call   1060 <printf@plt>
mov    (%rbx),%r15b
test   %r15b,%r15b
lea    0x20(%rsp),%r13
je     2961 <main+0x17a1>
xor    %ebp,%ebp
mov    %r15d,%eax
lea    0x8dd(%rip),%r14
lea    0xd15(%rip),%r12
lea    0xbde(%rip),%r13
nopl   0x0(%rax)
movsbl %al,%edx
test   %rbp,%rbp
mov    %r14,%rsi
cmove  %r13,%rsi
mov    %r12,%rdi
xor    %eax,%eax
call   1060 <printf@plt>
movzbl 0x1(%rbx,%rbp,1),%eax
add    $0x1,%rbp
test   %al,%al
jne    2930 <main+0x1770>
test   %r15b,%r15b
mov    %rsp,%r14
lea    0x20(%rsp),%r13
jne    296b <main+0x17ab>
mov    $0x6e,%edi
call   1030 <putchar@plt>
lea    0xf21(%rip),%rdi
call   1040 <puts@plt>
lea    0x16ab(%rip),%rdi
call   1040 <puts@plt>
mov    0x10(%rsp),%r12
mov    0x18(%rsp),%r15
movabs $0x800002401,%rbp
mov    %r13,%rdi
lea    0xcbb(%rip),%rsi
call   10e0 <strstr@plt>
test   %rax,%rax
je     2bcb <main+0x1a0b>
mov    0x10(%r12),%rdi
lea    0x1783(%rip),%rsi
call   1080 <strcmp@plt>
test   %rax,%rax
jne    2bcb <main+0x1a0b>
mov    %r13,(%rsp)
mov    %r14,%rdi
lea    0x738(%rip),%rsi
call   10a0 <my_strsep@plt>
mov    %r14,%rdi
lea    0x67b(%rip),%rsi
call   10a0 <my_strsep@plt>
mov    %rax,%rbx
lea    0xc74(%rip),%rdi
mov    %rax,%rsi
xor    %eax,%eax
call   1060 <printf@plt>
lea    0xdf9(%rip),%rdi
call   1040 <puts@plt>
lea    0xc76(%rip),%rdi
mov    %rbx,%rsi
xor    %eax,%eax
call   1060 <printf@plt>
mov    %r14,%rdi
lea    0x670(%rip),%rsi
call   10a0 <my_strsep@plt>
mov    %rax,%rbx
add    $0x1,%rbx
mov    %rbx,%rdi
lea    0xacb(%rip),%rsi
call   1080 <strcmp@plt>
test   %rax,%rax
je     2a57 <main+0x1897>
lea    0xc80(%rip),%rdi
mov    %rbx,%rsi
xor    %eax,%eax
call   1060 <printf@plt>
mov    %r14,%rdi
lea    0x635(%rip),%rsi
call   10a0 <my_strsep@plt>
test   %rax,%rax
je     2a93 <main+0x18d3>
mov    %rax,%rbx
mov    %rax,%rdi
lea    0xa8f(%rip),%rsi
call   1080 <strcmp@plt>
test   %rax,%rax
je     2a93 <main+0x18d3>
lea    0xc55(%rip),%rdi
mov    %rbx,%rsi
xor    %eax,%eax
call   1060 <printf@plt>
mov    %r14,%rdi
lea    0x5f9(%rip),%rsi
call   10a0 <my_strsep@plt>
test   %rax,%rax
je     2acf <main+0x190f>
mov    %rax,%rbx
mov    %rax,%rdi
lea    0xa53(%rip),%rsi
call   1080 <strcmp@plt>
test   %rax,%rax
je     2acf <main+0x190f>
lea    0xc2a(%rip),%rdi
mov    %rbx,%rsi
xor    %eax,%eax
call   1060 <printf@plt>
mov    %r14,%rdi
lea    0x5bd(%rip),%rsi
call   10a0 <my_strsep@plt>
test   %rax,%rax
je     2b0b <main+0x194b>
mov    %rax,%rbx
mov    %rax,%rdi
lea    0xa17(%rip),%rsi
call   1080 <strcmp@plt>
test   %rax,%rax
je     2b0b <main+0x194b>
lea    0xbff(%rip),%rdi
mov    %rbx,%rsi
xor    %eax,%eax
call   1060 <printf@plt>
mov    %r14,%rdi
lea    0x581(%rip),%rsi
call   10a0 <my_strsep@plt>
test   %rax,%rax
je     2b47 <main+0x1987>
mov    %rax,%rbx
mov    %rax,%rdi
lea    0x9db(%rip),%rsi
call   1080 <strcmp@plt>
test   %rax,%rax
je     2b47 <main+0x1987>
lea    0xbd9(%rip),%rdi
mov    %rbx,%rsi
xor    %eax,%eax
call   1060 <printf@plt>
mov    %r14,%rdi
lea    0x545(%rip),%rsi
call   10a0 <my_strsep@plt>
test   %rax,%rax
je     2b83 <main+0x19c3>
mov    %rax,%rbx
mov    %rax,%rdi
lea    0x99f(%rip),%rsi
call   1080 <strcmp@plt>
test   %rax,%rax
je     2b83 <main+0x19c3>
lea    0xbb2(%rip),%rdi
mov    %rbx,%rsi
xor    %eax,%eax
call   1060 <printf@plt>
mov    %r14,%rdi
lea    0x569(%rip),%rsi
call   10a0 <my_strsep@plt>
test   %rax,%rax
je     2bbf <main+0x19ff>
mov    %rax,%rbx
mov    %rax,%rdi
lea    0x963(%rip),%rsi
call   1080 <strcmp@plt>
test   %rax,%rax
je     2bbf <main+0x19ff>
lea    0xb86(%rip),%rdi
mov    %rbx,%rsi
xor    %eax,%eax
call   1060 <printf@plt>
lea    0x1463(%rip),%rdi
call   1040 <puts@plt>
mov    %r13,%rdi
lea    0xb76(%rip),%rsi
call   10e0 <strstr@plt>
test   %rax,%rax
je     1490 <main+0x2d0>
mov    0x10(%r12),%rdi
lea    0x155c(%rip),%rsi
call   1080 <strcmp@plt>
test   %rax,%rax
jne    1490 <main+0x2d0>
mov    %r12,%rbp
mov    %r13,(%rsp)
mov    %r14,%rdi
lea    0x501(%rip),%rsi
call   10a0 <my_strsep@plt>
mov    %r14,%rdi
lea    0x479(%rip),%r12
mov    %r12,%rsi
call   10a0 <my_strsep@plt>
mov    %rax,%rbx
lea    0xb9d(%rip),%rdi
call   1040 <puts@plt>
lea    0xbad(%rip),%rdi
call   1040 <puts@plt>
lea    0xb14(%rip),%rdi
mov    %rbx,%rsi
xor    %eax,%eax
call   1060 <printf@plt>
mov    %r14,%rdi
lea    0x406(%rip),%rsi
call   10a0 <my_strsep@plt>
lea    0xb3c(%rip),%rdi
mov    %rax,%rsi
xor    %eax,%eax
call   1060 <printf@plt>
mov    %r14,%rdi
mov    %r12,%rsi
lea    0x889(%rip),%r12
call   10a0 <my_strsep@plt>
mov    %rax,%rbx
add    $0x1,%rbx
mov    %rbx,%rdi
mov    %r12,%rsi
call   1080 <strcmp@plt>
test   %rax,%rax
je     2cab <main+0x1aeb>
lea    0xb1b(%rip),%rdi
mov    %rbx,%rsi
xor    %eax,%eax
call   1060 <printf@plt>
mov    %r14,%rdi
lea    0x3e1(%rip),%rsi
call   10a0 <my_strsep@plt>
test   %rax,%rax
je     2ce7 <main+0x1b27>
mov    %rax,%rbx
mov    %rax,%rdi
lea    0x83b(%rip),%rsi
call   1080 <strcmp@plt>
test   %rax,%rax
je     2ce7 <main+0x1b27>
lea    0xa01(%rip),%rdi
mov    %rbx,%rsi
xor    %eax,%eax
call   1060 <printf@plt>
mov    %r14,%rdi
lea    0x405(%rip),%rsi
call   10a0 <my_strsep@plt>
test   %rax,%rax
mov    %rbp,%r12
je     146d <main+0x2ad>
mov    %rax,%rbx
mov    %rax,%rdi
lea    0x7f8(%rip),%rsi
call   1080 <strcmp@plt>
test   %rax,%rax
je     146d <main+0x2ad>
lea    0x9f2(%rip),%rdi
mov    %rbx,%rsi
xor    %eax,%eax
call   1060 <printf@plt>
jmp    146d <main+0x2ad>

LLVM IR (-O0):
@.str = [30 x i8] c"Nagios Config File Converter\0A\00"
@.str.1 = [48 x i8] c"Written by Ethan Galstad (egalstad@nagios.org)\0A\00"
@.str.2 = [27 x i8] c"Last Modified: 08-12-2005\0A\00"
@.str.3 = [2 x i8] c"\0A\00"
@.str.4 = [39 x i8] c"Usage: %s <config file> <object type>\0A\00"
@.str.5 = [29 x i8] c"Valid object types include:\0A\00"
@.str.6 = [14 x i8] c"\09timeperiods\0A\00"
@.str.7 = [11 x i8] c"\09commands\0A\00"
@.str.8 = [11 x i8] c"\09contacts\0A\00"
@.str.9 = [16 x i8] c"\09contactgroups\0A\00"
@.str.10 = [8 x i8] c"\09hosts\0A\00"
@.str.11 = [13 x i8] c"\09hostgroups\0A\00"
@.str.12 = [24 x i8] c"\09hostgroupescalationss\0A\00"
@.str.13 = [11 x i8] c"\09services\0A\00"
@.str.14 = [22 x i8] c"\09servicedependencies\0A\00"
@.str.15 = [21 x i8] c"\09serviceescalations\0A\00"
@.str.16 = [14 x i8] c"\09hostextinfo\0A\00"
@.str.17 = [17 x i8] c"\09serviceextinfo\0A\00"
@.str.18 = [8 x i8] c"Notes:\0A\00"
@.str.19 = [68 x i8] c"This utility is designed to aide you in converting your old 'host'\0A\00"
@.str.20 = [68 x i8] c"config file(s) to the new template-based config file style. It is\0A\00"
@.str.21 = [66 x i8] c"also capable of converting extended host and service information\0A\00"
@.str.22 = [42 x i8] c"definitions in your old CGI config file.\0A\00"
@.str.23 = [72 x i8] c"Supply the name of your old 'host' config file (or your old CGI config\0A\00"
@.str.24 = [69 x i8] c"file if you're converting extended host/service definitions) on the\0A\00"
@.str.25 = [71 x i8] c"command line, along with the type of object you would like to produce\0A\00"
@.str.26 = [71 x i8] c"a new config file for. Your old config file is not overwritten - new\0A\00"
@.str.27 = [74 x i8] c"configuration data is printed to standard output, so you can redirect it\0A\00"
@.str.28 = [20 x i8] c"wherever you like.\0A\00"
@.str.29 = [68 x i8] c"Please note that you can only specify one type of object at a time\0A\00"
@.str.30 = [22 x i8] c"on the command line.\0A\00"
@.str.31 = [74 x i8] c"IMPORTANT: This utility will generate Nagios 1.x compliant config files.\0A\00"
@.str.32 = [74 x i8] c"However, the config files are not totally compatible with Nagios 2.x, so\0A\00"
@.str.33 = [43 x i8] c"you will have to do some manual tweaking.\0A\00"
@.str.34 = [2 x i8] c"r\00"
@.str.35 = [46 x i8] c"Error: Could not open file '%s' for reading.\0A\00"
@.str.36 = [12 x i8] c"timeperiod[\00"
@.str.37 = [12 x i8] c"timeperiods\00"
@.str.38 = [2 x i8] c"[\00"
@.str.39 = [2 x i8] c"]\00"
@.str.40 = [30 x i8] c"# '%s' timeperiod definition\0A\00"
@.str.41 = [20 x i8] c"define timeperiod{\0A\00"
@.str.42 = [21 x i8] c"\09timeperiod_name\09%s\0A\00"
@.str.43 = [2 x i8] c";\00"
@.str.44 = [12 x i8] c"\09alias\09\09%s\0A\00"
@.str.45 = [1 x i8] zeroinitializer
@.str.46 = [13 x i8] c"\09sunday\09\09%s\0A\00"
@.str.47 = [13 x i8] c"\09monday\09\09%s\0A\00"
@.str.48 = [14 x i8] c"\09tuesday\09\09%s\0A\00"
@.str.49 = [15 x i8] c"\09wednesday\09%s\0A\00"
@.str.50 = [14 x i8] c"\09thursday\09%s\0A\00"
@.str.51 = [13 x i8] c"\09friday\09\09%s\0A\00"
@.str.52 = [4 x i8] c";\0D\0A\00"
@.str.53 = [14 x i8] c"\09saturday\09%s\0A\00"
@.str.54 = [6 x i8] c"\09}\0A\0A\0A\00"
@.str.55 = [9 x i8] c"command[\00"
@.str.56 = [9 x i8] c"commands\00"
@.str.57 = [27 x i8] c"# '%s' command definition\0A\00"
@.str.58 = [17 x i8] c"define command{\0A\00"
@.str.59 = [18 x i8] c"\09command_name\09%s\0A\00"
@.str.60 = [18 x i8] c"\09command_line\09%s\0A\00"
@.str.61 = [9 x i8] c"contact[\00"
@.str.62 = [9 x i8] c"contacts\00"
@.str.63 = [27 x i8] c"# '%s' contact definition\0A\00"
@.str.64 = [17 x i8] c"define contact{\0A\00"
@.str.65 = [20 x i8] c"\09contact_name\09\09\09%s\0A\00"
@.str.66 = [14 x i8] c"\09alias\09\09\09\09%s\0A\00"
@.str.67 = [33 x i8] c"\09service_notification_period\09%s\0A\00"
@.str.68 = [30 x i8] c"\09host_notification_period\09%s\0A\00"
@.str.69 = [31 x i8] c"\09service_notification_options\09\00"
@.str.70 = [4 x i8] c"w,u\00"
@.str.71 = [2 x i8] c",\00"
@.str.72 = [2 x i8] c"c\00"
@.str.73 = [2 x i8] c"n\00"
@.str.74 = [28 x i8] c"\09host_notification_options\09\00"
@.str.75 = [2 x i8] c"d\00"
@.str.76 = [2 x i8] c"u\00"
@.str.77 = [35 x i8] c"\09service_notification_commands\09%s\0A\00"
@.str.78 = [32 x i8] c"\09host_notification_commands\09%s\0A\00"
@.str.79 = [14 x i8] c"\09email\09\09\09\09%s\0A\00"
@.str.80 = [14 x i8] c"\09pager\09\09\09\09%s\0A\00"
@.str.81 = [14 x i8] c"contactgroup[\00"
@.str.82 = [14 x i8] c"contactgroups\00"
@.str.83 = [33 x i8] c"# '%s' contact group definition\0A\00"
@.str.84 = [22 x i8] c"define contactgroup{\0A\00"
@.str.85 = [23 x i8] c"\09contactgroup_name\09%s\0A\00"
@.str.86 = [13 x i8] c"\09alias\09\09\09%s\0A\00"
@.str.87 = [15 x i8] c"\09members\09\09\09%s\0A\00"
@.str.88 = [6 x i8] c"host[\00"
@.str.89 = [6 x i8] c"hosts\00"
@.str.90 = [36 x i8] c"# Generic host definition template\0A\00"
@.str.91 = [14 x i8] c"define host{\0A\00"
@.str.92 = [135 x i8] c"\09name\09\09\09\09generic-host\09; The name of this host template - referenced in other host definitions, used for template recursion/resolution\0A\00"
@.str.93 = [60 x i8] c"\09active_checks_enabled\09\091\09; Active host checks are enabled\0A\00"
@.str.94 = [71 x i8] c"\09passive_checks_enabled\09\091\09; Passive host checks are enabled/accepted\0A\00"
@.str.95 = [60 x i8] c"\09notifications_enabled\09\091\09; Host notifications are enabled\0A\00"
@.str.96 = [59 x i8] c"\09event_handler_enabled\09\091\09; Host event handler is enabled\0A\00"
@.str.97 = [56 x i8] c"\09flap_detection_enabled\09\091\09; Flap detection is enabled\0A\00"
@.str.98 = [50 x i8] c"\09process_perf_data\09\091\09; Process performance data\0A\00"
@.str.99 = [82 x i8] c"\09retain_status_information\091\09; Retain status information across program restarts\0A\00"
@.str.100 = [89 x i8] c"\09retain_nonstatus_information\091\09; Retain non-status information across program restarts\0A\00"
@.str.101 = [87 x i8] c"\09register\09\09\090\09; DONT REGISTER THIS DEFINITION - ITS NOT A REAL HOST, JUST A TEMPLATE!\0A\00"
@.str.102 = [5 x i8] c"\09}\0A\0A\00"
@.str.103 = [24 x i8] c"# '%s' host definition\0A\00"
@.str.104 = [54 x i8] c"\09use\09\09\09generic-host\09\09; Name of host template to use\0A\0A\00"
@.str.105 = [16 x i8] c"\09host_name\09\09%s\0A\00"
@.str.106 = [15 x i8] c"\09address\09\09\09%s\0A\00"
@.str.107 = [15 x i8] c"\09parents\09\09\09%s\0A\00"
@.str.108 = [20 x i8] c"\09check_command\09\09%s\0A\00"
@.str.109 = [24 x i8] c"\09max_check_attempts\09%d\0A\00"
@.str.110 = [27 x i8] c"\09notification_interval\09%d\0A\00"
@.str.111 = [25 x i8] c"\09notification_period\09%s\0A\00"
@.str.112 = [23 x i8] c"\09notification_options\09\00"
@.str.113 = [20 x i8] c"\09event_handler\09\09%s\0A\00"
@.str.114 = [11 x i8] c"hostgroup[\00"
@.str.115 = [11 x i8] c"hostgroups\00"
@.str.116 = [30 x i8] c"# '%s' host group definition\0A\00"
@.str.117 = [19 x i8] c"define hostgroup{\0A\00"
@.str.118 = [20 x i8] c"\09hostgroup_name\09%s\0A\00"
@.str.119 = [14 x i8] c"\09members\09\09%s\0A\00"
@.str.120 = [9 x i8] c"service[\00"
@.str.121 = [9 x i8] c"services\00"
@.str.122 = [39 x i8] c"# Generic service definition template\0A\00"
@.str.123 = [17 x i8] c"define service{\0A\00"
@.str.124 = [105 x i8] c"\09name\09\09\09\09generic-service\09; The 'name' of this service template, referenced in other service definitions\0A\00"
@.str.125 = [63 x i8] c"\09active_checks_enabled\09\091\09; Active service checks are enabled\0A\00"
@.str.126 = [74 x i8] c"\09passive_checks_enabled\09\091\09; Passive service checks are enabled/accepted\0A\00"
@.str.127 = [126 x i8] c"\09parallelize_check\09\091\09; Active service checks should be parallelized (disabling this can lead to major performance problems)\0A\00"
@.str.128 = [77 x i8] c"\09obsess_over_service\09\091\09; We should obsess over this service (if necessary)\0A\00"
@.str.129 = [68 x i8] c"\09check_freshness\09\09\090\09; Default is to NOT check service 'freshness'\0A\00"
@.str.130 = [63 x i8] c"\09notifications_enabled\09\091\09; Service notifications are enabled\0A\00"
@.str.131 = [62 x i8] c"\09event_handler_enabled\09\091\09; Service event handler is enabled\0A\00"
@.str.132 = [90 x i8] c"\09register\09\09\090\09; DONT REGISTER THIS DEFINITION - ITS NOT A REAL SERVICE, JUST A TEMPLATE!\0A\00"
@.str.133 = [22 x i8] c"# Service definition\0A\00"
@.str.134 = [61 x i8] c"\09use\09\09\09\09generic-service\09\09; Name of service template to use\0A\0A\00"
@.str.135 = [17 x i8] c"\09host_name\09\09\09%s\0A\00"
@.str.136 = [26 x i8] c"\09service_description\09\09%s\0A\00"
@.str.137 = [19 x i8] c"\09is_volatile\09\09\09%d\0A\00"
@.str.138 = [20 x i8] c"\09check_period\09\09\09%s\0A\00"
@.str.139 = [25 x i8] c"\09max_check_attempts\09\09%d\0A\00"
@.str.140 = [28 x i8] c"\09normal_check_interval\09\09%d\0A\00"
@.str.141 = [27 x i8] c"\09retry_check_interval\09\09%d\0A\00"
@.str.142 = [22 x i8] c"\09contact_groups\09\09\09%s\0A\00"
@.str.143 = [28 x i8] c"\09notification_interval\09\09%d\0A\00"
@.str.144 = [26 x i8] c"\09notification_period\09\09%s\0A\00"
@.str.145 = [24 x i8] c"\09notification_options\09\09\00"
@.str.146 = [21 x i8] c"\09check_command\09\09\09%s\0A\00"
@.str.147 = [21 x i8] c"hostgroupescalation[\00"
@.str.148 = [21 x i8] c"hostgroupescalations\00"
@.str.149 = [40 x i8] c"# Hostgroup '%s' escalation definition\0A\00"
@.str.150 = [29 x i8] c"define hostgroupescalation{\0A\00"
@.str.151 = [21 x i8] c"\09hostgroup_name\09\09%s\0A\00"
@.str.152 = [2 x i8] c"-\00"
@.str.153 = [25 x i8] c"\09first_notification\09\09%d\0A\00"
@.str.154 = [24 x i8] c"\09last_notification\09\09%d\0A\00"
@.str.155 = [19 x i8] c"serviceescalation[\00"
@.str.156 = [19 x i8] c"serviceescalations\00"
@.str.157 = [32 x i8] c"# Serviceescalation definition\0A\00"
@.str.158 = [27 x i8] c"define serviceescalation{\0A\00"
@.str.159 = [19 x i8] c"servicedependency[\00"
@.str.160 = [20 x i8] c"servicedependencies\00"
@.str.161 = [32 x i8] c"# Servicedependency definition\0A\00"
@.str.162 = [27 x i8] c"define servicedependency{\0A\00"
@.str.163 = [26 x i8] c"\09dependent_host_name\09\09%s\0A\00"
@.str.164 = [35 x i8] c"\09dependent_service_description\09%s\0A\00"
@.str.165 = [29 x i8] c"\09execution_failure_criteria\09\00"
@.str.166 = [5 x i8] c"%s%c\00"
@.str.167 = [72 x i8] c"\09; These are the criteria for which check execution will be suppressed\0A\00"
@.str.168 = [32 x i8] c"\09notification_failure_criteria\09\00"
@.str.169 = [70 x i8] c"\09; These are the criteria for which notifications will be suppressed\0A\00"
@.str.170 = [13 x i8] c"hostextinfo[\00"
@.str.171 = [12 x i8] c"hostextinfo\00"
@.str.172 = [31 x i8] c"# '%s' hostextinfo definition\0A\00"
@.str.173 = [21 x i8] c"define hostextinfo{\0A\00"
@.str.174 = [69 x i8] c"\09host_name\09\09%s\09\09; The name of the host this data is associated with\0A\00"
@.str.175 = [17 x i8] c"\09notes_url\09\09\09%s\0A\00"
@.str.176 = [17 x i8] c"\09icon_image\09\09%s\0A\00"
@.str.177 = [17 x i8] c"\09vrml_image\09\09%s\0A\00"
@.str.178 = [22 x i8] c"\09statusmap_image\09\09%s\0A\00"
@.str.179 = [21 x i8] c"\09icon_image_alt\09\09%s\0A\00"
@.str.180 = [16 x i8] c"\092d_coords\09\09%s\0A\00"
@.str.181 = [16 x i8] c"\093d_coords\09\09%s\0A\00"
@.str.182 = [16 x i8] c"serviceextinfo[\00"
@.str.183 = [15 x i8] c"serviceextinfo\00"
@.str.184 = [29 x i8] c"# serviceextinfo definition\0A\00"
@.str.185 = [24 x i8] c"define serviceextinfo{\0A\00"
@.str.186 = [72 x i8] c"\09host_name\09\09%s\09\09; The name of the service this data is associated with\0A\00"
@.str.187 = [25 x i8] c"\09service_description\09%s\0A\00"
@.str.188 = [16 x i8] c"\09notes_url\09\09%s\0A\00"
define i32 @main(i32 %0, i8** %1) {
%3 = alloca i32
%4 = alloca i32
%5 = alloca i8**
%6 = alloca i32*
%7 = alloca i8*
%8 = alloca i8*
%9 = alloca [8096 x i8]
%10 = alloca i32
%11 = alloca i32
%12 = alloca i32
%13 = alloca i32
%14 = alloca i32
%15 = alloca i32
%16 = alloca i32
%17 = alloca i32
%18 = alloca i32
%19 = alloca i8*
%20 = alloca i8*
%21 = alloca i8*
%22 = alloca i8*
store i32 0, i32* %3
store i32 %0, i32* %4
store i8** %1, i8*** %5
store i32 0, i32* %16
store i32 0, i32* %17
store i32 0, i32* %18
%23 = load i32, i32* %4
%24 = icmp ne i32 %23, 3
br i1 %24, label %25, label %72
25: ; preds = %2
%26 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([30 x i8], [30 x i8]* @.str, i64 0, i64 0))
%27 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([48 x i8], [48 x i8]* @.str.1, i64 0, i64 0))
%28 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([27 x i8], [27 x i8]* @.str.2, i64 0, i64 0))
%29 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.3, i64 0, i64 0))
%30 = load i8**, i8*** %5
%31 = getelementptr inbounds i8*, i8** %30, i64 0
%32 = load i8*, i8** %31
%33 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([39 x i8], [39 x i8]* @.str.4, i64 0, i64 0), i8* %32)
%34 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.3, i64 0, i64 0))
%35 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([29 x i8], [29 x i8]* @.str.5, i64 0, i64 0))
%36 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.3, i64 0, i64 0))
%37 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([14 x i8], [14 x i8]* @.str.6, i64 0, i64 0))
%38 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.7, i64 0, i64 0))
%39 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.8, i64 0, i64 0))
%40 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.9, i64 0, i64 0))
%41 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.10, i64 0, i64 0))
%42 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.11, i64 0, i64 0))
%43 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([24 x i8], [24 x i8]* @.str.12, i64 0, i64 0))
%44 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.13, i64 0, i64 0))
%45 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.14, i64 0, i64 0))
%46 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([21 x i8], [21 x i8]* @.str.15, i64 0, i64 0))
%47 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.3, i64 0, i64 0))
%48 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([14 x i8], [14 x i8]* @.str.16, i64 0, i64 0))
%49 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([17 x i8], [17 x i8]* @.str.17, i64 0, i64 0))
%50 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.3, i64 0, i64 0))
%51 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.18, i64 0, i64 0))
%52 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.3, i64 0, i64 0))
%53 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([68 x i8], [68 x i8]* @.str.19, i64 0, i64 0))
%54 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([68 x i8], [68 x i8]* @.str.20, i64 0, i64 0))
%55 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([66 x i8], [66 x i8]* @.str.21, i64 0, i64 0))
%56 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([42 x i8], [42 x i8]* @.str.22, i64 0, i64 0))
%57 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.3, i64 0, i64 0))
%58 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([72 x i8], [72 x i8]* @.str.23, i64 0, i64 0))
%59 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([69 x i8], [69 x i8]* @.str.24, i64 0, i64 0))
%60 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([71 x i8], [71 x i8]* @.str.25, i64 0, i64 0))
%61 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([71 x i8], [71 x i8]* @.str.26, i64 0, i64 0))
%62 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([74 x i8], [74 x i8]* @.str.27, i64 0, i64 0))
%63 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([20 x i8], [20 x i8]* @.str.28, i64 0, i64 0))
%64 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.3, i64 0, i64 0))
%65 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([68 x i8], [68 x i8]* @.str.29, i64 0, i64 0))
%66 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.30, i64 0, i64 0))
%67 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.3, i64 0, i64 0))
%68 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([74 x i8], [74 x i8]* @.str.31, i64 0, i64 0))
%69 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([74 x i8], [74 x i8]* @.str.32, i64 0, i64 0))
%70 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([43 x i8], [43 x i8]* @.str.33, i64 0, i64 0))
%71 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.3, i64 0, i64 0))
store i32 -1, i32* %3
br label %1126
72: ; preds = %2
%73 = load i8**, i8*** %5
%74 = getelementptr inbounds i8*, i8** %73, i64 1
%75 = load i8*, i8** %74
%76 = call i32* @fopen(i8* %75, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.34, i64 0, i64 0))
store i32* %76, i32** %6
%77 = load i32*, i32** %6
%78 = icmp eq i32* %77, null
br i1 %78, label %79, label %84
79: ; preds = %72
%80 = load i8**, i8*** %5
%81 = getelementptr inbounds i8*, i8** %80, i64 1
%82 = load i8*, i8** %81
%83 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([46 x i8], [46 x i8]* @.str.35, i64 0, i64 0), i8* %82)
store i32 -1, i32* %3
br label %1126
84: ; preds = %72
%85 = getelementptr inbounds [8096 x i8], [8096 x i8]* %9, i64 0, i64 0
%86 = load i32*, i32** %6
%87 = call i32 @fgets(i8* %85, i32 8095, i32* %86)
br label %88
88: ; preds = %1119, %84
%89 = load i32*, i32** %6
%90 = call i32 @feof(i32* %89)
%91 = icmp ne i32 %90, 0
%92 = xor i1 %91, true
br i1 %92, label %93, label %1123
93: ; preds = %88
%94 = getelementptr inbounds [8096 x i8], [8096 x i8]* %9, i64 0, i64 0
%95 = load i8, i8* %94
%96 = sext i8 %95 to i32
%97 = icmp eq i32 %96, 35
br i1 %97, label %113, label %98
98: ; preds = %93
%99 = getelementptr inbounds [8096 x i8], [8096 x i8]* %9, i64 0, i64 0
%100 = load i8, i8* %99
%101 = sext i8 %100 to i32
%102 = icmp eq i32 %101, 0
br i1 %102, label %113, label %103
103: ; preds = %98
%104 = getelementptr inbounds [8096 x i8], [8096 x i8]* %9, i64 0, i64 0
%105 = load i8, i8* %104
%106 = sext i8 %105 to i32
%107 = icmp eq i32 %106, 10
br i1 %107, label %113, label %108
108: ; preds = %103
%109 = getelementptr inbounds [8096 x i8], [8096 x i8]* %9, i64 0, i64 0
%110 = load i8, i8* %109
%111 = sext i8 %110 to i32
%112 = icmp eq i32 %111, 13
br i1 %112, label %113, label %114
113: ; preds = %108, %103, %98, %93
br label %1119
114: ; preds = %108
%115 = getelementptr inbounds [8096 x i8], [8096 x i8]* %9, i64 0, i64 0
%116 = call i64 @strstr(i8* %115, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.36, i64 0, i64 0))
%117 = icmp ne i64 %116, 0
br i1 %117, label %118, label %215
118: ; preds = %114
%119 = load i8**, i8*** %5
%120 = getelementptr inbounds i8*, i8** %119, i64 2
%121 = load i8*, i8** %120
%122 = call i64 @strcmp(i8* %121, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.37, i64 0, i64 0))
%123 = icmp ne i64 %122, 0
br i1 %123, label %215, label %124
124: ; preds = %118
%125 = getelementptr inbounds [8096 x i8], [8096 x i8]* %9, i64 0, i64 0
store i8* %125, i8** %8
%126 = call i8* @my_strsep(i8** %8, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.38, i64 0, i64 0))
store i8* %126, i8** %7
%127 = call i8* @my_strsep(i8** %8, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.39, i64 0, i64 0))
store i8* %127, i8** %7
%128 = load i8*, i8** %7
%129 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([30 x i8], [30 x i8]* @.str.40, i64 0, i64 0), i8* %128)
%130 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([20 x i8], [20 x i8]* @.str.41, i64 0, i64 0))
%131 = load i8*, i8** %7
%132 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([21 x i8], [21 x i8]* @.str.42, i64 0, i64 0), i8* %131)
%133 = call i8* @my_strsep(i8** %8, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.43, i64 0, i64 0))
store i8* %133, i8** %7
%134 = load i8*, i8** %7
%135 = getelementptr inbounds i8, i8* %134, i64 1
%136 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.44, i64 0, i64 0), i8* %135)
%137 = call i8* @my_strsep(i8** %8, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.43, i64 0, i64 0))
store i8* %137, i8** %7
%138 = load i8*, i8** %7
%139 = icmp ne i8* %138, null
br i1 %139, label %140, label %147
140: ; preds = %124
%141 = load i8*, i8** %7
%142 = call i64 @strcmp(i8* %141, i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.45, i64 0, i64 0))
%143 = icmp ne i64 %142, 0
br i1 %143, label %144, label %147
144: ; preds = %140
%145 = load i8*, i8** %7
%146 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.46, i64 0, i64 0), i8* %145)
br label %147
147: ; preds = %144, %140, %124
%148 = call i8* @my_strsep(i8** %8, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.43, i64 0, i64 0))
store i8* %148, i8** %7
%149 = load i8*, i8** %7
%150 = icmp ne i8* %149, null
br i1 %150, label %151, label %158
151: ; preds = %147
%152 = load i8*, i8** %7
%153 = call i64 @strcmp(i8* %152, i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.45, i64 0, i64 0))
%154 = icmp ne i64 %153, 0
br i1 %154, label %155, label %158
155: ; preds = %151
%156 = load i8*, i8** %7
%157 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.47, i64 0, i64 0), i8* %156)
br label %158
158: ; preds = %155, %151, %147
%159 = call i8* @my_strsep(i8** %8, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.43, i64 0, i64 0))
store i8* %159, i8** %7
%160 = load i8*, i8** %7
%161 = icmp ne i8* %160, null
br i1 %161, label %162, label %169
162: ; preds = %158
%163 = load i8*, i8** %7
%164 = call i64 @strcmp(i8* %163, i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.45, i64 0, i64 0))
%165 = icmp ne i64 %164, 0
br i1 %165, label %166, label %169
166: ; preds = %162
%167 = load i8*, i8** %7
%168 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([14 x i8], [14 x i8]* @.str.48, i64 0, i64 0), i8* %167)
br label %169
169: ; preds = %166, %162, %158
%170 = call i8* @my_strsep(i8** %8, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.43, i64 0, i64 0))
store i8* %170, i8** %7
%171 = load i8*, i8** %7
%172 = icmp ne i8* %171, null
br i1 %172, label %173, label %180
173: ; preds = %169
%174 = load i8*, i8** %7
%175 = call i64 @strcmp(i8* %174, i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.45, i64 0, i64 0))
%176 = icmp ne i64 %175, 0
br i1 %176, label %177, label %180
177: ; preds = %173
%178 = load i8*, i8** %7
%179 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.49, i64 0, i64 0), i8* %178)
br label %180
180: ; preds = %177, %173, %169
%181 = call i8* @my_strsep(i8** %8, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.43, i64 0, i64 0))
store i8* %181, i8** %7
%182 = load i8*, i8** %7
%183 = icmp ne i8* %182, null
br i1 %183, label %184, label %191
184: ; preds = %180
%185 = load i8*, i8** %7
%186 = call i64 @strcmp(i8* %185, i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.45, i64 0, i64 0))
%187 = icmp ne i64 %186, 0
br i1 %187, label %188, label %191
188: ; preds = %184
%189 = load i8*, i8** %7
%190 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([14 x i8], [14 x i8]* @.str.50, i64 0, i64 0), i8* %189)
br label %191
191: ; preds = %188, %184, %180
%192 = call i8* @my_strsep(i8** %8, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.43, i64 0, i64 0))
store i8* %192, i8** %7
%193 = load i8*, i8** %7
%194 = icmp ne i8* %193, null
br i1 %194, label %195, label %202
195: ; preds = %191
%196 = load i8*, i8** %7
%197 = call i64 @strcmp(i8* %196, i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.45, i64 0, i64 0))
%198 = icmp ne i64 %197, 0
br i1 %198, label %199, label %202
199: ; preds = %195
%200 = load i8*, i8** %7
%201 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.51, i64 0, i64 0), i8* %200)
br label %202
202: ; preds = %199, %195, %191
%203 = call i8* @my_strsep(i8** %8, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.52, i64 0, i64 0))
store i8* %203, i8** %7
%204 = load i8*, i8** %7
%205 = icmp ne i8* %204, null
br i1 %205, label %206, label %213
206: ; preds = %202
%207 = load i8*, i8** %7
%208 = call i64 @strcmp(i8* %207, i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.45, i64 0, i64 0))
%209 = icmp ne i64 %208, 0
br i1 %209, label %210, label %213
210: ; preds = %206
%211 = load i8*, i8** %7
%212 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([14 x i8], [14 x i8]* @.str.53, i64 0, i64 0), i8* %211)
br label %213
213: ; preds = %210, %206, %202
%214 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.54, i64 0, i64 0))
br label %215
215: ; preds = %213, %118, %114
%216 = getelementptr inbounds [8096 x i8], [8096 x i8]* %9, i64 0, i64 0
%217 = call i64 @strstr(i8* %216, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.55, i64 0, i64 0))
%218 = icmp ne i64 %217, 0
br i1 %218, label %219, label %239
219: ; preds = %215
%220 = load i8**, i8*** %5
%221 = getelementptr inbounds i8*, i8** %220, i64 2
%222 = load i8*, i8** %221
%223 = call i64 @strcmp(i8* %222, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.56, i64 0, i64 0))
%224 = icmp ne i64 %223, 0
br i1 %224, label %239, label %225
225: ; preds = %219
%226 = getelementptr inbounds [8096 x i8], [8096 x i8]* %9, i64 0, i64 0
%227 = call i8* @strtok(i8* %226, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.38, i64 0, i64 0))
store i8* %227, i8** %7
%228 = call i8* @strtok(i8* null, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.39, i64 0, i64 0))
store i8* %228, i8** %7
%229 = load i8*, i8** %7
%230 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([27 x i8], [27 x i8]* @.str.57, i64 0, i64 0), i8* %229)
%231 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([17 x i8], [17 x i8]* @.str.58, i64 0, i64 0))
%232 = load i8*, i8** %7
%233 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.59, i64 0, i64 0), i8* %232)
%234 = call i8* @strtok(i8* null, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.3, i64 0, i64 0))
store i8* %234, i8** %7
%235 = load i8*, i8** %7
%236 = getelementptr inbounds i8, i8* %235, i64 1
%237 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.60, i64 0, i64 0), i8* %236)
%238 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.54, i64 0, i64 0))
br label %239
239: ; preds = %225, %219, %215
%240 = getelementptr inbounds [8096 x i8], [8096 x i8]* %9, i64 0, i64 0
%241 = call i64 @strstr(i8* %240, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.61, i64 0, i64 0))
%242 = icmp ne i64 %241, 0
br i1 %242, label %243, label %425
243: ; preds = %239
%244 = load i8**, i8*** %5
%245 = getelementptr inbounds i8*, i8** %244, i64 2
%246 = load i8*, i8** %245
%247 = call i64 @strcmp(i8* %246, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.62, i64 0, i64 0))
%248 = icmp ne i64 %247, 0
br i1 %248, label %425, label %249
249: ; preds = %243
%250 = getelementptr inbounds [8096 x i8], [8096 x i8]* %9, i64 0, i64 0
store i8* %250, i8** %8
%251 = call i8* @my_strsep(i8** %8, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.38, i64 0, i64 0))
store i8* %251, i8** %7
%252 = call i8* @my_strsep(i8** %8, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.39, i64 0, i64 0))
store i8* %252, i8** %7
%253 = load i8*, i8** %7
%254 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([27 x i8], [27 x i8]* @.str.63, i64 0, i64 0), i8* %253)
%255 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([17 x i8], [17 x i8]* @.str.64, i64 0, i64 0))
%256 = load i8*, i8** %7
%257 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([20 x i8], [20 x i8]* @.str.65, i64 0, i64 0), i8* %256)
%258 = call i8* @my_strsep(i8** %8, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.43, i64 0, i64 0))
store i8* %258, i8** %7
%259 = load i8*, i8** %7
%260 = getelementptr inbounds i8, i8* %259, i64 1
%261 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([14 x i8], [14 x i8]* @.str.66, i64 0, i64 0), i8* %260)
%262 = call i8* @my_strsep(i8** %8, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.43, i64 0, i64 0))
store i8* %262, i8** %7
%263 = load i8*, i8** %7
%264 = icmp ne i8* %263, null
br i1 %264, label %265, label %272
265: ; preds = %249
%266 = load i8*, i8** %7
%267 = call i64 @strcmp(i8* %266, i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.45, i64 0, i64 0))
%268 = icmp ne i64 %267, 0
br i1 %268, label %269, label %272
269: ; preds = %265
%270 = load i8*, i8** %7
%271 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([33 x i8], [33 x i8]* @.str.67, i64 0, i64 0), i8* %270)
br label %272
272: ; preds = %269, %265, %249
%273 = call i8* @my_strsep(i8** %8, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.43, i64 0, i64 0))
store i8* %273, i8** %7
%274 = load i8*, i8** %7
%275 = icmp ne i8* %274, null
br i1 %275, label %276, label %283
276: ; preds = %272
%277 = load i8*, i8** %7
%278 = call i64 @strcmp(i8* %277, i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.45, i64 0, i64 0))
%279 = icmp ne i64 %278, 0
br i1 %279, label %280, label %283
280: ; preds = %276
%281 = load i8*, i8** %7
%282 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([30 x i8], [30 x i8]* @.str.68, i64 0, i64 0), i8* %281)
br label %283
283: ; preds = %280, %276, %272
%284 = call i8* @my_strsep(i8** %8, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.43, i64 0, i64 0))
store i8* %284, i8** %7
%285 = load i8*, i8** %7
%286 = call i32 @atoi(i8* %285)
store i32 %286, i32* %10
%287 = call i8* @my_strsep(i8** %8, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.43, i64 0, i64 0))
store i8* %287, i8** %7
%288 = load i8*, i8** %7
%289 = call i32 @atoi(i8* %288)
store i32 %289, i32* %12
%290 = call i8* @my_strsep(i8** %8, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.43, i64 0, i64 0))
store i8* %290, i8** %7
%291 = load i8*, i8** %7
%292 = call i32 @atoi(i8* %291)
store i32 %292, i32* %11
store i32 0, i32* %15
%293 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([31 x i8], [31 x i8]* @.str.69, i64 0, i64 0))
%294 = load i32, i32* %10
%295 = icmp eq i32 %294, 1
br i1 %295, label %302, label %296
296: ; preds = %283
%297 = load i32, i32* %12
%298 = icmp eq i32 %297, 1
br i1 %298, label %302, label %299
299: ; preds = %296
%300 = load i32, i32* %11
%301 = icmp eq i32 %300, 1
br i1 %301, label %302, label %328
302: ; preds = %299, %296, %283
%303 = load i32, i32* %11
%304 = icmp eq i32 %303, 1
br i1 %304, label %305, label %307
305: ; preds = %302
%306 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.70, i64 0, i64 0))
store i32 1, i32* %15
br label %307
307: ; preds = %305, %302
%308 = load i32, i32* %12
%309 = icmp eq i32 %308, 1
br i1 %309, label %310, label %317
310: ; preds = %307
%311 = load i32, i32* %15
%312 = icmp eq i32 %311, 1
br i1 %312, label %313, label %315
313: ; preds = %310
%314 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.71, i64 0, i64 0))
br label %315
315: ; preds = %313, %310
%316 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.72, i64 0, i64 0))
store i32 1, i32* %15
br label %317
317: ; preds = %315, %307
%318 = load i32, i32* %10
%319 = icmp eq i32 %318, 1
br i1 %319, label %320, label %327
320: ; preds = %317
%321 = load i32, i32* %15
%322 = icmp eq i32 %321, 1
br i1 %322, label %323, label %325
323: ; preds = %320
%324 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.71, i64 0, i64 0))
br label %325
325: ; preds = %323, %320
%326 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.34, i64 0, i64 0))
br label %327
327: ; preds = %325, %317
br label %330
328: ; preds = %299
%329 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.73, i64 0, i64 0))
br label %330
330: ; preds = %328, %327
%331 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.3, i64 0, i64 0))
%332 = call i8* @my_strsep(i8** %8, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.43, i64 0, i64 0))
store i8* %332, i8** %7
%333 = load i8*, i8** %7
%334 = call i32 @atoi(i8* %333)
store i32 %334, i32* %10
%335 = call i8* @my_strsep(i8** %8, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.43, i64 0, i64 0))
store i8* %335, i8** %7
%336 = load i8*, i8** %7
%337 = call i32 @atoi(i8* %336)
store i32 %337, i32* %13
%338 = call i8* @my_strsep(i8** %8, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.43, i64 0, i64 0))
store i8* %338, i8** %7
%339 = load i8*, i8** %7
%340 = call i32 @atoi(i8* %339)
store i32 %340, i32* %14
store i32 0, i32* %15
%341 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([28 x i8], [28 x i8]* @.str.74, i64 0, i64 0))
%342 = load i32, i32* %10
%343 = icmp eq i32 %342, 1
br i1 %343, label %350, label %344
344: ; preds = %330
%345 = load i32, i32* %13
%346 = icmp eq i32 %345, 1
br i1 %346, label %350, label %347
347: ; preds = %344
%348 = load i32, i32* %14
%349 = icmp eq i32 %348, 1
br i1 %349, label %350, label %376
350: ; preds = %347, %344, %330
%351 = load i32, i32* %13
%352 = icmp eq i32 %351, 1
br i1 %352, label %353, label %355
353: ; preds = %350
%354 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.75, i64 0, i64 0))
store i32 1, i32* %15
br label %355
355: ; preds = %353, %350
%356 = load i32, i32* %14
%357 = icmp eq i32 %356, 1
br i1 %357, label %358, label %365
358: ; preds = %355
%359 = load i32, i32* %15
%360 = icmp eq i32 %359, 1
br i1 %360, label %361, label %363
361: ; preds = %358
%362 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.71, i64 0, i64 0))
br label %363
363: ; preds = %361, %358
%364 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.76, i64 0, i64 0))
store i32 1, i32* %15
br label %365
365: ; preds = %363, %355
%366 = load i32, i32* %10
%367 = icmp eq i32 %366, 1
br i1 %367, label %368, label %375
368: ; preds = %365
%369 = load i32, i32* %15
%370 = icmp eq i32 %369, 1
br i1 %370, label %371, label %373
371: ; preds = %368
%372 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.71, i64 0, i64 0))
br label %373
373: ; preds = %371, %368
%374 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.34, i64 0, i64 0))
br label %375
375: ; preds = %373, %365
br label %378
376: ; preds = %347
%377 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.73, i64 0, i64 0))
br label %378
378: ; preds = %376, %375
%379 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.3, i64 0, i64 0))
%380 = call i8* @my_strsep(i8** %8, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.43, i64 0, i64 0))
store i8* %380, i8** %7
%381 = load i8*, i8** %7
%382 = icmp ne i8* %381, null
br i1 %382, label %383, label %390
383: ; preds = %378
%384 = load i8*, i8** %7
%385 = call i64 @strcmp(i8* %384, i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.45, i64 0, i64 0))
%386 = icmp ne i64 %385, 0
br i1 %386, label %387, label %390
387: ; preds = %383
%388 = load i8*, i8** %7
%389 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([35 x i8], [35 x i8]* @.str.77, i64 0, i64 0), i8* %388)
br label %390
390: ; preds = %387, %383, %378
%391 = call i8* @my_strsep(i8** %8, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.43, i64 0, i64 0))
store i8* %391, i8** %7
%392 = load i8*, i8** %7
%393 = icmp ne i8* %392, null
br i1 %393, label %394, label %401
394: ; preds = %390
%395 = load i8*, i8** %7
%396 = call i64 @strcmp(i8* %395, i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.45, i64 0, i64 0))
%397 = icmp ne i64 %396, 0
br i1 %397, label %398, label %401
398: ; preds = %394
%399 = load i8*, i8** %7
%400 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([32 x i8], [32 x i8]* @.str.78, i64 0, i64 0), i8* %399)
br label %401
401: ; preds = %398, %394, %390
%402 = call i8* @my_strsep(i8** %8, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.43, i64 0, i64 0))
store i8* %402, i8** %7
%403 = load i8*, i8** %7
%404 = icmp ne i8* %403, null
br i1 %404, label %405, label %412
405: ; preds = %401
%406 = load i8*, i8** %7
%407 = call i64 @strcmp(i8* %406, i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.45, i64 0, i64 0))
%408 = icmp ne i64 %407, 0
br i1 %408, label %409, label %412
409: ; preds = %405
%410 = load i8*, i8** %7
%411 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([14 x i8], [14 x i8]* @.str.79, i64 0, i64 0), i8* %410)
br label %412
412: ; preds = %409, %405, %401
%413 = call i8* @my_strsep(i8** %8, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.52, i64 0, i64 0))
store i8* %413, i8** %7
%414 = load i8*, i8** %7
%415 = icmp ne i8* %414, null
br i1 %415, label %416, label %423
416: ; preds = %412
%417 = load i8*, i8** %7
%418 = call i64 @strcmp(i8* %417, i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.45, i64 0, i64 0))
%419 = icmp ne i64 %418, 0
br i1 %419, label %420, label %423
420: ; preds = %416
%421 = load i8*, i8** %7
%422 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([14 x i8], [14 x i8]* @.str.80, i64 0, i64 0), i8* %421)
br label %423
423: ; preds = %420, %416, %412
%424 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.54, i64 0, i64 0))
br label %425
425: ; preds = %423, %243, %239
%426 = getelementptr inbounds [8096 x i8], [8096 x i8]* %9, i64 0, i64 0
%427 = call i64 @strstr(i8* %426, i8* getelementptr inbounds ([14 x i8], [14 x i8]* @.str.81, i64 0, i64 0))
%428 = icmp ne i64 %427, 0
br i1 %428, label %429, label %452
429: ; preds = %425
%430 = load i8**, i8*** %5
%431 = getelementptr inbounds i8*, i8** %430, i64 2
%432 = load i8*, i8** %431
%433 = call i64 @strcmp(i8* %432, i8* getelementptr inbounds ([14 x i8], [14 x i8]* @.str.82, i64 0, i64 0))
%434 = icmp ne i64 %433, 0
br i1 %434, label %452, label %435
435: ; preds = %429
%436 = getelementptr inbounds [8096 x i8], [8096 x i8]* %9, i64 0, i64 0
%437 = call i8* @strtok(i8* %436, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.38, i64 0, i64 0))
store i8* %437, i8** %7
%438 = call i8* @strtok(i8* null, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.39, i64 0, i64 0))
store i8* %438, i8** %7
%439 = load i8*, i8** %7
%440 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([33 x i8], [33 x i8]* @.str.83, i64 0, i64 0), i8* %439)
%441 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.84, i64 0, i64 0))
%442 = load i8*, i8** %7
%443 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([23 x i8], [23 x i8]* @.str.85, i64 0, i64 0), i8* %442)
%444 = call i8* @strtok(i8* null, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.43, i64 0, i64 0))
store i8* %444, i8** %7
%445 = load i8*, i8** %7
%446 = getelementptr inbounds i8, i8* %445, i64 1
%447 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.86, i64 0, i64 0), i8* %446)
%448 = call i8* @strtok(i8* null, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.3, i64 0, i64 0))
store i8* %448, i8** %7
%449 = load i8*, i8** %7
%450 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.87, i64 0, i64 0), i8* %449)
%451 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.54, i64 0, i64 0))
br label %452
452: ; preds = %435, %429, %425
%453 = getelementptr inbounds [8096 x i8], [8096 x i8]* %9, i64 0, i64 0
%454 = call i64 @strstr(i8* %453, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.88, i64 0, i64 0))
%455 = icmp ne i64 %454, 0
br i1 %455, label %456, label %598
456: ; preds = %452
%457 = load i8**, i8*** %5
%458 = getelementptr inbounds i8*, i8** %457, i64 2
%459 = load i8*, i8** %458
%460 = call i64 @strcmp(i8* %459, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.89, i64 0, i64 0))
%461 = icmp ne i64 %460, 0
br i1 %461, label %598, label %462
462: ; preds = %456
%463 = load i32, i32* %16
%464 = icmp eq i32 %463, 0
br i1 %464, label %465, label %480
465: ; preds = %462
%466 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([36 x i8], [36 x i8]* @.str.90, i64 0, i64 0))
%467 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([14 x i8], [14 x i8]* @.str.91, i64 0, i64 0))
%468 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([135 x i8], [135 x i8]* @.str.92, i64 0, i64 0))
%469 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([60 x i8], [60 x i8]* @.str.93, i64 0, i64 0))
%470 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([71 x i8], [71 x i8]* @.str.94, i64 0, i64 0))
%471 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([60 x i8], [60 x i8]* @.str.95, i64 0, i64 0))
%472 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([59 x i8], [59 x i8]* @.str.96, i64 0, i64 0))
%473 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([56 x i8], [56 x i8]* @.str.97, i64 0, i64 0))
%474 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([50 x i8], [50 x i8]* @.str.98, i64 0, i64 0))
%475 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([82 x i8], [82 x i8]* @.str.99, i64 0, i64 0))
%476 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([89 x i8], [89 x i8]* @.str.100, i64 0, i64 0))
%477 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.3, i64 0, i64 0))
%478 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([87 x i8], [87 x i8]* @.str.101, i64 0, i64 0))
%479 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.102, i64 0, i64 0))
store i32 1, i32* %16
br label %480
480: ; preds = %465, %462
%481 = getelementptr inbounds [8096 x i8], [8096 x i8]* %9, i64 0, i64 0
store i8* %481, i8** %8
%482 = call i8* @my_strsep(i8** %8, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.38, i64 0, i64 0))
store i8* %482, i8** %7
%483 = call i8* @my_strsep(i8** %8, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.39, i64 0, i64 0))
store i8* %483, i8** %7
%484 = load i8*, i8** %7
%485 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([24 x i8], [24 x i8]* @.str.103, i64 0, i64 0), i8* %484)
%486 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([14 x i8], [14 x i8]* @.str.91, i64 0, i64 0))
%487 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([54 x i8], [54 x i8]* @.str.104, i64 0, i64 0))
%488 = load i8*, i8** %7
%489 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.105, i64 0, i64 0), i8* %488)
%490 = call i8* @my_strsep(i8** %8, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.43, i64 0, i64 0))
store i8* %490, i8** %7
%491 = load i8*, i8** %7
%492 = getelementptr inbounds i8, i8* %491, i64 1
%493 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.86, i64 0, i64 0), i8* %492)
%494 = call i8* @my_strsep(i8** %8, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.43, i64 0, i64 0))
store i8* %494, i8** %7
%495 = load i8*, i8** %7
%496 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.106, i64 0, i64 0), i8* %495)
%497 = call i8* @my_strsep(i8** %8, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.43, i64 0, i64 0))
store i8* %497, i8** %7
%498 = load i8*, i8** %7
%499 = icmp ne i8* %498, null
br i1 %499, label %500, label %507
500: ; preds = %480
%501 = load i8*, i8** %7
%502 = call i64 @strcmp(i8* %501, i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.45, i64 0, i64 0))
%503 = icmp ne i64 %502, 0
br i1 %503, label %504, label %507
504: ; preds = %500
%505 = load i8*, i8** %7
%506 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.107, i64 0, i64 0), i8* %505)
br label %507
507: ; preds = %504, %500, %480
%508 = call i8* @my_strsep(i8** %8, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.43, i64 0, i64 0))
store i8* %508, i8** %7
%509 = load i8*, i8** %7
%510 = icmp ne i8* %509, null
br i1 %510, label %511, label %518
511: ; preds = %507
%512 = load i8*, i8** %7
%513 = call i64 @strcmp(i8* %512, i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.45, i64 0, i64 0))
%514 = icmp ne i64 %513, 0
br i1 %514, label %515, label %518
515: ; preds = %511
%516 = load i8*, i8** %7
%517 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([20 x i8], [20 x i8]* @.str.108, i64 0, i64 0), i8* %516)
br label %518
518: ; preds = %515, %511, %507
%519 = call i8* @my_strsep(i8** %8, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.43, i64 0, i64 0))
store i8* %519, i8** %7
%520 = load i8*, i8** %7
%521 = call i32 @atoi(i8* %520)
%522 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([24 x i8], [24 x i8]* @.str.109, i64 0, i64 0), i32 %521)
%523 = call i8* @my_strsep(i8** %8, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.43, i64 0, i64 0))
store i8* %523, i8** %7
%524 = load i8*, i8** %7
%525 = call i32 @atoi(i8* %524)
%526 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([27 x i8], [27 x i8]* @.str.110, i64 0, i64 0), i32 %525)
%527 = call i8* @my_strsep(i8** %8, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.43, i64 0, i64 0))
store i8* %527, i8** %7
%528 = load i8*, i8** %7
%529 = icmp ne i8* %528, null
br i1 %529, label %530, label %537
530: ; preds = %518
%531 = load i8*, i8** %7
%532 = call i64 @strcmp(i8* %531, i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.45, i64 0, i64 0))
%533 = icmp ne i64 %532, 0
br i1 %533, label %534, label %537
534: ; preds = %530
%535 = load i8*, i8** %7
%536 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([25 x i8], [25 x i8]* @.str.111, i64 0, i64 0), i8* %535)
br label %537
537: ; preds = %534, %530, %518
%538 = call i8* @my_strsep(i8** %8, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.43, i64 0, i64 0))
store i8* %538, i8** %7
%539 = load i8*, i8** %7
%540 = call i32 @atoi(i8* %539)
store i32 %540, i32* %10
%541 = call i8* @my_strsep(i8** %8, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.43, i64 0, i64 0))
store i8* %541, i8** %7
%542 = load i8*, i8** %7
%543 = call i32 @atoi(i8* %542)
store i32 %543, i32* %13
%544 = call i8* @my_strsep(i8** %8, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.43, i64 0, i64 0))
store i8* %544, i8** %7
%545 = load i8*, i8** %7
%546 = call i32 @atoi(i8* %545)
store i32 %546, i32* %14
store i32 0, i32* %15
%547 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([23 x i8], [23 x i8]* @.str.112, i64 0, i64 0))
%548 = load i32, i32* %10
%549 = icmp eq i32 %548, 1
br i1 %549, label %556, label %550
550: ; preds = %537
%551 = load i32, i32* %13
%552 = icmp eq i32 %551, 1
br i1 %552, label %556, label %553
553: ; preds = %550
%554 = load i32, i32* %14
%555 = icmp eq i32 %554, 1
br i1 %555, label %556, label %582
556: ; preds = %553, %550, %537
%557 = load i32, i32* %13
%558 = icmp eq i32 %557, 1
br i1 %558, label %559, label %561
559: ; preds = %556
%560 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.75, i64 0, i64 0))
store i32 1, i32* %15
br label %561
561: ; preds = %559, %556
%562 = load i32, i32* %14
%563 = icmp eq i32 %562, 1
br i1 %563, label %564, label %571
564: ; preds = %561
%565 = load i32, i32* %15
%566 = icmp eq i32 %565, 1
br i1 %566, label %567, label %569
567: ; preds = %564
%568 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.71, i64 0, i64 0))
br label %569
569: ; preds = %567, %564
%570 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.76, i64 0, i64 0))
store i32 1, i32* %15
br label %571
571: ; preds = %569, %561
%572 = load i32, i32* %10
%573 = icmp eq i32 %572, 1
br i1 %573, label %574, label %581
574: ; preds = %571
%575 = load i32, i32* %15
%576 = icmp eq i32 %575, 1
br i1 %576, label %577, label %579
577: ; preds = %574
%578 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.71, i64 0, i64 0))
br label %579
579: ; preds = %577, %574
%580 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.34, i64 0, i64 0))
br label %581
581: ; preds = %579, %571
br label %584
582: ; preds = %553
%583 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.73, i64 0, i64 0))
br label %584
584: ; preds = %582, %581
%585 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.3, i64 0, i64 0))
%586 = call i8* @my_strsep(i8** %8, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.52, i64 0, i64 0))
store i8* %586, i8** %7
%587 = load i8*, i8** %7
%588 = icmp ne i8* %587, null
br i1 %588, label %589, label %596
589: ; preds = %584
%590 = load i8*, i8** %7
%591 = call i64 @strcmp(i8* %590, i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.45, i64 0, i64 0))
%592 = icmp ne i64 %591, 0
br i1 %592, label %593, label %596
593: ; preds = %589
%594 = load i8*, i8** %7
%595 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([20 x i8], [20 x i8]* @.str.113, i64 0, i64 0), i8* %594)
br label %596
596: ; preds = %593, %589, %584
%597 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.54, i64 0, i64 0))
br label %598
598: ; preds = %596, %456, %452
%599 = getelementptr inbounds [8096 x i8], [8096 x i8]* %9, i64 0, i64 0
%600 = call i64 @strstr(i8* %599, i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.114, i64 0, i64 0))
%601 = icmp ne i64 %600, 0
br i1 %601, label %602, label %626
602: ; preds = %598
%603 = load i8**, i8*** %5
%604 = getelementptr inbounds i8*, i8** %603, i64 2
%605 = load i8*, i8** %604
%606 = call i64 @strcmp(i8* %605, i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.115, i64 0, i64 0))
%607 = icmp ne i64 %606, 0
br i1 %607, label %626, label %608
608: ; preds = %602
%609 = getelementptr inbounds [8096 x i8], [8096 x i8]* %9, i64 0, i64 0
%610 = call i8* @strtok(i8* %609, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.38, i64 0, i64 0))
store i8* %610, i8** %7
%611 = call i8* @strtok(i8* null, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.39, i64 0, i64 0))
store i8* %611, i8** %7
%612 = load i8*, i8** %7
%613 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([30 x i8], [30 x i8]* @.str.116, i64 0, i64 0), i8* %612)
%614 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.117, i64 0, i64 0))
%615 = load i8*, i8** %7
%616 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([20 x i8], [20 x i8]* @.str.118, i64 0, i64 0), i8* %615)
%617 = call i8* @strtok(i8* null, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.43, i64 0, i64 0))
store i8* %617, i8** %7
%618 = load i8*, i8** %7
%619 = getelementptr inbounds i8, i8* %618, i64 1
%620 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.44, i64 0, i64 0), i8* %619)
%621 = call i8* @strtok(i8* null, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.43, i64 0, i64 0))
store i8* %621, i8** %7
%622 = call i8* @strtok(i8* null, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.3, i64 0, i64 0))
store i8* %622, i8** %7
%623 = load i8*, i8** %7
%624 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([14 x i8], [14 x i8]* @.str.119, i64 0, i64 0), i8* %623)
%625 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.54, i64 0, i64 0))
br label %626
626: ; preds = %608, %602, %598
%627 = getelementptr inbounds [8096 x i8], [8096 x i8]* %9, i64 0, i64 0
%628 = call i64 @strstr(i8* %627, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.120, i64 0, i64 0))
%629 = icmp ne i64 %628, 0
br i1 %629, label %630, label %786
630: ; preds = %626
%631 = load i8**, i8*** %5
%632 = getelementptr inbounds i8*, i8** %631, i64 2
%633 = load i8*, i8** %632
%634 = call i64 @strcmp(i8* %633, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.121, i64 0, i64 0))
%635 = icmp ne i64 %634, 0
br i1 %635, label %786, label %636
636: ; preds = %630
%637 = load i32, i32* %16
%638 = icmp eq i32 %637, 0
br i1 %638, label %639, label %657
639: ; preds = %636
%640 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([39 x i8], [39 x i8]* @.str.122, i64 0, i64 0))
%641 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([17 x i8], [17 x i8]* @.str.123, i64 0, i64 0))
%642 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([105 x i8], [105 x i8]* @.str.124, i64 0, i64 0))
%643 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([63 x i8], [63 x i8]* @.str.125, i64 0, i64 0))
%644 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([74 x i8], [74 x i8]* @.str.126, i64 0, i64 0))
%645 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([126 x i8], [126 x i8]* @.str.127, i64 0, i64 0))
%646 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([77 x i8], [77 x i8]* @.str.128, i64 0, i64 0))
%647 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([68 x i8], [68 x i8]* @.str.129, i64 0, i64 0))
%648 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([63 x i8], [63 x i8]* @.str.130, i64 0, i64 0))
%649 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([62 x i8], [62 x i8]* @.str.131, i64 0, i64 0))
%650 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([56 x i8], [56 x i8]* @.str.97, i64 0, i64 0))
%651 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([50 x i8], [50 x i8]* @.str.98, i64 0, i64 0))
%652 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([82 x i8], [82 x i8]* @.str.99, i64 0, i64 0))
%653 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([89 x i8], [89 x i8]* @.str.100, i64 0, i64 0))
%654 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.3, i64 0, i64 0))
%655 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([90 x i8], [90 x i8]* @.str.132, i64 0, i64 0))
%656 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.102, i64 0, i64 0))
store i32 1, i32* %16
br label %657
657: ; preds = %639, %636
%658 = getelementptr inbounds [8096 x i8], [8096 x i8]* %9, i64 0, i64 0
store i8* %658, i8** %8
%659 = call i8* @my_strsep(i8** %8, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.38, i64 0, i64 0))
store i8* %659, i8** %7
%660 = call i8* @my_strsep(i8** %8, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.39, i64 0, i64 0))
store i8* %660, i8** %7
%661 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.133, i64 0, i64 0))
%662 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([17 x i8], [17 x i8]* @.str.123, i64 0, i64 0))
%663 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([61 x i8], [61 x i8]* @.str.134, i64 0, i64 0))
%664 = load i8*, i8** %7
%665 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([17 x i8], [17 x i8]* @.str.135, i64 0, i64 0), i8* %664)
%666 = call i8* @my_strsep(i8** %8, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.43, i64 0, i64 0))
store i8* %666, i8** %7
%667 = load i8*, i8** %7
%668 = getelementptr inbounds i8, i8* %667, i64 1
%669 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([26 x i8], [26 x i8]* @.str.136, i64 0, i64 0), i8* %668)
%670 = call i8* @my_strsep(i8** %8, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.43, i64 0, i64 0))
store i8* %670, i8** %7
%671 = load i8*, i8** %7
%672 = call i32 @atoi(i8* %671)
%673 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.137, i64 0, i64 0), i32 %672)
%674 = call i8* @my_strsep(i8** %8, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.43, i64 0, i64 0))
store i8* %674, i8** %7
%675 = load i8*, i8** %7
%676 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([20 x i8], [20 x i8]* @.str.138, i64 0, i64 0), i8* %675)
%677 = call i8* @my_strsep(i8** %8, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.43, i64 0, i64 0))
store i8* %677, i8** %7
%678 = load i8*, i8** %7
%679 = call i32 @atoi(i8* %678)
%680 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([25 x i8], [25 x i8]* @.str.139, i64 0, i64 0), i32 %679)
%681 = call i8* @my_strsep(i8** %8, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.43, i64 0, i64 0))
store i8* %681, i8** %7
%682 = load i8*, i8** %7
%683 = call i32 @atoi(i8* %682)
%684 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([28 x i8], [28 x i8]* @.str.140, i64 0, i64 0), i32 %683)
%685 = call i8* @my_strsep(i8** %8, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.43, i64 0, i64 0))
store i8* %685, i8** %7
%686 = load i8*, i8** %7
%687 = call i32 @atoi(i8* %686)
%688 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([27 x i8], [27 x i8]* @.str.141, i64 0, i64 0), i32 %687)
%689 = call i8* @my_strsep(i8** %8, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.43, i64 0, i64 0))
store i8* %689, i8** %7
%690 = load i8*, i8** %7
%691 = icmp ne i8* %690, null
br i1 %691, label %692, label %699
692: ; preds = %657
%693 = load i8*, i8** %7
%694 = call i64 @strcmp(i8* %693, i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.45, i64 0, i64 0))
%695 = icmp ne i64 %694, 0
br i1 %695, label %696, label %699
696: ; preds = %692
%697 = load i8*, i8** %7
%698 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.142, i64 0, i64 0), i8* %697)
br label %699
699: ; preds = %696, %692, %657
%700 = call i8* @my_strsep(i8** %8, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.43, i64 0, i64 0))
store i8* %700, i8** %7
%701 = load i8*, i8** %7
%702 = call i32 @atoi(i8* %701)
%703 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([28 x i8], [28 x i8]* @.str.143, i64 0, i64 0), i32 %702)
%704 = call i8* @my_strsep(i8** %8, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.43, i64 0, i64 0))
store i8* %704, i8** %7
%705 = load i8*, i8** %7
%706 = icmp ne i8* %705, null
br i1 %706, label %707, label %714
707: ; preds = %699
%708 = load i8*, i8** %7
%709 = call i64 @strcmp(i8* %708, i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.45, i64 0, i64 0))
%710 = icmp ne i64 %709, 0
br i1 %710, label %711, label %714
711: ; preds = %707
%712 = load i8*, i8** %7
%713 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([26 x i8], [26 x i8]* @.str.144, i64 0, i64 0), i8* %712)
br label %714
714: ; preds = %711, %707, %699
%715 = call i8* @my_strsep(i8** %8, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.43, i64 0, i64 0))
store i8* %715, i8** %7
%716 = load i8*, i8** %7
%717 = call i32 @atoi(i8* %716)
store i32 %717, i32* %10
%718 = call i8* @my_strsep(i8** %8, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.43, i64 0, i64 0))
store i8* %718, i8** %7
%719 = load i8*, i8** %7
%720 = call i32 @atoi(i8* %719)
store i32 %720, i32* %12
%721 = call i8* @my_strsep(i8** %8, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.43, i64 0, i64 0))
store i8* %721, i8** %7
%722 = load i8*, i8** %7
%723 = call i32 @atoi(i8* %722)
store i32 %723, i32* %11
store i32 0, i32* %15
%724 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([24 x i8], [24 x i8]* @.str.145, i64 0, i64 0))
%725 = load i32, i32* %10
%726 = icmp eq i32 %725, 1
br i1 %726, label %733, label %727
727: ; preds = %714
%728 = load i32, i32* %12
%729 = icmp eq i32 %728, 1
br i1 %729, label %733, label %730
730: ; preds = %727
%731 = load i32, i32* %11
%732 = icmp eq i32 %731, 1
br i1 %732, label %733, label %759
733: ; preds = %730, %727, %714
%734 = load i32, i32* %11
%735 = icmp eq i32 %734, 1
br i1 %735, label %736, label %738
736: ; preds = %733
%737 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.70, i64 0, i64 0))
store i32 1, i32* %15
br label %738
738: ; preds = %736, %733
%739 = load i32, i32* %12
%740 = icmp eq i32 %739, 1
br i1 %740, label %741, label %748
741: ; preds = %738
%742 = load i32, i32* %15
%743 = icmp eq i32 %742, 1
br i1 %743, label %744, label %746
744: ; preds = %741
%745 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.71, i64 0, i64 0))
br label %746
746: ; preds = %744, %741
%747 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.72, i64 0, i64 0))
store i32 1, i32* %15
br label %748
748: ; preds = %746, %738
%749 = load i32, i32* %10
%750 = icmp eq i32 %749, 1
br i1 %750, label %751, label %758
751: ; preds = %748
%752 = load i32, i32* %15
%753 = icmp eq i32 %752, 1
br i1 %753, label %754, label %756
754: ; preds = %751
%755 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.71, i64 0, i64 0))
br label %756
756: ; preds = %754, %751
%757 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.34, i64 0, i64 0))
br label %758
758: ; preds = %756, %748
br label %761
759: ; preds = %730
%760 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.73, i64 0, i64 0))
br label %761
761: ; preds = %759, %758
%762 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.3, i64 0, i64 0))
%763 = call i8* @my_strsep(i8** %8, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.43, i64 0, i64 0))
store i8* %763, i8** %7
%764 = load i8*, i8** %7
%765 = icmp ne i8* %764, null
br i1 %765, label %766, label %773
766: ; preds = %761
%767 = load i8*, i8** %7
%768 = call i64 @strcmp(i8* %767, i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.45, i64 0, i64 0))
%769 = icmp ne i64 %768, 0
br i1 %769, label %770, label %773
770: ; preds = %766
%771 = load i8*, i8** %7
%772 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([20 x i8], [20 x i8]* @.str.113, i64 0, i64 0), i8* %771)
br label %773
773: ; preds = %770, %766, %761
%774 = call i8* @my_strsep(i8** %8, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.52, i64 0, i64 0))
store i8* %774, i8** %7
%775 = load i8*, i8** %7
%776 = icmp ne i8* %775, null
br i1 %776, label %777, label %784
777: ; preds = %773
%778 = load i8*, i8** %7
%779 = call i64 @strcmp(i8* %778, i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.45, i64 0, i64 0))
%780 = icmp ne i64 %779, 0
br i1 %780, label %781, label %784
781: ; preds = %777
%782 = load i8*, i8** %7
%783 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([21 x i8], [21 x i8]* @.str.146, i64 0, i64 0), i8* %782)
br label %784
784: ; preds = %781, %777, %773
%785 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.54, i64 0, i64 0))
br label %786
786: ; preds = %784, %630, %626
%787 = getelementptr inbounds [8096 x i8], [8096 x i8]* %9, i64 0, i64 0
%788 = call i64 @strstr(i8* %787, i8* getelementptr inbounds ([21 x i8], [21 x i8]* @.str.147, i64 0, i64 0))
%789 = icmp ne i64 %788, 0
br i1 %789, label %790, label %824
790: ; preds = %786
%791 = load i8**, i8*** %5
%792 = getelementptr inbounds i8*, i8** %791, i64 2
%793 = load i8*, i8** %792
%794 = call i64 @strcmp(i8* %793, i8* getelementptr inbounds ([21 x i8], [21 x i8]* @.str.148, i64 0, i64 0))
%795 = icmp ne i64 %794, 0
br i1 %795, label %824, label %796
796: ; preds = %790
%797 = load i32, i32* %17
%798 = add nsw i32 %797, 1
store i32 %798, i32* %17
%799 = getelementptr inbounds [8096 x i8], [8096 x i8]* %9, i64 0, i64 0
store i8* %799, i8** %8
%800 = call i8* @my_strsep(i8** %8, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.38, i64 0, i64 0))
store i8* %800, i8** %7
%801 = call i8* @my_strsep(i8** %8, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.39, i64 0, i64 0))
store i8* %801, i8** %7
%802 = load i8*, i8** %7
%803 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([40 x i8], [40 x i8]* @.str.149, i64 0, i64 0), i8* %802)
%804 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([29 x i8], [29 x i8]* @.str.150, i64 0, i64 0))
%805 = load i8*, i8** %7
%806 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([21 x i8], [21 x i8]* @.str.151, i64 0, i64 0), i8* %805)
%807 = call i8* @my_strsep(i8** %8, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.152, i64 0, i64 0))
store i8* %807, i8** %7
%808 = load i8*, i8** %7
%809 = getelementptr inbounds i8, i8* %808, i64 1
%810 = call i32 @atoi(i8* %809)
%811 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([25 x i8], [25 x i8]* @.str.153, i64 0, i64 0), i32 %810)
%812 = call i8* @my_strsep(i8** %8, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.43, i64 0, i64 0))
store i8* %812, i8** %7
%813 = load i8*, i8** %7
%814 = call i32 @atoi(i8* %813)
%815 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([24 x i8], [24 x i8]* @.str.154, i64 0, i64 0), i32 %814)
%816 = call i8* @my_strsep(i8** %8, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.43, i64 0, i64 0))
store i8* %816, i8** %7
%817 = load i8*, i8** %7
%818 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.142, i64 0, i64 0), i8* %817)
%819 = call i8* @my_strsep(i8** %8, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.52, i64 0, i64 0))
store i8* %819, i8** %7
%820 = load i8*, i8** %7
%821 = call i32 @atoi(i8* %820)
%822 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([28 x i8], [28 x i8]* @.str.143, i64 0, i64 0), i32 %821)
%823 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.54, i64 0, i64 0))
br label %824
824: ; preds = %796, %790, %786
%825 = getelementptr inbounds [8096 x i8], [8096 x i8]* %9, i64 0, i64 0
%826 = call i64 @strstr(i8* %825, i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.155, i64 0, i64 0))
%827 = icmp ne i64 %826, 0
br i1 %827, label %828, label %864
828: ; preds = %824
%829 = load i8**, i8*** %5
%830 = getelementptr inbounds i8*, i8** %829, i64 2
%831 = load i8*, i8** %830
%832 = call i64 @strcmp(i8* %831, i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.156, i64 0, i64 0))
%833 = icmp ne i64 %832, 0
br i1 %833, label %864, label %834
834: ; preds = %828
%835 = load i32, i32* %17
%836 = add nsw i32 %835, 1
store i32 %836, i32* %17
%837 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([32 x i8], [32 x i8]* @.str.157, i64 0, i64 0))
%838 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([27 x i8], [27 x i8]* @.str.158, i64 0, i64 0))
%839 = getelementptr inbounds [8096 x i8], [8096 x i8]* %9, i64 0, i64 0
store i8* %839, i8** %8
%840 = call i8* @my_strsep(i8** %8, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.38, i64 0, i64 0))
store i8* %840, i8** %7
%841 = call i8* @my_strsep(i8** %8, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.43, i64 0, i64 0))
store i8* %841, i8** %19
%842 = call i8* @my_strsep(i8** %8, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.39, i64 0, i64 0))
store i8* %842, i8** %20
%843 = load i8*, i8** %19
%844 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.105, i64 0, i64 0), i8* %843)
%845 = load i8*, i8** %20
%846 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([26 x i8], [26 x i8]* @.str.136, i64 0, i64 0), i8* %845)
%847 = call i8* @my_strsep(i8** %8, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.152, i64 0, i64 0))
store i8* %847, i8** %7
%848 = load i8*, i8** %7
%849 = getelementptr inbounds i8, i8* %848, i64 1
%850 = call i32 @atoi(i8* %849)
%851 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([25 x i8], [25 x i8]* @.str.153, i64 0, i64 0), i32 %850)
%852 = call i8* @my_strsep(i8** %8, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.43, i64 0, i64 0))
store i8* %852, i8** %7
%853 = load i8*, i8** %7
%854 = call i32 @atoi(i8* %853)
%855 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([24 x i8], [24 x i8]* @.str.154, i64 0, i64 0), i32 %854)
%856 = call i8* @my_strsep(i8** %8, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.43, i64 0, i64 0))
store i8* %856, i8** %7
%857 = load i8*, i8** %7
%858 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.142, i64 0, i64 0), i8* %857)
%859 = call i8* @my_strsep(i8** %8, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.52, i64 0, i64 0))
store i8* %859, i8** %7
%860 = load i8*, i8** %7
%861 = call i32 @atoi(i8* %860)
%862 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([28 x i8], [28 x i8]* @.str.143, i64 0, i64 0), i32 %861)
%863 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.54, i64 0, i64 0))
br label %864
864: ; preds = %834, %828, %824
%865 = getelementptr inbounds [8096 x i8], [8096 x i8]* %9, i64 0, i64 0
%866 = call i64 @strstr(i8* %865, i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.159, i64 0, i64 0))
%867 = icmp ne i64 %866, 0
br i1 %867, label %868, label %959
868: ; preds = %864
%869 = load i8**, i8*** %5
%870 = getelementptr inbounds i8*, i8** %869, i64 2
%871 = load i8*, i8** %870
%872 = call i64 @strcmp(i8* %871, i8* getelementptr inbounds ([20 x i8], [20 x i8]* @.str.160, i64 0, i64 0))
%873 = icmp ne i64 %872, 0
br i1 %873, label %959, label %874
874: ; preds = %868
%875 = getelementptr inbounds [8096 x i8], [8096 x i8]* %9, i64 0, i64 0
store i8* %875, i8** %8
%876 = call i8* @my_strsep(i8** %8, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.38, i64 0, i64 0))
store i8* %876, i8** %7
%877 = call i8* @my_strsep(i8** %8, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.43, i64 0, i64 0))
store i8* %877, i8** %19
%878 = call i8* @my_strsep(i8** %8, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.39, i64 0, i64 0))
store i8* %878, i8** %20
%879 = call i8* @my_strsep(i8** %8, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.43, i64 0, i64 0))
%880 = getelementptr inbounds i8, i8* %879, i64 1
store i8* %880, i8** %21
%881 = call i8* @my_strsep(i8** %8, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.43, i64 0, i64 0))
store i8* %881, i8** %22
%882 = call i8* @my_strsep(i8** %8, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.43, i64 0, i64 0))
store i8* %882, i8** %7
%883 = load i32, i32* %17
%884 = add nsw i32 %883, 1
store i32 %884, i32* %17
%885 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([32 x i8], [32 x i8]* @.str.161, i64 0, i64 0))
%886 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([27 x i8], [27 x i8]* @.str.162, i64 0, i64 0))
%887 = load i8*, i8** %21
%888 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([17 x i8], [17 x i8]* @.str.135, i64 0, i64 0), i8* %887)
%889 = load i8*, i8** %22
%890 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([26 x i8], [26 x i8]* @.str.136, i64 0, i64 0), i8* %889)
%891 = load i8*, i8** %19
%892 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([26 x i8], [26 x i8]* @.str.163, i64 0, i64 0), i8* %891)
%893 = load i8*, i8** %20
%894 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([35 x i8], [35 x i8]* @.str.164, i64 0, i64 0), i8* %893)
%895 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([29 x i8], [29 x i8]* @.str.165, i64 0, i64 0))
store i32 0, i32* %18
br label %896
896: ; preds = %916, %874
%897 = load i8*, i8** %7
%898 = load i32, i32* %18
%899 = sext i32 %898 to i64
%900 = getelementptr inbounds i8, i8* %897, i64 %899
%901 = load i8, i8* %900
%902 = sext i8 %901 to i32
%903 = icmp ne i32 %902, 0
br i1 %903, label %904, label %919
904: ; preds = %896
%905 = load i32, i32* %18
%906 = icmp sgt i32 %905, 0
%907 = zext i1 %906 to i64
%908 = select i1 %906, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.71, i64 0, i64 0), i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.45, i64 0, i64 0)
%909 = load i8*, i8** %7
%910 = load i32, i32* %18
%911 = sext i32 %910 to i64
%912 = getelementptr inbounds i8, i8* %909, i64 %911
%913 = load i8, i8* %912
%914 = sext i8 %913 to i32
%915 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.166, i64 0, i64 0), i8* %908, i32 %914)
br label %916
916: ; preds = %904
%917 = load i32, i32* %18
%918 = add nsw i32 %917, 1
store i32 %918, i32* %18
br label %896
919: ; preds = %896
%920 = load i32, i32* %18
%921 = icmp eq i32 %920, 0
br i1 %921, label %922, label %924
922: ; preds = %919
%923 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.73, i64 0, i64 0))
br label %924
924: ; preds = %922, %919
%925 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([72 x i8], [72 x i8]* @.str.167, i64 0, i64 0))
%926 = call i8* @my_strsep(i8** %8, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.52, i64 0, i64 0))
store i8* %926, i8** %7
%927 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([32 x i8], [32 x i8]* @.str.168, i64 0, i64 0))
store i32 0, i32* %18
br label %928
928: ; preds = %948, %924
%929 = load i8*, i8** %7
%930 = load i32, i32* %18
%931 = sext i32 %930 to i64
%932 = getelementptr inbounds i8, i8* %929, i64 %931
%933 = load i8, i8* %932
%934 = sext i8 %933 to i32
%935 = icmp ne i32 %934, 0
br i1 %935, label %936, label %951
936: ; preds = %928
%937 = load i32, i32* %18
%938 = icmp sgt i32 %937, 0
%939 = zext i1 %938 to i64
%940 = select i1 %938, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.71, i64 0, i64 0), i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.45, i64 0, i64 0)
%941 = load i8*, i8** %7
%942 = load i32, i32* %18
%943 = sext i32 %942 to i64
%944 = getelementptr inbounds i8, i8* %941, i64 %943
%945 = load i8, i8* %944
%946 = sext i8 %945 to i32
%947 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.166, i64 0, i64 0), i8* %940, i32 %946)
br label %948
948: ; preds = %936
%949 = load i32, i32* %18
%950 = add nsw i32 %949, 1
store i32 %950, i32* %18
br label %928
951: ; preds = %928
%952 = load i32, i32* %18
%953 = icmp eq i32 %952, 0
br i1 %953, label %954, label %956
954: ; preds = %951
%955 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.73, i64 0, i64 0))
br label %956
956: ; preds = %954, %951
%957 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([70 x i8], [70 x i8]* @.str.169, i64 0, i64 0))
%958 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.54, i64 0, i64 0))
br label %959
959: ; preds = %956, %868, %864
%960 = getelementptr inbounds [8096 x i8], [8096 x i8]* %9, i64 0, i64 0
%961 = call i64 @strstr(i8* %960, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.170, i64 0, i64 0))
%962 = icmp ne i64 %961, 0
br i1 %962, label %963, label %1059
963: ; preds = %959
%964 = load i8**, i8*** %5
%965 = getelementptr inbounds i8*, i8** %964, i64 2
%966 = load i8*, i8** %965
%967 = call i64 @strcmp(i8* %966, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.171, i64 0, i64 0))
%968 = icmp ne i64 %967, 0
br i1 %968, label %1059, label %969
969: ; preds = %963
%970 = getelementptr inbounds [8096 x i8], [8096 x i8]* %9, i64 0, i64 0
store i8* %970, i8** %8
%971 = call i8* @my_strsep(i8** %8, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.38, i64 0, i64 0))
store i8* %971, i8** %7
%972 = call i8* @my_strsep(i8** %8, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.39, i64 0, i64 0))
store i8* %972, i8** %7
%973 = load i8*, i8** %7
%974 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([31 x i8], [31 x i8]* @.str.172, i64 0, i64 0), i8* %973)
%975 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([21 x i8], [21 x i8]* @.str.173, i64 0, i64 0))
%976 = load i8*, i8** %7
%977 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([69 x i8], [69 x i8]* @.str.174, i64 0, i64 0), i8* %976)
%978 = call i8* @my_strsep(i8** %8, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.43, i64 0, i64 0))
store i8* %978, i8** %7
%979 = load i8*, i8** %7
%980 = getelementptr inbounds i8, i8* %979, i64 1
%981 = icmp ne i8* %980, null
br i1 %981, label %982, label %991
982: ; preds = %969
%983 = load i8*, i8** %7
%984 = getelementptr inbounds i8, i8* %983, i64 1
%985 = call i64 @strcmp(i8* %984, i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.45, i64 0, i64 0))
%986 = icmp ne i64 %985, 0
br i1 %986, label %987, label %991
987: ; preds = %982
%988 = load i8*, i8** %7
%989 = getelementptr inbounds i8, i8* %988, i64 1
%990 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([17 x i8], [17 x i8]* @.str.175, i64 0, i64 0), i8* %989)
br label %991
991: ; preds = %987, %982, %969
%992 = call i8* @my_strsep(i8** %8, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.43, i64 0, i64 0))
store i8* %992, i8** %7
%993 = load i8*, i8** %7
%994 = icmp ne i8* %993, null
br i1 %994, label %995, label %1002
995: ; preds = %991
%996 = load i8*, i8** %7
%997 = call i64 @strcmp(i8* %996, i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.45, i64 0, i64 0))
%998 = icmp ne i64 %997, 0
br i1 %998, label %999, label %1002
999: ; preds = %995
%1000 = load i8*, i8** %7
%1001 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([17 x i8], [17 x i8]* @.str.176, i64 0, i64 0), i8* %1000)
br label %1002
1002: ; preds = %999, %995, %991
%1003 = call i8* @my_strsep(i8** %8, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.43, i64 0, i64 0))
store i8* %1003, i8** %7
%1004 = load i8*, i8** %7
%1005 = icmp ne i8* %1004, null
br i1 %1005, label %1006, label %1013
1006: ; preds = %1002
%1007 = load i8*, i8** %7
%1008 = call i64 @strcmp(i8* %1007, i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.45, i64 0, i64 0))
%1009 = icmp ne i64 %1008, 0
br i1 %1009, label %1010, label %1013
1010: ; preds = %1006
%1011 = load i8*, i8** %7
%1012 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([17 x i8], [17 x i8]* @.str.177, i64 0, i64 0), i8* %1011)
br label %1013
1013: ; preds = %1010, %1006, %1002
%1014 = call i8* @my_strsep(i8** %8, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.43, i64 0, i64 0))
store i8* %1014, i8** %7
%1015 = load i8*, i8** %7
%1016 = icmp ne i8* %1015, null
br i1 %1016, label %1017, label %1024
1017: ; preds = %1013
%1018 = load i8*, i8** %7
%1019 = call i64 @strcmp(i8* %1018, i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.45, i64 0, i64 0))
%1020 = icmp ne i64 %1019, 0
br i1 %1020, label %1021, label %1024
1021: ; preds = %1017
%1022 = load i8*, i8** %7
%1023 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.178, i64 0, i64 0), i8* %1022)
br label %1024
1024: ; preds = %1021, %1017, %1013
%1025 = call i8* @my_strsep(i8** %8, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.43, i64 0, i64 0))
store i8* %1025, i8** %7
%1026 = load i8*, i8** %7
%1027 = icmp ne i8* %1026, null
br i1 %1027, label %1028, label %1035
1028: ; preds = %1024
%1029 = load i8*, i8** %7
%1030 = call i64 @strcmp(i8* %1029, i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.45, i64 0, i64 0))
%1031 = icmp ne i64 %1030, 0
br i1 %1031, label %1032, label %1035
1032: ; preds = %1028
%1033 = load i8*, i8** %7
%1034 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([21 x i8], [21 x i8]* @.str.179, i64 0, i64 0), i8* %1033)
br label %1035
1035: ; preds = %1032, %1028, %1024
%1036 = call i8* @my_strsep(i8** %8, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.43, i64 0, i64 0))
store i8* %1036, i8** %7
%1037 = load i8*, i8** %7
%1038 = icmp ne i8* %1037, null
br i1 %1038, label %1039, label %1046
1039: ; preds = %1035
%1040 = load i8*, i8** %7
%1041 = call i64 @strcmp(i8* %1040, i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.45, i64 0, i64 0))
%1042 = icmp ne i64 %1041, 0
br i1 %1042, label %1043, label %1046
1043: ; preds = %1039
%1044 = load i8*, i8** %7
%1045 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.180, i64 0, i64 0), i8* %1044)
br label %1046
1046: ; preds = %1043, %1039, %1035
%1047 = call i8* @my_strsep(i8** %8, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.52, i64 0, i64 0))
store i8* %1047, i8** %7
%1048 = load i8*, i8** %7
%1049 = icmp ne i8* %1048, null
br i1 %1049, label %1050, label %1057
1050: ; preds = %1046
%1051 = load i8*, i8** %7
%1052 = call i64 @strcmp(i8* %1051, i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.45, i64 0, i64 0))
%1053 = icmp ne i64 %1052, 0
br i1 %1053, label %1054, label %1057
1054: ; preds = %1050
%1055 = load i8*, i8** %7
%1056 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.181, i64 0, i64 0), i8* %1055)
br label %1057
1057: ; preds = %1054, %1050, %1046
%1058 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.54, i64 0, i64 0))
br label %1059
1059: ; preds = %1057, %963, %959
%1060 = getelementptr inbounds [8096 x i8], [8096 x i8]* %9, i64 0, i64 0
%1061 = call i64 @strstr(i8* %1060, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.182, i64 0, i64 0))
%1062 = icmp ne i64 %1061, 0
br i1 %1062, label %1063, label %1118
1063: ; preds = %1059
%1064 = load i8**, i8*** %5
%1065 = getelementptr inbounds i8*, i8** %1064, i64 2
%1066 = load i8*, i8** %1065
%1067 = call i64 @strcmp(i8* %1066, i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.183, i64 0, i64 0))
%1068 = icmp ne i64 %1067, 0
br i1 %1068, label %1118, label %1069
1069: ; preds = %1063
%1070 = getelementptr inbounds [8096 x i8], [8096 x i8]* %9, i64 0, i64 0
store i8* %1070, i8** %8
%1071 = call i8* @my_strsep(i8** %8, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.38, i64 0, i64 0))
store i8* %1071, i8** %7
%1072 = call i8* @my_strsep(i8** %8, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.43, i64 0, i64 0))
store i8* %1072, i8** %7
%1073 = load i8*, i8** %7
%1074 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([29 x i8], [29 x i8]* @.str.184, i64 0, i64 0), i8* %1073)
%1075 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([24 x i8], [24 x i8]* @.str.185, i64 0, i64 0))
%1076 = load i8*, i8** %7
%1077 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([72 x i8], [72 x i8]* @.str.186, i64 0, i64 0), i8* %1076)
%1078 = call i8* @my_strsep(i8** %8, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.39, i64 0, i64 0))
store i8* %1078, i8** %7
%1079 = load i8*, i8** %7
%1080 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([25 x i8], [25 x i8]* @.str.187, i64 0, i64 0), i8* %1079)
%1081 = call i8* @my_strsep(i8** %8, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.43, i64 0, i64 0))
store i8* %1081, i8** %7
%1082 = load i8*, i8** %7
%1083 = getelementptr inbounds i8, i8* %1082, i64 1
%1084 = icmp ne i8* %1083, null
br i1 %1084, label %1085, label %1094
1085: ; preds = %1069
%1086 = load i8*, i8** %7
%1087 = getelementptr inbounds i8, i8* %1086, i64 1
%1088 = call i64 @strcmp(i8* %1087, i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.45, i64 0, i64 0))
%1089 = icmp ne i64 %1088, 0
br i1 %1089, label %1090, label %1094
1090: ; preds = %1085
%1091 = load i8*, i8** %7
%1092 = getelementptr inbounds i8, i8* %1091, i64 1
%1093 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.188, i64 0, i64 0), i8* %1092)
br label %1094
1094: ; preds = %1090, %1085, %1069
%1095 = call i8* @my_strsep(i8** %8, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.43, i64 0, i64 0))
store i8* %1095, i8** %7
%1096 = load i8*, i8** %7
%1097 = icmp ne i8* %1096, null
br i1 %1097, label %1098, label %1105
1098: ; preds = %1094
%1099 = load i8*, i8** %7
%1100 = call i64 @strcmp(i8* %1099, i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.45, i64 0, i64 0))
%1101 = icmp ne i64 %1100, 0
br i1 %1101, label %1102, label %1105
1102: ; preds = %1098
%1103 = load i8*, i8** %7
%1104 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([17 x i8], [17 x i8]* @.str.176, i64 0, i64 0), i8* %1103)
br label %1105
1105: ; preds = %1102, %1098, %1094
%1106 = call i8* @my_strsep(i8** %8, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.52, i64 0, i64 0))
store i8* %1106, i8** %7
%1107 = load i8*, i8** %7
%1108 = icmp ne i8* %1107, null
br i1 %1108, label %1109, label %1116
1109: ; preds = %1105
%1110 = load i8*, i8** %7
%1111 = call i64 @strcmp(i8* %1110, i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.45, i64 0, i64 0))
%1112 = icmp ne i64 %1111, 0
br i1 %1112, label %1113, label %1116
1113: ; preds = %1109
%1114 = load i8*, i8** %7
%1115 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([21 x i8], [21 x i8]* @.str.179, i64 0, i64 0), i8* %1114)
br label %1116
1116: ; preds = %1113, %1109, %1105
%1117 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.54, i64 0, i64 0))
br label %1118
1118: ; preds = %1116, %1063, %1059
br label %1119
1119: ; preds = %1118, %113
%1120 = getelementptr inbounds [8096 x i8], [8096 x i8]* %9, i64 0, i64 0
%1121 = load i32*, i32** %6
%1122 = call i32 @fgets(i8* %1120, i32 8095, i32* %1121)
br label %88
1123: ; preds = %88
%1124 = load i32*, i32** %6
%1125 = call i32 @fclose(i32* %1124)
store i32 0, i32* %3
br label %1126
1126: ; preds = %1123, %79, %25
%1127 = load i32, i32* %3
ret i32 %1127
}

LLVM IR (-O2):
@.str.3 = [2 x i8] c"\0A\00"
@.str.4 = [39 x i8] c"Usage: %s <config file> <object type>\0A\00"
@.str.34 = [2 x i8] c"r\00"
@.str.35 = [46 x i8] c"Error: Could not open file '%s' for reading.\0A\00"
@.str.36 = [12 x i8] c"timeperiod[\00"
@.str.37 = [12 x i8] c"timeperiods\00"
@.str.38 = [2 x i8] c"[\00"
@.str.39 = [2 x i8] c"]\00"
@.str.40 = [30 x i8] c"# '%s' timeperiod definition\0A\00"
@.str.42 = [21 x i8] c"\09timeperiod_name\09%s\0A\00"
@.str.43 = [2 x i8] c";\00"
@.str.44 = [12 x i8] c"\09alias\09\09%s\0A\00"
@.str.45 = [1 x i8] zeroinitializer
@.str.46 = [13 x i8] c"\09sunday\09\09%s\0A\00"
@.str.47 = [13 x i8] c"\09monday\09\09%s\0A\00"
@.str.48 = [14 x i8] c"\09tuesday\09\09%s\0A\00"
@.str.49 = [15 x i8] c"\09wednesday\09%s\0A\00"
@.str.50 = [14 x i8] c"\09thursday\09%s\0A\00"
@.str.51 = [13 x i8] c"\09friday\09\09%s\0A\00"
@.str.52 = [4 x i8] c";\0D\0A\00"
@.str.53 = [14 x i8] c"\09saturday\09%s\0A\00"
@.str.55 = [9 x i8] c"command[\00"
@.str.56 = [9 x i8] c"commands\00"
@.str.57 = [27 x i8] c"# '%s' command definition\0A\00"
@.str.59 = [18 x i8] c"\09command_name\09%s\0A\00"
@.str.60 = [18 x i8] c"\09command_line\09%s\0A\00"
@.str.61 = [9 x i8] c"contact[\00"
@.str.62 = [9 x i8] c"contacts\00"
@.str.63 = [27 x i8] c"# '%s' contact definition\0A\00"
@.str.65 = [20 x i8] c"\09contact_name\09\09\09%s\0A\00"
@.str.66 = [14 x i8] c"\09alias\09\09\09\09%s\0A\00"
@.str.67 = [33 x i8] c"\09service_notification_period\09%s\0A\00"
@.str.68 = [30 x i8] c"\09host_notification_period\09%s\0A\00"
@.str.69 = [31 x i8] c"\09service_notification_options\09\00"
@.str.70 = [4 x i8] c"w,u\00"
@.str.71 = [2 x i8] c",\00"
@.str.74 = [28 x i8] c"\09host_notification_options\09\00"
@.str.77 = [35 x i8] c"\09service_notification_commands\09%s\0A\00"
@.str.78 = [32 x i8] c"\09host_notification_commands\09%s\0A\00"
@.str.79 = [14 x i8] c"\09email\09\09\09\09%s\0A\00"
@.str.80 = [14 x i8] c"\09pager\09\09\09\09%s\0A\00"
@.str.81 = [14 x i8] c"contactgroup[\00"
@.str.82 = [14 x i8] c"contactgroups\00"
@.str.83 = [33 x i8] c"# '%s' contact group definition\0A\00"
@.str.85 = [23 x i8] c"\09contactgroup_name\09%s\0A\00"
@.str.86 = [13 x i8] c"\09alias\09\09\09%s\0A\00"
@.str.87 = [15 x i8] c"\09members\09\09\09%s\0A\00"
@.str.88 = [6 x i8] c"host[\00"
@.str.89 = [6 x i8] c"hosts\00"
@.str.103 = [24 x i8] c"# '%s' host definition\0A\00"
@.str.105 = [16 x i8] c"\09host_name\09\09%s\0A\00"
@.str.106 = [15 x i8] c"\09address\09\09\09%s\0A\00"
@.str.107 = [15 x i8] c"\09parents\09\09\09%s\0A\00"
@.str.108 = [20 x i8] c"\09check_command\09\09%s\0A\00"
@.str.109 = [24 x i8] c"\09max_check_attempts\09%d\0A\00"
@.str.110 = [27 x i8] c"\09notification_interval\09%d\0A\00"
@.str.111 = [25 x i8] c"\09notification_period\09%s\0A\00"
@.str.112 = [23 x i8] c"\09notification_options\09\00"
@.str.113 = [20 x i8] c"\09event_handler\09\09%s\0A\00"
@.str.114 = [11 x i8] c"hostgroup[\00"
@.str.115 = [11 x i8] c"hostgroups\00"
@.str.116 = [30 x i8] c"# '%s' host group definition\0A\00"
@.str.118 = [20 x i8] c"\09hostgroup_name\09%s\0A\00"
@.str.119 = [14 x i8] c"\09members\09\09%s\0A\00"
@.str.120 = [9 x i8] c"service[\00"
@.str.121 = [9 x i8] c"services\00"
@.str.135 = [17 x i8] c"\09host_name\09\09\09%s\0A\00"
@.str.136 = [26 x i8] c"\09service_description\09\09%s\0A\00"
@.str.137 = [19 x i8] c"\09is_volatile\09\09\09%d\0A\00"
@.str.138 = [20 x i8] c"\09check_period\09\09\09%s\0A\00"
@.str.139 = [25 x i8] c"\09max_check_attempts\09\09%d\0A\00"
@.str.140 = [28 x i8] c"\09normal_check_interval\09\09%d\0A\00"
@.str.141 = [27 x i8] c"\09retry_check_interval\09\09%d\0A\00"
@.str.142 = [22 x i8] c"\09contact_groups\09\09\09%s\0A\00"
@.str.143 = [28 x i8] c"\09notification_interval\09\09%d\0A\00"
@.str.144 = [26 x i8] c"\09notification_period\09\09%s\0A\00"
@.str.145 = [24 x i8] c"\09notification_options\09\09\00"
@.str.146 = [21 x i8] c"\09check_command\09\09\09%s\0A\00"
@.str.147 = [21 x i8] c"hostgroupescalation[\00"
@.str.148 = [21 x i8] c"hostgroupescalations\00"
@.str.149 = [40 x i8] c"# Hostgroup '%s' escalation definition\0A\00"
@.str.151 = [21 x i8] c"\09hostgroup_name\09\09%s\0A\00"
@.str.152 = [2 x i8] c"-\00"
@.str.153 = [25 x i8] c"\09first_notification\09\09%d\0A\00"
@.str.154 = [24 x i8] c"\09last_notification\09\09%d\0A\00"
@.str.155 = [19 x i8] c"serviceescalation[\00"
@.str.156 = [19 x i8] c"serviceescalations\00"
@.str.159 = [19 x i8] c"servicedependency[\00"
@.str.160 = [20 x i8] c"servicedependencies\00"
@.str.163 = [26 x i8] c"\09dependent_host_name\09\09%s\0A\00"
@.str.164 = [35 x i8] c"\09dependent_service_description\09%s\0A\00"
@.str.165 = [29 x i8] c"\09execution_failure_criteria\09\00"
@.str.166 = [5 x i8] c"%s%c\00"
@.str.168 = [32 x i8] c"\09notification_failure_criteria\09\00"
@.str.170 = [13 x i8] c"hostextinfo[\00"
@.str.171 = [12 x i8] c"hostextinfo\00"
@.str.172 = [31 x i8] c"# '%s' hostextinfo definition\0A\00"
@.str.174 = [69 x i8] c"\09host_name\09\09%s\09\09; The name of the host this data is associated with\0A\00"
@.str.175 = [17 x i8] c"\09notes_url\09\09\09%s\0A\00"
@.str.176 = [17 x i8] c"\09icon_image\09\09%s\0A\00"
@.str.177 = [17 x i8] c"\09vrml_image\09\09%s\0A\00"
@.str.178 = [22 x i8] c"\09statusmap_image\09\09%s\0A\00"
@.str.179 = [21 x i8] c"\09icon_image_alt\09\09%s\0A\00"
@.str.180 = [16 x i8] c"\092d_coords\09\09%s\0A\00"
@.str.181 = [16 x i8] c"\093d_coords\09\09%s\0A\00"
@.str.182 = [16 x i8] c"serviceextinfo[\00"
@.str.183 = [15 x i8] c"serviceextinfo\00"
@.str.186 = [72 x i8] c"\09host_name\09\09%s\09\09; The name of the service this data is associated with\0A\00"
@.str.187 = [25 x i8] c"\09service_description\09%s\0A\00"
@.str.188 = [16 x i8] c"\09notes_url\09\09%s\0A\00"
@str = [28 x i8] c"# serviceextinfo definition\00"
@str.189 = [23 x i8] c"define serviceextinfo{\00"
@str.191 = [20 x i8] c"define hostextinfo{\00"
@str.193 = [31 x i8] c"# Servicedependency definition\00"
@str.194 = [26 x i8] c"define servicedependency{\00"
@str.195 = [71 x i8] c"\09; These are the criteria for which check execution will be suppressed\00"
@str.196 = [69 x i8] c"\09; These are the criteria for which notifications will be suppressed\00"
@str.198 = [31 x i8] c"# Serviceescalation definition\00"
@str.199 = [26 x i8] c"define serviceescalation{\00"
@str.201 = [28 x i8] c"define hostgroupescalation{\00"
@str.203 = [21 x i8] c"# Service definition\00"
@str.205 = [60 x i8] c"\09use\09\09\09\09generic-service\09\09; Name of service template to use\0A\00"
@str.207 = [38 x i8] c"# Generic service definition template\00"
@str.208 = [16 x i8] c"define service{\00"
@str.209 = [104 x i8] c"\09name\09\09\09\09generic-service\09; The 'name' of this service template, referenced in other service definitions\00"
@str.210 = [62 x i8] c"\09active_checks_enabled\09\091\09; Active service checks are enabled\00"
@str.211 = [73 x i8] c"\09passive_checks_enabled\09\091\09; Passive service checks are enabled/accepted\00"
@str.212 = [125 x i8] c"\09parallelize_check\09\091\09; Active service checks should be parallelized (disabling this can lead to major performance problems)\00"
@str.213 = [76 x i8] c"\09obsess_over_service\09\091\09; We should obsess over this service (if necessary)\00"
@str.214 = [67 x i8] c"\09check_freshness\09\09\090\09; Default is to NOT check service 'freshness'\00"
@str.215 = [62 x i8] c"\09notifications_enabled\09\091\09; Service notifications are enabled\00"
@str.216 = [61 x i8] c"\09event_handler_enabled\09\091\09; Service event handler is enabled\00"
@str.221 = [89 x i8] c"\09register\09\09\090\09; DONT REGISTER THIS DEFINITION - ITS NOT A REAL SERVICE, JUST A TEMPLATE!\00"
@str.223 = [18 x i8] c"define hostgroup{\00"
@str.226 = [53 x i8] c"\09use\09\09\09generic-host\09\09; Name of host template to use\0A\00"
@str.228 = [35 x i8] c"# Generic host definition template\00"
@str.229 = [13 x i8] c"define host{\00"
@str.230 = [134 x i8] c"\09name\09\09\09\09generic-host\09; The name of this host template - referenced in other host definitions, used for template recursion/resolution\00"
@str.231 = [59 x i8] c"\09active_checks_enabled\09\091\09; Active host checks are enabled\00"
@str.232 = [70 x i8] c"\09passive_checks_enabled\09\091\09; Passive host checks are enabled/accepted\00"
@str.233 = [59 x i8] c"\09notifications_enabled\09\091\09; Host notifications are enabled\00"
@str.234 = [58 x i8] c"\09event_handler_enabled\09\091\09; Host event handler is enabled\00"
@str.235 = [55 x i8] c"\09flap_detection_enabled\09\091\09; Flap detection is enabled\00"
@str.236 = [49 x i8] c"\09process_perf_data\09\091\09; Process performance data\00"
@str.237 = [81 x i8] c"\09retain_status_information\091\09; Retain status information across program restarts\00"
@str.238 = [88 x i8] c"\09retain_nonstatus_information\091\09; Retain non-status information across program restarts\00"
@str.239 = [86 x i8] c"\09register\09\09\090\09; DONT REGISTER THIS DEFINITION - ITS NOT A REAL HOST, JUST A TEMPLATE!\00"
@str.240 = [4 x i8] c"\09}\0A\00"
@str.241 = [21 x i8] c"define contactgroup{\00"
@str.243 = [16 x i8] c"define contact{\00"
@str.245 = [16 x i8] c"define command{\00"
@str.247 = [19 x i8] c"define timeperiod{\00"
@str.248 = [5 x i8] c"\09}\0A\0A\00"
@str.249 = [29 x i8] c"Nagios Config File Converter\00"
@str.250 = [47 x i8] c"Written by Ethan Galstad (egalstad@nagios.org)\00"
@str.251 = [26 x i8] c"Last Modified: 08-12-2005\00"
@str.252 = [28 x i8] c"Valid object types include:\00"
@str.253 = [13 x i8] c"\09timeperiods\00"
@str.254 = [10 x i8] c"\09commands\00"
@str.255 = [10 x i8] c"\09contacts\00"
@str.256 = [15 x i8] c"\09contactgroups\00"
@str.257 = [7 x i8] c"\09hosts\00"
@str.258 = [12 x i8] c"\09hostgroups\00"
@str.259 = [23 x i8] c"\09hostgroupescalationss\00"
@str.260 = [10 x i8] c"\09services\00"
@str.261 = [21 x i8] c"\09servicedependencies\00"
@str.262 = [20 x i8] c"\09serviceescalations\00"
@str.263 = [13 x i8] c"\09hostextinfo\00"
@str.264 = [16 x i8] c"\09serviceextinfo\00"
@str.265 = [7 x i8] c"Notes:\00"
@str.266 = [67 x i8] c"This utility is designed to aide you in converting your old 'host'\00"
@str.267 = [67 x i8] c"config file(s) to the new template-based config file style. It is\00"
@str.268 = [65 x i8] c"also capable of converting extended host and service information\00"
@str.269 = [41 x i8] c"definitions in your old CGI config file.\00"
@str.270 = [71 x i8] c"Supply the name of your old 'host' config file (or your old CGI config\00"
@str.271 = [68 x i8] c"file if you're converting extended host/service definitions) on the\00"
@str.272 = [70 x i8] c"command line, along with the type of object you would like to produce\00"
@str.273 = [70 x i8] c"a new config file for. Your old config file is not overwritten - new\00"
@str.274 = [73 x i8] c"configuration data is printed to standard output, so you can redirect it\00"
@str.275 = [19 x i8] c"wherever you like.\00"
@str.276 = [67 x i8] c"Please note that you can only specify one type of object at a time\00"
@str.277 = [21 x i8] c"on the command line.\00"
@str.278 = [73 x i8] c"IMPORTANT: This utility will generate Nagios 1.x compliant config files.\00"
@str.279 = [73 x i8] c"However, the config files are not totally compatible with Nagios 2.x, so\00"
@str.280 = [42 x i8] c"you will have to do some manual tweaking.\00"
define i32 @main(i32 %0, i8** nocapture %1) {
%3 = alloca i8*
%4 = alloca [8096 x i8]
%5 = bitcast i8** %3 to i8*
%6 = getelementptr inbounds [8096 x i8], [8096 x i8]* %4, i64 0, i64 0
%7 = icmp eq i32 %0, 3
br i1 %7, label %53, label %8
8: ; preds = %2
%9 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([29 x i8], [29 x i8]* @str.249, i64 0, i64 0))
%10 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([47 x i8], [47 x i8]* @str.250, i64 0, i64 0))
%11 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([26 x i8], [26 x i8]* @str.251, i64 0, i64 0))
%12 = tail call i32 @putchar(i32 10)
%13 = load i8*, i8** %1
%14 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([39 x i8], [39 x i8]* @.str.4, i64 0, i64 0), i8* %13)
%15 = tail call i32 @putchar(i32 10)
%16 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([28 x i8], [28 x i8]* @str.252, i64 0, i64 0))
%17 = tail call i32 @putchar(i32 10)
%18 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([13 x i8], [13 x i8]* @str.253, i64 0, i64 0))
%19 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([10 x i8], [10 x i8]* @str.254, i64 0, i64 0))
%20 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([10 x i8], [10 x i8]* @str.255, i64 0, i64 0))
%21 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([15 x i8], [15 x i8]* @str.256, i64 0, i64 0))
%22 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([7 x i8], [7 x i8]* @str.257, i64 0, i64 0))
%23 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([12 x i8], [12 x i8]* @str.258, i64 0, i64 0))
%24 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([23 x i8], [23 x i8]* @str.259, i64 0, i64 0))
%25 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([10 x i8], [10 x i8]* @str.260, i64 0, i64 0))
%26 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([21 x i8], [21 x i8]* @str.261, i64 0, i64 0))
%27 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([20 x i8], [20 x i8]* @str.262, i64 0, i64 0))
%28 = tail call i32 @putchar(i32 10)
%29 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([13 x i8], [13 x i8]* @str.263, i64 0, i64 0))
%30 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([16 x i8], [16 x i8]* @str.264, i64 0, i64 0))
%31 = tail call i32 @putchar(i32 10)
%32 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([7 x i8], [7 x i8]* @str.265, i64 0, i64 0))
%33 = tail call i32 @putchar(i32 10)
%34 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([67 x i8], [67 x i8]* @str.266, i64 0, i64 0))
%35 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([67 x i8], [67 x i8]* @str.267, i64 0, i64 0))
%36 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([65 x i8], [65 x i8]* @str.268, i64 0, i64 0))
%37 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([41 x i8], [41 x i8]* @str.269, i64 0, i64 0))
%38 = tail call i32 @putchar(i32 10)
%39 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([71 x i8], [71 x i8]* @str.270, i64 0, i64 0))
%40 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([68 x i8], [68 x i8]* @str.271, i64 0, i64 0))
%41 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([70 x i8], [70 x i8]* @str.272, i64 0, i64 0))
%42 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([70 x i8], [70 x i8]* @str.273, i64 0, i64 0))
%43 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([73 x i8], [73 x i8]* @str.274, i64 0, i64 0))
%44 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([19 x i8], [19 x i8]* @str.275, i64 0, i64 0))
%45 = tail call i32 @putchar(i32 10)
%46 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([67 x i8], [67 x i8]* @str.276, i64 0, i64 0))
%47 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([21 x i8], [21 x i8]* @str.277, i64 0, i64 0))
%48 = tail call i32 @putchar(i32 10)
%49 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([73 x i8], [73 x i8]* @str.278, i64 0, i64 0))
%50 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([73 x i8], [73 x i8]* @str.279, i64 0, i64 0))
%51 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([42 x i8], [42 x i8]* @str.280, i64 0, i64 0))
%52 = tail call i32 @putchar(i32 10)
br label %774
53: ; preds = %2
%54 = getelementptr inbounds i8*, i8** %1, i64 1
%55 = load i8*, i8** %54
%56 = tail call i32* @fopen(i8* %55, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.34, i64 0, i64 0))
%57 = icmp eq i32* %56, null
br i1 %57, label %58, label %61
58: ; preds = %53
%59 = load i8*, i8** %54
%60 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([46 x i8], [46 x i8]* @.str.35, i64 0, i64 0), i8* %59)
br label %774
61: ; preds = %53
%62 = call i32 @fgets(i8* %6, i32 8095, i32* %56)
%63 = call i32 @feof(i32* %56)
%64 = icmp eq i32 %63, 0
br i1 %64, label %65, label %772
65: ; preds = %61
%66 = getelementptr inbounds i8*, i8** %1, i64 2
br label %67
67: ; preds = %65, %767
%68 = phi i32 [ 0, %65 ], [ %768, %767 ]
%69 = load i8, i8* %6
switch i8 %69, label %70 [
i8 35, label %767
i8 13, label %767
i8 10, label %767
i8 0, label %767
]
70: ; preds = %67
%71 = call i64 @strstr(i8* %6, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.36, i64 0, i64 0))
%72 = icmp eq i64 %71, 0
br i1 %72, label %143, label %73
73: ; preds = %70
%74 = load i8*, i8** %66
%75 = call i64 @strcmp(i8* %74, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.37, i64 0, i64 0))
%76 = icmp eq i64 %75, 0
br i1 %76, label %77, label %143
77: ; preds = %73
store i8* %6, i8** %3
%78 = call i8* @my_strsep(i8** %3, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.38, i64 0, i64 0))
%79 = call i8* @my_strsep(i8** %3, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.39, i64 0, i64 0))
%80 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([30 x i8], [30 x i8]* @.str.40, i64 0, i64 0), i8* %79)
%81 = call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([19 x i8], [19 x i8]* @str.247, i64 0, i64 0))
%82 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([21 x i8], [21 x i8]* @.str.42, i64 0, i64 0), i8* %79)
%83 = call i8* @my_strsep(i8** %3, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.43, i64 0, i64 0))
%84 = getelementptr inbounds i8, i8* %83, i64 1
%85 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([12 x i8], [12 x i8]* @.str.44, i64 0, i64 0), i8* %84)
%86 = call i8* @my_strsep(i8** %3, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.43, i64 0, i64 0))
%87 = icmp eq i8* %86, null
br i1 %87, label %93, label %88
88: ; preds = %77
%89 = call i64 @strcmp(i8* %86, i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.45, i64 0, i64 0))
%90 = icmp eq i64 %89, 0
br i1 %90, label %93, label %91
91: ; preds = %88
%92 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([13 x i8], [13 x i8]* @.str.46, i64 0, i64 0), i8* %86)
br label %93
93: ; preds = %91, %88, %77
%94 = call i8* @my_strsep(i8** %3, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.43, i64 0, i64 0))
%95 = icmp eq i8* %94, null
br i1 %95, label %101, label %96
96: ; preds = %93
%97 = call i64 @strcmp(i8* %94, i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.45, i64 0, i64 0))
%98 = icmp eq i64 %97, 0
br i1 %98, label %101, label %99
99: ; preds = %96
%100 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([13 x i8], [13 x i8]* @.str.47, i64 0, i64 0), i8* %94)
br label %101
101: ; preds = %99, %96, %93
%102 = call i8* @my_strsep(i8** %3, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.43, i64 0, i64 0))
%103 = icmp eq i8* %102, null
br i1 %103, label %109, label %104
104: ; preds = %101
%105 = call i64 @strcmp(i8* %102, i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.45, i64 0, i64 0))
%106 = icmp eq i64 %105, 0
br i1 %106, label %109, label %107
107: ; preds = %104
%108 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([14 x i8], [14 x i8]* @.str.48, i64 0, i64 0), i8* %102)
br label %109
109: ; preds = %107, %104, %101
%110 = call i8* @my_strsep(i8** %3, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.43, i64 0, i64 0))
%111 = icmp eq i8* %110, null
br i1 %111, label %117, label %112
112: ; preds = %109
%113 = call i64 @strcmp(i8* %110, i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.45, i64 0, i64 0))
%114 = icmp eq i64 %113, 0
br i1 %114, label %117, label %115
115: ; preds = %112
%116 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([15 x i8], [15 x i8]* @.str.49, i64 0, i64 0), i8* %110)
br label %117
117: ; preds = %115, %112, %109
%118 = call i8* @my_strsep(i8** %3, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.43, i64 0, i64 0))
%119 = icmp eq i8* %118, null
br i1 %119, label %125, label %120
120: ; preds = %117
%121 = call i64 @strcmp(i8* %118, i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.45, i64 0, i64 0))
%122 = icmp eq i64 %121, 0
br i1 %122, label %125, label %123
123: ; preds = %120
%124 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([14 x i8], [14 x i8]* @.str.50, i64 0, i64 0), i8* %118)
br label %125
125: ; preds = %123, %120, %117
%126 = call i8* @my_strsep(i8** %3, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.43, i64 0, i64 0))
%127 = icmp eq i8* %126, null
br i1 %127, label %133, label %128
128: ; preds = %125
%129 = call i64 @strcmp(i8* %126, i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.45, i64 0, i64 0))
%130 = icmp eq i64 %129, 0
br i1 %130, label %133, label %131
131: ; preds = %128
%132 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([13 x i8], [13 x i8]* @.str.51, i64 0, i64 0), i8* %126)
br label %133
133: ; preds = %131, %128, %125
%134 = call i8* @my_strsep(i8** %3, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.52, i64 0, i64 0))
%135 = icmp eq i8* %134, null
br i1 %135, label %141, label %136
136: ; preds = %133
%137 = call i64 @strcmp(i8* %134, i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.45, i64 0, i64 0))
%138 = icmp eq i64 %137, 0
br i1 %138, label %141, label %139
139: ; preds = %136
%140 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([14 x i8], [14 x i8]* @.str.53, i64 0, i64 0), i8* %134)
br label %141
141: ; preds = %139, %136, %133
%142 = call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([5 x i8], [5 x i8]* @str.248, i64 0, i64 0))
br label %143
143: ; preds = %141, %73, %70
%144 = call i64 @strstr(i8* %6, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.55, i64 0, i64 0))
%145 = icmp eq i64 %144, 0
br i1 %145, label %160, label %146
146: ; preds = %143
%147 = load i8*, i8** %66
%148 = call i64 @strcmp(i8* %147, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.56, i64 0, i64 0))
%149 = icmp eq i64 %148, 0
br i1 %149, label %150, label %160
150: ; preds = %146
%151 = call i8* @strtok(i8* %6, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.38, i64 0, i64 0))
%152 = call i8* @strtok(i8* null, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.39, i64 0, i64 0))
%153 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([27 x i8], [27 x i8]* @.str.57, i64 0, i64 0), i8* %152)
%154 = call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([16 x i8], [16 x i8]* @str.245, i64 0, i64 0))
%155 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([18 x i8], [18 x i8]* @.str.59, i64 0, i64 0), i8* %152)
%156 = call i8* @strtok(i8* null, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.3, i64 0, i64 0))
%157 = getelementptr inbounds i8, i8* %156, i64 1
%158 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([18 x i8], [18 x i8]* @.str.60, i64 0, i64 0), i8* %157)
%159 = call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([5 x i8], [5 x i8]* @str.248, i64 0, i64 0))
br label %160
160: ; preds = %150, %146, %143
%161 = call i64 @strstr(i8* %6, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.61, i64 0, i64 0))
%162 = icmp eq i64 %161, 0
br i1 %162, label %283, label %163
163: ; preds = %160
%164 = load i8*, i8** %66
%165 = call i64 @strcmp(i8* %164, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.62, i64 0, i64 0))
%166 = icmp eq i64 %165, 0
br i1 %166, label %167, label %283
167: ; preds = %163
store i8* %6, i8** %3
%168 = call i8* @my_strsep(i8** %3, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.38, i64 0, i64 0))
%169 = call i8* @my_strsep(i8** %3, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.39, i64 0, i64 0))
%170 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([27 x i8], [27 x i8]* @.str.63, i64 0, i64 0), i8* %169)
%171 = call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([16 x i8], [16 x i8]* @str.243, i64 0, i64 0))
%172 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([20 x i8], [20 x i8]* @.str.65, i64 0, i64 0), i8* %169)
%173 = call i8* @my_strsep(i8** %3, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.43, i64 0, i64 0))
%174 = getelementptr inbounds i8, i8* %173, i64 1
%175 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([14 x i8], [14 x i8]* @.str.66, i64 0, i64 0), i8* %174)
%176 = call i8* @my_strsep(i8** %3, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.43, i64 0, i64 0))
%177 = icmp eq i8* %176, null
br i1 %177, label %183, label %178
178: ; preds = %167
%179 = call i64 @strcmp(i8* %176, i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.45, i64 0, i64 0))
%180 = icmp eq i64 %179, 0
br i1 %180, label %183, label %181
181: ; preds = %178
%182 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([33 x i8], [33 x i8]* @.str.67, i64 0, i64 0), i8* %176)
br label %183
183: ; preds = %181, %178, %167
%184 = call i8* @my_strsep(i8** %3, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.43, i64 0, i64 0))
%185 = icmp eq i8* %184, null
br i1 %185, label %191, label %186
186: ; preds = %183
%187 = call i64 @strcmp(i8* %184, i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.45, i64 0, i64 0))
%188 = icmp eq i64 %187, 0
br i1 %188, label %191, label %189
189: ; preds = %186
%190 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([30 x i8], [30 x i8]* @.str.68, i64 0, i64 0), i8* %184)
br label %191
191: ; preds = %189, %186, %183
%192 = call i8* @my_strsep(i8** %3, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.43, i64 0, i64 0))
%193 = call i32 @atoi(i8* %192)
%194 = call i8* @my_strsep(i8** %3, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.43, i64 0, i64 0))
%195 = call i32 @atoi(i8* %194)
%196 = call i8* @my_strsep(i8** %3, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.43, i64 0, i64 0))
%197 = call i32 @atoi(i8* %196)
%198 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([31 x i8], [31 x i8]* @.str.69, i64 0, i64 0))
%199 = icmp eq i32 %193, 1
%200 = icmp eq i32 %195, 1
%201 = select i1 %199, i1 true, i1 %200
%202 = icmp eq i32 %197, 1
%203 = select i1 %201, i1 true, i1 %202
br i1 %203, label %204, label %216
204: ; preds = %191
br i1 %202, label %205, label %207
205: ; preds = %204
%206 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([4 x i8], [4 x i8]* @.str.70, i64 0, i64 0))
br i1 %200, label %208, label %212
207: ; preds = %204
br i1 %200, label %210, label %213
208: ; preds = %205
%209 = call i32 @putchar(i32 44)
br label %210
210: ; preds = %207, %208
%211 = call i32 @putchar(i32 99)
br label %212
212: ; preds = %210, %205
br i1 %199, label %214, label %219
213: ; preds = %207
br i1 %199, label %216, label %219
214: ; preds = %212
%215 = call i32 @putchar(i32 44)
br label %216
216: ; preds = %191, %214, %213
%217 = phi i32 [ 114, %213 ], [ 114, %214 ], [ 110, %191 ]
%218 = call i32 @putchar(i32 %217)
br label %219
219: ; preds = %216, %213, %212
%220 = call i32 @putchar(i32 10)
%221 = call i8* @my_strsep(i8** %3, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.43, i64 0, i64 0))
%222 = call i32 @atoi(i8* %221)
%223 = call i8* @my_strsep(i8** %3, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.43, i64 0, i64 0))
%224 = call i32 @atoi(i8* %223)
%225 = call i8* @my_strsep(i8** %3, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.43, i64 0, i64 0))
%226 = call i32 @atoi(i8* %225)
%227 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([28 x i8], [28 x i8]* @.str.74, i64 0, i64 0))
%228 = icmp eq i32 %222, 1
%229 = icmp eq i32 %224, 1
%230 = select i1 %228, i1 true, i1 %229
%231 = icmp eq i32 %226, 1
%232 = select i1 %230, i1 true, i1 %231
br i1 %232, label %233, label %245
233: ; preds = %219
br i1 %229, label %234, label %236
234: ; preds = %233
%235 = call i32 @putchar(i32 100)
br i1 %231, label %237, label %241
236: ; preds = %233
br i1 %231, label %239, label %242
237: ; preds = %234
%238 = call i32 @putchar(i32 44)
br label %239
239: ; preds = %236, %237
%240 = call i32 @putchar(i32 117)
br label %241
241: ; preds = %239, %234
br i1 %228, label %243, label %248
242: ; preds = %236
br i1 %228, label %245, label %248
243: ; preds = %241
%244 = call i32 @putchar(i32 44)
br label %245
245: ; preds = %219, %243, %242
%246 = phi i32 [ 114, %242 ], [ 114, %243 ], [ 110, %219 ]
%247 = call i32 @putchar(i32 %246)
br label %248
248: ; preds = %245, %242, %241
%249 = call i32 @putchar(i32 10)
%250 = call i8* @my_strsep(i8** %3, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.43, i64 0, i64 0))
%251 = icmp eq i8* %250, null
br i1 %251, label %257, label %252
252: ; preds = %248
%253 = call i64 @strcmp(i8* %250, i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.45, i64 0, i64 0))
%254 = icmp eq i64 %253, 0
br i1 %254, label %257, label %255
255: ; preds = %252
%256 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([35 x i8], [35 x i8]* @.str.77, i64 0, i64 0), i8* %250)
br label %257
257: ; preds = %255, %252, %248
%258 = call i8* @my_strsep(i8** %3, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.43, i64 0, i64 0))
%259 = icmp eq i8* %258, null
br i1 %259, label %265, label %260
260: ; preds = %257
%261 = call i64 @strcmp(i8* %258, i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.45, i64 0, i64 0))
%262 = icmp eq i64 %261, 0
br i1 %262, label %265, label %263
263: ; preds = %260
%264 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([32 x i8], [32 x i8]* @.str.78, i64 0, i64 0), i8* %258)
br label %265
265: ; preds = %263, %260, %257
%266 = call i8* @my_strsep(i8** %3, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.43, i64 0, i64 0))
%267 = icmp eq i8* %266, null
br i1 %267, label %273, label %268
268: ; preds = %265
%269 = call i64 @strcmp(i8* %266, i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.45, i64 0, i64 0))
%270 = icmp eq i64 %269, 0
br i1 %270, label %273, label %271
271: ; preds = %268
%272 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([14 x i8], [14 x i8]* @.str.79, i64 0, i64 0), i8* %266)
br label %273
273: ; preds = %271, %268, %265
%274 = call i8* @my_strsep(i8** %3, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.52, i64 0, i64 0))
%275 = icmp eq i8* %274, null
br i1 %275, label %281, label %276
276: ; preds = %273
%277 = call i64 @strcmp(i8* %274, i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.45, i64 0, i64 0))
%278 = icmp eq i64 %277, 0
br i1 %278, label %281, label %279
279: ; preds = %276
%280 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([14 x i8], [14 x i8]* @.str.80, i64 0, i64 0), i8* %274)
br label %281
281: ; preds = %279, %276, %273
%282 = call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([5 x i8], [5 x i8]* @str.248, i64 0, i64 0))
br label %283
283: ; preds = %281, %163, %160
%284 = call i64 @strstr(i8* %6, i8* getelementptr inbounds ([14 x i8], [14 x i8]* @.str.81, i64 0, i64 0))
%285 = icmp eq i64 %284, 0
br i1 %285, label %302, label %286
286: ; preds = %283
%287 = load i8*, i8** %66
%288 = call i64 @strcmp(i8* %287, i8* getelementptr inbounds ([14 x i8], [14 x i8]* @.str.82, i64 0, i64 0))
%289 = icmp eq i64 %288, 0
br i1 %289, label %290, label %302
290: ; preds = %286
%291 = call i8* @strtok(i8* %6, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.38, i64 0, i64 0))
%292 = call i8* @strtok(i8* null, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.39, i64 0, i64 0))
%293 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([33 x i8], [33 x i8]* @.str.83, i64 0, i64 0), i8* %292)
%294 = call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([21 x i8], [21 x i8]* @str.241, i64 0, i64 0))
%295 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([23 x i8], [23 x i8]* @.str.85, i64 0, i64 0), i8* %292)
%296 = call i8* @strtok(i8* null, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.43, i64 0, i64 0))
%297 = getelementptr inbounds i8, i8* %296, i64 1
%298 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([13 x i8], [13 x i8]* @.str.86, i64 0, i64 0), i8* %297)
%299 = call i8* @strtok(i8* null, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.3, i64 0, i64 0))
%300 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([15 x i8], [15 x i8]* @.str.87, i64 0, i64 0), i8* %299)
%301 = call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([5 x i8], [5 x i8]* @str.248, i64 0, i64 0))
br label %302
302: ; preds = %290, %286, %283
%303 = call i64 @strstr(i8* %6, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.88, i64 0, i64 0))
%304 = icmp eq i64 %303, 0
br i1 %304, label %406, label %305
305: ; preds = %302
%306 = load i8*, i8** %66
%307 = call i64 @strcmp(i8* %306, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.89, i64 0, i64 0))
%308 = icmp eq i64 %307, 0
br i1 %308, label %309, label %406
309: ; preds = %305
%310 = icmp eq i32 %68, 0
br i1 %310, label %311, label %326
311: ; preds = %309
%312 = call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([35 x i8], [35 x i8]* @str.228, i64 0, i64 0))
%313 = call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([13 x i8], [13 x i8]* @str.229, i64 0, i64 0))
%314 = call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([134 x i8], [134 x i8]* @str.230, i64 0, i64 0))
%315 = call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([59 x i8], [59 x i8]* @str.231, i64 0, i64 0))
%316 = call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([70 x i8], [70 x i8]* @str.232, i64 0, i64 0))
%317 = call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([59 x i8], [59 x i8]* @str.233, i64 0, i64 0))
%318 = call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([58 x i8], [58 x i8]* @str.234, i64 0, i64 0))
%319 = call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([55 x i8], [55 x i8]* @str.235, i64 0, i64 0))
%320 = call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([49 x i8], [49 x i8]* @str.236, i64 0, i64 0))
%321 = call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([81 x i8], [81 x i8]* @str.237, i64 0, i64 0))
%322 = call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([88 x i8], [88 x i8]* @str.238, i64 0, i64 0))
%323 = call i32 @putchar(i32 10)
%324 = call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([86 x i8], [86 x i8]* @str.239, i64 0, i64 0))
%325 = call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([4 x i8], [4 x i8]* @str.240, i64 0, i64 0))
br label %326
326: ; preds = %311, %309
store i8* %6, i8** %3
%327 = call i8* @my_strsep(i8** %3, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.38, i64 0, i64 0))
%328 = call i8* @my_strsep(i8** %3, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.39, i64 0, i64 0))
%329 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([24 x i8], [24 x i8]* @.str.103, i64 0, i64 0), i8* %328)
%330 = call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([13 x i8], [13 x i8]* @str.229, i64 0, i64 0))
%331 = call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([53 x i8], [53 x i8]* @str.226, i64 0, i64 0))
%332 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([16 x i8], [16 x i8]* @.str.105, i64 0, i64 0), i8* %328)
%333 = call i8* @my_strsep(i8** %3, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.43, i64 0, i64 0))
%334 = getelementptr inbounds i8, i8* %333, i64 1
%335 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([13 x i8], [13 x i8]* @.str.86, i64 0, i64 0), i8* %334)
%336 = call i8* @my_strsep(i8** %3, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.43, i64 0, i64 0))
%337 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([15 x i8], [15 x i8]* @.str.106, i64 0, i64 0), i8* %336)
%338 = call i8* @my_strsep(i8** %3, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.43, i64 0, i64 0))
%339 = icmp eq i8* %338, null
br i1 %339, label %345, label %340
340: ; preds = %326
%341 = call i64 @strcmp(i8* %338, i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.45, i64 0, i64 0))
%342 = icmp eq i64 %341, 0
br i1 %342, label %345, label %343
343: ; preds = %340
%344 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([15 x i8], [15 x i8]* @.str.107, i64 0, i64 0), i8* %338)
br label %345
345: ; preds = %343, %340, %326
%346 = call i8* @my_strsep(i8** %3, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.43, i64 0, i64 0))
%347 = icmp eq i8* %346, null
br i1 %347, label %353, label %348
348: ; preds = %345
%349 = call i64 @strcmp(i8* %346, i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.45, i64 0, i64 0))
%350 = icmp eq i64 %349, 0
br i1 %350, label %353, label %351
351: ; preds = %348
%352 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([20 x i8], [20 x i8]* @.str.108, i64 0, i64 0), i8* %346)
br label %353
353: ; preds = %351, %348, %345
%354 = call i8* @my_strsep(i8** %3, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.43, i64 0, i64 0))
%355 = call i32 @atoi(i8* %354)
%356 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([24 x i8], [24 x i8]* @.str.109, i64 0, i64 0), i32 %355)
%357 = call i8* @my_strsep(i8** %3, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.43, i64 0, i64 0))
%358 = call i32 @atoi(i8* %357)
%359 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([27 x i8], [27 x i8]* @.str.110, i64 0, i64 0), i32 %358)
%360 = call i8* @my_strsep(i8** %3, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.43, i64 0, i64 0))
%361 = icmp eq i8* %360, null
br i1 %361, label %367, label %362
362: ; preds = %353
%363 = call i64 @strcmp(i8* %360, i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.45, i64 0, i64 0))
%364 = icmp eq i64 %363, 0
br i1 %364, label %367, label %365
365: ; preds = %362
%366 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([25 x i8], [25 x i8]* @.str.111, i64 0, i64 0), i8* %360)
br label %367
367: ; preds = %365, %362, %353
%368 = call i8* @my_strsep(i8** %3, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.43, i64 0, i64 0))
%369 = call i32 @atoi(i8* %368)
%370 = call i8* @my_strsep(i8** %3, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.43, i64 0, i64 0))
%371 = call i32 @atoi(i8* %370)
%372 = call i8* @my_strsep(i8** %3, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.43, i64 0, i64 0))
%373 = call i32 @atoi(i8* %372)
%374 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([23 x i8], [23 x i8]* @.str.112, i64 0, i64 0))
%375 = icmp eq i32 %369, 1
%376 = icmp eq i32 %371, 1
%377 = select i1 %375, i1 true, i1 %376
%378 = icmp eq i32 %373, 1
%379 = select i1 %377, i1 true, i1 %378
br i1 %379, label %380, label %392
380: ; preds = %367
br i1 %376, label %381, label %383
381: ; preds = %380
%382 = call i32 @putchar(i32 100)
br i1 %378, label %384, label %388
383: ; preds = %380
br i1 %378, label %386, label %389
384: ; preds = %381
%385 = call i32 @putchar(i32 44)
br label %386
386: ; preds = %383, %384
%387 = call i32 @putchar(i32 117)
br label %388
388: ; preds = %386, %381
br i1 %375, label %390, label %395
389: ; preds = %383
br i1 %375, label %392, label %395
390: ; preds = %388
%391 = call i32 @putchar(i32 44)
br label %392
392: ; preds = %367, %390, %389
%393 = phi i32 [ 114, %389 ], [ 114, %390 ], [ 110, %367 ]
%394 = call i32 @putchar(i32 %393)
br label %395
395: ; preds = %392, %389, %388
%396 = call i32 @putchar(i32 10)
%397 = call i8* @my_strsep(i8** %3, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.52, i64 0, i64 0))
%398 = icmp eq i8* %397, null
br i1 %398, label %404, label %399
399: ; preds = %395
%400 = call i64 @strcmp(i8* %397, i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.45, i64 0, i64 0))
%401 = icmp eq i64 %400, 0
br i1 %401, label %404, label %402
402: ; preds = %399
%403 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([20 x i8], [20 x i8]* @.str.113, i64 0, i64 0), i8* %397)
br label %404
404: ; preds = %402, %399, %395
%405 = call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([5 x i8], [5 x i8]* @str.248, i64 0, i64 0))
br label %406
406: ; preds = %404, %305, %302
%407 = phi i32 [ %68, %305 ], [ 1, %404 ], [ %68, %302 ]
%408 = call i64 @strstr(i8* %6, i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.114, i64 0, i64 0))
%409 = icmp eq i64 %408, 0
br i1 %409, label %427, label %410
410: ; preds = %406
%411 = load i8*, i8** %66
%412 = call i64 @strcmp(i8* %411, i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.115, i64 0, i64 0))
%413 = icmp eq i64 %412, 0
br i1 %413, label %414, label %427
414: ; preds = %410
%415 = call i8* @strtok(i8* %6, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.38, i64 0, i64 0))
%416 = call i8* @strtok(i8* null, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.39, i64 0, i64 0))
%417 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([30 x i8], [30 x i8]* @.str.116, i64 0, i64 0), i8* %416)
%418 = call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([18 x i8], [18 x i8]* @str.223, i64 0, i64 0))
%419 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([20 x i8], [20 x i8]* @.str.118, i64 0, i64 0), i8* %416)
%420 = call i8* @strtok(i8* null, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.43, i64 0, i64 0))
%421 = getelementptr inbounds i8, i8* %420, i64 1
%422 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([12 x i8], [12 x i8]* @.str.44, i64 0, i64 0), i8* %421)
%423 = call i8* @strtok(i8* null, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.43, i64 0, i64 0))
%424 = call i8* @strtok(i8* null, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.3, i64 0, i64 0))
%425 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([14 x i8], [14 x i8]* @.str.119, i64 0, i64 0), i8* %424)
%426 = call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([5 x i8], [5 x i8]* @str.248, i64 0, i64 0))
br label %427
427: ; preds = %414, %410, %406
%428 = call i64 @strstr(i8* %6, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.120, i64 0, i64 0))
%429 = icmp eq i64 %428, 0
br i1 %429, label %543, label %430
430: ; preds = %427
%431 = load i8*, i8** %66
%432 = call i64 @strcmp(i8* %431, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.121, i64 0, i64 0))
%433 = icmp eq i64 %432, 0
br i1 %433, label %434, label %543
434: ; preds = %430
%435 = icmp eq i32 %407, 0
br i1 %435, label %436, label %454
436: ; preds = %434
%437 = call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([38 x i8], [38 x i8]* @str.207, i64 0, i64 0))
%438 = call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([16 x i8], [16 x i8]* @str.208, i64 0, i64 0))
%439 = call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([104 x i8], [104 x i8]* @str.209, i64 0, i64 0))
%440 = call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([62 x i8], [62 x i8]* @str.210, i64 0, i64 0))
%441 = call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([73 x i8], [73 x i8]* @str.211, i64 0, i64 0))
%442 = call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([125 x i8], [125 x i8]* @str.212, i64 0, i64 0))
%443 = call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([76 x i8], [76 x i8]* @str.213, i64 0, i64 0))
%444 = call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([67 x i8], [67 x i8]* @str.214, i64 0, i64 0))
%445 = call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([62 x i8], [62 x i8]* @str.215, i64 0, i64 0))
%446 = call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([61 x i8], [61 x i8]* @str.216, i64 0, i64 0))
%447 = call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([55 x i8], [55 x i8]* @str.235, i64 0, i64 0))
%448 = call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([49 x i8], [49 x i8]* @str.236, i64 0, i64 0))
%449 = call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([81 x i8], [81 x i8]* @str.237, i64 0, i64 0))
%450 = call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([88 x i8], [88 x i8]* @str.238, i64 0, i64 0))
%451 = call i32 @putchar(i32 10)
%452 = call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([89 x i8], [89 x i8]* @str.221, i64 0, i64 0))
%453 = call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([4 x i8], [4 x i8]* @str.240, i64 0, i64 0))
br label %454
454: ; preds = %436, %434
store i8* %6, i8** %3
%455 = call i8* @my_strsep(i8** %3, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.38, i64 0, i64 0))
%456 = call i8* @my_strsep(i8** %3, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.39, i64 0, i64 0))
%457 = call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([21 x i8], [21 x i8]* @str.203, i64 0, i64 0))
%458 = call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([16 x i8], [16 x i8]* @str.208, i64 0, i64 0))
%459 = call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([60 x i8], [60 x i8]* @str.205, i64 0, i64 0))
%460 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([17 x i8], [17 x i8]* @.str.135, i64 0, i64 0), i8* %456)
%461 = call i8* @my_strsep(i8** %3, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.43, i64 0, i64 0))
%462 = getelementptr inbounds i8, i8* %461, i64 1
%463 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([26 x i8], [26 x i8]* @.str.136, i64 0, i64 0), i8* %462)
%464 = call i8* @my_strsep(i8** %3, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.43, i64 0, i64 0))
%465 = call i32 @atoi(i8* %464)
%466 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([19 x i8], [19 x i8]* @.str.137, i64 0, i64 0), i32 %465)
%467 = call i8* @my_strsep(i8** %3, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.43, i64 0, i64 0))
%468 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([20 x i8], [20 x i8]* @.str.138, i64 0, i64 0), i8* %467)
%469 = call i8* @my_strsep(i8** %3, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.43, i64 0, i64 0))
%470 = call i32 @atoi(i8* %469)
%471 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([25 x i8], [25 x i8]* @.str.139, i64 0, i64 0), i32 %470)
%472 = call i8* @my_strsep(i8** %3, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.43, i64 0, i64 0))
%473 = call i32 @atoi(i8* %472)
%474 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([28 x i8], [28 x i8]* @.str.140, i64 0, i64 0), i32 %473)
%475 = call i8* @my_strsep(i8** %3, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.43, i64 0, i64 0))
%476 = call i32 @atoi(i8* %475)
%477 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([27 x i8], [27 x i8]* @.str.141, i64 0, i64 0), i32 %476)
%478 = call i8* @my_strsep(i8** %3, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.43, i64 0, i64 0))
%479 = icmp eq i8* %478, null
br i1 %479, label %485, label %480
480: ; preds = %454
%481 = call i64 @strcmp(i8* %478, i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.45, i64 0, i64 0))
%482 = icmp eq i64 %481, 0
br i1 %482, label %485, label %483
483: ; preds = %480
%484 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([22 x i8], [22 x i8]* @.str.142, i64 0, i64 0), i8* %478)
br label %485
485: ; preds = %483, %480, %454
%486 = call i8* @my_strsep(i8** %3, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.43, i64 0, i64 0))
%487 = call i32 @atoi(i8* %486)
%488 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([28 x i8], [28 x i8]* @.str.143, i64 0, i64 0), i32 %487)
%489 = call i8* @my_strsep(i8** %3, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.43, i64 0, i64 0))
%490 = icmp eq i8* %489, null
br i1 %490, label %496, label %491
491: ; preds = %485
%492 = call i64 @strcmp(i8* %489, i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.45, i64 0, i64 0))
%493 = icmp eq i64 %492, 0
br i1 %493, label %496, label %494
494: ; preds = %491
%495 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([26 x i8], [26 x i8]* @.str.144, i64 0, i64 0), i8* %489)
br label %496
496: ; preds = %494, %491, %485
%497 = call i8* @my_strsep(i8** %3, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.43, i64 0, i64 0))
%498 = call i32 @atoi(i8* %497)
%499 = call i8* @my_strsep(i8** %3, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.43, i64 0, i64 0))
%500 = call i32 @atoi(i8* %499)
%501 = call i8* @my_strsep(i8** %3, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.43, i64 0, i64 0))
%502 = call i32 @atoi(i8* %501)
%503 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([24 x i8], [24 x i8]* @.str.145, i64 0, i64 0))
%504 = icmp eq i32 %498, 1
%505 = icmp eq i32 %500, 1
%506 = select i1 %504, i1 true, i1 %505
%507 = icmp eq i32 %502, 1
%508 = select i1 %506, i1 true, i1 %507
br i1 %508, label %509, label %521
509: ; preds = %496
br i1 %507, label %510, label %512
510: ; preds = %509
%511 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([4 x i8], [4 x i8]* @.str.70, i64 0, i64 0))
br i1 %505, label %513, label %517
512: ; preds = %509
br i1 %505, label %515, label %518
513: ; preds = %510
%514 = call i32 @putchar(i32 44)
br label %515
515: ; preds = %512, %513
%516 = call i32 @putchar(i32 99)
br label %517
517: ; preds = %515, %510
br i1 %504, label %519, label %524
518: ; preds = %512
br i1 %504, label %521, label %524
519: ; preds = %517
%520 = call i32 @putchar(i32 44)
br label %521
521: ; preds = %496, %519, %518
%522 = phi i32 [ 114, %518 ], [ 114, %519 ], [ 110, %496 ]
%523 = call i32 @putchar(i32 %522)
br label %524
524: ; preds = %521, %518, %517
%525 = call i32 @putchar(i32 10)
%526 = call i8* @my_strsep(i8** %3, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.43, i64 0, i64 0))
%527 = icmp eq i8* %526, null
br i1 %527, label %533, label %528
528: ; preds = %524
%529 = call i64 @strcmp(i8* %526, i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.45, i64 0, i64 0))
%530 = icmp eq i64 %529, 0
br i1 %530, label %533, label %531
531: ; preds = %528
%532 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([20 x i8], [20 x i8]* @.str.113, i64 0, i64 0), i8* %526)
br label %533
533: ; preds = %531, %528, %524
%534 = call i8* @my_strsep(i8** %3, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.52, i64 0, i64 0))
%535 = icmp eq i8* %534, null
br i1 %535, label %541, label %536
536: ; preds = %533
%537 = call i64 @strcmp(i8* %534, i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.45, i64 0, i64 0))
%538 = icmp eq i64 %537, 0
br i1 %538, label %541, label %539
539: ; preds = %536
%540 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([21 x i8], [21 x i8]* @.str.146, i64 0, i64 0), i8* %534)
br label %541
541: ; preds = %539, %536, %533
%542 = call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([5 x i8], [5 x i8]* @str.248, i64 0, i64 0))
br label %543
543: ; preds = %541, %430, %427
%544 = phi i32 [ %407, %430 ], [ 1, %541 ], [ %407, %427 ]
%545 = call i64 @strstr(i8* %6, i8* getelementptr inbounds ([21 x i8], [21 x i8]* @.str.147, i64 0, i64 0))
%546 = icmp eq i64 %545, 0
br i1 %546, label %570, label %547
547: ; preds = %543
%548 = load i8*, i8** %66
%549 = call i64 @strcmp(i8* %548, i8* getelementptr inbounds ([21 x i8], [21 x i8]* @.str.148, i64 0, i64 0))
%550 = icmp eq i64 %549, 0
br i1 %550, label %551, label %570
551: ; preds = %547
store i8* %6, i8** %3
%552 = call i8* @my_strsep(i8** %3, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.38, i64 0, i64 0))
%553 = call i8* @my_strsep(i8** %3, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.39, i64 0, i64 0))
%554 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([40 x i8], [40 x i8]* @.str.149, i64 0, i64 0), i8* %553)
%555 = call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([28 x i8], [28 x i8]* @str.201, i64 0, i64 0))
%556 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([21 x i8], [21 x i8]* @.str.151, i64 0, i64 0), i8* %553)
%557 = call i8* @my_strsep(i8** %3, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.152, i64 0, i64 0))
%558 = getelementptr inbounds i8, i8* %557, i64 1
%559 = call i32 @atoi(i8* %558)
%560 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([25 x i8], [25 x i8]* @.str.153, i64 0, i64 0), i32 %559)
%561 = call i8* @my_strsep(i8** %3, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.43, i64 0, i64 0))
%562 = call i32 @atoi(i8* %561)
%563 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([24 x i8], [24 x i8]* @.str.154, i64 0, i64 0), i32 %562)
%564 = call i8* @my_strsep(i8** %3, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.43, i64 0, i64 0))
%565 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([22 x i8], [22 x i8]* @.str.142, i64 0, i64 0), i8* %564)
%566 = call i8* @my_strsep(i8** %3, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.52, i64 0, i64 0))
%567 = call i32 @atoi(i8* %566)
%568 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([28 x i8], [28 x i8]* @.str.143, i64 0, i64 0), i32 %567)
%569 = call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([5 x i8], [5 x i8]* @str.248, i64 0, i64 0))
br label %570
570: ; preds = %551, %547, %543
%571 = call i64 @strstr(i8* %6, i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.155, i64 0, i64 0))
%572 = icmp eq i64 %571, 0
br i1 %572, label %598, label %573
573: ; preds = %570
%574 = load i8*, i8** %66
%575 = call i64 @strcmp(i8* %574, i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.156, i64 0, i64 0))
%576 = icmp eq i64 %575, 0
br i1 %576, label %577, label %598
577: ; preds = %573
%578 = call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([31 x i8], [31 x i8]* @str.198, i64 0, i64 0))
%579 = call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([26 x i8], [26 x i8]* @str.199, i64 0, i64 0))
store i8* %6, i8** %3
%580 = call i8* @my_strsep(i8** %3, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.38, i64 0, i64 0))
%581 = call i8* @my_strsep(i8** %3, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.43, i64 0, i64 0))
%582 = call i8* @my_strsep(i8** %3, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.39, i64 0, i64 0))
%583 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([16 x i8], [16 x i8]* @.str.105, i64 0, i64 0), i8* %581)
%584 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([26 x i8], [26 x i8]* @.str.136, i64 0, i64 0), i8* %582)
%585 = call i8* @my_strsep(i8** %3, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.152, i64 0, i64 0))
%586 = getelementptr inbounds i8, i8* %585, i64 1
%587 = call i32 @atoi(i8* %586)
%588 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([25 x i8], [25 x i8]* @.str.153, i64 0, i64 0), i32 %587)
%589 = call i8* @my_strsep(i8** %3, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.43, i64 0, i64 0))
%590 = call i32 @atoi(i8* %589)
%591 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([24 x i8], [24 x i8]* @.str.154, i64 0, i64 0), i32 %590)
%592 = call i8* @my_strsep(i8** %3, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.43, i64 0, i64 0))
%593 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([22 x i8], [22 x i8]* @.str.142, i64 0, i64 0), i8* %592)
%594 = call i8* @my_strsep(i8** %3, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.52, i64 0, i64 0))
%595 = call i32 @atoi(i8* %594)
%596 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([28 x i8], [28 x i8]* @.str.143, i64 0, i64 0), i32 %595)
%597 = call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([5 x i8], [5 x i8]* @str.248, i64 0, i64 0))
br label %598
598: ; preds = %577, %573, %570
%599 = call i64 @strstr(i8* %6, i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.159, i64 0, i64 0))
%600 = icmp eq i64 %599, 0
br i1 %600, label %659, label %601
601: ; preds = %598
%602 = load i8*, i8** %66
%603 = call i64 @strcmp(i8* %602, i8* getelementptr inbounds ([20 x i8], [20 x i8]* @.str.160, i64 0, i64 0))
%604 = icmp eq i64 %603, 0
br i1 %604, label %605, label %659
605: ; preds = %601
store i8* %6, i8** %3
%606 = call i8* @my_strsep(i8** %3, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.38, i64 0, i64 0))
%607 = call i8* @my_strsep(i8** %3, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.43, i64 0, i64 0))
%608 = call i8* @my_strsep(i8** %3, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.39, i64 0, i64 0))
%609 = call i8* @my_strsep(i8** %3, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.43, i64 0, i64 0))
%610 = getelementptr inbounds i8, i8* %609, i64 1
%611 = call i8* @my_strsep(i8** %3, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.43, i64 0, i64 0))
%612 = call i8* @my_strsep(i8** %3, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.43, i64 0, i64 0))
%613 = call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([31 x i8], [31 x i8]* @str.193, i64 0, i64 0))
%614 = call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([26 x i8], [26 x i8]* @str.194, i64 0, i64 0))
%615 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([17 x i8], [17 x i8]* @.str.135, i64 0, i64 0), i8* %610)
%616 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([26 x i8], [26 x i8]* @.str.136, i64 0, i64 0), i8* %611)
%617 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([26 x i8], [26 x i8]* @.str.163, i64 0, i64 0), i8* %607)
%618 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([35 x i8], [35 x i8]* @.str.164, i64 0, i64 0), i8* %608)
%619 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([29 x i8], [29 x i8]* @.str.165, i64 0, i64 0))
%620 = load i8, i8* %612
%621 = icmp eq i8 %620, 0
br i1 %621, label %634, label %622
622: ; preds = %605, %622
%623 = phi i64 [ %629, %622 ], [ 0, %605 ]
%624 = phi i8 [ %631, %622 ], [ %620, %605 ]
%625 = sext i8 %624 to i32
%626 = icmp eq i64 %623, 0
%627 = select i1 %626, i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.45, i64 0, i64 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.71, i64 0, i64 0)
%628 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.166, i64 0, i64 0), i8* %627, i32 %625)
%629 = add nuw i64 %623, 1
%630 = getelementptr inbounds i8, i8* %612, i64 %629
%631 = load i8, i8* %630
%632 = icmp eq i8 %631, 0
br i1 %632, label %633, label %622
633: ; preds = %622
br i1 %621, label %634, label %636
634: ; preds = %605, %633
%635 = call i32 @putchar(i32 110)
br label %636
636: ; preds = %634, %633
%637 = call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([71 x i8], [71 x i8]* @str.195, i64 0, i64 0))
%638 = call i8* @my_strsep(i8** %3, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.52, i64 0, i64 0))
%639 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([32 x i8], [32 x i8]* @.str.168, i64 0, i64 0))
%640 = load i8, i8* %638
%641 = icmp eq i8 %640, 0
br i1 %641, label %654, label %642
642: ; preds = %636, %642
%643 = phi i64 [ %649, %642 ], [ 0, %636 ]
%644 = phi i8 [ %651, %642 ], [ %640, %636 ]
%645 = sext i8 %644 to i32
%646 = icmp eq i64 %643, 0
%647 = select i1 %646, i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.45, i64 0, i64 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.71, i64 0, i64 0)
%648 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.166, i64 0, i64 0), i8* %647, i32 %645)
%649 = add nuw i64 %643, 1
%650 = getelementptr inbounds i8, i8* %638, i64 %649
%651 = load i8, i8* %650
%652 = icmp eq i8 %651, 0
br i1 %652, label %653, label %642
653: ; preds = %642
br i1 %641, label %654, label %656
654: ; preds = %636, %653
%655 = call i32 @putchar(i32 110)
br label %656
656: ; preds = %654, %653
%657 = call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([69 x i8], [69 x i8]* @str.196, i64 0, i64 0))
%658 = call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([5 x i8], [5 x i8]* @str.248, i64 0, i64 0))
br label %659
659: ; preds = %656, %601, %598
%660 = call i64 @strstr(i8* %6, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.170, i64 0, i64 0))
%661 = icmp eq i64 %660, 0
br i1 %661, label %728, label %662
662: ; preds = %659
%663 = load i8*, i8** %66
%664 = call i64 @strcmp(i8* %663, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.171, i64 0, i64 0))
%665 = icmp eq i64 %664, 0
br i1 %665, label %666, label %728
666: ; preds = %662
store i8* %6, i8** %3
%667 = call i8* @my_strsep(i8** %3, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.38, i64 0, i64 0))
%668 = call i8* @my_strsep(i8** %3, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.39, i64 0, i64 0))
%669 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([31 x i8], [31 x i8]* @.str.172, i64 0, i64 0), i8* %668)
%670 = call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([20 x i8], [20 x i8]* @str.191, i64 0, i64 0))
%671 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([69 x i8], [69 x i8]* @.str.174, i64 0, i64 0), i8* %668)
%672 = call i8* @my_strsep(i8** %3, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.43, i64 0, i64 0))
%673 = getelementptr inbounds i8, i8* %672, i64 1
%674 = call i64 @strcmp(i8* %673, i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.45, i64 0, i64 0))
%675 = icmp eq i64 %674, 0
br i1 %675, label %678, label %676
676: ; preds = %666
%677 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([17 x i8], [17 x i8]* @.str.175, i64 0, i64 0), i8* %673)
br label %678
678: ; preds = %676, %666
%679 = call i8* @my_strsep(i8** %3, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.43, i64 0, i64 0))
%680 = icmp eq i8* %679, null
br i1 %680, label %686, label %681
681: ; preds = %678
%682 = call i64 @strcmp(i8* %679, i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.45, i64 0, i64 0))
%683 = icmp eq i64 %682, 0
br i1 %683, label %686, label %684
684: ; preds = %681
%685 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([17 x i8], [17 x i8]* @.str.176, i64 0, i64 0), i8* %679)
br label %686
686: ; preds = %684, %681, %678
%687 = call i8* @my_strsep(i8** %3, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.43, i64 0, i64 0))
%688 = icmp eq i8* %687, null
br i1 %688, label %694, label %689
689: ; preds = %686
%690 = call i64 @strcmp(i8* %687, i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.45, i64 0, i64 0))
%691 = icmp eq i64 %690, 0
br i1 %691, label %694, label %692
692: ; preds = %689
%693 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([17 x i8], [17 x i8]* @.str.177, i64 0, i64 0), i8* %687)
br label %694
694: ; preds = %692, %689, %686
%695 = call i8* @my_strsep(i8** %3, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.43, i64 0, i64 0))
%696 = icmp eq i8* %695, null
br i1 %696, label %702, label %697
697: ; preds = %694
%698 = call i64 @strcmp(i8* %695, i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.45, i64 0, i64 0))
%699 = icmp eq i64 %698, 0
br i1 %699, label %702, label %700
700: ; preds = %697
%701 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([22 x i8], [22 x i8]* @.str.178, i64 0, i64 0), i8* %695)
br label %702
702: ; preds = %700, %697, %694
%703 = call i8* @my_strsep(i8** %3, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.43, i64 0, i64 0))
%704 = icmp eq i8* %703, null
br i1 %704, label %710, label %705
705: ; preds = %702
%706 = call i64 @strcmp(i8* %703, i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.45, i64 0, i64 0))
%707 = icmp eq i64 %706, 0
br i1 %707, label %710, label %708
708: ; preds = %705
%709 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([21 x i8], [21 x i8]* @.str.179, i64 0, i64 0), i8* %703)
br label %710
710: ; preds = %708, %705, %702
%711 = call i8* @my_strsep(i8** %3, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.43, i64 0, i64 0))
%712 = icmp eq i8* %711, null
br i1 %712, label %718, label %713
713: ; preds = %710
%714 = call i64 @strcmp(i8* %711, i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.45, i64 0, i64 0))
%715 = icmp eq i64 %714, 0
br i1 %715, label %718, label %716
716: ; preds = %713
%717 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([16 x i8], [16 x i8]* @.str.180, i64 0, i64 0), i8* %711)
br label %718
718: ; preds = %716, %713, %710
%719 = call i8* @my_strsep(i8** %3, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.52, i64 0, i64 0))
%720 = icmp eq i8* %719, null
br i1 %720, label %726, label %721
721: ; preds = %718
%722 = call i64 @strcmp(i8* %719, i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.45, i64 0, i64 0))
%723 = icmp eq i64 %722, 0
br i1 %723, label %726, label %724
724: ; preds = %721
%725 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([16 x i8], [16 x i8]* @.str.181, i64 0, i64 0), i8* %719)
br label %726
726: ; preds = %724, %721, %718
%727 = call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([5 x i8], [5 x i8]* @str.248, i64 0, i64 0))
br label %728
728: ; preds = %726, %662, %659
%729 = call i64 @strstr(i8* %6, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.182, i64 0, i64 0))
%730 = icmp eq i64 %729, 0
br i1 %730, label %767, label %731
731: ; preds = %728
%732 = load i8*, i8** %66
%733 = call i64 @strcmp(i8* %732, i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.183, i64 0, i64 0))
%734 = icmp eq i64 %733, 0
br i1 %734, label %735, label %767
735: ; preds = %731
store i8* %6, i8** %3
%736 = call i8* @my_strsep(i8** %3, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.38, i64 0, i64 0))
%737 = call i8* @my_strsep(i8** %3, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.43, i64 0, i64 0))
%738 = call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([28 x i8], [28 x i8]* @str, i64 0, i64 0))
%739 = call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([23 x i8], [23 x i8]* @str.189, i64 0, i64 0))
%740 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([72 x i8], [72 x i8]* @.str.186, i64 0, i64 0), i8* %737)
%741 = call i8* @my_strsep(i8** %3, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.39, i64 0, i64 0))
%742 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([25 x i8], [25 x i8]* @.str.187, i64 0, i64 0), i8* %741)
%743 = call i8* @my_strsep(i8** %3, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.43, i64 0, i64 0))
%744 = getelementptr inbounds i8, i8* %743, i64 1
%745 = call i64 @strcmp(i8* %744, i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.45, i64 0, i64 0))
%746 = icmp eq i64 %745, 0
br i1 %746, label %749, label %747
747: ; preds = %735
%748 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([16 x i8], [16 x i8]* @.str.188, i64 0, i64 0), i8* %744)
br label %749
749: ; preds = %747, %735
%750 = call i8* @my_strsep(i8** %3, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.43, i64 0, i64 0))
%751 = icmp eq i8* %750, null
br i1 %751, label %757, label %752
752: ; preds = %749
%753 = call i64 @strcmp(i8* %750, i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.45, i64 0, i64 0))
%754 = icmp eq i64 %753, 0
br i1 %754, label %757, label %755
755: ; preds = %752
%756 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([17 x i8], [17 x i8]* @.str.176, i64 0, i64 0), i8* %750)
br label %757
757: ; preds = %755, %752, %749
%758 = call i8* @my_strsep(i8** %3, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.52, i64 0, i64 0))
%759 = icmp eq i8* %758, null
br i1 %759, label %765, label %760
760: ; preds = %757
%761 = call i64 @strcmp(i8* %758, i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.45, i64 0, i64 0))
%762 = icmp eq i64 %761, 0
br i1 %762, label %765, label %763
763: ; preds = %760
%764 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([21 x i8], [21 x i8]* @.str.179, i64 0, i64 0), i8* %758)
br label %765
765: ; preds = %763, %760, %757
%766 = call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([5 x i8], [5 x i8]* @str.248, i64 0, i64 0))
br label %767
767: ; preds = %67, %67, %67, %67, %728, %731, %765
%768 = phi i32 [ %68, %67 ], [ %544, %731 ], [ %544, %765 ], [ %544, %728 ], [ %68, %67 ], [ %68, %67 ], [ %68, %67 ]
%769 = call i32 @fgets(i8* %6, i32 8095, i32* %56)
%770 = call i32 @feof(i32* %56)
%771 = icmp eq i32 %770, 0
br i1 %771, label %67, label %772
772: ; preds = %767, %61
%773 = call i32 @fclose(i32* %56)
br label %774
774: ; preds = %772, %58, %8
%775 = phi i32 [ -1, %8 ], [ -1, %58 ], [ 0, %772 ]
ret i32 %775
}