#include<stdio.h>
int a, b, c, i, L, n;
void welcome( ) ;
void intro( ) ;
void special_info( ) ;
void menu( ) ;
void entry( ) ;
void numbers( ) ;
void evenNumber( ) ;
void oddNumber( ) ;
void alphabet( ) ;
void capital_letters( ) ;
void small_letters( ) ;
void vowel( ) ;
void consonant( ) ;
void add( ) ;
void sub( ) ;
void mul( ) ;
void Remainder( ) ;
void factorial( ) ;
void summtion( ) ;
void even_sum( ) ;
void odd_sum( ) ;
void multiplication( ) ;
void multiplication_table ( ) ;
void name( ) ;
void Name( ) ;
int largest_number( ) ;
int smallest_number( ) ;
int large_among_three( ) ;
int small_among_three( ) ;
void end( ) ;
int main( )
{
welcome( ) ;
intro( ) ;
special_info( ) ;
menu( ) ;
while ( 1 )
{
entry( ) ;
if ( n == 0 )
{
break ;
}
switch ( n)
{
case 1 :
numbers( ) ;
break ;
case 2 :
evenNumber( ) ;
break ;
case 3 :
oddNumber( ) ;
break ;
case 4 :
alphabet( ) ;
break ;
case 5 :
capital_letters( ) ;
break ;
case 6 :
small_letters( ) ;
break ;
case 7 :
vowel( ) ;
break ;
case 8 :
consonant( ) ;
break ;
case 9 :
add( ) ;
break ;
case 10 :
sub( ) ;
break ;
case 11 :
mul( ) ;
break ;
case 12 :
break ;
case 13 :
Remainder( ) ;
break ;
case 14 :
factorial( ) ;
break ;
case 15 :
summtion( ) ;
break ;
case 16 :
even_sum( ) ;
break ;
case 17 :
odd_sum( ) ;
break ;
case 18 :
multiplication( ) ;
break ;
case 19 :
multiplication_table( ) ;
break ;
case 20 :
name( ) ;
break ;
case 21 :
n = largest_number( a, b) ;
break ;
case 22 :
n = smallest_number( a, b) ;
break ;
case 23 :
printf ( "Enter three value :" ) ; scanf ( "%d%d%d" , & a
, & b
, & c
) ; i = large_among_three( a, b, c) ;
break ;
case 24 :
printf ( "Enter three value :" ) ; scanf ( "%d%d%d" , & a
, & b
, & c
) ; i = small_among_three( a, b, c) ;
break ;
default :
break ;
}
}
end( ) ;
return 0 ;
}
void welcome( )
{
printf ( " Welcome To My C program\n " ) ; printf ( "Structured Programming Language\n " ) ; printf ( "Course code : SPL 1201 \n " ) ; printf ( "Sonargaon University\n " ) ; printf ( "-------------------------------------------------\n \n \n " ) ; }
void intro( )
{
printf ( "Name :Md. Nazmul Hossain\n " ) ; printf ( "ID : CSE2302029028\n " ) ; printf ( "Mobile No : 01760402892\n " ) ; printf ( "Total USER DEFINE numbers - 31\n " ) ; printf ( "Date of submission : 27 -11- 2023\n \n " ) ; }
void special_info( )
{
printf ( "Sir, I have built total 31 user define function and followed rules .\n while loop, do - while loop and for loop have been used in my code. \n " ) ; }
void menu( )
{
printf ( "Enter 1 for printing numbers from 1 - 20 .\n " ) ; printf ( "Enter 2 for printing even numbers from 1 - 20 .\n " ) ; printf ( "Enter 3 for printing odd numbers from 1 - 20 .\n " ) ; printf ( "Enter 4 for printing Alphabets \n " ) ; printf ( "Enter 5 for printing capital letters. \n " ) ; printf ( "Enter 6 for printing small letters. \n " ) ; printf ( "Enter 7 for printing vowels. \n " ) ; printf ( "Enter 8 for printing consonants. \n " ) ; printf ( "Enter 9 for summation between two integer numbers .\n " ) ; printf ( "Enter 10 for subtraction between two integer numbers .\n " ) ; printf ( "Enter 11 for multiplication between two integer numbers .\n " ) ; printf ( "Enter 12 for division between two integer numbers .\n " ) ; printf ( "Enter 13 for remainder between two integer numbers .\n " ) ; printf ( "Enter 14 for find out factorial .\n " ) ; printf ( "Enter 15 for find out the total summation from 1- 100 .\n " ) ; printf ( "Enter 16 for find out the even total summation from 1- 100 .\n " ) ; printf ( "Enter 17 for find out the odd total summation from 1- 100 .\n " ) ; printf ( "Enter 18 for find out the total multiplication from 1- 10 .\n " ) ; printf ( "Enter 19 for find out the multiplication table of a number. \n " ) ; printf ( "Enter 20 for printing your nick name. \n " ) ; printf ( "Enter 21 for find out the largest among two numbers.\n " ) ; printf ( "Enter 22 for find out the smallest among two numbers.\n " ) ; printf ( "Enter 23 for find out the smallest among three numbers.\n " ) ; printf ( "Enter 24 for find out the smallest among three numbers.\n " ) ;
}
void numbers( )
{
i = 1 ;
while ( i< 21 )
{
i++;
}
}
void evenNumber( )
{
for ( i = 2 ; i< 21 ; i= i+ 2 )
{
}
}
void oddNumber( )
{
i = 1 ;
do {
i = i+ 2 ;
} while ( i< 21 ) ;
}
void entry( )
{
printf ( "Enter a number ( enter 0 for exit the loop ) : " ) ; }
void alphabet( )
{
char ch = 'A' ;
while ( ch<= 'Z' )
{
ch++;
}
}
void capital_letters( )
{
char ch = 'A' ;
do
{
ch++;
} while ( ch<= 'Z' ) ;
}
void small_letters( )
{
char ch = 'a' ;
for ( ; ch<= 'z' ; ch++ )
{
}
}
void vowel( )
{
printf ( "A\\ a E\\ e I\\ i O\\ o U\\ u" ) ; }
void consonant( )
{
char ch;
for ( ch = 'b' ; ch< 'z' ; ch++ )
{
if ( ch != 'a' || ch != 'e' || ch != 'i' || ch != 'o' || ch != 'u' )
{
}
else
continue ;
}
}
void add( )
{
int a, b;
printf ( "Enter the value of a & b : " ) ; printf ( "\n %d + %d = %d " , a
, b
, a
+ b
) ; }
void sub( )
{
printf ( "Enter the value of a & b : " ) ; printf ( "\n %d - %d = %d " , a
, b
, a
- b
) ; }
void mul( )
{
printf ( "Enter the value of a & b : " ) ; printf ( "\n %d * %d = %d " , a
, b
, a
* b
) ; }
{
int a, b;
printf ( "Enter the value of a & b : " ) ; printf ( "\n %d / %d = %d " , a
, b
, a
/ b
) ; }
void Remainder( )
{
scanf ( "%d , %d" , & a
, & b
) ; printf ( "remainder = %d" , a
% b
) ; }
void factorial( )
{
int s = 1 ;
for ( i = 1 ; i<= n ; i++ )
{
s = s* i ;
}
printf ( "%d s factorial is %d" , n
, s
) ; }
void summtion( )
{
int s = 1 ;
for ( i = 1 ; i<= 100 ; i++ )
{
s = s+ i ;
}
}
void even_sum( )
{
int s = 2 ;
for ( i = 2 ; i<= 100 ; i= i+ 2 )
{
s = s+ i ;
}
}
void odd_sum( )
{
int s = 1 ;
for ( i = 1 ; i<= 100 ; i = i+ 2 )
{
s = s+ i ;
}
}
void multiplication( )
{
int s = 1 ;
for ( i = 1 ; i< 10 ; i++ )
{
s = s* i ;
}
}
void multiplication_table( )
{
for ( i = 1 ; i< 11 ; i++ )
{
printf ( "%d * %d = %d\n " , n
, i
, n
* i
) ; }
}
void name( )
{
char name[ 12 ] ;
printf ( "your name is : %s\n " , name
) ;
}
int largest_number( int a, int b)
{
if ( a> b)
return a;
else
return b;
}
int smallest_number( int a, int b)
{
if ( a< b)
return a;
else
return b;
}
int large_among_three( int a, int b, int c)
{
L = ( a> b && a> c) ? a:
( b> c) ? b : c ;
return L;
}
int small_among_three( int a, int b, int c)
{
L = ( a< b && a< c) ? a:
( b< c) ? b : c ;
return L;
}
void end( )
{
printf ( "Thank you for checking my code.\n " ) ; printf ( "Name : Md.Nazmul Hossain \n ID : CSE 2302029028\n Section : 29A1 \n Mobile no :01760402892\n " ) ; }
I2luY2x1ZGU8c3RkaW8uaD4KCmludCBhLCBiLCBjLCBpLCBMLCBuOwoKdm9pZCB3ZWxjb21lKCk7CnZvaWQgaW50cm8oKTsKdm9pZCBzcGVjaWFsX2luZm8oKTsKdm9pZCBtZW51KCk7CnZvaWQgZW50cnkoKTsKdm9pZCBudW1iZXJzKCk7CnZvaWQgZXZlbk51bWJlcigpOwp2b2lkIG9kZE51bWJlcigpOwp2b2lkIGFscGhhYmV0KCk7CnZvaWQgY2FwaXRhbF9sZXR0ZXJzKCk7CnZvaWQgc21hbGxfbGV0dGVycygpOwoKdm9pZCB2b3dlbCgpOwp2b2lkIGNvbnNvbmFudCgpOwp2b2lkIGFkZCgpOwp2b2lkIHN1YigpOwp2b2lkIG11bCgpOwp2b2lkIGRpdigpOwp2b2lkIFJlbWFpbmRlcigpOwp2b2lkIGZhY3RvcmlhbCgpOwp2b2lkIHN1bW10aW9uKCk7CnZvaWQgZXZlbl9zdW0oKTsKCnZvaWQgb2RkX3N1bSgpOwp2b2lkIG11bHRpcGxpY2F0aW9uKCk7CnZvaWQgbXVsdGlwbGljYXRpb25fdGFibGUgKCk7CnZvaWQgbmFtZSgpOwp2b2lkIE5hbWUoKTsKaW50IGxhcmdlc3RfbnVtYmVyKCk7CmludCBzbWFsbGVzdF9udW1iZXIoKTsKaW50IGxhcmdlX2Ftb25nX3RocmVlKCk7CmludCBzbWFsbF9hbW9uZ190aHJlZSgpOwp2b2lkIGVuZCgpOwoKCgppbnQgbWFpbigpCgp7CiAgICB3ZWxjb21lKCk7CiAgICBpbnRybygpOwogICAgc3BlY2lhbF9pbmZvKCk7CiAgICBtZW51KCk7CgogICAgd2hpbGUoMSkKICAgIHsKICAgICAgICBlbnRyeSgpOwogICAgICAgIGlmKCBuID09IDApCiAgICAgICAgewogICAgICAgICAgICBicmVhazsKICAgICAgICB9CiAgICAgICAgc3dpdGNoKG4pCiAgICAgICAgewogICAgICAgIGNhc2UgMSA6CiAgICAgICAgICAgIG51bWJlcnMoKTsKICAgICAgICAgICAgYnJlYWs7CgogICAgICAgIGNhc2UgMiA6CiAgICAgICAgICAgIGV2ZW5OdW1iZXIoKTsKICAgICAgICAgICAgYnJlYWs7CgogICAgICAgIGNhc2UgMyA6CiAgICAgICAgICAgIG9kZE51bWJlcigpOwogICAgICAgICAgICBicmVhazsKCiAgICAgICAgY2FzZSA0IDoKICAgICAgICAgICAgYWxwaGFiZXQoKTsKICAgICAgICAgICAgYnJlYWs7CgogICAgICAgIGNhc2UgNSA6CiAgICAgICAgICAgIGNhcGl0YWxfbGV0dGVycygpOwogICAgICAgICAgICBicmVhazsKCiAgICAgICAgY2FzZSA2IDoKICAgICAgICAgICAgc21hbGxfbGV0dGVycygpOwogICAgICAgICAgICBicmVhazsKCiAgICAgICAgY2FzZSA3IDoKICAgICAgICAgICAgdm93ZWwoKTsKICAgICAgICAgICAgYnJlYWs7CgogICAgICAgIGNhc2UgOCA6CiAgICAgICAgICAgIGNvbnNvbmFudCgpOwogICAgICAgICAgICBicmVhazsKCiAgICAgICAgY2FzZSA5IDoKICAgICAgICAgICAgYWRkKCk7CiAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICBjYXNlIDEwIDoKICAgICAgICAgICAgc3ViKCk7CiAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICBjYXNlIDExIDoKICAgICAgICAgICAgbXVsKCk7CiAgICAgICAgICAgIGJyZWFrOwoKCiAgICAgICAgY2FzZSAxMiA6CiAgICAgICAgICAgIGRpdigpOwogICAgICAgICAgICBicmVhazsKCiAgICAgICAgY2FzZSAxMyA6CiAgICAgICAgICAgIFJlbWFpbmRlcigpOwogICAgICAgICAgICBicmVhazsKCiAgICAgICAgY2FzZSAxNCA6CiAgICAgICAgICAgIGZhY3RvcmlhbCgpOwogICAgICAgICAgICBicmVhazsKCiAgICAgICAgY2FzZSAxNSA6CiAgICAgICAgICAgIHN1bW10aW9uKCk7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgMTYgOgogICAgICAgICAgICBldmVuX3N1bSgpOwogICAgICAgICAgICBicmVhazsKCiAgICAgICAgY2FzZSAxNyA6CiAgICAgICAgICAgIG9kZF9zdW0oKTsKICAgICAgICAgICAgYnJlYWs7CgogICAgICAgIGNhc2UgMTggOgogICAgICAgICAgICBtdWx0aXBsaWNhdGlvbigpOwogICAgICAgICAgICBicmVhazsKCiAgICAgICAgY2FzZSAxOSA6CiAgICAgICAgICAgIG11bHRpcGxpY2F0aW9uX3RhYmxlKCk7CiAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICBjYXNlIDIwIDoKICAgICAgICAgICAgbmFtZSgpOwogICAgICAgICAgICBicmVhazsKCiAgICAgICAgY2FzZSAyMSA6CiAgICAgICAgICAgIHByaW50ZigiRW50ZXIgdHdvIHZhbHVlIDogIik7CiAgICAgICAgICAgIHNjYW5mKCIlZCAlZCIsICZhLCAmYik7CiAgICAgICAgICAgIG4gPSBsYXJnZXN0X251bWJlcihhLGIpOwogICAgICAgICAgICBwcmludGYoImxhcmdlc3QgPSAlZCIsIG4pOwogICAgICAgICAgICBwcmludGYoIlxuXG5cbiIpOwogICAgICAgICAgICBicmVhazsKCiAgICAgICAgY2FzZSAyMiA6CiAgICAgICAgICAgIHByaW50ZigiRW50ZXIgdHdvIHZhbHVlIDogIik7CiAgICAgICAgICAgIHNjYW5mKCIlZCAlZCIsICZhLCAmYik7CiAgICAgICAgICAgIG4gPSBzbWFsbGVzdF9udW1iZXIoYSxiKTsKICAgICAgICAgICAgcHJpbnRmKCJzbWFsbGVzdCA9ICVkIiwgbik7CiAgICAgICAgICAgIHByaW50ZigiXG5cblxuIik7CiAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICBjYXNlIDIzIDoKICAgICAgICAgICAgcHJpbnRmKCJFbnRlciB0aHJlZSB2YWx1ZSA6Iik7CiAgICAgICAgICAgIHNjYW5mKCIlZCVkJWQiLCAmYSwgJmIsICZjKTsKICAgICAgICAgICAgaSA9IGxhcmdlX2Ftb25nX3RocmVlKGEsIGIsIGMpOwogICAgICAgICAgICBwcmludGYoImxhcmdlc3QgPSAlZCIsIGkpOwogICAgICAgICAgICBwcmludGYoIlxuXG5cbiIpOwogICAgICAgICAgICBicmVhazsKCiAgICAgICAgY2FzZSAyNCA6CiAgICAgICAgICAgIHByaW50ZigiRW50ZXIgdGhyZWUgdmFsdWUgOiIpOwogICAgICAgICAgICBzY2FuZigiJWQlZCVkIiwgJmEsICZiLCAmYyk7CiAgICAgICAgICAgIGkgPSBzbWFsbF9hbW9uZ190aHJlZShhLCBiLCBjKTsKICAgICAgICAgICAgcHJpbnRmKCJzbWFsbGVzdCA9ICVkIiwgaSk7CiAgICAgICAgICAgIHByaW50ZigiXG5cblxuIik7CiAgICAgICAgICAgIGJyZWFrOwoKCiAgICAgICAgZGVmYXVsdCA6CiAgICAgICAgICAgIHByaW50ZigiSW52YWxpZCBOdW1iZXJcbiIpOwogICAgICAgICAgICBicmVhazsKCgoKICAgICAgICB9CgoKCiAgICB9CiAgICBlbmQoKTsKCiAgICByZXR1cm4gMDsKfQoKCnZvaWQgd2VsY29tZSgpCnsKICAgIHByaW50ZigiICBXZWxjb21lIFRvIE15IEMgcHJvZ3JhbVxuIik7CiAgICBwcmludGYoIlN0cnVjdHVyZWQgUHJvZ3JhbW1pbmcgTGFuZ3VhZ2VcbiIpOwogICAgcHJpbnRmKCJDb3Vyc2UgY29kZSA6IFNQTCAxMjAxIFxuIik7CiAgICBwcmludGYoIlNvbmFyZ2FvbiBVbml2ZXJzaXR5XG4iKTsKICAgIHByaW50ZigiLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5cbiIpOwp9Cgp2b2lkIGludHJvKCkKewogICAgcHJpbnRmKCJOYW1lIDpNZC4gTmF6bXVsIEhvc3NhaW5cbiIpOwogICAgcHJpbnRmKCJJRCA6IENTRTIzMDIwMjkwMjhcbiIpOwogICAgcHJpbnRmKCJTZWN0aW9uIDogMjlBMVxuIik7CiAgICBwcmludGYoIk1vYmlsZSBObyA6IDAxNzYwNDAyODkyXG4iKTsKICAgIHByaW50ZigiVG90YWwgVVNFUiBERUZJTkUgbnVtYmVycyAtIDMxXG4iKTsKICAgIHByaW50ZigiRGF0ZSBvZiBzdWJtaXNzaW9uIDogMjcgLTExLSAyMDIzXG5cbiIpOwp9Cgp2b2lkIHNwZWNpYWxfaW5mbygpCnsKICAgIHByaW50ZigiU2lyLCBJIGhhdmUgYnVpbHQgdG90YWwgMzEgdXNlciBkZWZpbmUgZnVuY3Rpb24gYW5kIGZvbGxvd2VkIHJ1bGVzIC5cbiB3aGlsZSBsb29wLCBkbyAtICB3aGlsZSBsb29wIGFuZCBmb3IgbG9vcCBoYXZlIGJlZW4gdXNlZCBpbiBteSBjb2RlLiBcbiIpOwogICAgcHJpbnRmKCJcblxuXG4iKTsKfQoKdm9pZCBtZW51KCkKewogICAgcHJpbnRmKCJFbnRlciAxIGZvciBwcmludGluZyBudW1iZXJzIGZyb20gMSAtIDIwIC5cbiIpOwogICAgcHJpbnRmKCJFbnRlciAyIGZvciBwcmludGluZyBldmVuIG51bWJlcnMgZnJvbSAxIC0gMjAgLlxuIik7CiAgICBwcmludGYoIkVudGVyIDMgZm9yIHByaW50aW5nIG9kZCBudW1iZXJzIGZyb20gMSAtIDIwIC5cbiIpOwogICAgcHJpbnRmKCJFbnRlciA0IGZvciBwcmludGluZyBBbHBoYWJldHMgXG4iKTsKICAgIHByaW50ZigiRW50ZXIgNSBmb3IgcHJpbnRpbmcgY2FwaXRhbCBsZXR0ZXJzLiBcbiIpOwogICAgcHJpbnRmKCJFbnRlciA2IGZvciBwcmludGluZyBzbWFsbCBsZXR0ZXJzLiBcbiIpOwogICAgcHJpbnRmKCJFbnRlciA3IGZvciBwcmludGluZyB2b3dlbHMuIFxuIik7CiAgICBwcmludGYoIkVudGVyIDggZm9yIHByaW50aW5nIGNvbnNvbmFudHMuIFxuIik7CiAgICBwcmludGYoIkVudGVyIDkgZm9yIHN1bW1hdGlvbiBiZXR3ZWVuIHR3byBpbnRlZ2VyIG51bWJlcnMgLlxuIik7CiAgICBwcmludGYoIkVudGVyIDEwIGZvciBzdWJ0cmFjdGlvbiBiZXR3ZWVuIHR3byBpbnRlZ2VyIG51bWJlcnMgLlxuIik7CiAgICBwcmludGYoIkVudGVyIDExIGZvciBtdWx0aXBsaWNhdGlvbiBiZXR3ZWVuIHR3byBpbnRlZ2VyIG51bWJlcnMgLlxuIik7CiAgICBwcmludGYoIkVudGVyIDEyIGZvciBkaXZpc2lvbiBiZXR3ZWVuIHR3byBpbnRlZ2VyIG51bWJlcnMgLlxuIik7CiAgICBwcmludGYoIkVudGVyIDEzIGZvciByZW1haW5kZXIgYmV0d2VlbiB0d28gaW50ZWdlciBudW1iZXJzIC5cbiIpOwogICAgcHJpbnRmKCJFbnRlciAxNCBmb3IgZmluZCBvdXQgZmFjdG9yaWFsIC5cbiIpOwogICAgcHJpbnRmKCJFbnRlciAxNSBmb3IgZmluZCBvdXQgdGhlIHRvdGFsIHN1bW1hdGlvbiBmcm9tIDEtIDEwMCAuXG4iKTsKICAgIHByaW50ZigiRW50ZXIgMTYgZm9yIGZpbmQgb3V0IHRoZSBldmVuIHRvdGFsIHN1bW1hdGlvbiBmcm9tIDEtIDEwMCAuXG4iKTsKICAgIHByaW50ZigiRW50ZXIgMTcgZm9yIGZpbmQgb3V0IHRoZSBvZGQgdG90YWwgc3VtbWF0aW9uIGZyb20gMS0gMTAwIC5cbiIpOwogICAgcHJpbnRmKCJFbnRlciAxOCBmb3IgZmluZCBvdXQgdGhlICB0b3RhbCBtdWx0aXBsaWNhdGlvbiBmcm9tIDEtIDEwIC5cbiIpOwogICAgcHJpbnRmKCJFbnRlciAxOSBmb3IgZmluZCBvdXQgdGhlICBtdWx0aXBsaWNhdGlvbiB0YWJsZSBvZiBhIG51bWJlci4gXG4iKTsKICAgIHByaW50ZigiRW50ZXIgMjAgZm9yIHByaW50aW5nIHlvdXIgbmljayBuYW1lLiBcbiIpOwogICAgcHJpbnRmKCJFbnRlciAyMSBmb3IgZmluZCBvdXQgdGhlIGxhcmdlc3QgYW1vbmcgdHdvIG51bWJlcnMuXG4iKTsKICAgIHByaW50ZigiRW50ZXIgMjIgZm9yIGZpbmQgb3V0IHRoZSBzbWFsbGVzdCBhbW9uZyB0d28gbnVtYmVycy5cbiIpOwogICAgcHJpbnRmKCJFbnRlciAyMyBmb3IgZmluZCBvdXQgdGhlIHNtYWxsZXN0IGFtb25nIHRocmVlIG51bWJlcnMuXG4iKTsKICAgIHByaW50ZigiRW50ZXIgMjQgZm9yIGZpbmQgb3V0IHRoZSBzbWFsbGVzdCBhbW9uZyB0aHJlZSBudW1iZXJzLlxuIik7CgoKICAgIHByaW50ZigiXG5cbiIpOwp9Cgp2b2lkIG51bWJlcnMoKQp7CiAgICBpID0gMTsKICAgIHdoaWxlKGk8MjEpCiAgICB7CiAgICAgICAgcHJpbnRmKCIlZFx0IiwgaSk7CiAgICAgICAgaSsrOwogICAgfQogICAgcHJpbnRmKCJcblxuIik7Cn0KCnZvaWQgZXZlbk51bWJlcigpCnsKICAgIGZvcihpID0gMjsgaTwyMTsgaT0gaSsyKQogICAgewogICAgICAgIHByaW50ZigiJWRcdCIsIGkpOwogICAgfQogICAgcHJpbnRmKCJcblxuIik7Cn0Kdm9pZCBvZGROdW1iZXIoKQp7CiAgICBpID0gMTsKICAgIGRvewogICAgICAgIHByaW50ZigiJWRcdCIsIGkpOwogICAgICAgIGkgPSBpKzI7CiAgICB9d2hpbGUoaTwyMSk7CiAgICBwcmludGYoIlxuXG4iKTsKfQoKdm9pZCBlbnRyeSgpCnsKICAgIHByaW50ZigiRW50ZXIgYSBudW1iZXIgKCBlbnRlciAwIGZvciBleGl0IHRoZSBsb29wICkgOiAgIik7CiAgICBzY2FuZigiJWQiLCAmbik7CiAgICBwcmludGYoIlxuXG4iKTsKfQoKdm9pZCBhbHBoYWJldCgpCnsKICAgIGNoYXIgY2ggPSAnQSc7CiAgICB3aGlsZShjaDw9J1onKQogICAgewogICAgICAgIHByaW50ZigiJWNcdCIsIGNoKTsKICAgICAgICBjaCsrOwogICAgfQogICAgcHJpbnRmKCJcblxuIik7Cn0KCnZvaWQgY2FwaXRhbF9sZXR0ZXJzKCkKewogICAgY2hhciBjaCA9ICdBJzsKICAgIGRvCiAgICB7CiAgICAgICAgcHJpbnRmKCIlY1x0IiwgY2gpOwogICAgICAgIGNoKys7CiAgICB9d2hpbGUoY2g8PSAnWicgKTsKCiAgICBwcmludGYoIlxuXG4iKTsKfQoKdm9pZCBzbWFsbF9sZXR0ZXJzKCkKewogICAgY2hhciBjaCA9ICdhJzsKICAgIGZvciAoOyBjaDw9J3onIDsgY2grKykKICAgIHsKICAgICAgICBwcmludGYoIiVjXHQiLCBjaCk7CiAgICB9CiAgICBwcmludGYoIlxuXG4iKTsKfQoKdm9pZCB2b3dlbCgpCnsKICAgIHByaW50ZigiQVxcYSAgRVxcZSAgSVxcaSBPXFxvIFVcXHUiKTsKICAgIHByaW50ZigiXG5cblxuIik7Cn0Kdm9pZCBjb25zb25hbnQoKQp7CiAgICBjaGFyIGNoOwogICAgZm9yIChjaCA9ICdiJyA7IGNoPCd6JyAgOyBjaCsrKQogICAgewogICAgICAgIGlmKGNoICE9ICdhJyB8fCBjaCAhPSAnZScgfHwgY2ggIT0gJ2knIHx8IGNoICE9ICdvJyB8fCBjaCAhPSAndScpCiAgICAgICAgewogICAgICAgICAgICBwcmludGYoIiAlY1x0IixjaCk7CiAgICAgICAgfQogICAgICAgIGVsc2UKICAgICAgICAgICAgY29udGludWU7CiAgICB9Cn0KCnZvaWQgYWRkKCkKewogICAgaW50IGEsIGI7CiAgICBwcmludGYoIkVudGVyIHRoZSB2YWx1ZSBvZiBhICYgYiA6ICIpOwogICAgc2NhbmYoIiVkICVkIiwgJmEsICZiKTsKICAgIHByaW50ZigiXG4lZCArICVkID0gJWQgIiwgYSwgYiwgYStiKTsKICAgIHByaW50ZigiXG5cbiIpOwp9CnZvaWQgc3ViKCkKewogICAgcHJpbnRmKCJFbnRlciB0aGUgdmFsdWUgb2YgYSAmIGIgOiAiKTsKICAgIHNjYW5mKCIlZCAlZCIsICZhLCAmYik7CiAgICBwcmludGYoIlxuJWQgLSAlZCA9ICVkICIsIGEsIGIsIGEtYik7CiAgICBwcmludGYoIlxuXG4iKTsKfQp2b2lkIG11bCgpCnsKICAgIHByaW50ZigiRW50ZXIgdGhlIHZhbHVlIG9mIGEgJiBiIDogIik7CiAgICBzY2FuZigiJWQgJWQiLCAmYSwgJmIpOwogICAgcHJpbnRmKCJcbiVkICogJWQgPSAlZCAiLCBhLCBiLCBhKmIpOwogICAgcHJpbnRmKCJcblxuIik7Cn0Kdm9pZCBkaXYoKQp7CiAgICBpbnQgYSwgYjsKICAgIHByaW50ZigiRW50ZXIgdGhlIHZhbHVlIG9mIGEgJiBiIDogIik7CiAgICBzY2FuZigiJWQgJWQiLCAmYSwgJmIpOwogICAgcHJpbnRmKCJcbiVkIC8gJWQgPSAlZCAiLCBhLCBiLCBhL2IpOwogICAgcHJpbnRmKCJcblxuIik7Cn0Kdm9pZCBSZW1haW5kZXIoKQp7CiAgICBwcmludGYoIkVudGVyIGEgdmFsdWUgOiAiKTsKICAgIHNjYW5mKCIlZCAsICVkIiwgJmEsICZiKTsKICAgIHByaW50ZigicmVtYWluZGVyID0gJWQiLCBhJWIpOwogICAgcHJpbnRmKCJcblxuIik7Cn0KCnZvaWQgZmFjdG9yaWFsKCkKewogICAgcHJpbnRmKCJFbnRlciBhIG51bWJlciA6Iik7CiAgICBzY2FuZigiJWQiLCAmbik7CiAgICBpbnQgcyA9IDEgOwogICAgZm9yKCBpID0gMTsgaTw9biA7IGkrKykKICAgIHsKICAgICAgICBzID0gcyogaSA7CiAgICB9CiAgICBwcmludGYoIiVkIHMgZmFjdG9yaWFsIGlzICVkIiwgbiwgcyk7CiAgICBwcmludGYoIlxuXG4iKTsKfQoKdm9pZCBzdW1tdGlvbigpCnsKCiAgICBpbnQgcyA9IDEgOwogICAgZm9yKCBpID0gMTsgaTw9MTAwIDsgaSsrKQogICAgewogICAgICAgIHMgPSBzKyBpIDsKICAgIH0KICAgIHByaW50ZigiIHRvdGFsICBpcyAlZCIsIHMpOwogICAgcHJpbnRmKCJcblxuIik7Cn0KCnZvaWQgZXZlbl9zdW0oKQp7CgogICAgaW50IHMgPSAyIDsKICAgIGZvciggaSA9IDI7IGk8PTEwMCA7IGk9IGkrMikKICAgIHsKICAgICAgICBzID0gcysgaSA7CiAgICB9CiAgICBwcmludGYoIiB0b3RhbCAgaXMgJWQiLCBzKTsKICAgIHByaW50ZigiXG5cbiIpOwp9Cgp2b2lkIG9kZF9zdW0oKQp7CgogICAgaW50IHMgPSAxIDsKICAgIGZvciggaSA9IDE7IGk8PTEwMCA7IGkgPSBpKzIpCiAgICB7CiAgICAgICAgcyA9IHMrIGkgOwogICAgfQogICAgcHJpbnRmKCJ0b3RhbCBpcyAlZCIsIHMpOwogICAgcHJpbnRmKCJcblxuIik7Cn0KCgp2b2lkIG11bHRpcGxpY2F0aW9uKCkKewogICAgaW50IHMgPSAxOwogICAgZm9yICggaSA9IDEgOyBpPCAxMCA7IGkrKykKICAgIHsKICAgICAgICBzID0gcyogaSA7CiAgICB9CiAgICBwcmludGYoInRvdGFsID0gJWRcbiIsIHMpOwogICAgcHJpbnRmKCJcblxuIik7Cn0KCnZvaWQgbXVsdGlwbGljYXRpb25fdGFibGUoKQp7CiAgICBwcmludGYoIkVudGVyIGEgdmFsdWUgOiIpOwogICAgcHJpbnRmKCIlZCIsJm4pOwogICAgZm9yIChpID0gMTsgaTwxMTsgaSsrKQogICAgewogICAgICAgIHByaW50ZigiJWQgKiAlZCA9ICVkXG4iLCBuLCBpLCBuKmkpOwogICAgfQogICAgcHJpbnRmKCJcblxuIik7Cn0KCnZvaWQgbmFtZSgpCnsKICAgIGNoYXIgbmFtZVsxMl07CiAgICBwcmludGYoIkVudGVyIHlvdXIgbmFtZSA6ICIpOwogICAgc2NhbmYoIiVzIiwgbmFtZSk7CiAgICBwcmludGYoInlvdXIgbmFtZSBpcyA6ICVzXG4iLCBuYW1lKTsKICAgIHByaW50ZigiXG5cbiIpOwoKfQoKaW50IGxhcmdlc3RfbnVtYmVyKGludCBhLCBpbnQgYikKewogICAgaWYgKGE+YikKICAgICAgICByZXR1cm4gYTsKICAgIGVsc2UKICAgICAgICByZXR1cm4gYjsKfQoKaW50IHNtYWxsZXN0X251bWJlcihpbnQgYSwgaW50IGIpCnsKICAgIGlmIChhPGIpCiAgICAgICAgcmV0dXJuIGE7CiAgICBlbHNlCiAgICAgICAgcmV0dXJuIGI7Cn0KCmludCBsYXJnZV9hbW9uZ190aHJlZShpbnQgYSwgaW50IGIsIGludCBjKQp7CiAgICBMID0gKGE+YiAmJiBhPiBjKSA/IGE6CiAgICAgICAgKGI+YykgPyBiIDogYyA7CiAgICByZXR1cm4gTDsKfQoKaW50IHNtYWxsX2Ftb25nX3RocmVlKGludCBhLCBpbnQgYiwgaW50IGMpCnsKICAgIEwgPSAoYTxiICYmIGE8IGMpID8gYToKICAgICAgICAoYjxjKSA/IGIgOiBjIDsKICAgIHJldHVybiBMOwp9Cgp2b2lkIGVuZCgpCnsKICAgIHByaW50ZigiVGhhbmsgeW91IGZvciBjaGVja2luZyBteSBjb2RlLlxuIik7CiAgICBwcmludGYoInlvdXIgbWFqZXN0eS5cbiIpOwogICAgcHJpbnRmKCJOYW1lIDogTWQuTmF6bXVsIEhvc3NhaW4gXG5JRCA6IENTRSAyMzAyMDI5MDI4XG5TZWN0aW9uIDogMjlBMSBcbk1vYmlsZSBubyA6MDE3NjA0MDI4OTJcbiIpOwp9