#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 */

/* Variables and functions */
int /*<<< orphan*/ exit(int /*<<< orphan*/);
int /*<<< orphan*/ fprintf(int /*<<< orphan*/, char *);
int /*<<< orphan*/ stderr;
void mfpt_usage() {
  fprintf(stderr, "RNAmfpt [options] input_csv\n\n");
  fprintf(stderr,
          "where input_csv is a CSV file (with *no* header) of the format:\n");
  fprintf(stderr, "k_0,l_0,p_0\n");
  fprintf(stderr, "...,...,...\n");
  fprintf(stderr, "k_n,l_n,p_n\n\n");
  fprintf(stderr, "Options include the following:\n");
  fprintf(stderr, "-A\tstart state, the default is -1 (inferred from input "
                  "data as the first row in the CSV whose entry in the first "
                  "column is 0). If provided, should indicate the 0-indexed "
                  "line in the input CSV file representing the start state.\n");
  fprintf(stderr,
          "-D\tstart/end distance, the default is disabled. When provided, "
          "indicates the base pair distance between the starting / ending "
          "structures. This flag is used in conjunction with the -Q flag, and "
          "is needed in cases when the base pair distance between the two "
          "structures can't be inferred from the input grid.\n");
  fprintf(stderr, "-E\tenergy-based transitions, the default is disabled. If "
                  "this flag is provided, the transition from state a to b "
                  "will be calculated as (min(1, exp(-(E_b - E_a) / RT) / n) "
                  "rather than (min(1, p_b / p_a) / n).\n");
  fprintf(
      stderr,
      "-H\tHastings adjustment, the default is disabled. If this flag is "
      "provided, the input must be in the form of an energy grid, and only "
      "diagonally adjacent moves are permitted (in the all-to-all transition "
      "case, N(X) / N(Y) == 1). Calculating N(X) and N(Y) will respect grid "
      "boundaries and the triangle equality, and the basepair distance between "
      "the two structures for kinetics is inferred from the energy grid.\n");
  fprintf(stderr, "-N\tsequence length, the default is disabled. This flag "
                  "represents the sequence length of the sequence on which "
                  "kinetics is being performed. It is used in conjunction with "
                  "the -O flag to ensure that the graph is fully connected. If "
                  "-O is not explicitly set, the -Q flag must be set.\n");
  fprintf(
      stderr,
      "-O\tepsilon, the default is disabled. This flag should be a "
      "%%f-parseable epsilon value added to *all* positions in the energy grid "
      "(including valid positions not present in the input), which is then "
      "renormalized and used to ensure that the graph is fully connected.\n");
  fprintf(stderr,
          "-P\tpseudoinverse, the default is disabled. If this flag is "
          "provided, the Moore-Penrose pseudoinverse is computed for the "
          "transition probability matrix, rather than the true inverse.\n");
  fprintf(stderr, "-Q\talternative epsilon, the default is disabled. If this "
                  "flag is provided, each accessible position is increased by "
                  ".01 / num_accessible_positions, and then renormalized to "
                  "ensure that all valid positions have a small non-zero "
                  "probability. This flag is mutually exclusive with -O.\n");
  fprintf(stderr,
          "-T\ttransition matrix input, the default is disabled. If this flag "
          "is provided, the input is expected to be a transition probability "
          "matrix, rather than a 2D energy grid. In this case, the first two "
          "columns in the CSV file are row-order indices into the transition "
          "probability matrix, and the third (final) column is the transition "
          "probability of that cell.\n");
  fprintf(stderr, "-V\tverbose, the default is disabled. If this flag is "
                  "provided, light debug data will be printed. To enable heavy "
                  "debugging, use the flags in constants.h\n");
  fprintf(stderr,
          "-X\tsingle basepair moves, the default is disabled. If this flag is "
          "provided, the input must be in the form of an energy grid, and only "
          "diagonally adjacent moves are permitted. This option makes the "
          "assumption that the input is *not* a transition probability matrix "
          "already, and the input energy grid already satisfies the triangle "
          "inequality / parity condition.\n");
  fprintf(stderr, "-Z\tend state, the default is -1 (inferred from input data "
                  "as the first row in the CSV whose entry in the second "
                  "column is 0). If provided, should indicate the 0-indexed "
                  "line in the input CSV file representing the end state.\n");
  fprintf(stderr,
          "\nProgram returns -1 (resp. -2) if the start state (resp. end "
          "state) probability is 0. -3 is returned if the distance between the "
          "two input structures could not be inferred from the input data "
          "(usually also means that one of the states has a 0-probability). "
          "Otherwise returns the MFPT as predicted by matrix inversion.\n");
  exit(0);
}


