#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*/ puts(char *);
void do_help(int man) {
  if (man)
    goto man;
  puts("xword-typeset [-?h] [-Pp] [-o outfile] filename");
  puts("Typesets a crossword puzzle in LaTeX.");
  puts("  -P[p]: Use [don't use] Gerd Neugebauer's cwpuzzle package");
  puts("  -o filename: send output to specified file");
  puts("  --help: show this message");
  puts("  --man: show complete help text");
  exit(0);
man:
  puts("xword-typeset: Crossword typesetting tool.\n");
  puts(" This program takes as input a crossword puzzle (in the");
  puts("   same format as the input to 'xword-ent') and produces");
  puts("   a version of the same crossword typeset with LaTeX.");
  puts(" The input may also be in the format output by 'xword-ent',");
  puts("   with any combination of -SG and -HV options. This");
  puts("   program currently does not attempt to deal sensibly");
  puts("   with the output of 'xword-ent -T'.");
  puts(" The -P option tells 'xword-typeset' to produce LaTeX code");
  puts("   that uses Gerd Neugebauer's 'cwpuzzle' package. The");
  puts("   complementary -p option (the default) produces \"raw\"");
  puts("   LaTeX code heavily derivative of 'cwpuzzle'. The default");
  puts("   is recommended, because it handles the special character");
  puts("   '_' in an intuitive manner.");
  puts("");
  puts(" If the input file provides clues following the grid, they");
  puts("   should be in the form");
  puts("     [number][punctuation-opt][whitespace-opt][clue text]");
  puts("   with the text of the clue all on the same line. The clue");
  puts("   text should be in HWEB format: /italics/ and |teletype|");
  puts("   work as expected, and \"quotes\" do not need to be entered");
  puts("   as ``TeX-style'' quotes (although that will also work).");
  puts("   En-dashes and em-dashes are entered as -- and ---.");
  puts(" If the input file does not provide any clues, or skips some");
  puts("   clues, they will be shown as the placeholder text \"clue\".");
  puts(" If the input file starts with a quoted string between blank");
  puts("   lines, that string will be typeset as the title of the");
  puts("   crossword. For example:\n");
  puts("     \"A Simple Example\"\n");
  puts("     #HAM#");
  puts("     FERAL");
  puts("     ENERO");
  puts("     ENACT");
  puts("     #ASH#");
  exit(0);
}


x86 assembly (clang, -O0):
<do_help>:
push   %rbp
mov    %rsp,%rbp
sub    $0x10,%rsp
mov    %edi,-0x4(%rbp)
cmpl   $0x0,-0x4(%rbp)
je     113a <do_help+0x1a>
jmp    1189 <do_help+0x69>
lea    0xebf(%rip),%rdi
call   1030 <puts@plt>
lea    0xee3(%rip),%rdi
call   1030 <puts@plt>
lea    0xefd(%rip),%rdi
call   1030 <puts@plt>
lea    0xf2d(%rip),%rdi
call   1030 <puts@plt>
lea    0xf4e(%rip),%rdi
call   1030 <puts@plt>
lea    0xf5e(%rip),%rdi
call   1030 <puts@plt>
xor    %edi,%edi
call   1040 <exit@plt>
lea    0xf6c(%rip),%rdi
call   1030 <puts@plt>
lea    0xf8c(%rip),%rdi
call   1030 <puts@plt>
lea    0xfb8(%rip),%rdi
call   1030 <puts@plt>
lea    0xfe5(%rip),%rdi
call   1030 <puts@plt>
lea    0x1010(%rip),%rdi
call   1030 <puts@plt>
lea    0x1040(%rip),%rdi
call   1030 <puts@plt>
lea    0x1069(%rip),%rdi
call   1030 <puts@plt>
lea    0x1094(%rip),%rdi
call   1030 <puts@plt>
lea    0x10ae(%rip),%rdi
call   1030 <puts@plt>
lea    0x10dd(%rip),%rdi
call   1030 <puts@plt>
lea    0x1108(%rip),%rdi
call   1030 <puts@plt>
lea    0x1134(%rip),%rdi
call   1030 <puts@plt>
lea    0x1164(%rip),%rdi
call   1030 <puts@plt>
lea    0x1194(%rip),%rdi
call   1030 <puts@plt>
lea    0x147e(%rip),%rdi
call   1030 <puts@plt>
lea    0x119b(%rip),%rdi
call   1030 <puts@plt>
lea    0x11ca(%rip),%rdi
call   1030 <puts@plt>
lea    0x11d7(%rip),%rdi
call   1030 <puts@plt>
lea    0x1205(%rip),%rdi
call   1030 <puts@plt>
lea    0x1235(%rip),%rdi
call   1030 <puts@plt>
lea    0x1264(%rip),%rdi
call   1030 <puts@plt>
lea    0x1294(%rip),%rdi
call   1030 <puts@plt>
lea    0x12c3(%rip),%rdi
call   1030 <puts@plt>
lea    0x12ed(%rip),%rdi
call   1030 <puts@plt>
lea    0x131e(%rip),%rdi
call   1030 <puts@plt>
lea    0x134f(%rip),%rdi
call   1030 <puts@plt>
lea    0x1380(%rip),%rdi
call   1030 <puts@plt>
lea    0x13ae(%rip),%rdi
call   1030 <puts@plt>
lea    0x13be(%rip),%rdi
call   1030 <puts@plt>
lea    0x13cb(%rip),%rdi
call   1030 <puts@plt>
lea    0x13ca(%rip),%rdi
call   1030 <puts@plt>
lea    0x13c9(%rip),%rdi
call   1030 <puts@plt>
lea    0x13c8(%rip),%rdi
call   1030 <puts@plt>
lea    0x13c7(%rip),%rdi
call   1030 <puts@plt>
xor    %edi,%edi
call   1040 <exit@plt>

