Guest User

art ascii factory (Sin acabar)

a guest
May 24th, 2012
51
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. # encoding:utf-8
  2.  
  3. # caracteres compatibles:
  4. # abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ<>;,:.-_^[]{}+!"$%&/()=?\|@#~`*0123456789
  5. #a b c d e f g h i j k l m n o p q r s t u v w x y z A B C D E F G H I J K L M N O P Q R S T U V W X Y Z < > ; , : . - _ ^ [ ] { } + ! " $ % & / ( ) = ? \ | @ # ~ ` * 0 1 2 3 4 5 6 7 8 9
  6.  
  7. # recordatorio de errores:
  8. # comprobar el error al poner una palabra con espacios en banner3d
  9.  
  10. # recordatorio para testear:  
  11. # zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA9876543210
  12. # *`~#@|\?=)(/&%$"!+}{][^_-.:,;><
  13.  
  14. # Cosas que hacer:
  15. # Integrar una opcion para el espaciado de caracteres
  16. # una opcion para elegir el estilo de letra
  17.  
  18.  
  19. # template:
  20. def template()
  21. estilo = '
  22.  
  23. '
  24. estilo_chars = {
  25.  :' ' => ' ',
  26.  :a => 1..0,
  27.  :b => 1..0,
  28.  :c => 1..0,
  29.  :d => 1..0,
  30.  :e => 1..0,
  31.  :f => 1..0,
  32.  :g => 1..0,
  33.  :h => 1..0,
  34.  :i => 1..0,
  35.  :j => 1..0,
  36.  :k => 1..0,
  37.  :l => 1..0,
  38.  :m => 1..0,
  39.  :n => 1..0,
  40.  :o => 1..0,
  41.  :p => 1..0,
  42.  :q => 1..0,
  43.  :r => 1..0,
  44.  :s => 1..0,
  45.  :t => 1..0,
  46.  :u => 1..0,
  47.  :v => 1..0,
  48.  :w => 1..0,
  49.  :x => 1..0,
  50.  :y => 1..0,
  51.  :z => 1..0,
  52.  
  53.  :A => 1..0,
  54.  :B => 1..0,
  55.  :C => 1..0,
  56.  :D => 1..0,
  57.  :E => 1..0,
  58.  :F => 1..0,
  59.  :G => 1..0,
  60.  :H => 1..0,
  61.  :I => 1..0,
  62.  :J => 1..0,
  63.  :K => 1..0,
  64.  :L => 1..0,
  65.  :M => 1..0,
  66.  :N => 1..0,
  67.  :O => 1..0,
  68.  :P => 1..0,
  69.  :Q => 1..0,
  70.  :R => 1..0,
  71.  :S => 1..0,
  72.  :T => 1..0,
  73.  :U => 1..0,
  74.  :V => 1..0,
  75.  :W => 1..0,
  76.  :X => 1..0,
  77.  :Y => 1..0,
  78.  :Z => 1..0,
  79.  
  80. :< => 1..0,
  81. :> => 1..0,
  82. :';' => 1..0,
  83. :',' => 1..0,
  84. :':' => 1..0,
  85. :'.' => 1..0,
  86. :- => 1..0,
  87. :_ => 1..0,
  88. :'^' => 1..0,
  89. :'[' => 1..0,
  90. :']' => 1..0,
  91. :'{' => 1..0,
  92. :'}' => 1..0,
  93. :+ => 1..0,
  94. :'!' => 1..0,
  95. :'"' => 1..0,
  96. :'$' => 1..0,
  97. :% => 1..0,
  98. :& => 1..0,
  99. :/ => 1..0,
  100. :'(' => 1..0,
  101. :')' => 1..0,
  102. :'=' => 1..0,
  103. :'?' => 1..0,
  104. :'\\' => 1..0,
  105. :| => 1..0,
  106. :'@' => 1..0,
  107. :'#' => 1..0,
  108. :~ => 1..0,
  109. :` => 1..0,
  110. :* => 1..0,
  111.  
  112. :'0' => 1..0,
  113. :'1' => 1..0,
  114. :'2' => 1..0,
  115. :'3' => 1..0,
  116. :'4' => 1..0,
  117. :'5' => 1..0,
  118. :'6' => 1..0,
  119. :'7' => 1..0,
  120. :'8' => 1..0,
  121. :'9' => 1..0
  122. }
  123. end
  124.  
  125. # Maximizar consola Batch
  126. system('mode con cols=190 lines=30')
  127.  
  128. threexfive = '
  129.    #         #      ##     #    #   #  #    #                               #                           #  ##   ## ##  ### ###  ## # # ###  ## # # #   # # ###  #  ##   #  ##   ## ### # # # # # # # # # # ###   # #                            #   ## ##   ## ##    #      #  # #  ## # #  #    #   # #       ### #    #  ### # #   # #    #  ###  #  ### ### # # ### ### ### ### ###
  130. ## ### ### ### ###  #  ### ###         # #  #  ### ##  ### ### ### ###  ## ### # # # # # # # # # # ##  # # # # #   # # #   #   #   # #  #    # # # #   ### # # # # # # # # # # #    #  # # # # # # # # # #   #  #   #   #       #              # #  #   #   #   #   #   #   #  # # ##    # #     #  #   #  ###   # #    #  # # ### ###  #  ### # # ##    #   # # # #   #     # # # # #
  131. # # # # #   # # ##  ### # # # #  #   #  ##   #  ### # # # # # # # # #    #   #  # # # # ###  #  ###  #  ### ##  #   # # ##  ##  # # ###  #    # ##  #   ### # # # # ##  # # ##   #   #  # # # # ###  #   #   #  #     #                 ###          #   #  ##   ## #   ###  #      ###  #   ##  #   #   #       ##  #   #  #   # # #     #  #  # #  #  ###  ## ### ### ###   # ### ###
  132. ### ### ### ### ###  #   ## # #  ##  #  # #  ## # # # # ### ### ### #   ##   ## ###  #  ### # #   #  ## # # # # #   # # #   #   # # # #  #  # # # # #   # # # # # # #    ## # #   #  #  # # # # ### # #  #  #    #   #   #   #   #                   #   #   #   #       #           ## #   # # #    #   #  ###       #  #  ### ###         ### # #  #  #     #   #   # # #   # # #   #
  133.                    ##  ###         #                       #     #                             ###     # # ##   ## ##  ### #    ## # # ###  #  # # ### # # # #  #  #     # # # ##   #  ###  #  # # # #  #  ###   # #   #   #        #      ###      ## ##   ## ##           #      ##  # # ### #     # #        #    #  #      # #          #  ### ### ### ###   # ### ###   # ### ###
  134. '
  135. threexfive_chars = {
  136.  :' ' => ' ',
  137.  :a => 0..3, :b => 4..7, :c => 8..11, :d => 12..15, :e => 16..19, :f => 20..23, :g => 24..27, :h => 28..31, :i => 33..35, :j => 36..38, :k => 40..43, :l => 45..47, :m => 48..51, :n => 52..55, :o => 56..59, :p => 60..63, :q => 64..67, :r => 68..71, :s => 72..75, :t => 76..79, :u => 80..83, :v => 84..87, :w => 88..91, :x => 92..95, :y => 96..99, :z => 100..103,
  138.  :A => 104..107, :B => 108..111, :C => 112..115, :D => 116..119, :E => 120..123, :F => 124..127, :G => 128..131, :H => 132..135, :I => 136..139, :J => 140..143, :K => 144..147, :L => 148..151, :M => 152..155, :N => 156..159, :O => 160..163, :P => 164..167, :Q => 168..171, :R => 172..175, :S => 176..179, :T => 180..183, :U => 184..187, :V => 188..191, :W => 192..195, :X => 196..199, :Y => 200..203, :Z => 204..207,
  139.  :< => 208..211, :> => 212..215, :';' => 216..218, :',' => 220..222, :':' => 225..226, :'.' => 229..230, :- => 232..235, :_ => 236..239, :'^' => 240..243, :'[' => 245..247, :']' => 248..250, :'{' => 252..255, :'}' => 256..259, :'\'' => 260..261, :+ => 264..266, :'!' => 268..270, :'"' => 272..275, :'$' => 275..278, :% => 279..282, :& => 283..286, :/ => 287..290, :'(' => 293..294, :')' => 296..298, :'=' => 300..303, :'?' => 304..307, :'\\' => 308..311, :| => 313..314, :'@' => 316..319, :'#' => 320..323, :~ => 324..327, :` => 328..331, :* => 332..335,
  140.   :'0' => 336..339, :'1' => 340..343, :'2' => 344..347, :'3' => 348..351, :'4' => 352..355, :'5' => 356..359, :'6' => 360..363, :'7' => 364..367, :'8' => 368..371, :'9' => 372..375
  141. }
  142. fourmax = '
  143.   db    88""Yb  dP""b8 8888b.  888888 888888  dP""b8 88  88 88  88888 88  dP 88     8b    d8 88b 88  dP"Yb  88""Yb  dP"Yb  88""Yb .dP"Y8 888888 88   88 Yb    dP Yb        dP Yb  dP Yb  dP 8888P   .dP\' `Yb.    .o.      .o.                           .db.   88888 88888   d888 888b    .o.    oo    d8b o8o o8o .dPIIY8 .o. dP   d888        dP  dP Yb         oP"Yb. Yb    II  dP""Yb  __88_88__  dP"Yb  dP .o.     o     dP"Yb    .d oP"Yb. 88888   dP88  888888   dP\'   888888P .dP"o. dP""Yb
  144.  dPYb   88__dP dP   `"  8I  Yb 88__   88__   dP   `" 88  88 88     88 88odP  88     88b  d88 88Yb88 dP   Yb 88__dP dP   Yb 88__dP `Ybo."   88   88   88  Yb  dP   Yb  db  dP   YbdP   YbdP    dP  .dP\'     `Yb.  `"\'      `"\'     ________            .dP\'`Yb. 88       88 .dP       Yb. ,dP\' ___88___ Y8P `"\' `"\' `YbII " `"\'dP   dP_______   dP  dP   Yb oooooo "\'.dP\'  Yb   II dP PY Yb ""88"88"" dP  `YbdP  `Yb. `8.8.8\' dP   Yb .d88 "\' dP\'   .dP  dP 88  88oo." .d8\'        dP  `8b.d\' Ybood8
  145. dP__Yb  88""Yb Yb       8I  dY 88""   88""   Yb  "88 888888 88 o.  88 88"Yb  88  .o 88YbdP88 88 Y88 Yb   dP 88"""  Yb b dP 88"Yb  o.`Y8b   88   Y8   8P   YbdP     YbdPYbdP    dPYb    8P    dP   `Yb.     .dP\'  .o.  .o. .o. .o. """"""""                     88       88 `Yb       dP\'      """88""" `"\'         o.`II8b   dP.o. Yb"""88""  dP   Yb   dP ______   8P     Yb  II Yb boodP __88_88__                 .8.8.8. Yb   dP   88   dP\'  o `Yb d888888    `8b 8P"""Yb    dP   d\'`Y8b   .8P\'
  146. dP""""Yb 88oodP  YboodP 8888Y"  888888 88      YboodP 88  88 88 "bodP\' 88  Yb 88ood8 88 YY 88 88  Y8  YbodP  88      `"YoYo 88  Yb 8bodP\'   88   `YbodP\'    YP       YP  YP    dP  Yb  dP    d8888   `Yb. .dP\'   ,dP\' ,dP\' `"\' `"\'          oooooooooo          88888 88888   Y888 888P           ""    (8)         8boIIP\'  dP `"\' `Ybo 88   dP     Yb dP  """"""  (8)      Yb II  Ybooo   ""88"88""                    "     YbodP    88 .d8888 YbodP     88  8888P\' `YboodP   dP    `bodP\'  .dP\'  
  147. '
  148. fourmax_chars = {
  149.   :' ' => ' ',
  150.   :a => 0..8, :b => 9..14, :c => 16..23, :d => 24..31, :e => 32..38, :f => 39..45, :g => 46..53, :h => 54..60, :i => 61..63, :j => 64..70, :k => 71..77, :l => 78..84, :m => 85..93, :n => 94..100, :o => 101..108, :p => 109..115, :q => 116..123, :r => 124..130, :s => 131..137, :t => 138..144, :u => 145..152, :v => 153..161, :w => 162..174, :x => 175..181, :y => 182..188, :z => 189..194,
  151.   :A => 0..8, :B => 9..14, :C => 16..23, :D => 24..31, :E => 32..38, :F => 39..45, :G => 46..53, :H => 54..60, :I => 61..63, :J => 64..70, :K => 71..77, :L => 78..84, :M => 85..93, :N => 94..100, :O => 101..108, :P => 109..115, :Q => 116..123, :R => 124..130, :S => 131..137, :T => 138..144, :U => 145..152, :V => 153..161, :W => 162..174, :X => 175..181, :Y => 182..188, :Z => 189..194, :< => 195..201,
  152.   :> => 202..208, :';' => 209..213, :',' => 214..218, :':' => 219..222, :'.' => 223..226, :- => 227..235, :_ => 236..246, :'^' => 247..255, :'[' => 256..261, :']' => 262..267, :'{' => 268..274, :'}' => 275..281, :+ => 287..295, :'!' => 296..299, :'"' => 300..303, :'$' => 308..315, :% => 316..323, :& => 324..333, :/ => 334..339, :'(' => 340..343, :')' => 344..347, :'=' => 348..354, :'?' => 355..361, :'\\' => 362..367, :| => 368..370, :'@' => 371..379, :'#' => 380..389, :~ => 390..400, :` => 401..405, :* => 406..413,
  153.  :'0' => 414..421, :'1' => 422..426, :'2' => 427..433, :'3' => 434..439, :'4' => 440..447, :'5' => 448..454, :'6' => 455..462, :'7' => 463..470, :'8' => 471..477, :'9' => 478..484
  154. }
  155. amcaaa01 = "
  156. .S_SSSs     .S_SSSs      sSSs   .S_sSSs      sSSs    sSSs    sSSSSs   .S    S.    .S      .S   .S    S.   S.       .S_SsS_S.    .S_sSSs      sSSs_sSSs     .S_sSSs      sSSs_sSSs     .S_sSSs      sSSs  sdSS_SSSSSSbs   .S       S.    .S    S.    .S     S.    .S S.    .S S.    sdSSSSSSSbs        
  157. .SS~SSSSS   .SS~SSSSS    d%%SP  .SS~YS%%b    d%%SP   d%%SP   d%%%%SP  .SS    SS.  .SS     .SS  .SS    SS.  SS.     .SS~S*S~SS.  .SS~YS%%b    d%%SP~YS%%b   .SS~YS%%b    d%%SP~YS%%b   .SS~YS%%b    d%%SP  YSSS~S%SSSSSP  .SS       SS.  .SS    SS.  .SS     SS.  .SS SS.  .SS SS.   YSSSSSSSS%S        
  158. S%S   SSSS  S%S   SSSS  d%S'    S%S   `S%b  d%S'    d%S'    d%S'      S%S    S%S  S%S     S%S  S%S    S&S  S%S     S%S `Y' S%S  S%S   `S%b  d%S'     `S%b  S%S   `S%b  d%S'     `S%b  S%S   `S%b  d%S'         S%S       S%S       S%S  S%S    S%S  S%S     S%S  S%S S%S  S%S S%S          S%S        
  159. S%S    S%S  S%S    S%S  S%S     S%S    S%S  S%S     S%S     S%S       S%S    S%S  S%S     S%S  S%S    d*S  S%S     S%S     S%S  S%S    S%S  S%S       S%S  S%S    S%S  S%S       S%S  S%S    S%S  S%|          S%S       S%S       S%S  S%S    S%S  S%S     S%S  S%S S%S  S%S S%S         S&S          
  160. S%S SSSS%S  S%S SSSS%P  S&S     S%S    S&S  S&S     S&S     S&S       S%S SSSS%S  S&S     S&S  S&S   .S*S  S&S     S%S     S%S  S%S    S&S  S&S       S&S  S%S    d*S  S&S       S&S  S%S    d*S  S&S          S&S       S&S       S&S  S&S    S%S  S%S     S%S  S%S S%S  S%S S%S        S&S          
  161. S&S  SSS%S  S&S  SSSY   S&S     S&S    S&S  S&S_Ss  S&S_Ss  S&S       S&S  SSS&S  S&S     S&S  S&S_sdSSS   S&S     S&S     S&S  S&S    S&S  S&S       S&S  S&S   .S*S  S&S       S&S  S&S   .S*S  Y&Ss         S&S       S&S       S&S  S&S    S&S  S&S     S&S   SS SS    SS SS         S&S          
  162. S&S    S&S  S&S    S&S  S&S     S&S    S&S  S&S~SP  S&S~SP  S&S       S&S    S&S  S&S     S&S  S&S~YSSY%b  S&S     S&S     S&S  S&S    S&S  S&S       S&S  S&S_sdSSS   S&S       S&S  S&S_sdSSS   `S&&S        S&S       S&S       S&S  S&S    S&S  S&S     S&S    S_S      S S         S&S            
  163. S&S    S&S  S&S    S&S  S&S     S&S    S&S  S&S     S&S     S&S sSSs  S&S    S&S  S&S     S&S  S&S    `S%  S&S     S&S     S&S  S&S    S&S  S&S       S&S  S&S~YSSY    S&S       S&S  S&S~YSY%b     `S*S       S&S       S&S       S&S  S&S    S&S  S&S     S&S   SS~SS     SSS        S*S            
  164. S*S    S&S  S*S    S&S  S*b     S*S    d*S  S*b     S*b     S*b `S%%  S*S    S*S  S*S     d*S  S*S     S%  S*b     S*S     S*S  S*S    S*S  S*b       d*S  S*S         S*b       d*S  S*S   `S%b     l*S       S*S       S*b       d*S  S*b    S*S  S*S     S*S  S*S S*S    S*S       S*S              
  165. S*S    S*S  S*S    S*S  S*S.    S*S   .S*S  S*S.    S*S     S*S   S%  S*S    S*S  S*S    .S*S  S*S     S&  S*S.    S*S     S*S  S*S    S*S  S*S.     .S*S  S*S         S*S.     .S*S  S*S    S%S    .S*P       S*S       S*S.     .S*S  S*S.   S*S  S*S  .  S*S  S*S S*S    S*S     .s*S              
  166. S*S    S*S  S*S SSSSP    SSSbs  S*S_sdSSS    SSSbs  S*S      SS_sSSS  S*S    S*S  S*S  sdSSS   S*S     S&   SSSbs  S*S     S*S  S*S    S*S   SSSbs_sdSSS   S*S          SSSbs_sdSSSS  S*S    S&S  sSS*S        S*S        SSSbs_sdSSS    SSSbs_S*S  S*S_sSs_S*S  S*S S*S    S*S     sY*SSSSSSSP        
  167. SSS    S*S  S*S  SSY      YSSP  SSS~YSSY      YSSP  S*S       Y~YSSY  SSS    S*S  S*S  YSSY    S*S     SS    YSSP  SSS     S*S  S*S    SSS    YSSP~YSSY    S*S           YSSP~YSSSSS  S*S    SSS  YSS'         S*S         YSSP~YSSY      YSSP~SSS  SSS~SSS~S*S  S*S S*S    S*S    sY*SSSSSSSSP   SS  
  168.       SP   SP                                      SP                       SP   SP           SP                          SP   SP                         SP                         SP                       SP                                                SP         SP                   S%%S  
  169.       Y    Y                                       Y                        Y    Y            Y                           Y    Y                          Y                          Y                        Y                                                 Y          Y                     SS  
  170. "
  171. amcaaa01_chars = {
  172.  :' ' => ' ',
  173.  :a => 0..10, :b => 12..22, :c => 24..30, :d => 32..42, :e => 44..50, :f => 52..58, :g => 60..68, :h => 70..80, :i => 82..85, :j => 87..93, :k => 95..105, :l => 107..113, :m => 115..126, :n => 128..138, :o => 140..153, :p => 155..165, :q => 167..180, :r => 182..192, :s => 194..200, :t => 202..215, :u => 217..230, :v => 232..242, :w => 244..255, :x => 257..264, :y => 266..273, :z => 275..287,
  174.  :A => 0..10, :B => 12..22, :C => 24..30, :D => 32..42, :E => 44..50, :F => 52..58, :G => 60..68, :H => 70..80, :I => 82..85, :J => 87..93, :K => 95..105, :L => 107..113, :M => 115..126, :N => 128..138, :O => 140..153, :P => 155..165, :Q => 167..180, :R => 182..192, :S => 194..200, :T => 202..215, :U => 217..230, :V => 232..242, :W => 244..255, :X => 257..264, :Y => 266..273, :Z => 275..287,
  175.  :'.' => 289..293
  176. }
  177. amcneko = "
  178.                                                                                                                                                                                                                                                                                                                                                                                                  SSSSS .sSSSSs.    .sSSSSs.    SsSSs.    .sSSSSs.    .sSSSSSSs.  .sSSS s.    SSSSSSSSSs. .sSSSSs.    SSSSSSSSSs. .sSSSSs.    .sSSSSs.    
  179. .sSSSSs.    .sSSSSs.    .sSSSSs.    .sSSSSs.    .sSSSSs.    .sSSSSs.    .sSSSSs.    .sSSS SSSSS SSSSS       SSSSS .sSSS  SSSSS  SSSSS       .sSSSsSS SSsSSSSS .sSSSs.  SSSSS .sSSSSs.    .sSSSSs.    .sSSSSs.     .sSSSSSSSs. .sSSSSSSSs. .sSSSSSSSSSSSSSs. .sSSS s.    .sSSS s.    .sSSS       s.    .sSSS SSSSS .sSSS SSSSS SSSSSSSSSs.                         .sSs.       .sSs.               S SSS S SSSSSSSs. SSSSSSSSSs.   SSSSs   `SSSS SSSs. `SSSS SSSSs SSSSS SSSs. SSSSS SSSS' SSSSSSSSSs. SSSSSSSSSSS SSSSS SSSs. SSSSS SSSs.
  180. S SSSSSSSs. S SSSSSSSs. S SSSSSSSs. S SSSSSSSs. S SSSSSSSs. S SSSSSSSs. S SSSSSSSs. S SSS SSSSS S SSS       S SSS S SSS SSSSS   S SSS       S SSS  SSS  SSSSS S SSS SS SSSSS S SSSSSSSs. S SSSSSSSs. S SSSSSSSs.  S SSS SSSSS S SSS SSSS' SSSSS S SSS SSSSS S SSS SSSs. S SSS SSSs. S SSS       SSSs. S SSS SSSSS S SSS SSSSS SSSSSS SSS'                         S%%%S       S%%%S               S  SS `..SS SSSSS S SSS SSSSS   S SSS         SSSSS       S SSS S SSS SSSSS S SSS       S SSS SSSS'      S SSS  S SSS SSSSS S SSS SSSSS
  181. S  SS SSSSS S  SS SSSS' S  SS SSSS' S  SS SSSSS S  SS SSSS' S  SS SSSS' S  SS SSSS' S  SS SSSSS S  SS       S  SS S  SS SSSSS   S  SS       S  SS   S   SSSSS S  SS  `sSSSSS S  SS SSSSS S  SS SSSSS S  SS SSSSS  S  SS SSSS' S  SS       SSSSS S  SS SSSSS S  SS SSSSS S  SS SSSSS S  SS       SSSSS S  SS SSSSS S  SS SSSSS     S  SS    .sS               Ss.  `:;:'       `:;:'               S;;;S       SSSSS S  SS SSSSS   S  SS   .sSSSsSSSS'   .sS S  SS S  SS SSSSS SSSSSsSSSs. S  SS           S  SS   S  SS SSSSS S  SS SSSSS
  182. S..SSsSSSSS S..SSsSSSa. S..SS       S..SS SSSSS S..SS       S..SS       S..SS       S..SSsSSSSS S..SS       S..SS S..SSsSSSSS   S..SS       S..SS       SSSSS S..SS    SSSSS S..SS SSSSS S..SS SSSSS S..SS SSSSS  S..SSsSSSa. `SSSSsSSSa. `:S:' S..SS `:S:' S..SS SSSSS S..SS SSSSS S..SS       SSSSS `..SSsSSSs' `..SSsSSSS'    S..SS    SSSSsssssss sssssssSSSS                         sssssss S%%%S    .ssSSSSS S..SS\\SSSSS   S..SS   S..SS        SSSSsS..SS S..SSsSSSSS       SSSSS S...SsSSSa.    S..SS    `..SSsSSSs' `..SSsSSSSS
  183. S:::S SSSSS S:::S SSSSS S:::S SSSSS S:::S SSSSS S:::SSSS    S:::SSSS    S:::S`sSSs. S:::S SSSSS S:::S       S:::S S:::S SSSSS   S:::S       S:::S       SSSSS S:::S    SSSSS S:::S SSSSS S:::SsSSSSS S:::S SSSSS  S:::S SSSSS .sSSS SSSSS       S:::S       S:::S SSSSS  S::S SSSS  S:::S       SSSSS s:::S SSSSs    S:::S      S:::S      `:;               ;:'                                  SSSSS    SSSSS;:' S:::S SSSSS   S:::S   S:::S SSSs.   `:; S:::S       SSSSS .sSSS SSSSS S:::S SSSSS   S:::S     s:::S SSSSs       SSSSS
  184. S;;;S SSSSS S;;;S SSSSS S;;;S SSSSS S;;;S SSSSS S;;;S       S;;;S       S;;;S SSSSS S;;;S SSSSS S;;;S       S;;;S S;;;S  SSSSS  S;;;S       S;;;S       SSSSS S;;;S    SSSSS S;;;S SSSSS S;;;S       S;;;S SSSSS  S;;;S SSSSS S;;;S SSSSS       S;;;S       S;;;S SSSSS   S;S SSS   S;;;S   S   SSSSS S;;;S SSSSS    S;;;S     S;;;S                              .sSs. .sSs. .sSs. .sSs.         .sSs.    .sSs.    S;;;S SSSSS   S;;;S   S;;;S SSSSS       S;;;S       SSSSS S;;;S SSSSS S;;;S SSSSS  S;;;S      S;;;S SSSSS .sSSS SSSSS
  185. S%%%S SSSSS S%%%S SSSSS S%%%S SSSSS S%%%S SSSS' S%%%S SSSSS S%%%S       S%%%S SSSSS S%%%S SSSSS S%%%S SSSSS S%%%S S%%%S  SSSSS  S%%%S SSSSS S%%%S       SSSSS S%%%S    SSSSS S%%%S SSSSS S%%%S       S%%%S SSSSS  S%%%S SSSSS S%%%S SSSSS       S%%%S       S%%%S SSSSS    SS SS    S%%%S  SSS  SSSSS S%%%S SSSSS    S%%%S    S%%%SSSSSSS                         S%%%S S%%%S S%%%S S%%%S         S%%%S    S%%%S    S%%%S SSSSS   S%%%S   S%%%S SSSSS .SSSS S%%%S       SSSSS S%%%S SSSSS S%%%S SSSSS S%%%S       S%%%S SSSSS S%%%S SSSSS
  186. SSSSS SSSSS SSSSSsSSSS' SSSSSsSSSSS SSSSSsS;:'  SSSSSsSS;:' SSSSS       SSSSSsSSSSS SSSSS SSSSS SSSSS `:;SSsSSSSS SSSSS   SSSSS SSSSSsSS;:' SSSSS       SSSSS SSSSS    SSSSS SSSSSsSSSSS SSSSS       SSSSSsSSSSss SSSSS SSSSS SSSSSsSSSSS       SSSSS       SSSSSsSSSSS     SsS     SSSSSsSS SSsSSSSS SSSSS SSSSS    SSSSS    SSSSSSSSSSS                         `\"\":5 `\"\":5 `:;:' `:;:'         `:;:'    `:;:'    `:;SSsSS;:' SsSSSSSsS SSSSSsSSSSS `:;SSsSSSSS       SSSSS `:;SSsSS;:' `:;SSsSS;:' SSSSS       `:;SSsSS;:' `:;SSsSS;:'
  187.                                                                                                                                                                                                                                                                                                                                                                    ;:'   ;:'                                                                                                                                                            
  188. "
  189. amcneko_chars = {
  190.   :' ' => ' ',
  191.   :a => 0..11, :b => 12..23, :c => 24..35, :d => 36..47, :e => 48..59, :f => 60..71, :g => 72..83, :h => 84..95, :i => 96..101, :j => 102..113, :k => 114..127, :l => 128..140, :m => 140..157, :n => 158..172, :o => 173..184, :p => 185..196, :q => 197..209, :r => 210..221, :s => 222..234, :t => 235..251, :u => 252..263, :v => 264..275, :w => 276..293, :x => 294..305, :y => 306..317, :z => 318..329,
  192.   :A => 0..11, :B => 12..23, :C => 24..35, :D => 36..47, :E => 48..59, :F => 60..71, :G => 72..83, :H => 84..95, :I => 96..101, :J => 102..113, :K => 114..127, :L => 128..140, :M => 140..157, :N => 158..172, :O => 173..184, :P => 185..196, :Q => 197..209, :R => 210..221, :S => 222..234, :T => 235..251, :U => 252..263, :V => 264..275, :W => 276..293, :X => 294..305, :Y => 306..317, :Z => 318..329,
  193.   :< => 330..341, :> => 342..353, :';' => 354..359, :',' => 360..365, :':' => 366..371, :'.' => 372..377, :- => 378..385, :'!' => 386..391, :'?' => 392..403,
  194.   :'0' => 404..415, :'1' => 416..425, :'2' => 426..437, :'3' => 438..449, :'4' => 450..461, :'5' => 462..473, :'6' => 474..485, :'7' => 486..497, :'8' => 498..509, :'9' => 510..521
  195. }
  196. amcslash = "
  197.                                                                                                                                                                                                                                                              
  198. .s5SSSs.  .s5SSSs.  .s5SSSs.  .s5SSSs.  .s5SSSs.  .s5SSSs. .s5SSSs.  .s    s.  s.        s.  .s    s.  .s        .s5ssSs.  .s    s.  .s5SSSs.  .s5SSSs.  .s5SSs.   .s5SSSs.  .s5SSSs.  .s5SSSSs. .s    s.  .s    s.  .s s.  s.  .s5 s.  .s5 s.  .s5SSSSs.      
  199.      SS.       SS.       SS.       SS.       SS.                SS.       SS. SS.       SS.       SS.              SS SS.       SS.       SS.       SS.      SS.        SS.       SS.    SSS          SS.       SS.    SS. SS.     SS.     SS.       SSS      
  200. sS    S%S sS    S%S sS    `:; sS    S%S sS    `:; sS       sS    `:; sS    S%S S%S       S%S sS    S%S sS        sS SS S%S sSs.  S%S sS    S%S sS    S%S sS   S%S  sS    S%S sS    `:;    S%S    sS    S%S sS    S%S sS S%S S%S ssS SSS ssS SSS     sSSS      
  201. SSSs. S%S SS .sSSS  SS        SS    S%S SSSs.     SSSs.    SS        SSSs. S%S S%S       S%S SSSSs.S:' SS        SS :; S%S SS `S.S%S SS    S%S SS .sS::' SS   S%S  SS .sS;:' `:;;;;.      S%S    SS    S%S SS    S%S SS S%S S%S  SSSSS   SSSSS     sSS\"        
  202. SS    S%S SS    S%S SS        SS    S%S SS        SS       SS        SS    S%S S%S       S%S SS  \"SS.  SS        SS    S%S SS  `sS%S SS    S%S SS        SS   S%S  SS    ;,        ;;.    S%S    SS    S%S  SS   S%S SS S%S S%S SSS SSS   SSS     sSS          
  203. SS    `:; SS    `:; SS        SS    `:; SS        SS       SS   ``:; SS    `:; `:;       `:; SS    `:; SS        SS    `:; SS    `:; SS    `:; SS        SS   `:;  SS    `:;       `:;    `:;    SS    `:;  SS   `:; SS `:; `:; SSS `:;   `:;    sSS       SS  
  204. SS    ;,. SS    ;,. SS    ;,. SS    ;,. SS    ;,. SS       SS    ;,. SS    ;,. ;,. .,;   ;,. SS    ;,. SS    ;,. SS    ;,. SS    ;,. SS    ;,. SS        SS  `;,.  SS    ;,. .,;   ;,.    ;,.    SS    ;,.   SS  ;,. SS ;,. ;,. SSS ;,.   ;,.   sSS       S%%S
  205. :;    ;:' `:;;;;;:' `:;;;;;:' ;;;;;;;:' `:;;;;;:' :;       `:;;;;;:' :;    ;:' ;:' `:;;;;;:' :;    ;:' `:;;;;;:' :;    ;:' :;    ;:' `:;;;;;:' `:        `:;;;;;;, `:    ;:' `:;;;;;:'    ;:'    `:;;;;;:'    `:;;:' `:;;:'`::' `:; ;:'   ;:'   `:;;;;;:'  SS  
  206. "
  207. amcslash_chars = {
  208.   :' ' => ' ',
  209.   :a => 0..9, :b => 10..19, :c => 20..29, :d => 30..39, :e => 40..49, :f => 50..59, :g => 59..68, :h => 69..78, :i => 79..82, :j => 83..92, :k => 93..102, :l => 103..112, :m => 113..122, :n => 123..132, :o => 133..142, :p => 143..152, :q => 153..162, :r => 163..172, :s => 173..182, :t => 183..192, :u => 193..202, :v => 203..212, :w => 213..223, :x => 224..231, :y => 232..239, :z => 240..249,
  210.   :A => 0..9, :B => 10..19, :C => 20..29, :D => 30..39, :E => 40..49, :F => 50..59, :G => 59..68, :H => 69..78, :I => 79..82, :J => 83..92, :K => 93..102, :L => 103..112, :M => 113..122, :N => 123..132, :O => 133..142, :P => 143..152, :Q => 153..162, :R => 163..172, :S => 173..182, :T => 183..192, :U => 193..202, :V => 203..212, :W => 213..223, :X => 224..231, :Y => 232..239, :Z => 240..249,
  211.   :'.' => 250..254,
  212. }
  213. alligator = '
  214.    :::     :::::::::   ::::::::  :::::::::  :::::::::: :::::::::: ::::::::  :::    ::: ::::::::::: ::::::::::: :::    ::: :::        ::::    ::::  ::::    :::  ::::::::  :::::::::   ::::::::   :::::::::   :::::::: ::::::::::: :::    ::: :::     ::: :::       ::: :::    ::: :::   ::: :::::::::         :::  :::                                                                                    :::          ::::::      ::::::         ::::      ::::         :::                         :::      ::: :::           :::          :::   :::             :::::::                :::        ::: :::                            :::::::::       :::            :::         :::::::::::            :::   :::           :::::   :::      :::                     :::::::    :::    ::::::::   ::::::::      :::    ::::::::::  ::::::::  :::::::::::  ::::::::   ::::::::  
  215.  :+: :+:   :+:    :+: :+:    :+: :+:    :+: :+:        :+:       :+:    :+: :+:    :+:     :+:         :+:     :+:   :+:  :+:        +:+:+: :+:+:+ :+:+:   :+: :+:    :+: :+:    :+: :+:    :+:  :+:    :+: :+:    :+:    :+:     :+:    :+: :+:     :+: :+:       :+: :+:    :+: :+:   :+:      :+:         :+:    :+:        :+:               :+:                                                    :+: :+:        :+:            :+:        :+:          :+:        :+            :+:           :+:      :+: :+:        :+:+:+:+:       :+:   :+:            :+:   :+:              :+:        :+:   :+:                          :+:     :+:       :+:           :+:       :+: :+:+:+:+:+:          :+:   :+:         :+:   :+:+:         :+       :+:     :+:  :+:   :+: :+:+:   :+:    :+: :+:    :+:    :+:     :+:    :+: :+:    :+: :+:     :+: :+:    :+: :+:    :+:
  216. +:+   +:+  +:+    +:+ +:+        +:+    +:+ +:+        +:+       +:+        +:+    +:+     +:+         +:+     +:+  +:+   +:+        +:+ +:+:+ +:+ :+:+:+  +:+ +:+    +:+ +:+    +:+ +:+    +:+  +:+    +:+ +:+           +:+     +:+    +:+ +:+     +:+ +:+       +:+  +:+  +:+   +:+ +:+      +:+         +:+      +:+                                                                              +:+     +:+      +:+            +:+        +:+          +:+                      +:+           +:+                   +:+  +:+                +:+             +:+ +:+              +:+        +:+     +:+      +:+:+:+:+:+:+             +:+         +:+          +:+      +:+ +:+   +:+ +:+      +:+:+:+:+:+:+:+                                     +:+ +:+    +:+  :+:+   +:+         +:+         +:+   +:+ +:+  +:+        +:+               +:+  +:+    +:+ +:+    +:+
  217. +#++:++#++: +#++:++#+  +#+        +#+    +:+ +#++:++#   :#::+::#  :#:        +#++:++#++     +#+         +#+     +#++:++    +#+        +#+  +:+  +#+ +#+ +:+ +#+ +#+    +:+ +#++:++#+  +#+    +:+  +#++:++#:  +#++:++#++    +#+     +#+    +:+ +#+     +:+ +#+  +:+  +#+   +#++:+     +#++:      +#+         +#+        +#+                                          +#++:++#++:++                                       +#+            +#+      +#+              +#+               +#++:++#++:++      +#+                     +#++:++#+             +#+              +#++:  ++#         +#+         +#+     +#+                               +#+           +#+                  +#+ +:+   +#+ +:+         +#+   +:+                                     +#++:++#++:++ +#+ + +:+   +#+       +#+        +#++:   +#+  +:+  +#++:++#+  +#++:++#+        +#+    +#++:++#   +#++:++#+
  218. +#+     +#+ +#+    +#+ +#+        +#+    +#+ +#+        +#+       +#+   +#+# +#+    +#+     +#+         +#+     +#+  +#+   +#+        +#+       +#+ +#+  +#+#+# +#+    +#+ +#+        +#+  # +#+  +#+    +#+        +#+    +#+     +#+    +#+  +#+   +#+  +#+ +#+#+ +#+  +#+  +#+     +#+      +#+           +#+      +#+                                                                                               +#+            +#+        +#+          +#+                      +#+           +#+                        +#+ +#+            +#+             +#+ +#+#+#         +#+          +#+     +#+      +#+#+#+#+#+#+          +#+              +#+        +#+      +#+ +#+   +#+ +#+      +#+#+#+#+#+#+#+                                     +#+ +#+    +#+#  +#+   +#+     +#+             +#+ +#+#+#+#+#+       +#+ +#+    +#+      +#+    +#+    +#+        +#+
  219. #+#     #+# #+#    #+# #+#    #+# #+#    #+# #+#        #+#       #+#    #+# #+#    #+#     #+#     #+# #+#     #+#   #+#  #+#        #+#       #+# #+#   #+#+# #+#    #+# #+#        #+#   +#+   #+#    #+# #+#    #+#    #+#     #+#    #+#   #+#+#+#    #+#+# #+#+#  #+#    #+#    #+#     #+#             #+#    #+#        #+#      #+#      #+#      #+#                                                          #+#            #+#        #+#          #+#                      #+#                                   #+#+#+#+#             #+#   #+#      #+#   #+#+         #+#            #+#   #+#                                                #+#       #+#       #+# #+#+#+#+#+           #+#   #+#                                      #+#     #+#  #+#   #+#   #+#    #+#       #+#    #+#       #+#  #+#    #+# #+#    #+#     #+#     #+#    #+# #+#    #+#
  220. ###     ### #########   ########  #########  ########## ###        ########  ###    ### ###########  #####      ###    ### ########## ###       ### ###    ####  ########  ###         ###### ### ###    ###  ########     ###      ########      ###       ###   ###   ###    ###    ###    #########         ### ###          ##       ##                ###                         ##########                       ######      ######         ####      ####                                     ###                        ###                ###   ###       ##########       ###              ### ###                               ###                ###      ###         #####                  ###   ###                                                    #######  ####### ##########  ########        ###   ########   ########      ###      ########   ########  
  221. '
  222. alligator_chars = {
  223.   :' ' => ' ',
  224.   :a => 0..11, :b => 12..22, :c => 23..33, :d => 34..44, :e => 45..55, :f => 56..65, :g => 66..76, :h => 77..87, :i => 88..99, :j => 100..111, :k => 112..122, :l => 123..133, :m => 134..147, :n => 148..159, :o => 160..170, :p => 171..181, :q => 182..193, :r => 194..204, :s => 205..215, :t => 216..226, :u => 227..237, :v => 238..249, :w => 250..263, :x => 264..274, :y => 275..285, :z => 286..294,
  225.   :A => 0..11, :B => 12..22, :C => 23..33, :D => 34..44, :E => 45..55, :F => 56..65, :G => 66..76, :H => 77..87, :I => 88..99, :J => 100..111, :K => 112..122, :L => 123..133, :M => 134..147, :N => 148..159, :O => 160..170, :P => 171..181, :Q => 182..193, :R => 194..204, :S => 205..215, :T => 216..226, :U => 227..237, :V => 238..249, :W => 250..263, :X => 264..274, :Y => 275..285, :Z => 286..294,
  226.   :< => 300..306, :> => 307..314, :';' => 320..323, :',' => 329..332, :':' => 338..341, :'.' => 347..350, :- => 357..369, :_ => 375..385, :'^' => 391..402, :'[' => 408..415, :']' => 420..426, :'{' => 432..439, :'}' => 445..452, :+ => 468..480, :'!' => 486..489, :'"' => 495..502, :'$' => 508..520, :% => 526..541, :& => 547..559, :/ => 565..574, :'(' => 580..585, :')' => 586..591, :'=' => 597..610, :'?' => 616..627, :'\\' => 633..642, :| => 648..651, :'@' => 657..674, :'#' => 680..695, :~ => 701..714, :` => 720..723, :* => 729..742,
  227.  :'0' => 743..752, :'1' => 753..760, :'2' => 761..771, :'3' => 772..782, :'4' => 783..793, :'5' => 794..804, :'6' => 805..815, :'7' => 816..827, :'8' => 828..838, :'9' => 839..849
  228. }
  229.  
  230. alphabet = '
  231.    b            d      ff     h            k    l                                    t                               AA  BBBB   CCC DDD  EEEE FFFF  GGG  H  H III     J K  K L    M   M N   N  OOO  PPPP   QQQ   RRRR   SSS  TTTTTT U   U V     V W     W X   X Y   Y ZZZZZ   << >>                        ^^  [[[[ ]]]]   {{ }}       !!! \'\' \'\'   $ $   %   %%  &&       // (( ))       ???  \\\\    || @@@   # #       ``        000   11   22  333  4  4 5555   6   77777  888   9999
  232.    b            d      f      h    ii    j k k  l                                    t                              A  A B   B C    D  D E    F    G     H  H  I      J K K  L    MM MM NN  N O   O P   P Q   Q  R   R S       TT   U   U V     V W     W  X X   Y Y     Z   <<   >>  ;;    ::            ^  ^ [[     ]]  {{   }}   +  !!! \'\' \'\'  $$$$$     %%  &  &     // ((   )) === ?   ?  \\\\   ||@   @ #####  ~ ~    * * * 0  00 111  2  2    3 4  4 5     6       7  8   8 9   9
  233. aa bbb   ccc  ddd eee fff ggg hhh          kk   l mmmm  nnn  ooo ppp   qqq  rrr  ss ttt u  u v v w   w x x y  y zz  AAAA BBBB  C    D  D EEE  FFF  G  GG HHHH  I      J KK   L    M M M N N N O   O PPPP  Q   Q  RRRR   SSS    TT   U   U  V   V  W  W  W   X     Y     Z   <<     >>             ---          [[     ]] {{     }} +++ !!!       $ $ $     %%    &&& &  //  ((   ))        ?    \\\\  ||@  @@  # #  ~ ~      ***  0 0 0  11    2   33  4444 555  6666    7    888   9999
  234. a a b  b c    d  d e e  f  g g h  h ii    j k k  l m m m n  n o o p  p q  q  r    s   t  u  u v v w w w  x  y  y  z  A  A B   B C    D  D E    F    G   G H  H  I  J   J K K  L    M   M N  NN O   O P     Q  QQ  R R       S   TT   U   U   V V    W W W   X X    Y    Z     <<   >>  ;;    :: ..              [[     ]]  {{   }}   +             $$$$$   %%    & & &  //   ((   )) ===   ?      \\\\ ||@     #####         ***** 00  0  11   2      3    4    5 6   6   7   8   8    9  
  235. aaa bbb   ccc  ddd ee   f  ggg h  h ii    j k  k l m m m n  n ooo ppp   qqq  r   ss   tt  uuu  v   w w  x x  yyy  zz A  A BBBB   CCC DDD  EEEE F     GGG  H  H III  JJJ  K  K LLLL M   M N   N  OOO  P      QQQQ  R  RR SSSS    TT    UUU     V      W W   X   X   Y   ZZZZZ   << >>    ; ,,    ..     ____     [[[[ ]]]]   {{ }}       !!!         $ $ $ %%   %  &&&& //     (( ))        ?       \\\\|| @@@   # #           ***   000  11l1 2222 333     4 555   666    7    888    9  
  236.                             g         j  j                       p       q                                    y                                                                                                Q                                                                          ,           ____                                        $$$$$                                             ||                    * * *                                                        
  237.                           ggg          jj                        p       qq                                yyy                                                                                                                                                                                                                                     $ $                                                                                                                                
  238. '
  239. alphabet_chars = {
  240.  :' ' => ' ',
  241.  :a => 0..3, :b => 4..8, :c => 9..13, :d => 14..18, :e => 19..22, :f => 23..26, :g => 27..30, :h => 31..35, :i => 36..38, :j => 39..43, :k => 44..48, :l => 49..50, :m => 51..56, :n => 57..61, :o => 62..65, :p => 66..70, :q => 71..76, :r => 77..80, :s => 81..84, :t => 85..88, :u => 89..93, :v => 94..97, :w => 98..103, :x => 104..107, :y => 108..112, :z => 113..116,
  242.  :A => 117..121, :B => 122..127, :C => 128..132, :D => 133..137, :E => 138..142, :F => 143..147, :G => 148..153, :H => 154..158, :I => 159..162, :J => 163..168, :K => 169..173, :L => 174..178, :M => 179..184, :N => 185..190, :O => 191..196, :P => 197..202, :Q => 203..209, :R => 210..215, :S => 216..221, :T => 222..228, :U => 229..234, :V => 235..242, :W => 243..250, :X => 251..256, :Y => 257..262, :Z => 263..268,
  243.  :< => 269..273, :> => 274..278, :';' => 279..281, :',' => 282..284, :':' => 285..287, :'.' => 288..290, :- => 291..294, :_ => 295..298, :'^' => 299..303, :'[' => 304..308, :']' => 309..313, :'{' => 314..318, :'}' => 319..323, :+ => 324..327, :'!' => 328..331, :'"' => 332..337, :'$' => 338..345, :% => 346..352, :& => 353..358, :/ => 359..364, :'(' => 365..368, :')' => 369..372, :'=' => 373..376, :'?' => 377..382, :'\\' => 383..388, :| => 389..390, :'@' => 391..396, :'#' => 397..402, :~ => 403..407, :` => 408..410, :* => 411..416,
  244.   :'0' => 417..422, :'1' => 423..427, :'2' => 428..432, :'3' => 433..437, :'4' => 438..442, :'5' => 443..447, :'6' => 448..453, :'7' => 454..459, :'8' => 460..465, :'9' => 466..471
  245. }
  246. banner = '
  247.                                                                                                                                                                                   #    ######   #####  ######  ####### #######  #####  #     # ###       # #    # #       #     # #     # ####### ######   #####  ######   #####  ####### #     # #     # #     # #     # #     # #######    # #             #                      #   ##### #####   ### ###         ### ### ###  #####  ###   #   ##          #   ## ##          #####  #       #  #####    # #    ##     ###           ###     #    #####   #####  #       #######  #####  #######  #####   #####  
  248.   ##   #####   ####  #####  ###### ######  ####  #    # #      # #    # #      #    # #    #  ####  #####   ####  #####   ####  ##### #    # #    # #    # #    # #   # ######   # #   #     # #     # #     # #       #       #     # #     #  #        # #   #  #       ##   ## ##    # #     # #     # #     # #     # #     #    #    #     # #     # #  #  #  #   #   #   #       #    #   #   ###     ###                    # #  #         #  #       #    #   ### ### ### #  #  # # #  #   #  #        #   #     #        #     #  #      # #     #   # #   #  #  # ###  #   #   #   #   ##   #     # #     # #    #  #       #     # #    #  #     # #     #
  249.  #  #  #    # #    # #    # #      #      #    # #    # #      # #   #  #      ##  ## ##   # #    # #    # #    # #    # #        #   #    # #    # #    #  #  #   # #      #   #   #  #     # #       #     # #       #       #       #     #  #        # #  #   #       # # # # # #   # #     # #     # #     # #     # #          #    #     # #     # #  #  #   # #     # #       #    #     #  ###      #                    #   # #         #  #       #    #   ###  #   #  #  #    ### #     ##        #   #       # #####       #   #     # # ### # #######     ##   #    # #   #     # # #         #       # #    #  #       #           #   #     # #     #
  250. #    # #####  #      #    # #####  #####  #      ###### #      # ####   #      # ## # # #  # #    # #    # #    # #    #  ####    #   #    # #    # #    #   ##     #      #   #     # ######  #       #     # #####   #####   #  #### #######  #        # ###    #       #  #  # #  #  # #     # ######  #     # ######   #####     #    #     # #     # #  #  #    #       #       #    #       #                 #####               #         # ##       ## #####  #           #####     #     ###       #    #       #          ###     #      # ### #   # #             # ####### #     #   #    #####   #####  #    #  ######  ######     #     #####   ######
  251. ###### #    # #      #    # #      #      #  ### #    # #      # #  #   #      #    # #  # # #    # #####  #  # # #####       #   #   #    # #    # # ## #   ##     #     #    ####### #     # #       #     # #       #       #     # #     #  #  #     # #  #   #       #     # #   # # #     # #       #   # # #   #         #    #    #     #  #   #  #  #  #   # #      #      #      #     #  ### ###  #  ###                     #         #  #       #    #                  #  #   # ### #   # #   #     #       # #####    #        #   # # ####  #######               # #   #     #   #   #             # #######       # #     #   #     #     #       #
  252. #    # #    # #    # #    # #      #      #    # #    # # #    # #   #  #      #    # #   ## #    # #      #   #  #   #  #    #   #   #    #  #  #  ##  ##  #  #    #    #     #     # #     # #     # #     # #       #       #     # #     #  #  #     # #   #  #       #     # #    ## #     # #       #    #  #    #  #     #    #    #     #   # #   #  #  #  #   #     #     #        #   #   ### ### ### ###                     #         #  #       #    #   ###         #  #  #  #  # # #    #   #       #     #                     #  # #         # #                #   #   #   #    #   #       #     #      #  #     # #     #   #     #     # #     #
  253. #    # #####   ####  #####  ###### #       ####  #    # #  ####  #    # ###### #    # #    #  ####  #       ### # #    #  ####    #    ####    ##   #    # #    #   #   ###### #     # ######   #####  ######  ####### #        #####  #     # ###  #####  #    # ####### #     # #     # ####### #        #### # #     #  #####     #     #####     #     ## ##  #     #    #    #######    # #     #   #   #  ###                     ##### #####   ### ###         ###          #####  #   ###  ###  # #         ## ##            #          # #  #####    # #                         ###   ##### #######  #####       #   #####   #####    #      #####   #####  
  254.                                                                                                                                                                                                                                                                                                                                                                                                     #   #                 #######                                                                                                                                                                                                                                    
  255. '
  256. banner_chars = {
  257.   :' ' => ' ',
  258.   :a => 1..7, :b => 8..14, :c => 15..21, :d => 22..28, :e => 29..35, :f => 36..42, :g => 43..49, :h => 50..56, :i => 57..58, :j => 59..65, :k => 66..72, :l => 73..79, :m => 80..86, :n => 87..93, :o => 94..100, :p => 101..107, :q => 108..114, :r => 115..121, :s => 122..128, :t => 129..134, :u => 135..141, :v => 142..148, :w => 149..155, :x => 156..162, :y => 163..168, :z => 169..175,
  259.   :A => 176..183, :B => 184..191, :C => 192..199, :D => 200..207, :E => 208..215, :F => 216..223, :G => 224..231, :H => 232..239, :I => 240..243, :J => 244..251, :K => 252..258, :L => 259..266, :M => 267..274, :N => 275..282, :O => 283..290, :P => 291..298, :Q => 299..306, :R => 307..314, :S => 315..322, :T => 323..330, :U => 331..338, :V => 339..346, :W => 347..354, :X => 355..362, :Y => 363..370, :Z => 371..378,
  260.   :< => 379..383, :> => 384..388, :';' => 389..392, :',' => 393..396, :':' => 397..400, :'.' => 401..404, :- => 405..410, :_ => 411..418, :'^' => 419..424, :'[' => 425..430, :']' => 431..436, :'{' => 437..442, :'}' => 443..448, :+ => 449..454, :'!' => 455..458, :'"' => 459..466, :'$' => 467..474, :% => 475..482, :& => 483..490, :/ => 491..498, :'(' => 499..503, :')' => 504..508, :'=' => 509..514, :'?' => 515..522, :'\\' => 523..530, :| => 531..532, :'@' => 533..540, :'#' => 541..548, :~ => 549..556, :` => 557..560, :* => 561..568,
  261.  :'0' => 569..576, :'1' => 577..582, :'2' => 583..590, :'3' => 591..598, :'4' => 599..606, :'5' => 607..614, :'6' => 615..622, :'7' => 623..630, :'8' => 631..638, :'9' => 639..646
  262. }
  263. banner3d = "
  264. :::'###::::'########:::'######::'########::'########:'########::'######:::'##::::'##:'####:::::::'##:'##:::'##:'##:::::::'##::::'##:'##::: ##::'#######::'########:::'#######::'########:::'######::'########:'##::::'##:'##::::'##:'##:::::'##:'##::::'##:'##:::'##:'########::::'##:'##::::'####::::::::'##:::::::::::::::::::::::::::'###:::'######:'######:::'####:'####:::::::::::'####:'####'####::'########::'#####::'##:::::'####::::::::::'##:::'###:'###:::::::::::'#######::'##:::::::'##::'#######::::'##'##::::'####::::::'####::::::::::::::'#####::::::'##::::'#######:::'#######::'##::::::::'########::'#######::'########::'#######:::'#######::
  265. ::'## ##::: ##.... ##:'##... ##: ##.... ##: ##.....:: ##.....::'##... ##:: ##:::: ##:. ##:::::::: ##: ##::'##:: ##::::::: ###::'###: ###:: ##:'##.... ##: ##.... ##:'##.... ##: ##.... ##:'##... ##:... ##..:: ##:::: ##: ##:::: ##: ##:'##: ##:. ##::'##::. ##:'##::..... ##::::'##::. ##::: ####:::::::'####:::::::::::::::::::::::::'## ##:: ##...::.... ##::'##..::... ##::::'##::: ####: #### ####:'##. ##. ##: ## ##:'##:::::'##. ##::::::::'##:::'##:::.. ##:::::::::'##.... ##:. ##:::::: ##:'##.... ##::: ## ##:::'##  ##:'##: ####::'##::'##:::'##.. ##:::'####:::'##.... ##:'##.... ##: ##:::'##:: ##.....::'##.... ##: ##..  ##:'##.... ##:'##.... ##:
  266. :'##:. ##:: ##:::: ##: ##:::..:: ##:::: ##: ##::::::: ##::::::: ##:::..::: ##:::: ##:: ##:::::::: ##: ##:'##::: ##::::::: ####'####: ####: ##: ##:::: ##: ##:::: ##: ##:::: ##: ##:::: ##: ##:::..::::: ##:::: ##:::: ##: ##:::: ##: ##: ##: ##::. ##'##::::. ####::::::: ##::::'##::::. ##::....::::::::. ##:::::::::::::::::::::::::'##:. ##: ##::::::::: ##:: ##::::::: ##:::: ##::: ####:. ##:. ##:: ##: ##:..:: #####'##::::::. ####::::::::'##:::'##::::::: ##:'#####:..:::: ##:::. ##::::: ##: ##'### ##:'#########:..::. ####::. ##:::. ##'##:::'##:::: ##::.. ##:::..::::: ##:..::::: ##: ##::: ##:: ##::::::: ##::::..::..:: ##::: ##:::: ##: ##:::: ##:
  267. '##:::. ##: ########:: ##::::::: ##:::: ##: ######::: ######::: ##::'####: #########:: ##:::::::: ##: #####:::: ##::::::: ## ### ##: ## ## ##: ##:::: ##: ########:: ##:::: ##: ########::. ######::::: ##:::: ##:::: ##: ##:::: ##: ##: ##: ##:::. ###::::::. ##::::::: ##::::'##::::::. ##:'####:'####::..::::::::'#######::::::::::..:::..:: ##::::::::: ##:'###::::::: ###:'######:: ##:::..:::..:::. ########::.....'##:::::::'####::::::::'##:::: ##::::::: ##:.....:::::: ###:::::. ##::::..:: ## ### ##:.. ## ##.:::::::....::::. ##:'#########: ##:::: ##:::: ##::::'#######:::'#######:: ##::: ##:: #######:: ########::::: ##::::: #######::: ########:
  268. #########: ##.... ##: ##::::::: ##:::: ##: ##...:::: ##...:::: ##::: ##:: ##.... ##:: ##::'##::: ##: ##. ##::: ##::::::: ##. #: ##: ##. ####: ##:::: ##: ##.....::: ##:'## ##: ##.. ##::::..... ##:::: ##:::: ##:::: ##:. ##:: ##:: ##: ##: ##::: ## ##:::::: ##:::::: ##:::::. ##::::: ##:: ####: ####::'##:::::::........::::::::::::::::::: ##::::::::: ##:. ##::::::: ##::.. ##.:::..:::::::::::::::... ##. ##:::::'##'#####:'##. ##'##:::'##::::: ##::::::: ##:'#####:::: ##.:::::::. ##:::'##: ## #####::'#########:::::::::::::::..::.. ## ##.:: ##:::: ##:::: ##:::'##:::::::::...... ##: #########:...... ##: ##.... ##::: ##:::::'##.... ##::...... ##:
  269. ##.... ##: ##:::: ##: ##::: ##: ##:::: ##: ##::::::: ##::::::: ##::: ##:: ##:::: ##:: ##:: ##::: ##: ##:. ##:: ##::::::: ##:.:: ##: ##:. ###: ##:::: ##: ##:::::::: ##:.. ##:: ##::. ##::'##::: ##:::: ##:::: ##:::: ##::. ## ##::: ##: ##: ##:: ##:. ##::::: ##::::: ##:::::::. ##::: ##:::. ##::. ##::'####:'###:::::::::::::::::::::::::::: ##::::::::: ##:: ##::::::: ##:::: ##:::'####::::::::::::'##: ##: ##::::'##: ## ##: ##:. ##::::'##::::::. ##::::: ##::.....:::::..::::::::::. ##:: ##: ##.....:::.. ## ##.::::::::::::::::::::: ##:. ##::. ##:: ##::::: ##::: ##::::::::'##:::: ##:...... ##::'##::: ##: ##:::: ##::: ##::::: ##:::: ##:'##:::: ##:
  270. ##:::: ##: ########::. ######:: ########:: ########: ##:::::::. ######::: ##:::: ##:'####:. ######:: ##::. ##: ########: ##:::: ##: ##::. ##:. #######:: ##::::::::. ##### ##: ##:::. ##:. ######::::: ##::::. #######::::. ###::::. ###. ###:: ##:::. ##:::: ##:::: ########:::. ##: ##:::: ##:::'##:::. ##:: ###::::::::::'#######:::::::::: ######:'######::. ####:'####:::::..:::: ####::::::::::::. ########::::'##:: #####:. ####. ##:'##::::::::. ###: ###:::::::::::::'##::::::::::. ##: ##:. #######:::: ## ##::::::::::::::::::::::..:::..::::. #####::::'######: #########:. #######:::::::: ##::. ######::. #######:::: ##:::::. #######::. #######::
  271. ..:::::..::........::::......:::........:::........::..:::::::::......::::..:::::..::....:::......:::..::::..::........::..:::::..::..::::..:::.......:::..::::::::::.....:..::..:::::..:::......::::::..::::::.......::::::...::::::...::...:::..:::::..:::::..:::::........:::::..::..:::::.:::::..:::::..:::...:::::::::::.......:::::::::::......::......:::::...::....::::::::::::....::::::::::::::........:::::..:::.....:::....::..::..::::::::::...::...::::::::::::::..::::::::::::..::..:::.......:::::..:..:::::::::::::::::::::::::::::::::::.....:::::......::.........:::.......:::::::::..::::......::::.......:::::..:::::::.......::::.......:::
  272. "
  273. banner3d_chars = {
  274.  :' ' => ' ',
  275.  :a => 0..10, :b => 11..21, :c => 22..31, :d => 32..42, :e => 43..52, :f => 53..62, :g => 63..73, :h => 74..84, :i => 85..90, :j => 91..100, :k => 101..110, :l => 111..120, :m => 121..131, :n => 132..141, :o => 142..152, :p => 153..163, :q => 164..174, :r => 175..185, :s => 186..195, :t => 196..205, :u => 206..216, :v => 217..227, :w => 228..239, :x => 240..250, :y => 251..260, :z => 261..270,
  276.  :A => 0..10, :B => 11..21, :C => 22..31, :D => 32..42, :E => 43..52, :F => 53..62, :G => 63..73, :H => 74..84, :I => 85..90, :J => 91..100, :K => 101..110, :L => 111..120, :M => 121..131, :N => 132..141, :O => 142..152, :P => 153..163, :Q => 164..174, :R => 175..185, :S => 186..195, :T => 196..205, :U => 206..216, :V => 217..227, :W => 228..239, :X => 240..250, :Y => 251..260, :Z => 261..270,
  277.  :< => 271..277, :> => 278..284, :';' => 285..290, :',' => 291..296, :':' => 297..302, :'.' => 303..307, :- => 308..316, :_ => 317..325, :'^' => 326..334, :'[' => 335..342, :']' => 343..350, :'{' => 351..358, :'}' => 359..366, :+ => 367..374, :'!' => 375..380, :'"' => 381..391, :'$' => 392..403, :% => 404..417, :& => 418..428, :/ => 429..438, :'(' => 439..445, :')' => 446..452, :'=' => 453..459, :'?' => 460..470, :'\\' => 471..480, :| => 481..484, :'@' => 485..495, :'#' => 496..506, :~ => 507..518, :` => 519..524, :* => 525..535,
  278.   :'0' => 536..546, :'1' => 548..555, :'2' => 556..566, :'3' => 567..577, :'4' => 578..588, :'5' => 589..598, :'6' => 599..609, :'7' => 610..619, :'8' => 620..630, :'9' => 631..641
  279. }
  280. banner2 = "
  281.   ###    ########   ######  ########  ######## ########  ######   ##     ## ####       ## ##    ## ##       ##     ## ##    ##  #######  ########   #######  ########   ######  ######## ##     ## ##     ## ##      ## ##     ## ##    ## ########    ## ##    ####       ##                        ###   ###### ######   #### ####          #### #### ####  ########  #####   ##     ####          ##   ### ###          #######  ##       ##  #######    ## ##    ####      ####             #####      ##    #######   #######  ##        ########  #######  ########  #######   #######  
  282.  ## ##   ##     ## ##    ## ##     ## ##       ##       ##    ##  ##     ##  ##        ## ##   ##  ##       ###   ### ###   ## ##     ## ##     ## ##     ## ##     ## ##    ##    ##    ##     ## ##     ## ##  ##  ##  ##   ##   ##  ##       ##    ##   ##   ####      ####                      ## ##  ##         ##  ##       ##    ##   #### #### #### ##  ##  ## ## ##  ##     ##  ##        ##   ##     ##        ##     ##  ##      ## ##     ##   ## ##   ##  ##  ## ####  ##   ##   ##   ##   ####   ##     ## ##     ## ##    ##  ##       ##     ## ##    ## ##     ## ##     ##
  283. ##   ##  ##     ## ##       ##     ## ##       ##       ##        ##     ##  ##        ## ##  ##   ##       #### #### ####  ## ##     ## ##     ## ##     ## ##     ## ##          ##    ##     ## ##     ## ##  ##  ##   ## ##     ####       ##    ##     ##             ##                      ##   ## ##         ##  ##       ##    ##   ####  ##   ##  ##  ##     ##### ##       ####        ##   ##       ## #####       ##    ##     ## ## ### ## #########      ####   ##    ## ##   ##     ##    ##          ##        ## ##    ##  ##       ##            ##   ##     ## ##     ##
  284. ##     ## ########  ##       ##     ## ######   ######   ##   #### #########  ##        ## #####    ##       ## ### ## ## ## ## ##     ## ########  ##     ## ########   ######     ##    ##     ## ##     ## ##  ##  ##    ###       ##       ##    ##       ## #### ####          #######                 ##         ## ###       ### ######  ##             ########       ##       ####        ##    ##       ##           ###      ##       ## ### ##   ## ##                ## ######### ##     ##    ##    #######   #######  ##    ##  #######  ########     ##     #######   ########
  285. ######### ##     ## ##       ##     ## ##       ##       ##    ##  ##     ##  ##  ##    ## ##  ##   ##       ##     ## ##  #### ##     ## ##        ##  ## ## ##   ##         ##    ##    ##     ##  ##   ##  ##  ##  ##   ## ##      ##      ##      ##     ##  #### ####  ##                              ##         ##  ##       ##    ##                      ##  ##     ## ##### ##  ## ##   ##     ##       ## #####    ##         ##   ## ## #####  #########                   ## ##   ##     ##    ##   ##               ## #########       ## ##     ##   ##     ##     ##        ##
  286. ##     ## ##     ## ##    ## ##     ## ##       ##       ##    ##  ##     ##  ##  ##    ## ##   ##  ##       ##     ## ##   ### ##     ## ##        ##    ##  ##    ##  ##    ##    ##    ##     ##   ## ##   ##  ##  ##  ##   ##     ##     ##        ##   ##    ##   ##  #### ###                         ##         ##  ##       ##    ##   ####           ##  ##  ##    ##  ## ## ##   ##    ##       ##     ##                       ##  ## ##          ## ##                    ##   ##   ##   ##     ##   ##        ##     ##       ##  ##    ## ##     ##   ##     ##     ## ##     ##
  287. ##     ## ########   ######  ########  ######## ##        ######   ##     ## ####  ######  ##    ## ######## ##     ## ##    ##  #######  ##         ##### ## ##     ##  ######     ##     #######     ###     ###  ###  ##     ##    ##    ########    ## ##    ##   ##    ##  ###         #######         ###### ######   #### ####          ####            ########    ##   #####  ####  ## ##         ### ###            ##           ## ##  #######    ## ##                               #####    ###### #########  #######        ##   ######   #######    ##      #######   #######  
  288. "
  289. banner2_chars = {
  290.   :' ' => ' ',
  291.   :a => 0..9, :b => 10..19, :c => 20..28, :d => 29..38, :e => 39..47, :f => 48..56, :g => 57..66, :h => 67..76, :i => 77..81, :j => 82..90, :k => 91..99, :l => 100..108, :m => 109..118, :n => 119..127, :o => 128..137, :p => 138..147, :q => 148..157, :r => 158..167, :s => 168..176, :t => 177..185, :u => 186..195, :v => 196..205, :w => 206..216, :x => 217..226, :y => 227..235, :z => 236..244,
  292.   :A => 0..9, :B => 10..19, :C => 20..28, :D => 29..38, :E => 39..47, :F => 48..56, :G => 57..66, :H => 67..76, :I => 77..81, :J => 82..90, :K => 91..99, :L => 100..108, :M => 109..118, :N => 119..127, :O => 128..137, :P => 138..147, :Q => 148..157, :R => 158..167, :S => 168..176, :T => 177..185, :U => 186..195, :V => 196..205, :W => 206..216, :X => 217..226, :Y => 227..235, :Z => 236..244,
  293.   :< => 245..250, :> => 251..256, :';' => 257..261, :',' => 262..266, :':' => 267..271, :'.' => 272..275, :- => 276..283, :_ => 284..291, :'^' => 292..299, :'[' => 300..306, :']' => 307..313, :'{' => 314..320, :'}' => 321..328, :+ => 329..334, :'!' => 335..339, :'"' => 340..349, :'$' => 350..360, :% => 361..373, :& => 374..383, :/ => 384..392, :'(' => 393..398, :')' => 399..404, :'=' => 405..410, :'?' => 411..420, :'\\' => 421..429, :| => 430..432, :'@' => 433..442, :'#' => 443..452, :~ => 453..463, :` => 464..468, :* => 469..478,
  294.  :'0' => 479..488, :'1' => 490..496, :'2' => 497..506, :'3' => 507..516, :'4' => 517..526, :'5' => 527..535, :'6' => 536..545, :'7' => 546..554, :'8' => 555..564, :'9' => 565..574
  295. }
  296. big = "
  297.          _                  _           __           _       _     _   _      _                                                            _                                                                ____     _____   _____    ______   ______    _____   _    _   _____        _   _  __  _        __  __   _   _    ____    _____     ____    _____     _____   _______   _    _  __      __ __          __ __   __ __     __  ______    __ __                                       /\\   ___   ___     __ __             _   _ _    _    _   __               __   __ __             ___   __       _               _  _     /\\/|  _      _       ___    __   ___    ____    _  _     _____     __    ______    ___     ___  
  298.         | |                | |         / _|         | |     (_)   (_) | |    | |                                                          | |                                                       /\\     |  _ \\   / ____| |  __ \\  |  ____| |  ____|  / ____| | |  | | |_   _|      | | | |/ / | |      |  \\/  | | \\ | |  / __ \\  |  __ \\   / __ \\  |  __ \\   / ____| |__   __| | |  | | \\ \\    / / \\ \\        / / \\ \\ / / \\ \\   / / |___  /   / / \\ \\    _       _                        |/\\| |  _| |_  |   / / \\ \\      _    | | ( | )  | |  (_) / /   ___        / /  / / \\ \\   ______  |__ \\  \\ \\     | |    ____    _| || |_  |/\\/  ( )  /\\| |/\\   / _ \\  /_ | |__ \\  |___ \\  | || |   | ____|   / /   |____  |  / _ \\   / _ \\
  299.   __ _  | |__     ___    __| |   ___  | |_    __ _  | |__    _     _  | | __ | |  _ __ ___    _ __     ___    _ __     __ _   _ __   ___  | |_   _   _  __   __ __      __ __  __  _   _   ____    /  \\    | |_) | | |      | |  | | | |__    | |__    | |  __  | |__| |   | |        | | | ' /  | |      | \\  / | |  \\| | | |  | | | |__) | | |  | | | |__) | | (___      | |    | |  | |  \\ \\  / /   \\ \\  /\\  / /   \\ V /   \\ \\_/ /     / /   / /   \\ \\  (_)     (_)      ______                | |     | |  | |   | |   _| |_  | |  V V  / __)    / /   ( _ )      / /  | |   | | |______|    ) |  \\ \\    | |   / __ \\  |_  __  _|        \\|  \\ ` ' /  | | | |  | |    ) |   __) | | || |_  | |__    / /_       / /  | (_) | | (_) |
  300.  / _` | | '_ \\   / __|  / _` |  / _ \\ |  _|  / _` | | '_ \\  | |   | | | |/ / | | | '_ ` _ \\  | '_ \\   / _ \\  | '_ \\   / _` | | '__| / __| | __| | | | | \\ \\ / / \\ \\ /\\ / / \\ \\/ / | | | | |_  /   / /\\ \\   |  _ <  | |      | |  | | |  __|   |  __|   | | |_ | |  __  |   | |    _   | | |  <   | |      | |\\/| | | . ` | | |  | | |  ___/  | |  | | |  _  /   \\___ \\     | |    | |  | |   \\ \\/ /     \\ \\/  \\/ /     > <     \\   /     / /   < <     > >                 |______|               | |     | | / /     \\ \\ |_   _| | |       \\__ \\   / /    / _ \\/\\   / /   | |   | |  ______    / /    \\ \\   | |  / / _` |  _| || |_            |_     _| | | | |  | |   / /   |__ <  |__   _| |___ \\  | '_ \\     / /    > _ <   \\__, |
  301.  | (_| | | |_) | | (__  | (_| | |  __/ | |   | (_| | | | | | | |   | | |   <  | | | | | | | | | | | | | (_) | | |_) | | (_| | | |    \\__ \\ | |_  | |_| |  \\ V /   \\ V  V /   >  <  | |_| |  / /   / ____ \\  | |_) | | |____  | |__| | | |____  | |      | |__| | | |  | |  _| |_  | |__| | | . \\  | |____  | |  | | | |\\  | | |__| | | |      | |__| | | | \\ \\   ____) |    | |    | |__| |    \\  /       \\  /\\  /     / . \\     | |     / /__   \\ \\   / /   _   _   _   _                         | |     | | \\ \\     / /   |_|   |_|       (   /  / / _  | (_>  <  / /    | |   | | |______|  |_|      \\ \\  | | | | (_| | |_  __  _|            / , . \\  | |_| |  | |  / /_   ___) |    | |    ___) | | (_) |   / /    | (_) |    / /
  302.   \\__,_| |_.__/   \\___|  \\__,_|  \\___| |_|    \\__, | |_| |_| |_|   | | |_|\\_\\ |_| |_| |_| |_| |_| |_|  \\___/  | .__/   \\__, | |_|    |___/  \\__|  \\__,_|   \\_/     \\_/\\_/   /_/\\_\\  \\__, | /___| /_/    \\_\\ |____/   \\_____| |_____/  |______| |_|       \\_____| |_|  |_| |_____|  \\____/  |_|\\_\\ |______| |_|  |_| |_| \\_|  \\____/  |_|       \\___\\_\\ |_|  \\_\\ |_____/     |_|     \\____/      \\/         \\/  \\/     /_/ \\_\\    |_|    /_____|   \\_\\ /_/   ( ) ( ) (_) (_)                        | |_   _| |  | |   | |          (_)        |_|  /_/ (_)  \\___/\\/ /_/     | |   | |           (_)       \\_\\ | |  \\ \\__,_|   |_||_|              \\/|_|\\/   \\___/   |_| |____| |____/     |_|   |____/   \\___/   /_/      \\___/    /_/  
  303.                                                __/ |              _/ |                                        | |         | |                                                        __/ |                                                                                                                                                                                                                                                                  |/  |/                    ______       |___| |___|   \\_\\ /_/                                                     \\_\\ /_/                          | |   2>Nul &&____/                                                                                                              
  304.                                               |___/              |__/                                         |_|         |_|                                                       |___/                                                                                                                                                                                                                                                                                            |______|                                                                                                                 |_|                                                                                                                      
  305. "
  306. big_chars = {
  307. :' ' => ' ',
  308. :a => 1..7,
  309. :b => 9..15,
  310. :c => 17..22,
  311. :d => 24..30,
  312. :e => 32..37,
  313. :f => 39..43,
  314. :g => 45..51,
  315. :h => 53..59,
  316. :i => 61..63,
  317. :j => 65..69,
  318. :k => 71..76,
  319. :l => 78..80,
  320. :m => 82..92,
  321. :n => 94..100,
  322. :o => 102..108,
  323. :p => 110..116,
  324. :q => 118..124,
  325. :r => 126..131,
  326. :s => 133..137,
  327. :t => 139..143,
  328. :u => 145..151,
  329. :v => 153..159,
  330. :w => 161..170,
  331. :x => 172..177,
  332. :y => 179..185,
  333. :z => 187..191,
  334.  
  335. :A => 193..202,
  336. :B => 204..210,
  337. :C => 212..219,
  338. :D => 221..228,
  339. :E => 230..237,
  340. :F => 239..246,
  341. :G => 248..255,
  342. :H => 257..264,
  343. :I => 266..272,
  344. :J => 274..281,
  345. :K => 283..288,
  346. :L => 290..297,
  347. :M => 299..306,
  348. :N => 308..314,
  349. :O => 316..323,
  350. :P => 325..332,
  351. :Q => 334..341,
  352. :R => 343..350,
  353. :S => 352..359,
  354. :T => 361..369,
  355. :U => 371..378,
  356. :V => 380..389,
  357. :W => 391..404,
  358. :X => 406..412,
  359. :Y => 414..422,
  360. :Z => 424..430,
  361.  
  362. :< => 432..438,
  363. :> => 1..0,
  364. :';' => 1..0,
  365. :',' => 1..0,
  366. :':' => 1..0,
  367. :'.' => 1..0,
  368. :- => 1..0,
  369. :_ => 1..0,
  370. :'^' => 1..0,
  371. :'[' => 1..0,
  372. :']' => 1..0,
  373. :'{' => 1..0,
  374. :'}' => 1..0,
  375. :+ => 1..0,
  376. :'!' => 1..0,
  377. :'"' => 1..0,
  378. :'$' => 1..0,
  379. :% => 1..0,
  380. :& => 1..0,
  381. :/ => 1..0,
  382. :'(' => 1..0,
  383. :')' => 1..0,
  384. :'=' => 1..0,
  385. :'?' => 1..0,
  386. :'\\' => 1..0,
  387. :| => 1..0,
  388. :'@' => 1..0,
  389. :'#' => 1..0,
  390. :~ => 1..0,
  391. :` => 1..0,
  392. :* => 1..0,
  393.  
  394. :'0' => 1..0,
  395. :'1' => 1..0,
  396. :'2' => 1..0,
  397. :'3' => 1..0,
  398. :'4' => 1..0,
  399. :'5' => 1..0,
  400. :'6' => 1..0,
  401. :'7' => 1..0,
  402. :'8' => 1..0,
  403. :'9' => 1..0
  404. }
  405.  
  406. # big
  407.  
  408.  
  409. string = 'Elektro   Hacker'
  410.  
  411.  
  412. omitidos= ""
  413. estilo = big
  414. estilo_chars = big_chars
  415.  
  416. result = Array.new(estilo.lines.count){''}     # array with n empty lines
  417. string.each_char do |caracter|
  418. if not estilo_chars[caracter.to_sym]
  419. omitidos = omitidos + " " + caracter
  420. caracter = ' '
  421. end
  422. pos = estilo_chars[caracter.to_sym]
  423.  estilo.lines.each_with_index do |line,index|
  424.    next if index == 0                    
  425.    result[index] << line[pos]
  426.  
  427.  end
  428. end
  429. result = result.join("\n")
  430.  
  431. puts result
  432. puts "\n Caracteres omitidos: " + omitidos
RAW Paste Data