x86 assembly (clang, -O0):
<mfpt_usage>:
push   %rbp
mov    %rsp,%rbp
mov    0x3eb5(%rip),%rax
mov    (%rax),%edi
lea    0xecc(%rip),%rsi
call   1030 <fprintf@plt>
mov    0x3ea0(%rip),%rax
mov    (%rax),%edi
lea    0xed5(%rip),%rsi
call   1030 <fprintf@plt>
mov    0x3e8b(%rip),%rax
mov    (%rax),%edi
lea    0xf01(%rip),%rsi
call   1030 <fprintf@plt>
mov    0x3e76(%rip),%rax
mov    (%rax),%edi
lea    0xef9(%rip),%rsi
call   1030 <fprintf@plt>
mov    0x3e61(%rip),%rax
mov    (%rax),%edi
lea    0xef1(%rip),%rsi
call   1030 <fprintf@plt>
mov    0x3e4c(%rip),%rax
mov    (%rax),%edi
lea    0xeea(%rip),%rsi
call   1030 <fprintf@plt>
mov    0x3e37(%rip),%rax
mov    (%rax),%edi
lea    0xef5(%rip),%rsi
call   1030 <fprintf@plt>
mov    0x3e22(%rip),%rax
mov    (%rax),%edi
lea    0xfc4(%rip),%rsi
call   1030 <fprintf@plt>
mov    0x3e0d(%rip),%rax
mov    (%rax),%edi
lea    0x10e2(%rip),%rsi
call   1030 <fprintf@plt>
mov    0x3df8(%rip),%rax
mov    (%rax),%edi
lea    0x119e(%rip),%rsi
call   1030 <fprintf@plt>
mov    0x3de3(%rip),%rax
mov    (%rax),%edi
lea    0x1324(%rip),%rsi
call   1030 <fprintf@plt>
mov    0x3dce(%rip),%rax
mov    (%rax),%edi
lea    0x142a(%rip),%rsi
call   1030 <fprintf@plt>
mov    0x3db9(%rip),%rax
mov    (%rax),%edi
lea    0x1520(%rip),%rsi
call   1030 <fprintf@plt>
mov    0x3da4(%rip),%rax
mov    (%rax),%edi
lea    0x15c2(%rip),%rsi
call   1030 <fprintf@plt>
mov    0x3d8f(%rip),%rax
mov    (%rax),%edi
lea    0x16c7(%rip),%rsi
call   1030 <fprintf@plt>
mov    0x3d7a(%rip),%rax
mov    (%rax),%edi
lea    0x1818(%rip),%rsi
call   1030 <fprintf@plt>
mov    0x3d65(%rip),%rax
mov    (%rax),%edi
lea    0x189d(%rip),%rsi
call   1030 <fprintf@plt>
mov    0x3d50(%rip),%rax
mov    (%rax),%edi
lea    0x19f3(%rip),%rsi
call   1030 <fprintf@plt>
mov    0x3d3b(%rip),%rax
mov    (%rax),%edi
lea    0x1abf(%rip),%rsi
call   1030 <fprintf@plt>
xor    %edi,%edi
call   1040 <exit@plt>