x86 assembly (clang, -O2):
<do_help>:
push   %rax
test   %edi,%edi
jne    117d <do_help+0x4d>
lea    0xec4(%rip),%rdi
call   1040 <puts@plt>
lea    0xee8(%rip),%rdi
call   1040 <puts@plt>
lea    0xf02(%rip),%rdi
call   1040 <puts@plt>
lea    0xf32(%rip),%rdi
call   1040 <puts@plt>
lea    0xf53(%rip),%rdi
call   1040 <puts@plt>
lea    0xf63(%rip),%rdi
jmp    130e <do_help+0x1de>
lea    0xf78(%rip),%rdi
call   1040 <puts@plt>
lea    0xf98(%rip),%rdi
call   1040 <puts@plt>
lea    0xfc4(%rip),%rdi
call   1040 <puts@plt>
lea    0xff1(%rip),%rdi
call   1040 <puts@plt>
lea    0x101c(%rip),%rdi
call   1040 <puts@plt>
lea    0x104c(%rip),%rdi
call   1040 <puts@plt>
lea    0x1075(%rip),%rdi
call   1040 <puts@plt>
lea    0x10a0(%rip),%rdi
call   1040 <puts@plt>
lea    0x10ba(%rip),%rdi
call   1040 <puts@plt>
lea    0x10e9(%rip),%rdi
call   1040 <puts@plt>
lea    0x1114(%rip),%rdi
call   1040 <puts@plt>
lea    0x1140(%rip),%rdi
call   1040 <puts@plt>
lea    0x1170(%rip),%rdi
call   1040 <puts@plt>
lea    0x11a0(%rip),%rdi
call   1040 <puts@plt>
mov    $0xa,%edi
call   1030 <putchar@plt>
lea    0x11a9(%rip),%rdi
call   1040 <puts@plt>
lea    0x11d8(%rip),%rdi
call   1040 <puts@plt>
lea    0x11e5(%rip),%rdi
call   1040 <puts@plt>
lea    0x1213(%rip),%rdi
call   1040 <puts@plt>
lea    0x1243(%rip),%rdi
call   1040 <puts@plt>
lea    0x1272(%rip),%rdi
call   1040 <puts@plt>
lea    0x12a2(%rip),%rdi
call   1040 <puts@plt>
lea    0x12d1(%rip),%rdi
call   1040 <puts@plt>
lea    0x12fb(%rip),%rdi
call   1040 <puts@plt>
lea    0x132c(%rip),%rdi
call   1040 <puts@plt>
lea    0x135d(%rip),%rdi
call   1040 <puts@plt>
lea    0x138e(%rip),%rdi
call   1040 <puts@plt>
lea    0x13bc(%rip),%rdi
call   1040 <puts@plt>
lea    0x13cc(%rip),%rdi
call   1040 <puts@plt>
lea    0x13d9(%rip),%rdi
call   1040 <puts@plt>
lea    0x13d8(%rip),%rdi
call   1040 <puts@plt>
lea    0x13d7(%rip),%rdi
call   1040 <puts@plt>
lea    0x13d6(%rip),%rdi
call   1040 <puts@plt>
lea    0x13d5(%rip),%rdi
call   1040 <puts@plt>
xor    %edi,%edi
call   1050 <exit@plt>

