All pastes #638911 Raw Edit

DontKickMe u gey.

public text v1 · immutable
#638911 ·published 2007-07-30 06:10 UTC
rendered paste body
alias colors {
  var %length = $len($1-)
  var %letter = 1
  while (%letter <= %length) {
    if ($mid($1-,%letter,1) == $chr(32)) {
      var %output = %output $+ &
      goto xxx
    } 
    var %output = %output $+  $+ $rand(03,013) $+ $mid($1-,%letter,1)
    :xxx
    inc %letter
  }
  var %output = $replace(%output,$chr(38),$chr(32))
  msg $active %output
}

alias rev {
  var %len = $len($1-)
  var %return = $null
  while (%len > 0) {
    var %return = %return $+ $mid($1-,%len,1) $+ $chr(32)
    dec %len
  }
  return %return
}
alias reverse //say $rev( $1- )
alias mereverse //me $rev( $1- )

alias rainbow {
  var %pos = 1, %color = 04, %result = $chr(3)
  while (%pos <= $len($1-)) {
    %result = %result $+ %color $+ $mid($1-,%pos,1) $+ $chr(3)
    inc %pos
    %color = $nextcolor(%color)
  }
  if ($isid) return %result
  else say %result
}

alias -l nextcolor {
  if ($$1 == 04) return 07
  elseif ($$1 == 07) return 08
  elseif ($$1 == 08) return 09
  elseif ($$1 == 09) return 11
  elseif ($$1 == 11) return 12
  elseif ($$1 == 12) return 02
  elseif ($$1 == 02) return 06
  elseif ($$1 == 06) return 13
  elseif ($$1 == 13) return 04
}

alias mt {
  if ($bigtext.unsupp($1-)) {
    echo -ac info * Characters not supported by Big Text present in your message: $bigtext.unsupp($1-)
    return
  }
  var %lia, %lib, %lic, %lid, %lie, %i 1, %text $strip($1-, bur), %colregex /^(\d\d?(?:,\d\d?)?)/

  var %regex = /(?<= $+ $chr(3) $+ [0-9]| $+ $chr(3) $+ [0-9][0-9]) $+ $chr(44) $+ \d\d?/g, %res, %dummy = $regsub(%text, %regex, $null, %text)

  while (%i <= $len(%text)) {
    if ($mid(%text, %i, 1) == $chr(3)) {
      var %lia $+(%lia, $chr(3)), %lib $+(%lib, $chr(3)), %lic $+(%lic, $chr(3)), %lid $+(%lid, $chr(3)), %lie $+(%lie, $chr(3))
      if ($mid(%text, $calc(%i + 1), 1) != $chr(32)) && ($regex(mtcol, $mid(%text, $calc(%i + 1), $mid(%text, $calc(%i + 1), 0)), %colregex)) {
        var %m $regml(mtcol, 1)
        var %lia %lia $+ %m, %lib %lib $+ %m, %lic %lic $+ %m, %lid %lid $+ %m, %lie %lie $+ %m
        inc %i $len(%m)
      }
    }
    else { 
      tokenize 32 $bigtext.char($mid(%text, %i, 1))
      var %lia $+(%lia, $1), %lib $+(%lib, $2), %lic $+(%lic, $3), %lid $+(%lid, $4), %lie $+(%lie, $5)
      ; if ($bigtext.kern($mid(%text, %i, 2))) {
      var %lia $+(%lia, .), %lib $+(%lib, .), %lic $+(%lic, .), %lid $+(%lid, .), %lie $+(%lie, .)
      ; }
    }
    inc %i
  }
  say $bigtext.format(%lia)
  say $bigtext.format(%lib)
  say $bigtext.format(%lic)
  say $bigtext.format(%lid)
  say $bigtext.format(%lie)
}