x86 assembly (clang, -O2):
<mfpt_usage>:
push   %rbx
mov    0x3eb8(%rip),%rbx
mov    (%rbx),%edi
lea    0xecf(%rip),%rsi
call   1030 <fprintf@plt>
mov    (%rbx),%edi
lea    0xedf(%rip),%rsi
call   1030 <fprintf@plt>
mov    (%rbx),%edi
lea    0xf12(%rip),%rsi
call   1030 <fprintf@plt>
mov    (%rbx),%edi
lea    0xf11(%rip),%rsi
call   1030 <fprintf@plt>
mov    (%rbx),%edi
lea    0xf10(%rip),%rsi
call   1030 <fprintf@plt>
mov    (%rbx),%edi
lea    0xf10(%rip),%rsi
call   1030 <fprintf@plt>
mov    (%rbx),%edi
lea    0xf22(%rip),%rsi
call   1030 <fprintf@plt>
mov    (%rbx),%edi
lea    0xff8(%rip),%rsi
call   1030 <fprintf@plt>
mov    (%rbx),%edi
lea    0x111d(%rip),%rsi
call   1030 <fprintf@plt>
mov    (%rbx),%edi
lea    0x11e0(%rip),%rsi
call   1030 <fprintf@plt>
mov    (%rbx),%edi
lea    0x136d(%rip),%rsi
call   1030 <fprintf@plt>
mov    (%rbx),%edi
lea    0x147a(%rip),%rsi
call   1030 <fprintf@plt>
mov    (%rbx),%edi
lea    0x1577(%rip),%rsi
call   1030 <fprintf@plt>
mov    (%rbx),%edi
lea    0x1620(%rip),%rsi
call   1030 <fprintf@plt>
mov    (%rbx),%edi
lea    0x172c(%rip),%rsi
call   1030 <fprintf@plt>
mov    (%rbx),%edi
lea    0x1884(%rip),%rsi
call   1030 <fprintf@plt>
mov    (%rbx),%edi
lea    0x1910(%rip),%rsi
call   1030 <fprintf@plt>
mov    (%rbx),%edi
lea    0x1a6d(%rip),%rsi
call   1030 <fprintf@plt>
mov    (%rbx),%edi
lea    0x1b40(%rip),%rsi
call   1030 <fprintf@plt>
xor    %edi,%edi
call   1040 <exit@plt>