LLVM IR (-O0):
@.str = [48 x i8] c"xword-typeset [-?h] [-Pp] [-o outfile] filename\00"
@.str.1 = [38 x i8] c"Typesets a crossword puzzle in LaTeX.\00"
@.str.2 = [60 x i8] c" -P[p]: Use [don't use] Gerd Neugebauer's cwpuzzle package\00"
@.str.3 = [45 x i8] c" -o filename: send output to specified file\00"
@.str.4 = [28 x i8] c" --help: show this message\00"
@.str.5 = [33 x i8] c" --man: show complete help text\00"
@.str.6 = [44 x i8] c"xword-typeset: Crossword typesetting tool.\0A\00"
@.str.7 = [56 x i8] c" This program takes as input a crossword puzzle (in the\00"
@.str.8 = [57 x i8] c" same format as the input to 'xword-ent') and produces\00"
@.str.9 = [55 x i8] c" a version of the same crossword typeset with LaTeX.\00"
@.str.10 = [60 x i8] c" The input may also be in the format output by 'xword-ent',\00"
@.str.11 = [53 x i8] c" with any combination of -SG and -HV options. This\00"
@.str.12 = [55 x i8] c" program currently does not attempt to deal sensibly\00"
@.str.13 = [38 x i8] c" with the output of 'xword-ent -T'.\00"
@.str.14 = [59 x i8] c" The -P option tells 'xword-typeset' to produce LaTeX code\00"
@.str.15 = [55 x i8] c" that uses Gerd Neugebauer's 'cwpuzzle' package. The\00"
@.str.16 = [56 x i8] c" complementary -p option (the default) produces \22raw\22\00"
@.str.17 = [60 x i8] c" LaTeX code heavily derivative of 'cwpuzzle'. The default\00"
@.str.18 = [60 x i8] c" is recommended, because it handles the special character\00"
@.str.19 = [31 x i8] c" '_' in an intuitive manner.\00"
@.str.20 = [1 x i8] zeroinitializer
@.str.21 = [59 x i8] c" If the input file provides clues following the grid, they\00"
@.str.22 = [25 x i8] c" should be in the form\00"
@.str.23 = [58 x i8] c" [number][punctuation-opt][whitespace-opt][clue text]\00"
@.str.24 = [60 x i8] c" with the text of the clue all on the same line. The clue\00"
@.str.25 = [59 x i8] c" text should be in HWEB format: /italics/ and |teletype|\00"
@.str.26 = [60 x i8] c" work as expected, and \22quotes\22 do not need to be entered\00"
@.str.27 = [59 x i8] c" as ``TeX-style'' quotes (although that will also work).\00"
@.str.28 = [54 x i8] c" En-dashes and em-dashes are entered as -- and ---.\00"
@.str.29 = [61 x i8] c" If the input file does not provide any clues, or skips some\00"
@.str.30 = [61 x i8] c" clues, they will be shown as the placeholder text \22clue\22.\00"
@.str.31 = [61 x i8] c" If the input file starts with a quoted string between blank\00"
@.str.32 = [58 x i8] c" lines, that string will be typeset as the title of the\00"
@.str.33 = [28 x i8] c" crossword. For example:\0A\00"
@.str.34 = [25 x i8] c" \22A Simple Example\22\0A\00"
@.str.35 = [11 x i8] c" #HAM#\00"
@.str.36 = [11 x i8] c" FERAL\00"
@.str.37 = [11 x i8] c" ENERO\00"
@.str.38 = [11 x i8] c" ENACT\00"
@.str.39 = [11 x i8] c" #ASH#\00"
define void @do_help(i32 %0) {
%2 = alloca i32
store i32 %0, i32* %2
%3 = load i32, i32* %2
%4 = icmp ne i32 %3, 0
br i1 %4, label %5, label %6
5: ; preds = %1
br label %14
6: ; preds = %1
%7 = call i32 @puts(i8* getelementptr inbounds ([48 x i8], [48 x i8]* @.str, i64 0, i64 0))
%8 = call i32 @puts(i8* getelementptr inbounds ([38 x i8], [38 x i8]* @.str.1, i64 0, i64 0))
%9 = call i32 @puts(i8* getelementptr inbounds ([60 x i8], [60 x i8]* @.str.2, i64 0, i64 0))
%10 = call i32 @puts(i8* getelementptr inbounds ([45 x i8], [45 x i8]* @.str.3, i64 0, i64 0))
%11 = call i32 @puts(i8* getelementptr inbounds ([28 x i8], [28 x i8]* @.str.4, i64 0, i64 0))
%12 = call i32 @puts(i8* getelementptr inbounds ([33 x i8], [33 x i8]* @.str.5, i64 0, i64 0))
%13 = call i32 @exit(i32 0)
unreachable
14: ; preds = %5
%15 = call i32 @puts(i8* getelementptr inbounds ([44 x i8], [44 x i8]* @.str.6, i64 0, i64 0))
%16 = call i32 @puts(i8* getelementptr inbounds ([56 x i8], [56 x i8]* @.str.7, i64 0, i64 0))
%17 = call i32 @puts(i8* getelementptr inbounds ([57 x i8], [57 x i8]* @.str.8, i64 0, i64 0))
%18 = call i32 @puts(i8* getelementptr inbounds ([55 x i8], [55 x i8]* @.str.9, i64 0, i64 0))
%19 = call i32 @puts(i8* getelementptr inbounds ([60 x i8], [60 x i8]* @.str.10, i64 0, i64 0))
%20 = call i32 @puts(i8* getelementptr inbounds ([53 x i8], [53 x i8]* @.str.11, i64 0, i64 0))
%21 = call i32 @puts(i8* getelementptr inbounds ([55 x i8], [55 x i8]* @.str.12, i64 0, i64 0))
%22 = call i32 @puts(i8* getelementptr inbounds ([38 x i8], [38 x i8]* @.str.13, i64 0, i64 0))
%23 = call i32 @puts(i8* getelementptr inbounds ([59 x i8], [59 x i8]* @.str.14, i64 0, i64 0))
%24 = call i32 @puts(i8* getelementptr inbounds ([55 x i8], [55 x i8]* @.str.15, i64 0, i64 0))
%25 = call i32 @puts(i8* getelementptr inbounds ([56 x i8], [56 x i8]* @.str.16, i64 0, i64 0))
%26 = call i32 @puts(i8* getelementptr inbounds ([60 x i8], [60 x i8]* @.str.17, i64 0, i64 0))
%27 = call i32 @puts(i8* getelementptr inbounds ([60 x i8], [60 x i8]* @.str.18, i64 0, i64 0))
%28 = call i32 @puts(i8* getelementptr inbounds ([31 x i8], [31 x i8]* @.str.19, i64 0, i64 0))
%29 = call i32 @puts(i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.20, i64 0, i64 0))
%30 = call i32 @puts(i8* getelementptr inbounds ([59 x i8], [59 x i8]* @.str.21, i64 0, i64 0))
%31 = call i32 @puts(i8* getelementptr inbounds ([25 x i8], [25 x i8]* @.str.22, i64 0, i64 0))
%32 = call i32 @puts(i8* getelementptr inbounds ([58 x i8], [58 x i8]* @.str.23, i64 0, i64 0))
%33 = call i32 @puts(i8* getelementptr inbounds ([60 x i8], [60 x i8]* @.str.24, i64 0, i64 0))
%34 = call i32 @puts(i8* getelementptr inbounds ([59 x i8], [59 x i8]* @.str.25, i64 0, i64 0))
%35 = call i32 @puts(i8* getelementptr inbounds ([60 x i8], [60 x i8]* @.str.26, i64 0, i64 0))
%36 = call i32 @puts(i8* getelementptr inbounds ([59 x i8], [59 x i8]* @.str.27, i64 0, i64 0))
%37 = call i32 @puts(i8* getelementptr inbounds ([54 x i8], [54 x i8]* @.str.28, i64 0, i64 0))
%38 = call i32 @puts(i8* getelementptr inbounds ([61 x i8], [61 x i8]* @.str.29, i64 0, i64 0))
%39 = call i32 @puts(i8* getelementptr inbounds ([61 x i8], [61 x i8]* @.str.30, i64 0, i64 0))
%40 = call i32 @puts(i8* getelementptr inbounds ([61 x i8], [61 x i8]* @.str.31, i64 0, i64 0))
%41 = call i32 @puts(i8* getelementptr inbounds ([58 x i8], [58 x i8]* @.str.32, i64 0, i64 0))
%42 = call i32 @puts(i8* getelementptr inbounds ([28 x i8], [28 x i8]* @.str.33, i64 0, i64 0))
%43 = call i32 @puts(i8* getelementptr inbounds ([25 x i8], [25 x i8]* @.str.34, i64 0, i64 0))
%44 = call i32 @puts(i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.35, i64 0, i64 0))
%45 = call i32 @puts(i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.36, i64 0, i64 0))
%46 = call i32 @puts(i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.37, i64 0, i64 0))
%47 = call i32 @puts(i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.38, i64 0, i64 0))
%48 = call i32 @puts(i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.39, i64 0, i64 0))
%49 = call i32 @exit(i32 0)
unreachable
}

