# Copyright (c) 2022 NVIDIA CORPORATION All rights reserved.
# Use of this source code is governed by a BSD-style
# license that can be found in the LICENSE file.


hello_ptx = '''
//
// Generated by NVIDIA NVVM Compiler
//
// Compiler Build ID: CL-29373293
// Cuda compilation tools, release 11.2, V11.2.67
// Based on NVVM 7.0.1
//

.version 7.2
.target sm_60
.address_size 64

	// .globl	__raygen__hello
.visible .const .align 8 .b8 params[16];

.visible .entry __raygen__hello()
{
	.reg .pred 	%p<4>;
	.reg .b16 	%rs<5>;
	.reg .f32 	%f<39>;
	.reg .b32 	%r<12>;
	.reg .b64 	%rd<6>;
	.loc	1 39 0
Lfunc_begin0:
	.loc	1 39 0


	.loc	1 41 26
	.loc	2 5675 5, function_name Linfo_string0, inlined_at 1 41 26
	// begin inline asm
	call (%r1), _optix_get_launch_index_x, ();
	// end inline asm
	.loc	2 5676 5, function_name Linfo_string0, inlined_at 1 41 26
	// begin inline asm
	call (%r2), _optix_get_launch_index_y, ();
	// end inline asm
Ltmp0:
	.loc	1 42 39
	.loc	2 5703 5, function_name Linfo_string1, inlined_at 1 42 39
	// begin inline asm
	call (%rd1), _optix_get_sbt_data_ptr_64, ();
	// end inline asm
Ltmp1:
	.loc	1 43 5
	ld.const.u64 	%rd2, [params];
	cvta.to.global.u64 	%rd3, %rd2;
	ld.const.u32 	%r4, [params+8];
	mad.lo.s32 	%r5, %r4, %r2, %r1;
	ld.f32 	%f1, [%rd1];
	ld.f32 	%f2, [%rd1+4];
	ld.f32 	%f3, [%rd1+8];
	.loc	3 121 22
	mov.f32 	%f4, 0f3F800000;
	min.ftz.f32 	%f5, %f1, %f4;
	.loc	3 121 12
	mov.f32 	%f6, 0f00000000;
	max.ftz.f32 	%f7, %f6, %f5;
	.loc	3 121 22
	min.ftz.f32 	%f8, %f2, %f4;
	.loc	3 121 12
	max.ftz.f32 	%f9, %f6, %f8;
	.loc	3 121 22
	min.ftz.f32 	%f10, %f3, %f4;
	.loc	3 121 12
	max.ftz.f32 	%f11, %f6, %f10;
	.loc	4 38 33
	lg2.approx.ftz.f32 	%f12, %f7;
	mul.ftz.f32 	%f13, %f12, 0f3ED55555;
	ex2.approx.ftz.f32 	%f14, %f13;
	.loc	4 38 56
	lg2.approx.ftz.f32 	%f15, %f9;
	mul.ftz.f32 	%f16, %f15, 0f3ED55555;
	ex2.approx.ftz.f32 	%f17, %f16;
	.loc	4 38 79
	lg2.approx.ftz.f32 	%f18, %f11;
	mul.ftz.f32 	%f19, %f18, 0f3ED55555;
	ex2.approx.ftz.f32 	%f20, %f19;
	setp.lt.ftz.f32 	%p1, %f7, 0f3B4D2E1C;
	mul.ftz.f32 	%f21, %f7, 0f414EB852;
	fma.rn.ftz.f32 	%f22, %f14, 0f3F870A3D, 0fBD6147AE;
	selp.f32 	%f23, %f21, %f22, %p1;
	setp.lt.ftz.f32 	%p2, %f9, 0f3B4D2E1C;
	mul.ftz.f32 	%f24, %f9, 0f414EB852;
	fma.rn.ftz.f32 	%f25, %f17, 0f3F870A3D, 0fBD6147AE;
	selp.f32 	%f26, %f24, %f25, %p2;
	setp.lt.ftz.f32 	%p3, %f11, 0f3B4D2E1C;
	mul.ftz.f32 	%f27, %f11, 0f414EB852;
	fma.rn.ftz.f32 	%f28, %f20, 0f3F870A3D, 0fBD6147AE;
	selp.f32 	%f29, %f27, %f28, %p3;
Ltmp2:
	.loc	4 61 25
	.loc	3 121 22, function_name Linfo_string2, inlined_at 4 61 25
	min.ftz.f32 	%f30, %f23, %f4;
	.loc	3 121 12, function_name Linfo_string2, inlined_at 4 61 25
	max.ftz.f32 	%f31, %f6, %f30;
	.loc	4 54 5, function_name Linfo_string2, inlined_at 4 61 25
	mul.ftz.f32 	%f32, %f31, 0f43800000;
	cvt.rzi.ftz.u32.f32 	%r6, %f32;
	.loc	5 870 10, function_name Linfo_string2, inlined_at 4 61 25
	min.u32 	%r7, %r6, 255;
Ltmp3:
	.loc	4 61 58
	.loc	3 121 22, function_name Linfo_string2, inlined_at 4 61 58
	min.ftz.f32 	%f33, %f26, %f4;
	.loc	3 121 12, function_name Linfo_string2, inlined_at 4 61 58
	max.ftz.f32 	%f34, %f6, %f33;
	.loc	4 54 5, function_name Linfo_string2, inlined_at 4 61 58
	mul.ftz.f32 	%f35, %f34, 0f43800000;
	cvt.rzi.ftz.u32.f32 	%r8, %f35;
	.loc	5 870 10, function_name Linfo_string2, inlined_at 4 61 58
	min.u32 	%r9, %r8, 255;
Ltmp4:
	.loc	4 61 91
	.loc	3 121 22, function_name Linfo_string2, inlined_at 4 61 91
	min.ftz.f32 	%f36, %f29, %f4;
	.loc	3 121 12, function_name Linfo_string2, inlined_at 4 61 91
	max.ftz.f32 	%f37, %f6, %f36;
	.loc	4 54 5, function_name Linfo_string2, inlined_at 4 61 91
	mul.ftz.f32 	%f38, %f37, 0f43800000;
	cvt.rzi.ftz.u32.f32 	%r10, %f38;
	.loc	5 870 10, function_name Linfo_string2, inlined_at 4 61 91
	min.u32 	%r11, %r10, 255;
Ltmp5:
	.loc	4 61 91
	mul.wide.u32 	%rd4, %r5, 4;
	add.s64 	%rd5, %rd3, %rd4;
Ltmp6:
	.loc	5 870 10, function_name Linfo_string2, inlined_at 4 61 91
	cvt.u16.u32 	%rs1, %r11;
Ltmp7:
	.loc	5 870 10, function_name Linfo_string2, inlined_at 4 61 58
	cvt.u16.u32 	%rs2, %r9;
Ltmp8:
	.loc	5 870 10, function_name Linfo_string2, inlined_at 4 61 25
	cvt.u16.u32 	%rs3, %r7;
Ltmp9:
	.loc	4 61 91
	mov.u16 	%rs4, 255;
	st.global.v4.u8 	[%rd5], {%rs3, %rs2, %rs1, %rs4};
	.loc	1 45 1
	ret;
Ltmp10:
Lfunc_end0:

}
	// .globl	__anyhit__noop
.visible .entry __anyhit__noop()
{

	.loc	1 48 0
Lfunc_begin1:
	.loc	1 48 0


	.loc	1 48 48
	ret;
Ltmp11:
Lfunc_end1:

}
	// .globl	__closesthit__noop
.visible .entry __closesthit__noop()
{

	.loc	1 51 0
Lfunc_begin2:
	.loc	1 51 0


	.loc	1 51 52
	ret;
Ltmp12:
Lfunc_end2:

}
	// .globl	__intersection__noop
.visible .entry __intersection__noop()
{

	.loc	1 54 0
Lfunc_begin3:
	.loc	1 54 0


	.loc	1 54 55
	ret;
Ltmp13:
Lfunc_end3:

}
	// .globl	__intersect__noop
.visible .entry __intersect__noop()
{

	.loc	1 57 0
Lfunc_begin4:
	.loc	1 57 0


	.loc	1 57 52
	ret;
Ltmp14:
Lfunc_end4:

}
	// .globl	__miss__noop
.visible .entry __miss__noop()
{

	.loc	1 60 0
Lfunc_begin5:
	.loc	1 60 0


	.loc	1 60 47
	ret;
Ltmp15:
Lfunc_end5:

}
	// .globl	__direct_callable__noop
.visible .entry __direct_callable__noop()
{

	.loc	1 63 0
Lfunc_begin6:
	.loc	1 63 0


	.loc	1 63 58
	ret;
Ltmp16:
Lfunc_end6:

}
	// .globl	__continuation_callable__noop
.visible .entry __continuation_callable__noop()
{

	.loc	1 66 0
Lfunc_begin7:
	.loc	1 66 0


	.loc	1 66 64
	ret;
Ltmp17:
Lfunc_end7:

}
	.file	1 "optixHello/draw_solid_color.cu"
	.file	2 "include/internal/optix_7_device_impl.h"
	.file	3 "sutil/vec_math.h"
	.file	4 "cuda/helpers.h"
	.file	5 "cuda/include/crt/math_functions.hpp"
	.section	.debug_str
	{
Linfo_string0:
.b8 95,90,78,55,51,95,73,78,84,69,82,78,65,76,95,53,49,95,116,109,112,120,102,116,95,48,48,49,48,102,48,57,54,95,48,48,48,48,48,48
.b8 48,48,95,55,95,100,114,97,119,95,115,111,108,105,100,95,99,111,108,111,114,95,99,112,112,49,95,105,105,95,51,101,52,98,52,55,50,54,49,57
.b8 111,112,116,105,120,71,101,116,76,97,117,110,99,104,73,110,100,101,120,69,118,0
Linfo_string1:
.b8 95,90,78,55,51,95,73,78,84,69,82,78,65,76,95,53,49,95,116,109,112,120,102,116,95,48,48,49,48,102,48,57,54,95,48,48,48,48,48,48
.b8 48,48,95,55,95,100,114,97,119,95,115,111,108,105,100,95,99,111,108,111,114,95,99,112,112,49,95,105,105,95,51,101,52,98,52,55,50,54,50,50
.b8 111,112,116,105,120,71,101,116,83,98,116,68,97,116,97,80,111,105,110,116,101,114,69,118,0
Linfo_string2:
.b8 95,90,50,49,113,117,97,110,116,105,122,101,85,110,115,105,103,110,101,100,56,66,105,116,115,102,0

	}
'''