LLVM IR (-O0):
@stderr = global i32 0
@.str = [30 x i8] c"RNAmfpt [options] input_csv\0A\0A\00"
@.str.1 = [65 x i8] c"where input_csv is a CSV file (with *no* header) of the format:\0A\00"
@.str.2 = [13 x i8] c"k_0,l_0,p_0\0A\00"
@.str.3 = [13 x i8] c"...,...,...\0A\00"
@.str.4 = [14 x i8] c"k_n,l_n,p_n\0A\0A\00"
@.str.5 = [32 x i8] c"Options include the following:\0A\00"
@.str.6 = [228 x i8] c"-A\09start state, the default is -1 (inferred from input data as the first row in the CSV whose entry in the first column is 0). If provided, should indicate the 0-indexed line in the input CSV file representing the start state.\0A\00"
@.str.7 = [307 x i8] c"-D\09start/end distance, the default is disabled. When provided, indicates the base pair distance between the starting / ending structures. This flag is used in conjunction with the -Q flag, and is needed in cases when the base pair distance between the two structures can't be inferred from the input grid.\0A\00"
@.str.8 = [209 x i8] c"-E\09energy-based transitions, the default is disabled. If this flag is provided, the transition from state a to b will be calculated as (min(1, exp(-(E_b - E_a) / RT) / n) rather than (min(1, p_b / p_a) / n).\0A\00"
@.str.9 = [411 x i8] c"-H\09Hastings adjustment, the default is disabled. If this flag is provided, the input must be in the form of an energy grid, and only diagonally adjacent moves are permitted (in the all-to-all transition case, N(X) / N(Y) == 1). Calculating N(X) and N(Y) will respect grid boundaries and the triangle equality, and the basepair distance between the two structures for kinetics is inferred from the energy grid.\0A\00"
@.str.10 = [283 x i8] c"-N\09sequence length, the default is disabled. This flag represents the sequence length of the sequence on which kinetics is being performed. It is used in conjunction with the -O flag to ensure that the graph is fully connected. If -O is not explicitly set, the -Q flag must be set.\0A\00"
@.str.11 = [267 x i8] c"-O\09epsilon, the default is disabled. This flag should be a %%f-parseable epsilon value added to *all* positions in the energy grid (including valid positions not present in the input), which is then renormalized and used to ensure that the graph is fully connected.\0A\00"
@.str.12 = [183 x i8] c"-P\09pseudoinverse, the default is disabled. If this flag is provided, the Moore-Penrose pseudoinverse is computed for the transition probability matrix, rather than the true inverse.\0A\00"
@.str.13 = [282 x i8] c"-Q\09alternative epsilon, the default is disabled. If this flag is provided, each accessible position is increased by .01 / num_accessible_positions, and then renormalized to ensure that all valid positions have a small non-zero probability. This flag is mutually exclusive with -O.\0A\00"
@.str.14 = [358 x i8] c"-T\09transition matrix input, the default is disabled. If this flag is provided, the input is expected to be a transition probability matrix, rather than a 2D energy grid. In this case, the first two columns in the CSV file are row-order indices into the transition probability matrix, and the third (final) column is the transition probability of that cell.\0A\00"
@.str.15 = [154 x i8] c"-V\09verbose, the default is disabled. If this flag is provided, light debug data will be printed. To enable heavy debugging, use the flags in constants.h\0A\00"
@.str.16 = [363 x i8] c"-X\09single basepair moves, the default is disabled. If this flag is provided, the input must be in the form of an energy grid, and only diagonally adjacent moves are permitted. This option makes the assumption that the input is *not* a transition probability matrix already, and the input energy grid already satisfies the triangle inequality / parity condition.\0A\00"
@.str.17 = [225 x i8] c"-Z\09end state, the default is -1 (inferred from input data as the first row in the CSV whose entry in the second column is 0). If provided, should indicate the 0-indexed line in the input CSV file representing the end state.\0A\00"
@.str.18 = [319 x i8] c"\0AProgram returns -1 (resp. -2) if the start state (resp. end state) probability is 0. -3 is returned if the distance between the two input structures could not be inferred from the input data (usually also means that one of the states has a 0-probability). Otherwise returns the MFPT as predicted by matrix inversion.\0A\00"
define void @mfpt_usage() {
%1 = load i32, i32* @stderr
%2 = call i32 @fprintf(i32 %1, i8* getelementptr inbounds ([30 x i8], [30 x i8]* @.str, i64 0, i64 0))
%3 = load i32, i32* @stderr
%4 = call i32 @fprintf(i32 %3, i8* getelementptr inbounds ([65 x i8], [65 x i8]* @.str.1, i64 0, i64 0))
%5 = load i32, i32* @stderr
%6 = call i32 @fprintf(i32 %5, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2, i64 0, i64 0))
%7 = load i32, i32* @stderr
%8 = call i32 @fprintf(i32 %7, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.3, i64 0, i64 0))
%9 = load i32, i32* @stderr
%10 = call i32 @fprintf(i32 %9, i8* getelementptr inbounds ([14 x i8], [14 x i8]* @.str.4, i64 0, i64 0))
%11 = load i32, i32* @stderr
%12 = call i32 @fprintf(i32 %11, i8* getelementptr inbounds ([32 x i8], [32 x i8]* @.str.5, i64 0, i64 0))
%13 = load i32, i32* @stderr
%14 = call i32 @fprintf(i32 %13, i8* getelementptr inbounds ([228 x i8], [228 x i8]* @.str.6, i64 0, i64 0))
%15 = load i32, i32* @stderr
%16 = call i32 @fprintf(i32 %15, i8* getelementptr inbounds ([307 x i8], [307 x i8]* @.str.7, i64 0, i64 0))
%17 = load i32, i32* @stderr
%18 = call i32 @fprintf(i32 %17, i8* getelementptr inbounds ([209 x i8], [209 x i8]* @.str.8, i64 0, i64 0))
%19 = load i32, i32* @stderr
%20 = call i32 @fprintf(i32 %19, i8* getelementptr inbounds ([411 x i8], [411 x i8]* @.str.9, i64 0, i64 0))
%21 = load i32, i32* @stderr
%22 = call i32 @fprintf(i32 %21, i8* getelementptr inbounds ([283 x i8], [283 x i8]* @.str.10, i64 0, i64 0))
%23 = load i32, i32* @stderr
%24 = call i32 @fprintf(i32 %23, i8* getelementptr inbounds ([267 x i8], [267 x i8]* @.str.11, i64 0, i64 0))
%25 = load i32, i32* @stderr
%26 = call i32 @fprintf(i32 %25, i8* getelementptr inbounds ([183 x i8], [183 x i8]* @.str.12, i64 0, i64 0))
%27 = load i32, i32* @stderr
%28 = call i32 @fprintf(i32 %27, i8* getelementptr inbounds ([282 x i8], [282 x i8]* @.str.13, i64 0, i64 0))
%29 = load i32, i32* @stderr
%30 = call i32 @fprintf(i32 %29, i8* getelementptr inbounds ([358 x i8], [358 x i8]* @.str.14, i64 0, i64 0))
%31 = load i32, i32* @stderr
%32 = call i32 @fprintf(i32 %31, i8* getelementptr inbounds ([154 x i8], [154 x i8]* @.str.15, i64 0, i64 0))
%33 = load i32, i32* @stderr
%34 = call i32 @fprintf(i32 %33, i8* getelementptr inbounds ([363 x i8], [363 x i8]* @.str.16, i64 0, i64 0))
%35 = load i32, i32* @stderr
%36 = call i32 @fprintf(i32 %35, i8* getelementptr inbounds ([225 x i8], [225 x i8]* @.str.17, i64 0, i64 0))
%37 = load i32, i32* @stderr
%38 = call i32 @fprintf(i32 %37, i8* getelementptr inbounds ([319 x i8], [319 x i8]* @.str.18, i64 0, i64 0))
%39 = call i32 @exit(i32 0)
unreachable
}

