 @XXX_escape_escape_chrs = ( text ) ->
   R = text
   R = R.replace /\x10/g, '\x10A'
-  R = R.replace /\x11/g, '\x10R'
-  R = R.replace /\x12/g, '\x10C'
-  R = R.replace /\x13/g, '\x10Z'
-  R = R.replace /\x14/g, '\x10H'
-  #.........................................................................................................
   R = R.replace /\x15/g, '\x10X'
   return R
 

@XXX_unescape_escape_chrs = ( text ) ->
  R = text
  R = R.replace /\x10X/g, '\x15'
  #.........................................................................................................
  R = R.replace /\x10H/g, '\x14'
  R = R.replace /\x10Z/g, '\x13'
  R = R.replace /\x10R/g, '\x11'
  R = R.replace /\x10C/g, '\x12'
  R = R.replace /\x10A/g, '\x10'
  return R


# CHR ESCAPING
#-----------------------------------------------------------------------------------------------------------
### TAINT don't keep state here ###
@XXX_registry              = []
@XXX_registry_index        = new Map()

#-----------------------------------------------------------------------------------------------------------
### Code duplication ###
@XXX_html_comment_pattern = ///
  (?: ( ^ | [^\\] ) <!--                      --> ) |
  (?: ( ^ | [^\\] ) <!-- ( [ \s\S ]*? [^\\] ) --> )
  ///g

#-----------------------------------------------------------------------------------------------------------
### Code duplication ###
@XXX_do_bracketed_pattern = ///
  (?: ( ^ | [^\\] ) <<\{ do >>                      << do \}>> ) |
  (?: ( ^ | [^\\] ) <<\{ do >> ( [ \s\S ]*? [^\\] ) << do \}>> )
  ///g

#-----------------------------------------------------------------------------------------------------------
### Code duplication ###
@XXX_raw_bracketed_pattern = ///
  (?: ( ^ | [^\\] ) <<\( raw >>                      << raw \)>> ) |
  (?: ( ^ | [^\\] ) <<\( raw >> ( [ \s\S ]*? [^\\] ) << raw \)>> )