triangle_ptx = '''

//
// Generated by NVIDIA NVVM Compiler
//
// Compiler Build ID: CL-29373293
// Cuda compilation tools, release 11.2, V11.2.67
// Based on NVVM 7.0.1
//

.version 7.2
.target sm_60
.address_size 64

	// .globl	__raygen__rg
.visible .const .align 8 .b8 params[72];

.visible .entry __raygen__rg()
{
	.reg .pred 	%p<4>;
	.reg .b16 	%rs<5>;
	.reg .f32 	%f<89>;
	.reg .b32 	%r<118>;
	.reg .b64 	%rd<6>;
	.loc	1 64 0
Lfunc_begin0:
	.loc	1 64 0


	.loc	1 67 23
	.loc	2 5711 5, function_name Linfo_string0, inlined_at 1 67 23
	// begin inline asm
	call (%r1), _optix_get_launch_index_x, ();
	// end inline asm
	.loc	2 5712 5, function_name Linfo_string0, inlined_at 1 67 23
	// begin inline asm
	call (%r2), _optix_get_launch_index_y, ();
	// end inline asm
Ltmp0:
	.loc	1 68 23
	.loc	2 5725 5, function_name Linfo_string1, inlined_at 1 68 23
	// begin inline asm
	call (%r4), _optix_get_launch_dimension_x, ();
	// end inline asm
	.loc	2 5726 5, function_name Linfo_string1, inlined_at 1 68 23
	// begin inline asm
	call (%r5), _optix_get_launch_dimension_y, ();
	// end inline asm
Ltmp1:
	.loc	1 73 5
	ld.const.v2.f32 	{%f10, %f11}, [params+24];
	mov.u32 	%r44, 0;
	mov.u32 	%r43, 1;
	ld.const.v2.f32 	{%f13, %f14}, [params+32];
	ld.const.v2.f32 	{%f17, %f18}, [params+40];
	ld.const.v2.f32 	{%f21, %f22}, [params+48];
	ld.const.v2.f32 	{%f25, %f26}, [params+56];
	cvt.rn.f32.u32 	%f29, %r1;
	cvt.rn.f32.u32 	%f30, %r4;
	div.approx.ftz.f32 	%f31, %f29, %f30;
	cvt.rn.f32.u32 	%f32, %r2;
	cvt.rn.f32.u32 	%f33, %r5;
	div.approx.ftz.f32 	%f34, %f32, %f33;
	fma.rn.ftz.f32 	%f35, %f31, 0f40000000, 0fBF800000;
	mov.f32 	%f36, 0f3F800000;
	fma.rn.ftz.f32 	%f37, %f34, 0f40000000, 0fBF800000;
	ld.const.v2.f32 	{%f38, %f39}, [params+16];
	mul.ftz.f32 	%f40, %f17, %f37;
	mul.ftz.f32 	%f41, %f18, %f37;
	mul.ftz.f32 	%f42, %f21, %f37;
	fma.rn.ftz.f32 	%f43, %f11, %f35, %f40;
	fma.rn.ftz.f32 	%f44, %f13, %f35, %f41;
	fma.rn.ftz.f32 	%f45, %f14, %f35, %f42;
	add.ftz.f32 	%f46, %f22, %f43;
	add.ftz.f32 	%f47, %f25, %f44;
	add.ftz.f32 	%f48, %f26, %f45;
	mul.ftz.f32 	%f49, %f47, %f47;
	fma.rn.ftz.f32 	%f50, %f46, %f46, %f49;
	fma.rn.ftz.f32 	%f51, %f48, %f48, %f50;
Ltmp2:
	.loc	3 547 25
	rsqrt.approx.ftz.f32 	%f52, %f51;
	mul.ftz.f32 	%f4, %f52, %f46;
	mul.ftz.f32 	%f5, %f52, %f47;
	mul.ftz.f32 	%f6, %f52, %f48;
Ltmp3:
	.loc	1 77 5
	ld.const.u64 	%rd1, [params+64];
Ltmp4:
	.loc	1 77 5
	.loc	2 198 5, function_name Linfo_string2, inlined_at 1 77 5
	mov.f32 	%f8, 0f5A0E1BCA;
	mov.f32 	%f9, 0f00000000;
	mov.u32 	%r40, 255;
	mov.u32 	%r45, 3;
	// begin inline asm
	call(%r7,%r8,%r9,%r10,%r11,%r12,%r13,%r14,%r15,%r16,%r17,%r18,%r19,%r20,%r21,%r22,%r23,%r24,%r25,%r26,%r27,%r28,%r29,%r30,%r31,%r32,%r33,%r34,%r35,%r36,%r37,%r38),_optix_trace_typed_32,(%r44,%rd1,%f38,%f39,%f10,%f4,%f5,%f6,%f9,%f8,%f9,%r40,%r44,%r44,%r43,%r44,%r45,%r78,%r79,%r80,%r81,%r82,%r83,%r84,%r85,%r86,%r87,%r88,%r89,%r90,%r91,%r92,%r93,%r94,%r95,%r96,%r97,%r98,%r99,%r100,%r101,%r102,%r103,%r104,%r105,%r106,%r107,%r108,%r109);
	// end inline asm
Ltmp5:
	.loc	4 137 10
	mov.b32 	%f53, %r7;
	mov.b32 	%f54, %r8;
	mov.b32 	%f55, %r9;
	.loc	1 96 5
	ld.const.u64 	%rd2, [params];
	cvta.to.global.u64 	%rd3, %rd2;
	ld.const.u32 	%r110, [params+8];
	mad.lo.s32 	%r111, %r110, %r2, %r1;
	.loc	3 121 22
	min.ftz.f32 	%f56, %f53, %f36;
	.loc	3 121 12
	max.ftz.f32 	%f57, %f9, %f56;
	.loc	3 121 22
	min.ftz.f32 	%f58, %f54, %f36;
	.loc	3 121 12
	max.ftz.f32 	%f59, %f9, %f58;
	.loc	3 121 22
	min.ftz.f32 	%f60, %f55, %f36;
	.loc	3 121 12
	max.ftz.f32 	%f61, %f9, %f60;
	.loc	5 38 33
	lg2.approx.ftz.f32 	%f62, %f57;
	mul.ftz.f32 	%f63, %f62, 0f3ED55555;
	ex2.approx.ftz.f32 	%f64, %f63;
	.loc	5 38 56
	lg2.approx.ftz.f32 	%f65, %f59;
	mul.ftz.f32 	%f66, %f65, 0f3ED55555;
	ex2.approx.ftz.f32 	%f67, %f66;
	.loc	5 38 79
	lg2.approx.ftz.f32 	%f68, %f61;
	mul.ftz.f32 	%f69, %f68, 0f3ED55555;
	ex2.approx.ftz.f32 	%f70, %f69;
	setp.lt.ftz.f32 	%p1, %f57, 0f3B4D2E1C;
	mul.ftz.f32 	%f71, %f57, 0f414EB852;
	fma.rn.ftz.f32 	%f72, %f64, 0f3F870A3D, 0fBD6147AE;
	selp.f32 	%f73, %f71, %f72, %p1;
	setp.lt.ftz.f32 	%p2, %f59, 0f3B4D2E1C;
	mul.ftz.f32 	%f74, %f59, 0f414EB852;
	fma.rn.ftz.f32 	%f75, %f67, 0f3F870A3D, 0fBD6147AE;
	selp.f32 	%f76, %f74, %f75, %p2;
	setp.lt.ftz.f32 	%p3, %f61, 0f3B4D2E1C;
	mul.ftz.f32 	%f77, %f61, 0f414EB852;
	fma.rn.ftz.f32 	%f78, %f70, 0f3F870A3D, 0fBD6147AE;
	selp.f32 	%f79, %f77, %f78, %p3;
Ltmp6:
	.loc	5 61 25
	.loc	3 121 22, function_name Linfo_string3, inlined_at 5 61 25
	min.ftz.f32 	%f80, %f73, %f36;
	.loc	3 121 12, function_name Linfo_string3, inlined_at 5 61 25
	max.ftz.f32 	%f81, %f9, %f80;
	.loc	5 54 5, function_name Linfo_string3, inlined_at 5 61 25
	mul.ftz.f32 	%f82, %f81, 0f43800000;
	cvt.rzi.ftz.u32.f32 	%r112, %f82;
	.loc	6 870 10, function_name Linfo_string3, inlined_at 5 61 25
	min.u32 	%r113, %r112, 255;
Ltmp7:
	.loc	5 61 58
	.loc	3 121 22, function_name Linfo_string3, inlined_at 5 61 58
	min.ftz.f32 	%f83, %f76, %f36;
	.loc	3 121 12, function_name Linfo_string3, inlined_at 5 61 58
	max.ftz.f32 	%f84, %f9, %f83;
	.loc	5 54 5, function_name Linfo_string3, inlined_at 5 61 58
	mul.ftz.f32 	%f85, %f84, 0f43800000;
	cvt.rzi.ftz.u32.f32 	%r114, %f85;
	.loc	6 870 10, function_name Linfo_string3, inlined_at 5 61 58
	min.u32 	%r115, %r114, 255;
Ltmp8:
	.loc	5 61 91
	.loc	3 121 22, function_name Linfo_string3, inlined_at 5 61 91
	min.ftz.f32 	%f86, %f79, %f36;
	.loc	3 121 12, function_name Linfo_string3, inlined_at 5 61 91
	max.ftz.f32 	%f87, %f9, %f86;
	.loc	5 54 5, function_name Linfo_string3, inlined_at 5 61 91
	mul.ftz.f32 	%f88, %f87, 0f43800000;
	cvt.rzi.ftz.u32.f32 	%r116, %f88;
	.loc	6 870 10, function_name Linfo_string3, inlined_at 5 61 91
	min.u32 	%r117, %r116, 255;
Ltmp9:
	.loc	5 61 91
	mul.wide.u32 	%rd4, %r111, 4;
	add.s64 	%rd5, %rd3, %rd4;
Ltmp10:
	.loc	6 870 10, function_name Linfo_string3, inlined_at 5 61 91
	cvt.u16.u32 	%rs1, %r117;
Ltmp11:
	.loc	6 870 10, function_name Linfo_string3, inlined_at 5 61 58
	cvt.u16.u32 	%rs2, %r115;
Ltmp12:
	.loc	6 870 10, function_name Linfo_string3, inlined_at 5 61 25
	cvt.u16.u32 	%rs3, %r113;
Ltmp13:
	.loc	5 61 91
	mov.u16 	%rs4, 255;
	st.global.v4.u8 	[%rd5], {%rs3, %rs2, %rs1, %rs4};
	.loc	1 97 1
	ret;
Ltmp14:
Lfunc_end0:

}
	// .globl	__miss__ms
.visible .entry __miss__ms()
{
	.reg .b32 	%r<7>;
	.reg .b64 	%rd<2>;
	.loc	1 100 0
Lfunc_begin1:
	.loc	1 100 0


	.loc	1 102 56
	.loc	2 5739 5, function_name Linfo_string4, inlined_at 1 102 56
	// begin inline asm
	call (%rd1), _optix_get_sbt_data_ptr_64, ();
	// end inline asm
Ltmp15:
	.loc	1 103 5
	ld.u32 	%r2, [%rd1];
	ld.u32 	%r4, [%rd1+4];
	ld.u32 	%r6, [%rd1+8];
Ltmp16:
	.loc	1 43 5
	.loc	2 3921 5, function_name Linfo_string5, inlined_at 1 43 5
	mov.u32 	%r1, 0;
	// begin inline asm
	call _optix_set_payload, (%r1, %r2);
	// end inline asm
Ltmp17:
	.loc	1 44 5
	.loc	2 3931 5, function_name Linfo_string6, inlined_at 1 44 5
	mov.u32 	%r3, 1;
	// begin inline asm
	call _optix_set_payload, (%r3, %r4);
	// end inline asm
Ltmp18:
	.loc	1 45 5
	.loc	2 3941 5, function_name Linfo_string7, inlined_at 1 45 5
	mov.u32 	%r5, 2;
	// begin inline asm
	call _optix_set_payload, (%r5, %r6);
	// end inline asm
Ltmp19:
	.loc	1 104 1
	ret;
Ltmp20:
Lfunc_end1:

}
	// .globl	__closesthit__ch
.visible .entry __closesthit__ch()
{
	.reg .f32 	%f<3>;
	.reg .b32 	%r<7>;
	.loc	1 107 0
Lfunc_begin2:
	.loc	1 107 0


	.loc	1 111 33
	.loc	2 5699 5, function_name Linfo_string8, inlined_at 1 111 33
	// begin inline asm
	call (%f1, %f2), _optix_get_triangle_barycentrics, ();
	// end inline asm
Ltmp21:
	.loc	4 132 10
	mov.b32 	%r2, %f1;
Ltmp22:
	.loc	1 43 5
	.loc	2 3921 5, function_name Linfo_string5, inlined_at 1 43 5
	mov.u32 	%r1, 0;
	// begin inline asm
	call _optix_set_payload, (%r1, %r2);
	// end inline asm
Ltmp23:
	.loc	4 132 10
	mov.b32 	%r4, %f2;
Ltmp24:
	.loc	1 44 5
	.loc	2 3931 5, function_name Linfo_string6, inlined_at 1 44 5
	mov.u32 	%r3, 1;
	// begin inline asm
	call _optix_set_payload, (%r3, %r4);
	// end inline asm
Ltmp25:
	.loc	1 45 5
	.loc	2 3941 5, function_name Linfo_string7, inlined_at 1 45 5
	mov.u32 	%r5, 2;
	mov.u32 	%r6, 1065353216;
	// begin inline asm
	call _optix_set_payload, (%r5, %r6);
	// end inline asm
Ltmp26:
	.loc	1 114 1
	ret;
Ltmp27:
Lfunc_end2:

}
	.file	1 "optixTriangle/optixTriangle.cu"
	.file	2 "include/internal/optix_7_device_impl.h"
	.file	3 "sutil/vec_math.h"
	.file	4 "cuda/include/crt/device_functions.hpp"
	.file	5 "cuda/helpers.h"
	.file	6 "include/crt/math_functions.hpp"
	.section	.debug_str
	{
Linfo_string0:
.b8 95,90,78,55,48,95,73,78,84,69,82,78,65,76,95,52,56,95,116,109,112,120,102,116,95,48,48,48,48,99,54,52,101,95,48,48,48,48,48,48
.b8 48,48,95,55,95,111,112,116,105,120,84,114,105,97,110,103,108,101,95,99,112,112,49,95,105,105,95,100,101,98,99,100,99,53,49,49,57,111,112,116
.b8 105,120,71,101,116,76,97,117,110,99,104,73,110,100,101,120,69,118,0
Linfo_string1:
.b8 95,90,78,55,48,95,73,78,84,69,82,78,65,76,95,52,56,95,116,109,112,120,102,116,95,48,48,48,48,99,54,52,101,95,48,48,48,48,48,48
.b8 48,48,95,55,95,111,112,116,105,120,84,114,105,97,110,103,108,101,95,99,112,112,49,95,105,105,95,100,101,98,99,100,99,53,49,50,52,111,112,116
.b8 105,120,71,101,116,76,97,117,110,99,104,68,105,109,101,110,115,105,111,110,115,69,118,0
Linfo_string2:
.b8 95,90,78,55,48,95,73,78,84,69,82,78,65,76,95,52,56,95,116,109,112,120,102,116,95,48,48,48,48,99,54,52,101,95,48,48,48,48,48,48
.b8 48,48,95,55,95,111,112,116,105,120,84,114,105,97,110,103,108,101,95,99,112,112,49,95,105,105,95,100,101,98,99,100,99,53,49,49,48,111,112,116
.b8 105,120,84,114,97,99,101,69,121,54,102,108,111,97,116,51,83,48,95,102,102,102,106,106,106,106,106,82,106,83,49,95,83,49,95,0
Linfo_string3:
.b8 95,90,50,49,113,117,97,110,116,105,122,101,85,110,115,105,103,110,101,100,56,66,105,116,115,102,0
Linfo_string4:
.b8 95,90,78,55,48,95,73,78,84,69,82,78,65,76,95,52,56,95,116,109,112,120,102,116,95,48,48,48,48,99,54,52,101,95,48,48,48,48,48,48
.b8 48,48,95,55,95,111,112,116,105,120,84,114,105,97,110,103,108,101,95,99,112,112,49,95,105,105,95,100,101,98,99,100,99,53,49,50,50,111,112,116
.b8 105,120,71,101,116,83,98,116,68,97,116,97,80,111,105,110,116,101,114,69,118,0
Linfo_string5:
.b8 95,90,78,55,48,95,73,78,84,69,82,78,65,76,95,52,56,95,116,109,112,120,102,116,95,48,48,48,48,99,54,52,101,95,48,48,48,48,48,48
.b8 48,48,95,55,95,111,112,116,105,120,84,114,105,97,110,103,108,101,95,99,112,112,49,95,105,105,95,100,101,98,99,100,99,53,49,49,55,111,112,116
.b8 105,120,83,101,116,80,97,121,108,111,97,100,95,48,69,106,0
Linfo_string6:
.b8 95,90,78,55,48,95,73,78,84,69,82,78,65,76,95,52,56,95,116,109,112,120,102,116,95,48,48,48,48,99,54,52,101,95,48,48,48,48,48,48
.b8 48,48,95,55,95,111,112,116,105,120,84,114,105,97,110,103,108,101,95,99,112,112,49,95,105,105,95,100,101,98,99,100,99,53,49,49,55,111,112,116
.b8 105,120,83,101,116,80,97,121,108,111,97,100,95,49,69,106,0
Linfo_string7:
.b8 95,90,78,55,48,95,73,78,84,69,82,78,65,76,95,52,56,95,116,109,112,120,102,116,95,48,48,48,48,99,54,52,101,95,48,48,48,48,48,48
.b8 48,48,95,55,95,111,112,116,105,120,84,114,105,97,110,103,108,101,95,99,112,112,49,95,105,105,95,100,101,98,99,100,99,53,49,49,55,111,112,116
.b8 105,120,83,101,116,80,97,121,108,111,97,100,95,50,69,106,0
Linfo_string8:
.b8 95,90,78,55,48,95,73,78,84,69,82,78,65,76,95,52,56,95,116,109,112,120,102,116,95,48,48,48,48,99,54,52,101,95,48,48,48,48,48,48
.b8 48,48,95,55,95,111,112,116,105,120,84,114,105,97,110,103,108,101,95,99,112,112,49,95,105,105,95,100,101,98,99,100,99,53,49,50,56,111,112,116
.b8 105,120,71,101,116,84,114,105,97,110,103,108,101,66,97,114,121,99,101,110,116,114,105,99,115,69,118,0

	}
'''