LLVM IR (-O2):
@stderr = global i32 0
@.str = [30 x i8] c"RNAmfpt [options] input_csv\0A\0A\00"
@.str.1 = [65 x i8] c"where input_csv is a CSV file (with *no* header) of the format:\0A\00"
@.str.2 = [13 x i8] c"k_0,l_0,p_0\0A\00"
@.str.3 = [13 x i8] c"...,...,...\0A\00"
@.str.4 = [14 x i8] c"k_n,l_n,p_n\0A\0A\00"
@.str.5 = [32 x i8] c"Options include the following:\0A\00"
@.str.6 = [228 x i8] c"-A\09start state, the default is -1 (inferred from input data as the first row in the CSV whose entry in the first column is 0). If provided, should indicate the 0-indexed line in the input CSV file representing the start state.\0A\00"
@.str.7 = [307 x i8] c"-D\09start/end distance, the default is disabled. When provided, indicates the base pair distance between the starting / ending structures. This flag is used in conjunction with the -Q flag, and is needed in cases when the base pair distance between the two structures can't be inferred from the input grid.\0A\00"
@.str.8 = [209 x i8] c"-E\09energy-based transitions, the default is disabled. If this flag is provided, the transition from state a to b will be calculated as (min(1, exp(-(E_b - E_a) / RT) / n) rather than (min(1, p_b / p_a) / n).\0A\00"
@.str.9 = [411 x i8] c"-H\09Hastings adjustment, the default is disabled. If this flag is provided, the input must be in the form of an energy grid, and only diagonally adjacent moves are permitted (in the all-to-all transition case, N(X) / N(Y) == 1). Calculating N(X) and N(Y) will respect grid boundaries and the triangle equality, and the basepair distance between the two structures for kinetics is inferred from the energy grid.\0A\00"
@.str.10 = [283 x i8] c"-N\09sequence length, the default is disabled. This flag represents the sequence length of the sequence on which kinetics is being performed. It is used in conjunction with the -O flag to ensure that the graph is fully connected. If -O is not explicitly set, the -Q flag must be set.\0A\00"
@.str.11 = [267 x i8] c"-O\09epsilon, the default is disabled. This flag should be a %%f-parseable epsilon value added to *all* positions in the energy grid (including valid positions not present in the input), which is then renormalized and used to ensure that the graph is fully connected.\0A\00"
@.str.12 = [183 x i8] c"-P\09pseudoinverse, the default is disabled. If this flag is provided, the Moore-Penrose pseudoinverse is computed for the transition probability matrix, rather than the true inverse.\0A\00"
@.str.13 = [282 x i8] c"-Q\09alternative epsilon, the default is disabled. If this flag is provided, each accessible position is increased by .01 / num_accessible_positions, and then renormalized to ensure that all valid positions have a small non-zero probability. This flag is mutually exclusive with -O.\0A\00"
@.str.14 = [358 x i8] c"-T\09transition matrix input, the default is disabled. If this flag is provided, the input is expected to be a transition probability matrix, rather than a 2D energy grid. In this case, the first two columns in the CSV file are row-order indices into the transition probability matrix, and the third (final) column is the transition probability of that cell.\0A\00"
@.str.15 = [154 x i8] c"-V\09verbose, the default is disabled. If this flag is provided, light debug data will be printed. To enable heavy debugging, use the flags in constants.h\0A\00"
@.str.16 = [363 x i8] c"-X\09single basepair moves, the default is disabled. If this flag is provided, the input must be in the form of an energy grid, and only diagonally adjacent moves are permitted. This option makes the assumption that the input is *not* a transition probability matrix already, and the input energy grid already satisfies the triangle inequality / parity condition.\0A\00"
@.str.17 = [225 x i8] c"-Z\09end state, the default is -1 (inferred from input data as the first row in the CSV whose entry in the second column is 0). If provided, should indicate the 0-indexed line in the input CSV file representing the end state.\0A\00"
@.str.18 = [319 x i8] c"\0AProgram returns -1 (resp. -2) if the start state (resp. end state) probability is 0. -3 is returned if the distance between the two input structures could not be inferred from the input data (usually also means that one of the states has a 0-probability). Otherwise returns the MFPT as predicted by matrix inversion.\0A\00"
define void @mfpt_usage() {
%1 = load i32, i32* @stderr
%2 = tail call i32 @fprintf(i32 %1, i8* getelementptr inbounds ([30 x i8], [30 x i8]* @.str, i64 0, i64 0))
%3 = load i32, i32* @stderr
%4 = tail call i32 @fprintf(i32 %3, i8* getelementptr inbounds ([65 x i8], [65 x i8]* @.str.1, i64 0, i64 0))
%5 = load i32, i32* @stderr
%6 = tail call i32 @fprintf(i32 %5, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2, i64 0, i64 0))
%7 = load i32, i32* @stderr
%8 = tail call i32 @fprintf(i32 %7, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.3, i64 0, i64 0))
%9 = load i32, i32* @stderr
%10 = tail call i32 @fprintf(i32 %9, i8* getelementptr inbounds ([14 x i8], [14 x i8]* @.str.4, i64 0, i64 0))
%11 = load i32, i32* @stderr
%12 = tail call i32 @fprintf(i32 %11, i8* getelementptr inbounds ([32 x i8], [32 x i8]* @.str.5, i64 0, i64 0))
%13 = load i32, i32* @stderr
%14 = tail call i32 @fprintf(i32 %13, i8* getelementptr inbounds ([228 x i8], [228 x i8]* @.str.6, i64 0, i64 0))
%15 = load i32, i32* @stderr
%16 = tail call i32 @fprintf(i32 %15, i8* getelementptr inbounds ([307 x i8], [307 x i8]* @.str.7, i64 0, i64 0))
%17 = load i32, i32* @stderr
%18 = tail call i32 @fprintf(i32 %17, i8* getelementptr inbounds ([209 x i8], [209 x i8]* @.str.8, i64 0, i64 0))
%19 = load i32, i32* @stderr
%20 = tail call i32 @fprintf(i32 %19, i8* getelementptr inbounds ([411 x i8], [411 x i8]* @.str.9, i64 0, i64 0))
%21 = load i32, i32* @stderr
%22 = tail call i32 @fprintf(i32 %21, i8* getelementptr inbounds ([283 x i8], [283 x i8]* @.str.10, i64 0, i64 0))
%23 = load i32, i32* @stderr
%24 = tail call i32 @fprintf(i32 %23, i8* getelementptr inbounds ([267 x i8], [267 x i8]* @.str.11, i64 0, i64 0))
%25 = load i32, i32* @stderr
%26 = tail call i32 @fprintf(i32 %25, i8* getelementptr inbounds ([183 x i8], [183 x i8]* @.str.12, i64 0, i64 0))
%27 = load i32, i32* @stderr
%28 = tail call i32 @fprintf(i32 %27, i8* getelementptr inbounds ([282 x i8], [282 x i8]* @.str.13, i64 0, i64 0))
%29 = load i32, i32* @stderr
%30 = tail call i32 @fprintf(i32 %29, i8* getelementptr inbounds ([358 x i8], [358 x i8]* @.str.14, i64 0, i64 0))
%31 = load i32, i32* @stderr
%32 = tail call i32 @fprintf(i32 %31, i8* getelementptr inbounds ([154 x i8], [154 x i8]* @.str.15, i64 0, i64 0))
%33 = load i32, i32* @stderr
%34 = tail call i32 @fprintf(i32 %33, i8* getelementptr inbounds ([363 x i8], [363 x i8]* @.str.16, i64 0, i64 0))
%35 = load i32, i32* @stderr
%36 = tail call i32 @fprintf(i32 %35, i8* getelementptr inbounds ([225 x i8], [225 x i8]* @.str.17, i64 0, i64 0))
%37 = load i32, i32* @stderr
%38 = tail call i32 @fprintf(i32 %37, i8* getelementptr inbounds ([319 x i8], [319 x i8]* @.str.18, i64 0, i64 0))
%39 = tail call i32 @exit(i32 0)
unreachable
}