; You may customize this alias however you want to.
; It is Big Text's font, used above.
; The return value consists of dots and X's, to denote
;   unlit and lit points in the font, respectively;
;   there are 5 tokens of the same length, each
;   corresponding to a line in the 5-line output.
; Note how the . and X's look like the characters;
;   you can use this to your advantage!
alias -l bigtext.char {
  if ($1 === $chr(32)) || ($1 === $null) return $&
    ... $&
    ... $&
    ... $&
    ... $&
    ...
  if ($1 === $chr(160)) return $&
    ..... $&
    ..... $&
    ..... $&
    ..... $&
    .....
  elseif ($1 == 0) return $&
    .XXXX. $&
    XX..XX $&
    XX.XXX $&
    XXX.XX $&
    .XXXX.
  elseif ($1 == 1) return $&
    .XXXX $&
    XX.XX $&
    ...XX $&
    ...XX $&
    ...XX
  elseif ($1 == 2) return $&
    XXXXX. $&
    ....XX $&
    ..XX.. $&
    XX.... $&
    XXXXXX
  elseif ($1 == 3) return $&
    XXXXX. $&
    ....XX $&
    .XXXX. $&
    ....XX $&
    XXXXX.
  elseif ($1 == 4) return $&
    .....XXX. $&
    ...XX.XX. $&
    .XX...XX. $&
    XXXXXXXXX $&
    ......XX.
  elseif ($1 == 5) return $&
    XXXXX $&
    XX... $&
    XXXX. $&
    ...XX $&
    XXXX.
  elseif ($1 == 6) return $&
    .XXXX. $&
    XX.... $&
    XXXXX. $&
    XX..XX $&
    .XXXX.
  elseif ($1 == 7) return $&
    XXXXXX $&
    ...XX. $&
    ..XX.. $&
    .XX... $&
    XX....
  elseif ($1 == 8) return $&
    .XXXX. $&
    XX..XX $&
    .XXXX. $&
    XX..XX $&
    .XXXX.
  elseif ($1 == 9) return $&
    .XXXX. $&
    XX..XX $&
    .XXXXX $&
    ....XX $&
    .XXXX.
  elseif ($1 == A) return $&
    .XXXX. $&
    XX..XX $&
    XXXXXX $&
    XX..XX $&
    XX..XX
  elseif ($1 == B) return $&
    XXXXX. $&
    XX..XX $&
    XXXXX. $&
    XX..XX $&
    XXXXX.
  elseif ($1 == C) return $&
    .XXXX. $&
    XX..XX $&
    XX.... $&
    XX..XX $&
    .XXXX.
  elseif ($1 == D) return $&
    XXXX.. $&
    XX.XX. $&
    XX..XX $&
    XX..XX $&
    XXXXX.
  elseif ($1 == E) return $&
    XXXXX $&
    XX... $&
    XXXX. $&
    XX... $&
    XXXXX
  elseif ($1 == F) return $&
    XXXXX $&
    XX... $&
    XXXX. $&
    XX... $&
    XX...
  elseif ($1 == G) return $&
    .XXXX. $&
    XX.... $&
    XX.XXX $&
    XX..XX $&
    .XXXXX
  elseif ($1 == H) return $&
    XX...XX $&
    XX...XX $&
    XXXXXXX $&
    XX...XX $&
    XX...XX
  elseif ($1 == I) return $&
    XXXX $&
    .XX. $&
    .XX. $&
    .XX. $&
    XXXX
  elseif ($1 == J) return $&
    ....XX $&
    ....XX $&
    ....XX $&
    XX..XX $&
    .XXXX.
  elseif ($1 == K) return $&
    XX..XX $&
    XX.XX. $&
    XXXX.. $&
    XX.XX. $&
    XX..XX
  elseif ($1 == L) return $&
    XX... $&
    XX... $&
    XX... $&
    XX... $&
    XXXXX
  elseif ($1 == M) return $&
    XX....XX $&
    XXX..XXX $&
    XXXXXXXX $&
    XX.XX.XX $&
    XX....XX
  elseif ($1 == N) return $&
    XX..XX $&
    XXX.XX $&
    XXXXXX $&
    XX.XXX $&
    XX..XX
  elseif ($1 == O) return $&
    .XXXX. $&
    XX..XX $&
    XX..XX $&
    XX..XX $&
    .XXXX.
  elseif ($1 == P) return $&
    XXXXX. $&
    XX..XX $&
    XXXXX. $&
    XX.... $&
    XX....
  elseif ($1 == Q) return $&
    .XXXX.. $&
    XX..XX. $&
    XX..XX. $&
    XX..XX. $&
    .XXXXXX
  elseif ($1 == R) return $&
    XXXXX. $&
    XX..XX $&
    XXXXX. $&
    XX..XX $&
    XX..XX
  elseif ($1 == S) return $&
    .XXXX. $&
    XX.... $&
    .XXXX. $&
    ....XX $&
    XXXXX.
  elseif ($1 == T) return $&
    XXXXXX $&
    ..XX.. $&
    ..XX.. $&
    ..XX.. $&
    ..XX..
  elseif ($1 == U) return $&
    XX..XX $&
    XX..XX $&
    XX..XX $&
    XX..XX $&
    .XXXX.
  elseif ($1 == V) return $&
    XX....XX $&
    XX....XX $&
    .XX..XX. $&
    ..XXXX.. $&
    ...XX...
  elseif ($1 == W) return $&
    XX...XX $&
    XX...XX $&
    XX.X.XX $&
    XXXXXXX $&
    .XX.XX.
  elseif ($1 == X) return $&
    XX...XX $&
    .XX.XX. $&
    ..XXX.. $&
    .XX.XX. $&
    XX...XX
  elseif ($1 == Y) return $&
    XX..XX $&
    XX..XX $&
    .XXXX. $&
    ..XX.. $&
    ..XX..
  elseif ($1 == Z) return $&
    XXXXXX $&
    ...XX. $&
    ..XX.. $&
    .XX... $&
    XXXXXX
  elseif ($1 == $chr(35)) return $&
    .XX..XX. $&
    XXXXXXXX $&
    .XX..XX. $&
    XXXXXXXX $&
    .XX..XX.
  elseif ($1 == ') return $&
    .XX $&
    XX. $&
    ... $&
    ... $&
    ...
  elseif ($1 == ") return $&
    XX..XX $&
    XX..XX $&
    ...... $&
    ...... $&
    ......
  elseif ($1 == +) return $&
    ...... $&
    ..XX.. $&
    XXXXXX $&
    ..XX.. $&
    ......
  elseif ($1 == =) return $&
    ...... $&
    XXXXXX $&
    ...... $&
    XXXXXX $&
    ......
  elseif ($1 == -) return $&
    ...... $&
    ...... $&
    XXXXXX $&
    ...... $&
    ......
  elseif ($1 == _) return $&
    ...... $&
    ...... $&
    ...... $&
    ...... $&
    XXXXXX
  elseif ($1 == ?) return $&
    XXXXX $&
    ...XX $&
    ..XX.. $&
    ...... $&
    ..XX..
  elseif ($1 == ?) return $&
    .XXX. $&
    XX.XX $&
    .XXX. $&
    ..... $&
    .....
  elseif ($1 == :) return $&
    .. $&
    XX $&
    .. $&
    XX $&
    ..
  elseif ($1 == !) return $&
    XX $&
    XX $&
    XX $&
    .. $&
    XX
  elseif ($1 == ?) return $&
    XXX. $&
    ..XX $&
    .XX. $&
    .... $&
    .XX.
  elseif ($1 == .) return $&
    .. $&
    .. $&
    .. $&
    .. $&
    XX
  elseif ($1 == /) return $&
    ....XX $&
    ...XX. $&
    ..XX.. $&
    .XX... $&
    XX....
  elseif ($1 == \) return $&
    XX.... $&
    .XX... $&
    ..XX.. $&
    ...XX. $&
    ....XX
  elseif ($1 == $chr(40)) return $&
    ...XX $&
    .XX.. $&
    XX... $&
    .XX.. $&
    ...XX
  elseif ($1 == $chr(41)) return $&
    XX... $&
    ..XX. $&
    ...XX $&
    ..XX. $&
    XX...
  elseif ($1 == $chr(37)) return $&
    XX..XX $&
    ...XX. $&
    ..XX.. $&
    .XX... $&
    XX..XX
  elseif ($1 == [) return $&
    XXXXX $&
    XX... $&
    XX... $&
    XX... $&
    XXXXX
  elseif ($1 == ]) return $&
    XXXXX $&
    ...XX $&
    ...XX $&
    ...XX $&
    XXXXX
  elseif ($1 == |) return $&
    .XX. $&
    .XX. $&
    .XX. $&
    .XX. $&
    .XX.
  elseif ($1 == <) return $&
    ....XX $&
    ..XX.. $&
    XX.... $&
    ..XX.. $&
    ....XX
  elseif ($1 == >) return $&
    XX.... $&
    ..XX.. $&
    ....XX $&
    ..XX.. $&
    XX....
  elseif ($1 == ?) return $&
    .... $&
    .... $&
    .XX. $&
    ..XX $&
    XXX.
  elseif ($1 == ,) return $&
    ... $&
    ... $&
    XXX $&
    .XX $&
    XX. 
}

; Returns all unsupported characters within a Big Text message
; Supported characters are a-z, space, digits, #'"+=?:!?./\()%-[]<>|?,
alias bigtext.unsupp {
  var %res, %dummy = $regsub($1-, /[]a-z  0-9# $+ $chr(44) $+ '+=?:!?./\\()%[|<>_?"?-]/igS, $null, %res)
  return %res
}

; Returns $true if a space should be added between two characters,
;   or $false if not.
; Note: This is here only for aesthetic purposes. :)
alias bigtext.kern {
  var %res $true
  if ($regex($1-, /^(.|[_GDSQL-]T|[TPFVY7/"]J|T\.|L[1Y\\"]|[LTK<[]-|-[]>%\\]|S1|T4|\?\.|\.\?|[467L\\]?|?[J/]|L'|\/\/|\\\\|?J|[_?]?|[?T_]_|>\.|\.<)$/i)) %res = $false
  return %res
}

; Takes an input string of the form:
; .XX..XX....XX.XX.XXXXX
; And formats it for display.
alias bigtext.format {
  var %res, %i 1, %previous 0, %current, %curcolor, %colregex /^(\d\d?(?:,\d\d?)?)/
  while (%i <= $len($1-)) {
    if ($mid($1-, %i, 1) == $chr(3)) {
      if ($regex(mtcol, $mid($1-, $calc(%i + 1), $mid($1-, $calc(%i + 1), 0)), %colregex)) {
        if ($gettok($regml(mtcol, 1), 1, 44) != %curcolor) {
          %curcolor = $gettok($regml(mtcol, 1), 1, 44)
          if (%i != 1) && ($mid($1-, $calc(%i - 1), 1) == X) %res = %res $+ $chr(15)
        }
        inc %i $len($regml(mtcol, 1))
      }
      elseif (%curcolor) {
        %curcolor =
        if (%i != 1) && ($mid($1-, $calc(%i - 1), 1) == X) %res = %res $+ $chr(15)
      }
    }
    else {
      %current = $iif($mid($1-, %i, 1) == ., 0, 1)
      if (%previous != %current) {
        %previous = %current
        if (%curcolor) {
          if (%current) %res = %res $+ $chr(3) $+ %curcolor $+ , $+ %curcolor
          else %res = %res $+ $chr(3)
        }
        else %res = %res $+ $chr(22)
      }
      %res = %res $+ $chr(160)
    }
    inc %i
  }
  return %res
}

alias mtrainbow //mt $rainbow( $+ $1- $+ )

[script]
n0=alias colors {
  n1=  var %length = $len($1-)
  n2=  var %letter = 1
  n3=  while (%letter <= %length) {
    n4=    if ($mid($1-,%letter,1) == $chr(32)) {
      n5=      var %output = %output $+ &
      n6=      goto xxx
    n7=    } 
    n8=    var %output = %output $+  $+ $rand(03,013) $+ $mid($1-,%letter,1)
    n9=    :xxx
    n10=    inc %letter
  n11=  }
  n12=  var %output = $replace(%output,$chr(38),$chr(32))
  n13=  msg $active %output
  n14=}
  n15=
  n16=
  n17=
  n18=alias rev {
    n19=  var %len = $len($1-)
    n20=  var %return = $null
    n21=  while (%len > 0) {
      n22=    var %return = %return $+ $mid($1-,%len,1) $+ $chr(32)
      n23=    dec %len
    n24=  }
    n25=  return %return
    n26=}
    n27=alias reverse //say $rev( $1- )
    n28=alias mereverse //me $rev( $1- )
    n29=
    n30=
    n31=
    n32=
    n33=alias rainbow {
      n34=  var %pos = 1, %color = 04, %result = $chr(3)
      n35=  while (%pos <= $len($1-)) {
        n36=    %result = %result $+ %color $+ $mid($1-,%pos,1) $+ $chr(3)
        n37=    inc %pos
        n38=    %color = $nextcolor(%color)
      n39=  }
      n40=  if ($isid) return %result
      n41=  else say %result
      n42=}
      n43=
      n44=alias -l nextcolor {
        n45=  if ($$1 == 04) return 07
        n46=  elseif ($$1 == 07) return 08
        n47=  elseif ($$1 == 08) return 09
        n48=  elseif ($$1 == 09) return 11
        n49=  elseif ($$1 == 11) return 12
        n50=  elseif ($$1 == 12) return 02
        n51=  elseif ($$1 == 02) return 06
        n52=  elseif ($$1 == 06) return 13
        n53=  elseif ($$1 == 13) return 04
        n54=}
        n55=
        n56=
        n57=
        n58=
        n59=
        n60=
        n61=alias mt {
          n62=  if ($bigtext.unsupp($1-)) {
            n63=    echo -ac info * Characters not supported by Big Text present in your message: $bigtext.unsupp($1-)
            n64=    return
          n65=  }
          n66=  var %lia, %lib, %lic, %lid, %lie, %i 1, %text $strip($1-, bur), %colregex /^(\d\d?(?:,\d\d?)?)/
          n67=
          n68=  var %regex = /(?<= $+ $chr(3) $+ [0-9]| $+ $chr(3) $+ [0-9][0-9]) $+ $chr(44) $+ \d\d?/g, %res, %dummy = $regsub(%text, %regex, $null, %text)
          n69=
          n70=  while (%i <= $len(%text)) {
            n71=    if ($mid(%text, %i, 1) == $chr(3)) {
              n72=      var %lia $+(%lia, $chr(3)), %lib $+(%lib, $chr(3)), %lic $+(%lic, $chr(3)), %lid $+(%lid, $chr(3)), %lie $+(%lie, $chr(3))
              n73=      if ($mid(%text, $calc(%i + 1), 1) != $chr(32)) && ($regex(mtcol, $mid(%text, $calc(%i + 1), $mid(%text, $calc(%i + 1), 0)), %colregex)) {
                n74=        var %m $regml(mtcol, 1)
                n75=        var %lia %lia $+ %m, %lib %lib $+ %m, %lic %lic $+ %m, %lid %lid $+ %m, %lie %lie $+ %m
                n76=        inc %i $len(%m)
              n77=      }
            n78=    }
            n79=    else { 
              n80=      tokenize 32 $bigtext.char($mid(%text, %i, 1))
              n81=      var %lia $+(%lia, $1), %lib $+(%lib, $2), %lic $+(%lic, $3), %lid $+(%lid, $4), %lie $+(%lie, $5)
              n82=      ; if ($bigtext.kern($mid(%text, %i, 2))) {
                n83=      var %lia $+(%lia, .), %lib $+(%lib, .), %lic $+(%lic, .), %lid $+(%lid, .), %lie $+(%lie, .)
              n84=      ; }
            n85=    }
            n86=    inc %i
          n87=  }
          n88=  say $bigtext.format(%lia)
          n89=  say $bigtext.format(%lib)
          n90=  say $bigtext.format(%lic)
          n91=  say $bigtext.format(%lid)
          n92=  say $bigtext.format(%lie)
          n93=}
          n94=
          n95=; You may customize this alias however you want to.
          n96=; It is Big Text's font, used above.
          n97=; The return value consists of dots and X's, to denote
          n98=;   unlit and lit points in the font, respectively;
          n99=;   there are 5 tokens of the same length, each
          n100=;   corresponding to a line in the 5-line output.
          n101=; Note how the . and X's look like the characters;
          n102=;   you can use this to your advantage!
          n103=alias -l bigtext.char {
            n104=  if ($1 === $chr(32)) || ($1 === $null) return $&
              n105=    ... $&
              n106=    ... $&
              n107=    ... $&
              n108=    ... $&
              n109=    ...
            n110=  if ($1 === $chr(160)) return $&
              n111=    ..... $&
              n112=    ..... $&
              n113=    ..... $&
              n114=    ..... $&
              n115=    .....
            n116=  elseif ($1 == 0) return $&
              n117=    .XXXX. $&
              n118=    XX..XX $&
              n119=    XX.XXX $&
              n120=    XXX.XX $&
              n121=    .XXXX.
            n122=  elseif ($1 == 1) return $&
              n123=    .XXXX $&
              n124=    XX.XX $&
              n125=    ...XX $&
              n126=    ...XX $&
              n127=    ...XX
            n128=  elseif ($1 == 2) return $&
              n129=    XXXXX. $&
              n130=    ....XX $&
              n131=    ..XX.. $&
              n132=    XX.... $&
              n133=    XXXXXX
            n134=  elseif ($1 == 3) return $&
              n135=    XXXXX. $&
              n136=    ....XX $&
              n137=    .XXXX. $&
              n138=    ....XX $&
              n139=    XXXXX.
            n140=  elseif ($1 == 4) return $&
              n141=    .....XXX. $&
              n142=    ...XX.XX. $&
              n143=    .XX...XX. $&
              n144=    XXXXXXXXX $&
              n145=    ......XX.
            n146=  elseif ($1 == 5) return $&
              n147=    XXXXX $&
              n148=    XX... $&
              n149=    XXXX. $&
              n150=    ...XX $&
              n151=    XXXX.
            n152=  elseif ($1 == 6) return $&
              n153=    .XXXX. $&
              n154=    XX.... $&
              n155=    XXXXX. $&
              n156=    XX..XX $&
              n157=    .XXXX.
            n158=  elseif ($1 == 7) return $&
              n159=    XXXXXX $&
              n160=    ...XX. $&
              n161=    ..XX.. $&
              n162=    .XX... $&
              n163=    XX....
            n164=  elseif ($1 == 8) return $&
              n165=    .XXXX. $&
              n166=    XX..XX $&
              n167=    .XXXX. $&
              n168=    XX..XX $&
              n169=    .XXXX.
            n170=  elseif ($1 == 9) return $&
              n171=    .XXXX. $&
              n172=    XX..XX $&
              n173=    .XXXXX $&
              n174=    ....XX $&
              n175=    .XXXX.
            n176=  elseif ($1 == A) return $&
              n177=    .XXXX. $&
              n178=    XX..XX $&
              n179=    XXXXXX $&
              n180=    XX..XX $&
              n181=    XX..XX
            n182=  elseif ($1 == B) return $&
              n183=    XXXXX. $&
              n184=    XX..XX $&
              n185=    XXXXX. $&
              n186=    XX..XX $&
              n187=    XXXXX.
            n188=  elseif ($1 == C) return $&
              n189=    .XXXX. $&
              n190=    XX..XX $&
              n191=    XX.... $&
              n192=    XX..XX $&
              n193=    .XXXX.
            n194=  elseif ($1 == D) return $&
              n195=    XXXX.. $&
              n196=    XX.XX. $&
              n197=    XX..XX $&
              n198=    XX..XX $&
              n199=    XXXXX.
            n200=  elseif ($1 == E) return $&
              n201=    XXXXX $&
              n202=    XX... $&
              n203=    XXXX. $&
              n204=    XX... $&
              n205=    XXXXX
            n206=  elseif ($1 == F) return $&
              n207=    XXXXX $&
              n208=    XX... $&
              n209=    XXXX. $&
              n210=    XX... $&
              n211=    XX...
            n212=  elseif ($1 == G) return $&
              n213=    .XXXX. $&
              n214=    XX.... $&
              n215=    XX.XXX $&
              n216=    XX..XX $&
              n217=    .XXXXX
            n218=  elseif ($1 == H) return $&
              n219=    XX...XX $&
              n220=    XX...XX $&
              n221=    XXXXXXX $&
              n222=    XX...XX $&
              n223=    XX...XX
            n224=  elseif ($1 == I) return $&
              n225=    XXXX $&
              n226=    .XX. $&
              n227=    .XX. $&
              n228=    .XX. $&
              n229=    XXXX
            n230=  elseif ($1 == J) return $&
              n231=    ....XX $&
              n232=    ....XX $&
              n233=    ....XX $&
              n234=    XX..XX $&
              n235=    .XXXX.
            n236=  elseif ($1 == K) return $&
              n237=    XX..XX $&
              n238=    XX.XX. $&
              n239=    XXXX.. $&
              n240=    XX.XX. $&
              n241=    XX..XX
            n242=  elseif ($1 == L) return $&
              n243=    XX... $&
              n244=    XX... $&
              n245=    XX... $&
              n246=    XX... $&
              n247=    XXXXX
            n248=  elseif ($1 == M) return $&
              n249=    XX....XX $&
              n250=    XXX..XXX $&
              n251=    XXXXXXXX $&
              n252=    XX.XX.XX $&
              n253=    XX....XX
            n254=  elseif ($1 == N) return $&
              n255=    XX..XX $&
              n256=    XXX.XX $&
              n257=    XXXXXX $&
              n258=    XX.XXX $&
              n259=    XX..XX
            n260=  elseif ($1 == O) return $&
              n261=    .XXXX. $&
              n262=    XX..XX $&
              n263=    XX..XX $&
              n264=    XX..XX $&
              n265=    .XXXX.
            n266=  elseif ($1 == P) return $&
              n267=    XXXXX. $&
              n268=    XX..XX $&
              n269=    XXXXX. $&
              n270=    XX.... $&
              n271=    XX....
            n272=  elseif ($1 == Q) return $&
              n273=    .XXXX.. $&
              n274=    XX..XX. $&
              n275=    XX..XX. $&
              n276=    XX..XX. $&
              n277=    .XXXXXX
            n278=  elseif ($1 == R) return $&
              n279=    XXXXX. $&
              n280=    XX..XX $&
              n281=    XXXXX. $&
              n282=    XX..XX $&
              n283=    XX..XX
            n284=  elseif ($1 == S) return $&
              n285=    .XXXX. $&
              n286=    XX.... $&
              n287=    .XXXX. $&
              n288=    ....XX $&
              n289=    XXXXX.
            n290=  elseif ($1 == T) return $&
              n291=    XXXXXX $&
              n292=    ..XX.. $&
              n293=    ..XX.. $&
              n294=    ..XX.. $&
              n295=    ..XX..
            n296=  elseif ($1 == U) return $&
              n297=    XX..XX $&
              n298=    XX..XX $&
              n299=    XX..XX $&
              n300=    XX..XX $&
              n301=    .XXXX.
            n302=  elseif ($1 == V) return $&
              n303=    XX....XX $&
              n304=    XX....XX $&
              n305=    .XX..XX. $&
              n306=    ..XXXX.. $&
              n307=    ...XX...
            n308=  elseif ($1 == W) return $&
              n309=    XX...XX $&
              n310=    XX...XX $&
              n311=    XX.X.XX $&
              n312=    XXXXXXX $&
              n313=    .XX.XX.
            n314=  elseif ($1 == X) return $&
              n315=    XX...XX $&
              n316=    .XX.XX. $&
              n317=    ..XXX.. $&
              n318=    .XX.XX. $&
              n319=    XX...XX
            n320=  elseif ($1 == Y) return $&
              n321=    XX..XX $&
              n322=    XX..XX $&
              n323=    .XXXX. $&
              n324=    ..XX.. $&
              n325=    ..XX..
            n326=  elseif ($1 == Z) return $&
              n327=    XXXXXX $&
              n328=    ...XX. $&
              n329=    ..XX.. $&
              n330=    .XX... $&
              n331=    XXXXXX
            n332=  elseif ($1 == $chr(35)) return $&
              n333=    .XX..XX. $&
              n334=    XXXXXXXX $&
              n335=    .XX..XX. $&
              n336=    XXXXXXXX $&
              n337=    .XX..XX.
            n338=  elseif ($1 == ') return $&
              n339=    .XX $&
              n340=    XX. $&
              n341=    ... $&
              n342=    ... $&
              n343=    ...
            n344=  elseif ($1 == ") return $&
              n345=    XX..XX $&
              n346=    XX..XX $&
              n347=    ...... $&
              n348=    ...... $&
              n349=    ......
            n350=  elseif ($1 == +) return $&
              n351=    ...... $&
              n352=    ..XX.. $&
              n353=    XXXXXX $&
              n354=    ..XX.. $&
              n355=    ......
            n356=  elseif ($1 == =) return $&
              n357=    ...... $&
              n358=    XXXXXX $&
              n359=    ...... $&
              n360=    XXXXXX $&
              n361=    ......
            n362=  elseif ($1 == -) return $&
              n363=    ...... $&
              n364=    ...... $&
              n365=    XXXXXX $&
              n366=    ...... $&
              n367=    ......
            n368=  elseif ($1 == _) return $&
              n369=    ...... $&
              n370=    ...... $&
              n371=    ...... $&
              n372=    ...... $&
              n373=    XXXXXX
            n374=  elseif ($1 == ?) return $&
              n375=    XXXXXX $&
              n376=    ...... $&
              n377=    ...... $&
              n378=    ...... $&
              n379=    ......
            n380=  elseif ($1 == ?) return $&
              n381=    .XXX. $&
              n382=    XX.XX $&
              n383=    .XXX. $&
              n384=    ..... $&
              n385=    .....
            n386=  elseif ($1 == :) return $&
              n387=    .. $&
              n388=    XX $&
              n389=    .. $&
              n390=    XX $&
              n391=    ..
            n392=  elseif ($1 == !) return $&
              n393=    XX $&
              n394=    XX $&
              n395=    XX $&
              n396=    .. $&
              n397=    XX
            n398=  elseif ($1 == ?) return $&
              n399=    XXX. $&
              n400=    ..XX $&
              n401=    .XX. $&
              n402=    .... $&
              n403=    .XX.
            n404=  elseif ($1 == .) return $&
              n405=    .. $&
              n406=    .. $&
              n407=    .. $&
              n408=    .. $&
              n409=    XX
            n410=  elseif ($1 == /) return $&
              n411=    ....XX $&
              n412=    ...XX. $&
              n413=    ..XX.. $&
              n414=    .XX... $&
              n415=    XX....
            n416=  elseif ($1 == \) return $&
              n417=    XX.... $&
              n418=    .XX... $&
              n419=    ..XX.. $&
              n420=    ...XX. $&
              n421=    ....XX
            n422=  elseif ($1 == $chr(40)) return $&
              n423=    ...XX $&
              n424=    .XX.. $&
              n425=    XX... $&
              n426=    .XX.. $&
              n427=    ...XX
            n428=  elseif ($1 == $chr(41)) return $&
              n429=    XX... $&
              n430=    ..XX. $&
              n431=    ...XX $&
              n432=    ..XX. $&
              n433=    XX...
            n434=  elseif ($1 == $chr(37)) return $&
              n435=    XX..XX $&
              n436=    ...XX. $&
              n437=    ..XX.. $&
              n438=    .XX... $&
              n439=    XX..XX
            n440=  elseif ($1 == [) return $&
              n441=    XXXXX $&
              n442=    XX... $&
              n443=    XX... $&
              n444=    XX... $&
              n445=    XXXXX
            n446=  elseif ($1 == ]) return $&
              n447=    XXXXX $&
              n448=    ...XX $&
              n449=    ...XX $&
              n450=    ...XX $&
              n451=    XXXXX
            n452=  elseif ($1 == |) return $&
              n453=    .XX. $&
              n454=    .XX. $&
              n455=    .XX. $&
              n456=    .XX. $&
              n457=    .XX.
            n458=  elseif ($1 == <) return $&
              n459=    ....XX $&
              n460=    ..XX.. $&
              n461=    XX.... $&
              n462=    ..XX.. $&
              n463=    ....XX
            n464=  elseif ($1 == >) return $&
              n465=    XX.... $&
              n466=    ..XX.. $&
              n467=    ....XX $&
              n468=    ..XX.. $&
              n469=    XX....
            n470=  elseif ($1 == ?) return $&
              n471=    XXXX $&
              n472=    ..XX.$&
              n473=    .XX..$&
              n474=    .....$&
              n475=    ..XX.
            n476=  elseif ($1 == ,) return $&
              n477=    ... $&
              n478=    ... $&
              n479=    XXX $&
              n480=    .XX $&
              n481=    XX. 
            n482=}
            n483=
            n484=
            n485=; Returns all unsupported characters within a Big Text message
            n486=; Supported characters are a-z, space, digits, #'"+=?:!?./\()%-[]<>|?,
            n487=alias bigtext.unsupp {
              n488=  var %res, %dummy = $regsub($1-, /[]a-z  0-9# $+ $chr(44) $+ '+=?:!?./\\()%[|<>_?"?-]/igS, $null, %res)
              n489=  return %res
              n490=}
              n491=
              n492=; Returns $true if a space should be added between two characters,
              n493=;   or $false if not.
              n494=; Note: This is here only for aesthetic purposes. :)
              n495=alias bigtext.kern {
                n496=  var %res $true
                n497=  if ($regex($1-, /^(.|[_GDSQL-]T|[TPFVY7/"]J|T\.|L[1Y\\"]|[LTK<[]-|-[]>%\\]|S1|T4|\?\.|\.\?|[467L\\]?|?[J/]|L'|\/\/|\\\\|?J|[_?]?|[?T_]_|>\.|\.<)$/i)) %res = $false
                n498=  return %res
                n499=}
                n500=
                n501=; Takes an input string of the form:
                n502=; .XX..XX....XX.XX.XXXXX
                n503=; And formats it for display.
                n504=alias bigtext.format {
                  n505=  var %res, %i 1, %previous 0, %current, %curcolor, %colregex /^(\d\d?(?:,\d\d?)?)/
                  n506=  while (%i <= $len($1-)) {
                    n507=    if ($mid($1-, %i, 1) == $chr(3)) {
                      n508=      if ($regex(mtcol, $mid($1-, $calc(%i + 1), $mid($1-, $calc(%i + 1), 0)), %colregex)) {
                        n509=        if ($gettok($regml(mtcol, 1), 1, 44) != %curcolor) {
                          n510=          %curcolor = $gettok($regml(mtcol, 1), 1, 44)
                          n511=          if (%i != 1) && ($mid($1-, $calc(%i - 1), 1) == X) %res = %res $+ $chr(15)
                        n512=        }
                        n513=        inc %i $len($regml(mtcol, 1))
                      n514=      }
                      n515=      elseif (%curcolor) {
                        n516=        %curcolor =
                        n517=        if (%i != 1) && ($mid($1-, $calc(%i - 1), 1) == X) %res = %res $+ $chr(15)
                      n518=      }
                    n519=    }
                    n520=    else {
                      n521=      %current = $iif($mid($1-, %i, 1) == ., 0, 1)
                      n522=      if (%previous != %current) {
                        n523=        %previous = %current
                        n524=        if (%curcolor) {
                          n525=          if (%current) %res = %res $+ $chr(3) $+ %curcolor $+ , $+ %curcolor
                          n526=          else %res = %res $+ $chr(3)
                        n527=        }
                        n528=        else %res = %res $+ $chr(22)
                      n529=      }
                      n530=      %res = %res $+ $chr(160)
                    n531=    }
                    n532=    inc %i
                  n533=  }
                  n534=  return %res
                  n535=}
                  n536=
                  n537=alias mtrainbow //mt $rainbow( $+ $1- $+ )