LLVM IR (-O2):
@.str = [48 x i8] c"xword-typeset [-?h] [-Pp] [-o outfile] filename\00"
@.str.1 = [38 x i8] c"Typesets a crossword puzzle in LaTeX.\00"
@.str.2 = [60 x i8] c" -P[p]: Use [don't use] Gerd Neugebauer's cwpuzzle package\00"
@.str.3 = [45 x i8] c" -o filename: send output to specified file\00"
@.str.4 = [28 x i8] c" --help: show this message\00"
@.str.5 = [33 x i8] c" --man: show complete help text\00"
@.str.6 = [44 x i8] c"xword-typeset: Crossword typesetting tool.\0A\00"
@.str.7 = [56 x i8] c" This program takes as input a crossword puzzle (in the\00"
@.str.8 = [57 x i8] c" same format as the input to 'xword-ent') and produces\00"
@.str.9 = [55 x i8] c" a version of the same crossword typeset with LaTeX.\00"
@.str.10 = [60 x i8] c" The input may also be in the format output by 'xword-ent',\00"
@.str.11 = [53 x i8] c" with any combination of -SG and -HV options. This\00"
@.str.12 = [55 x i8] c" program currently does not attempt to deal sensibly\00"
@.str.13 = [38 x i8] c" with the output of 'xword-ent -T'.\00"
@.str.14 = [59 x i8] c" The -P option tells 'xword-typeset' to produce LaTeX code\00"
@.str.15 = [55 x i8] c" that uses Gerd Neugebauer's 'cwpuzzle' package. The\00"
@.str.16 = [56 x i8] c" complementary -p option (the default) produces \22raw\22\00"
@.str.17 = [60 x i8] c" LaTeX code heavily derivative of 'cwpuzzle'. The default\00"
@.str.18 = [60 x i8] c" is recommended, because it handles the special character\00"
@.str.19 = [31 x i8] c" '_' in an intuitive manner.\00"
@.str.21 = [59 x i8] c" If the input file provides clues following the grid, they\00"
@.str.22 = [25 x i8] c" should be in the form\00"
@.str.23 = [58 x i8] c" [number][punctuation-opt][whitespace-opt][clue text]\00"
@.str.24 = [60 x i8] c" with the text of the clue all on the same line. The clue\00"
@.str.25 = [59 x i8] c" text should be in HWEB format: /italics/ and |teletype|\00"
@.str.26 = [60 x i8] c" work as expected, and \22quotes\22 do not need to be entered\00"
@.str.27 = [59 x i8] c" as ``TeX-style'' quotes (although that will also work).\00"
@.str.28 = [54 x i8] c" En-dashes and em-dashes are entered as -- and ---.\00"
@.str.29 = [61 x i8] c" If the input file does not provide any clues, or skips some\00"
@.str.30 = [61 x i8] c" clues, they will be shown as the placeholder text \22clue\22.\00"
@.str.31 = [61 x i8] c" If the input file starts with a quoted string between blank\00"
@.str.32 = [58 x i8] c" lines, that string will be typeset as the title of the\00"
@.str.33 = [28 x i8] c" crossword. For example:\0A\00"
@.str.34 = [25 x i8] c" \22A Simple Example\22\0A\00"
@.str.35 = [11 x i8] c" #HAM#\00"
@.str.36 = [11 x i8] c" FERAL\00"
@.str.37 = [11 x i8] c" ENERO\00"
@.str.38 = [11 x i8] c" ENACT\00"
@.str.39 = [11 x i8] c" #ASH#\00"
define void @do_help(i32 %0) {
%2 = icmp eq i32 %0, 0
br i1 %2, label %3, label %11
3: ; preds = %1
%4 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([48 x i8], [48 x i8]* @.str, i64 0, i64 0))
%5 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([38 x i8], [38 x i8]* @.str.1, i64 0, i64 0))
%6 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([60 x i8], [60 x i8]* @.str.2, i64 0, i64 0))
%7 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([45 x i8], [45 x i8]* @.str.3, i64 0, i64 0))
%8 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([28 x i8], [28 x i8]* @.str.4, i64 0, i64 0))
%9 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([33 x i8], [33 x i8]* @.str.5, i64 0, i64 0))
%10 = tail call i32 @exit(i32 0)
unreachable
11: ; preds = %1
%12 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([44 x i8], [44 x i8]* @.str.6, i64 0, i64 0))
%13 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([56 x i8], [56 x i8]* @.str.7, i64 0, i64 0))
%14 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([57 x i8], [57 x i8]* @.str.8, i64 0, i64 0))
%15 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([55 x i8], [55 x i8]* @.str.9, i64 0, i64 0))
%16 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([60 x i8], [60 x i8]* @.str.10, i64 0, i64 0))
%17 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([53 x i8], [53 x i8]* @.str.11, i64 0, i64 0))
%18 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([55 x i8], [55 x i8]* @.str.12, i64 0, i64 0))
%19 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([38 x i8], [38 x i8]* @.str.13, i64 0, i64 0))
%20 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([59 x i8], [59 x i8]* @.str.14, i64 0, i64 0))
%21 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([55 x i8], [55 x i8]* @.str.15, i64 0, i64 0))
%22 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([56 x i8], [56 x i8]* @.str.16, i64 0, i64 0))
%23 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([60 x i8], [60 x i8]* @.str.17, i64 0, i64 0))
%24 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([60 x i8], [60 x i8]* @.str.18, i64 0, i64 0))
%25 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([31 x i8], [31 x i8]* @.str.19, i64 0, i64 0))
%26 = tail call i32 @putchar(i32 10)
%27 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([59 x i8], [59 x i8]* @.str.21, i64 0, i64 0))
%28 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([25 x i8], [25 x i8]* @.str.22, i64 0, i64 0))
%29 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([58 x i8], [58 x i8]* @.str.23, i64 0, i64 0))
%30 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([60 x i8], [60 x i8]* @.str.24, i64 0, i64 0))
%31 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([59 x i8], [59 x i8]* @.str.25, i64 0, i64 0))
%32 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([60 x i8], [60 x i8]* @.str.26, i64 0, i64 0))
%33 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([59 x i8], [59 x i8]* @.str.27, i64 0, i64 0))
%34 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([54 x i8], [54 x i8]* @.str.28, i64 0, i64 0))
%35 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([61 x i8], [61 x i8]* @.str.29, i64 0, i64 0))
%36 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([61 x i8], [61 x i8]* @.str.30, i64 0, i64 0))
%37 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([61 x i8], [61 x i8]* @.str.31, i64 0, i64 0))
%38 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([58 x i8], [58 x i8]* @.str.32, i64 0, i64 0))
%39 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([28 x i8], [28 x i8]* @.str.33, i64 0, i64 0))
%40 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([25 x i8], [25 x i8]* @.str.34, i64 0, i64 0))
%41 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([11 x i8], [11 x i8]* @.str.35, i64 0, i64 0))
%42 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([11 x i8], [11 x i8]* @.str.36, i64 0, i64 0))
%43 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([11 x i8], [11 x i8]* @.str.37, i64 0, i64 0))
%44 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([11 x i8], [11 x i8]* @.str.38, i64 0, i64 0))
%45 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([11 x i8], [11 x i8]* @.str.39, i64 0, i64 0))
%46 = tail call i32 @exit(i32 0)
unreachable
}