code:
#! /bin/false

# vim: set autoindent shiftwidth=4 tabstop=4:
# $Id: Recode.pm,v 1.1 2011-10-12 23:51:26 pertusus Exp $

# Portable character conversion for Perl.
# Copyright (C) 2002-2009 Guido Flohr <guido@imperia.net>,
# all rights reserved.

# This program is free software; you can redistribute it and/or modify it
# under the terms of the GNU Library General Public License as published
# by the Free Software Foundation; either version 2, or (at your option)
# any later version.

# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
# Library General Public License for more details.

# You should have received a copy of the GNU Library General Public
# License along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
# USA.

package Locale::Recode;

use strict;

require Locale::Recode::_Conversions;

my $loaded = {};
my $has_encode;

sub new
{
    my $class = ref($_[0]) || $_[0];
    shift;
    my %args = @_;

    my $self = bless {}, $class;

    my ($from_codeset, $to_codeset) = @args{qw (from to)};

    unless ($from_codeset && $to_codeset) {
		require Carp;
        Carp::croak (<<EOF);
	Usage: $class->new (from => FROM_CODESET, to => TO_CODESET);
EOF
    }

    # Find a conversion path.
	my $path = Locale::Recode::_Conversions->findPath ($from_codeset,
													   $to_codeset);
	unless ($path) {
		$self->{__error} = 'EINVAL';
		return $self;
	}

	my @conversions = ();
	foreach (@$path) {
		my ($module, $from, $to) = @$_;

		unless ($loaded->{$module}) {
			eval "require Locale::RecodeData::$module";
			if ($@) {
				$self->{__error} = $@;
				return $self;
			}

			$loaded->{$module} = 1;
		}

		my $module_name = "Locale::RecodeData::$module";
		my $method = 'new';
		my $object = $module_name->$method (from => $from,
											to => $to);

		push @conversions, $object;
	}

	$self->{__conversions} = \@conversions;

    return $self;
}

sub resolveAlias
{
	my ($class, $alias) = @_;

	return Locale::Recode::_Conversions->resolveAlias ($alias);
}

sub getSupported
{
	return [ Locale::Recode::_Conversions->listSupported ];
}

sub getCharsets
{
	my $self = shift;
	my %all = map { $_ => 1 } @{&getSupported};

	require Locale::Recode::_Aliases;

	my $conversions = Locale::Recode::_Conversions->listSupported;
	foreach my $charset (keys %{Locale::Recode::_Aliases::ALIASES()}) {
		my $mime_name = $self->resolveAlias ($charset);
		next unless exists $all{$mime_name};
		$all{$charset} = 1;
	}

	return [ keys %all ];
}

sub recode
{
    my $self = $_[0];

    return if $self->{__error};

    return 1 unless defined $_[1];

    my $chain = $self->{__conversions};

    foreach my $module (@$chain) {
		my $success = $module->_recode ($_[1]);

		unless ($success) {
			$self->{__error} = $module->_getError;
			return;
		}
    }

    return 1;
}

sub getError
{
    my $self = shift;
    my $error = $self->{__error} or return;

    if ('EINVAL' eq $error) {
		return 'Invalid conversion';
    } else {
		return $error;
    }
}

1;

__END__

=head1 NAME

Locale::Recode - Object-Oriented Portable Charset Conversion

=head1 SYNOPSIS

  use Locale::Recode;

  $cd = Locale::Recode->new (from => 'UTF-8',
                             to   => 'ISO-8859-1');

  die $cd->getError if $cd->getError;

  $cd->recode ($text) or die $cd->getError;

  $mime_name = Locale::Recode->resolveAlias ('latin-1');

  $supported = Locale::Recode->getSupported;

  $complete = Locale::Recode->getCharsets;

=head1 DESCRIPTION

This module provides routines that convert textual data from one
codeset to another in a portable way.  The module has been started
before Encode(3) was written.  It's main purpose today is to provide
charset conversion even when Encode(3) is not available on the system.
It should also work for older Perl versions without Unicode support.

Internally Locale::Recode(3) will use Encode(3) whenever possible,
to allow for a faster conversion and for a wider range of supported
charsets, and will only fall back to the Perl implementation when
Encode(3) is not available or does not support a particular charset
that Locale::Recode(3) does.

Locale::Recode(3) is part of libintl-perl, and it's main purpose is
actually to implement a portable charset conversion framework for
the message translation facilities described in Locale::TextDomain(3).

=head1 CONSTRUCTOR

The constructor C<new()> requires two named arguments:

=over 4

=item B<from>

The encoding of the original data.  Case doesn't matter, aliases
are resolved.

=item B<to>

The target encoding.  Again, case doesn't matter, and aliases
are resolved.

=back

The constructor will never fail.  In case of an error, the object's
internal state is set to bad and it will refuse to do any conversions.
You can inquire the reason for the failure with the method
getError().

=head1 OBJECT METHODS

The following object methods are available.

=over 4

=item B<recode (STRING)>

Converts B<STRING> from the source encoding into the destination
encoding.  In case of success, a truth value is returned, false
otherwise.  You can inquire the reason for the failure with the
method getError().

=item B<getError>

Returns either false if the object is not in an error state or
an error message.

=back

=head1 CLASS METHODS

The object provides some additional class methods:

=over 4

=item B<getSupported>

Returns a reference to a list of all supported charsets.  This
may implicitely load additional Encode(3) conversions like
Encode::HanExtra(3) which may produce considerable load on your
system.

The method is therefore not intended for regular use but rather
for getting resp. displaying I<once> a list of available encodings.

The members of the list are all converted to uppercase!

=item B<getCharsets>

Like getSupported() but also returns all available aliases.

=back

=head1 SUPPORTED CHARSETS

The range of supported charsets is system-dependent.  The following
somewhat special charsets are always available:

=over 4

=item B<UTF-8>

UTF-8 is available independently of your Perl version.  For Perl 5.6
or better or in the presence of Encode(3), conversions are not done
in Perl but with the interfaces provided by these facilities which
are written in C, hence much faster.

Encoding data I<into> UTF-8 is fast, even if it is done in Perl.
Decoding it in Perl may become quite slow.  If you frequently have
to decode UTF-8 with B<Locale::Recode> you will probably want to
make sure that you do that with Perl 5.6 or beter, or install Encode(3) to
speed up things.

=item B<INTERNAL>

UTF-8 is fast to write but hard to read for applications.  It is
therefore not the worst for internal string representation but not
far from that.  Locale::Recode(3) stores strings internally as a
reference to an array of integer values like most programming languages
(Perl is an exception) do, trading memory for performance.

The integer values are the UCS-4 codes of the characters in host
byte order.

The encoding B<INTERNAL> is directly availabe via Locale::Recode(3)
but of course you should not really use it for data exchange, unless
you know what you are doing.

=back

Locale::Recode(3) has native support for a plethora of other encodings,
most of them 8 bit encodings that are fast to decode, including most
encodings used on popular micros like the ISO-8859-* series of encodings,
most Windows-* encodings (also known as CP*), Macintosh, Atari, etc.

=head1 NAMES AND ALIASES

Each charset resp. encoding is available internally under a unique
name.  Whenever the information was available, the preferred MIME name
(see L<http://www.iana.org/assignments/character-sets/>) was chosen as
the internal name.

Alias handling is quite strict.  The module does not make wild guesses
at what you mean ("What's the meaning of the acronym JIS" is a valid
alias for "7bit-jis" in Encode(3) ....) but aims at providing common
aliases only.  The same applies to so-called aliases that are really
mistakes, like "utf8" for UTF-8.

The module knows all aliases that are listed with the IANA character
set registry (L<http://www.iana.org/assignments/character-sets/>), plus
those known to libiconv version 1.8, and a bunch of additional ones.

=head1 CONVERSION TABLES

The conversion tables have either been taken from official sources
like the IANA or the Unicode Consortium, from Bruno Haible's libiconv,
or from the sources of the GNU libc and the regression tests for
libintl-perl will check for conformance here.  For some encodings this data
differs from Encode(3)'s data which would cause these tests to fail.
In these cases, the module will not invoke the Encode(3) methods, but
will fall back to the internal implementation for the sake of
consistency.

The few encodings that are affected are so simple that you will not
experience any real performance penalty unless you convert large chunks
of data.  But the package is not really intended for such use anyway, and
since Encode(3) is relatively new, I rather think that the differences
are bugs in Encode which will be fixed soon.

=head1 BUGS

The module should provide fall back conversions for other Unicode
encoding schemes like UCS-2, UCS-4 (big- and little-endian).

The pure Perl UTF-8 decoder will not always handle corrupt UTF-8
correctly, especially at the end and at the beginning of the string.
This is not likely to be fixed, since the module's intention is not
to be a consistency checker for UTF-8 data.

=head1 AUTHOR

Copyright (C) 2002-2009, Guido Flohr E<lt>guido@imperia.netE<gt>, all
rights reserved.  See the source code for details.

This software is contributed to the Perl community by Imperia
(L<http://www.imperia.net/>).

=head1 SEE ALSO

Encode(3), iconv(3), iconv(1), recode(1), perl(1)

=cut
Local Variables:
mode: perl
perl-indent-level: 4
perl-continued-statement-offset: 4
perl-continued-brace-offset: 0
perl-brace-offset: -4
perl-brace-imaginary-offset: 0
perl-label-offset: -4
cperl-indent-level: 4
cperl-continued-statement-offset: 2
tab-width: 4
End:
=cut


code:
#! /bin/false

# vim: set autoindent shiftwidth=4 tabstop=4:
# $Id: _Aliases.pm,v 1.1 2011-10-12 23:51:27 pertusus Exp $

# Internally known aliases for charsets.
# Copyright (C) 2002-2009 Guido Flohr <guido@imperia.net>,
# all rights reserved.

# This program is free software; you can redistribute it and/or modify it
# under the terms of the GNU Library General Public License as published
# by the Free Software Foundation; either version 2, or (at your option)
# any later version.

# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
# Library General Public License for more details.

# You should have received a copy of the GNU Library General Public
# License along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
# USA.

package Locale::Recode::_Aliases;

use constant ALIASES => {
	'1047' => 'IBM1047',
    '437' => 'IBM437',
    '850' => 'IBM850',
    '851' => 'IBM851',
    '852' => 'IBM852',
    '855' => 'IBM855',
    '857' => 'IBM857',
    '860' => 'IBM860',
    '861' => 'IBM861',
    '862' => 'IBM862',
    '863' => 'IBM863',
    '865' => 'IBM865',
    '866' => 'IBM866',
    '869' => 'IBM869',
    '904' => 'IBM904',
    'ANSI_X3.4-1968' => 'US-ASCII',
    'ANSI_X3.4-1986' => 'US-ASCII',
    'ARABIC' => 'ISO-8859-6',
    'ARABIC7' => 'ASMO_449',
    'ASCII' => 'US-ASCII',
    'ASMO-708' => 'ISO-8859-6',
	'ATARIST' => 'ATARI-ST',
	'ATARIST-EURO' => 'ATARI-ST-EURO',
	'BIG-5' => 'BIG5',
	'BIG-FIVE' => 'BIG5',
	'BIG5-ETEN' => 'BIG5',
	'BIG5HKSCS' => 'BIG5-HKSCS',
	'BIGFIVE' => 'BIG5',
    'CA' => 'CSA_Z243.4-1985-1',
    'CCSID00924' => 'IBM00924',
    'CCSID01140' => 'IBM01140',
    'CCSID01141' => 'IBM01141',
    'CCSID01142' => 'IBM01142',
    'CCSID01143' => 'IBM01143',
    'CCSID01144' => 'IBM01144',
    'CCSID01145' => 'IBM01145',
    'CCSID01146' => 'IBM01146',
    'CCSID01147' => 'IBM01147',
    'CCSID01148' => 'IBM01148',
    'CCSID01149' => 'IBM01149',
    'CHINESE' => 'GB_2312-80',
    'CN' => 'GB_1988-80',
	'CN-BIG5' => 'BIG5',
    'CP-AR' => 'IBM868',
    'CP-GR' => 'IBM869',
	'CP-HU' => 'CWI',
    'CP-IS' => 'IBM861',
    'CP00924' => 'IBM00924',
    'CP01140' => 'IBM01140',
    'CP01141' => 'IBM01141',
    'CP01142' => 'IBM01142',
    'CP01143' => 'IBM01143',
    'CP01144' => 'IBM01144',
    'CP01145' => 'IBM01145',
    'CP01146' => 'IBM01146',
    'CP01147' => 'IBM01147',
    'CP01148' => 'IBM01148',
    'CP01149' => 'IBM01149',
    'CP037' => 'IBM037',
    'CP038' => 'IBM038',
	'CP1004' => 'IBM1004',
    'CP1026' => 'IBM1026',
	'CP1047' => 'IBM1047',
	'CP1250' => 'WINDOWS-1250',
	'CP1251' => 'WINDOWS-1251',
	'CP1252' => 'WINDOWS-1252',
	'CP1253' => 'WINDOWS-1253',
	'CP1254' => 'WINDOWS-1254',
	'CP1255' => 'WINDOWS-1255',
	'CP1256' => 'WINDOWS-1256',
	'CP1257' => 'WINDOWS-1257',
	'CP1258' => 'WINDOWS-1258',
    'CP154' => 'PTCP154',
    'CP273' => 'IBM273',
    'CP274' => 'IBM274',
    'CP275' => 'IBM275',
    'CP278' => 'IBM278',
    'CP280' => 'IBM280',
    'CP281' => 'IBM281',
    'CP284' => 'IBM284',
    'CP285' => 'IBM285',
    'CP290' => 'IBM290',
    'CP297' => 'IBM297',
    'CP367' => 'US-ASCII',
    'CP420' => 'IBM420',
    'CP423' => 'IBM423',
    'CP424' => 'IBM424',
    'CP437' => 'IBM437',
    'CP500' => 'IBM500',
    'CP775' => 'IBM775',
    'CP819' => 'ISO-8859-1',
    'CP850' => 'IBM850',
    'CP851' => 'IBM851',
    'CP852' => 'IBM852',
    'CP855' => 'IBM855',
    'CP857' => 'IBM857',
    'CP860' => 'IBM860',
    'CP861' => 'IBM861',
    'CP862' => 'IBM862',
    'CP863' => 'IBM863',
    'CP864' => 'IBM864',
    'CP865' => 'IBM865',
    'CP866' => 'IBM866',
    'CP868' => 'IBM868',
    'CP869' => 'IBM869',
    'CP870' => 'IBM870',
    'CP871' => 'IBM871',
	'CP874' => 'IBM874',
	'CP875' => 'IBM875',
    'CP880' => 'IBM880',
    'CP891' => 'IBM891',
    'CP903' => 'IBM903',
    'CP904' => 'IBM904',
    'CP905' => 'IBM905',
    'CP918' => 'IBM918',
    'CP936' => 'GBK',
    'CSA7-1' => 'CSA_Z243.4-1985-1',
    'CSA7-2' => 'CSA_Z243.4-1985-2',
    'CSADOBESTANDARDENCODING' => 'ADOBE-STANDARD-ENCODING',
    'CSASCII' => 'US-ASCII',
    'CSA_T500-1983' => 'ANSI_X3.110-1983',
    'CSBIG5' => 'BIG5',
    'CSBOCU-1' => 'BOCU-1',
    'CSCESU-8' => 'CESU-8',
    'CSDECMCS' => 'DEC-MCS',
    'CSDKUS' => 'DK-US',
    'CSEBCDICATDEA' => 'EBCDIC-AT-DE-A',
    'CSEBCDICCAFR' => 'EBCDIC-CA-FR',
    'CSEBCDICDKNO' => 'EBCDIC-DK-NO',
    'CSEBCDICDKNOA' => 'EBCDIC-DK-NO-A',
    'CSEBCDICES' => 'EBCDIC-ES',
    'CSEBCDICESA' => 'EBCDIC-ES-A',
    'CSEBCDICESS' => 'EBCDIC-ES-S',
    'CSEBCDICFISE' => 'EBCDIC-FI-SE',
    'CSEBCDICFISEA' => 'EBCDIC-FI-SE-A',
    'CSEBCDICFR' => 'EBCDIC-FR',
    'CSEBCDICIT' => 'EBCDIC-IT',
    'CSEBCDICPT' => 'EBCDIC-PT',
    'CSEBCDICUK' => 'EBCDIC-UK',
    'CSEBCDICUS' => 'EBCDIC-US',
    'CSEUCFIXWIDJAPANESE' => 'EXTENDED_UNIX_CODE_FIXED_WIDTH_FOR_JAPANESE',
    'CSEUCKR' => 'EUC-KR',
    'CSEUCPKDFMTJAPANESE' => 'EUC-JP',
    'CSEUCTW' => 'EUC-TW',
    'CSGB2312' => 'GB2312',
    'CSHALFWIDTHKATAKANA' => 'JIS_X0201',
    'CSHPDESKTOP' => 'HP-DESKTOP',
    'CSHPLEGAL' => 'HP-LEGAL',
    'CSHPMATH8' => 'HP-MATH8',
    'CSHPPIFONT' => 'HP-PI-FONT',
    'CSHPPSMATH' => 'ADOBE-SYMBOL-ENCODING',
    'CSHPROMAN8' => 'HP-ROMAN8',
    'CSIBBM904' => 'IBM904',
    'CSIBM037' => 'IBM037',
    'CSIBM038' => 'IBM038',
    'CSIBM1026' => 'IBM1026',
    'CSIBM273' => 'IBM273',
    'CSIBM274' => 'IBM274',
    'CSIBM275' => 'IBM275',
    'CSIBM277' => 'IBM277',
    'CSIBM278' => 'IBM278',
    'CSIBM280' => 'IBM280',
    'CSIBM281' => 'IBM281',
    'CSIBM284' => 'IBM284',
    'CSIBM285' => 'IBM285',
    'CSIBM290' => 'IBM290',
    'CSIBM297' => 'IBM297',
    'CSIBM420' => 'IBM420',
    'CSIBM423' => 'IBM423',
    'CSIBM424' => 'IBM424',
    'CSIBM500' => 'IBM500',
    'CSIBM851' => 'IBM851',
    'CSIBM855' => 'IBM855',
    'CSIBM857' => 'IBM857',
    'CSIBM860' => 'IBM860',
    'CSIBM861' => 'IBM861',
    'CSIBM863' => 'IBM863',
    'CSIBM864' => 'IBM864',
    'CSIBM865' => 'IBM865',
    'CSIBM866' => 'IBM866',
    'CSIBM868' => 'IBM868',
    'CSIBM869' => 'IBM869',
    'CSIBM870' => 'IBM870',
    'CSIBM871' => 'IBM871',
    'CSIBM880' => 'IBM880',
    'CSIBM891' => 'IBM891',
    'CSIBM903' => 'IBM903',
    'CSIBM905' => 'IBM905',
    'CSIBM918' => 'IBM918',
    'CSIBMEBCDICATDE' => 'EBCDIC-AT-DE',
    'CSIBMSYMBOLS' => 'IBM-SYMBOLS',
    'CSIBMTHAI' => 'IBM-THAI',
    'CSINVARIANT' => 'INVARIANT',
    'CSISO102T617BIT' => 'T.61-7BIT',
    'CSISO10367BOX' => 'ISO_10367-BOX',
    'CSISO10646UTF1' => 'ISO-10646-UTF-1',
    'CSISO10SWEDISH' => 'SEN_850200_B',
    'CSISO111ECMACYRILLIC' => 'ECMA-CYRILLIC',
    'CSISO11SWEDISHFORNAMES' => 'SEN_850200_C',
    'CSISO121CANADIAN1' => 'CSA_Z243.4-1985-1',
    'CSISO122CANADIAN2' => 'CSA_Z243.4-1985-2',
    'CSISO123CSAZ24341985GR' => 'CSA_Z243.4-1985-GR',
    'CSISO128T101G2' => 'T.101-G2',
    'CSISO139CSN369103' => 'CSN_369103',
    'CSISO13JISC6220JP' => 'JIS_C6220-1969-JP',
    'CSISO141JUSIB1002' => 'JUS_I.B1.002',
    'CSISO143IECP271' => 'IEC_P27-1',
    'CSISO146SERBIAN' => 'JUS_I.B1.003-SERB',
    'CSISO147MACEDONIAN' => 'JUS_I.B1.003-MAC',
    'CSISO14JISC6220RO' => 'JIS_C6220-1969-RO',
    'CSISO150' => 'GREEK-CCITT',
    'CSISO150GREEKCCITT' => 'GREEK-CCITT',
    'CSISO151CUBA' => 'NC_NC00-10:81',
    'CSISO153GOST1976874' => 'GOST_19768-74',
    'CSISO158LAP' => 'LATIN-LAP',
    'CSISO159JISX02121990' => 'JIS_X0212-1990',
    'CSISO15ITALIAN' => 'IT',
    'CSISO16PORTUGUESE' => 'PT',
    'CSISO17SPANISH' => 'ES',
    'CSISO18GREEK7OLD' => 'GREEK7-OLD',
    'CSISO19LATINGREEK' => 'LATIN-GREEK',
    'CSISO2022JP' => 'ISO-2022-JP',
    'CSISO2022JP2' => 'ISO-2022-JP-2',
    'CSISO2022KR' => 'ISO-2022-KR',
    'CSISO2033' => 'ISO_2033-1983',
    'CSISO21GERMAN' => 'DIN_66003',
    'CSISO25FRENCH' => 'NF_Z_62-010_(1973)',
    'CSISO27LATINGREEK1' => 'LATIN-GREEK-1',
    'CSISO2INTLREFVERSION' => 'ISO_646.IRV:1983',
    'CSISO42JISC62261978' => 'JIS_C6226-1978',
    'CSISO47BSVIEWDATA' => 'BS_VIEWDATA',
    'CSISO49INIS' => 'INIS',
    'CSISO4UNITEDKINGDOM' => 'BS_4730',
    'CSISO50INIS8' => 'INIS-8',
    'CSISO51INISCYRILLIC' => 'INIS-CYRILLIC',
    'CSISO5427CYRILLIC' => 'ISO_5427',
    'CSISO5428GREEK' => 'ISO_5428:1980',
    'CSISO57GB1988' => 'GB_1988-80',
    'CSISO58GB231280' => 'GB_2312-80',
    'CSISO60DANISHNORWEGIAN' => 'NS_4551-1',
    'CSISO60NORWEGIAN1' => 'NS_4551-1',
    'CSISO61NORWEGIAN2' => 'NS_4551-2',
    'CSISO646BASIC1983' => 'ISO_646.BASIC:1983',
    'CSISO646DANISH' => 'DS_2089',
    'CSISO6937ADD' => 'ISO_6937-2-25',
    'CSISO69FRENCH' => 'NF_Z_62-010',
    'CSISO70VIDEOTEXSUPP1' => 'VIDEOTEX-SUPPL',
    'CSISO84PORTUGUESE2' => 'PT2',
    'CSISO85SPANISH2' => 'ES2',
    'CSISO86HUNGARIAN' => 'MSZ_7795.3',
    'CSISO87JISX0208' => 'JIS_C6226-1983',
    'CSISO88596E' => 'ISO-8859-6-E',
    'CSISO88596I' => 'ISO-8859-6-I',
    'CSISO88598E' => 'ISO-8859-8-E',
    'CSISO88598I' => 'ISO-8859-8-I',
    'CSISO8859SUPP' => 'ISO_8859-SUPP',
    'CSISO88GREEK7' => 'GREEK7',
    'CSISO89ASMO449' => 'ASMO_449',
    'CSISO90' => 'ISO-IR-90',
    'CSISO91JISC62291984A' => 'JIS_C6229-1984-A',
    'CSISO92JISC62991984B' => 'JIS_C6229-1984-B',
    'CSISO93JIS62291984BADD' => 'JIS_C6229-1984-B-ADD',
    'CSISO94JIS62291984HAND' => 'JIS_C6229-1984-HAND',
    'CSISO95JIS62291984HANDADD' => 'JIS_C6229-1984-HAND-ADD',
    'CSISO96JISC62291984KANA' => 'JIS_C6229-1984-KANA',
    'CSISO99NAPLPS' => 'ANSI_X3.110-1983',
    'CSISOLATIN1' => 'ISO-8859-1',
    'CSISOLATIN2' => 'ISO-8859-2',
    'CSISOLATIN3' => 'ISO-8859-3',
    'CSISOLATIN4' => 'ISO-8859-4',
    'CSISOLATIN5' => 'ISO-8859-9',
    'CSISOLATIN6' => 'ISO-8859-10',
    'CSISOLATINARABIC' => 'ISO-8859-6',
    'CSISOLATINCYRILLIC' => 'ISO-8859-5',
    'CSISOLATINGREEK' => 'ISO-8859-7',
    'CSISOLATINHEBREW' => 'ISO-8859-8',
    'CSISOTEXTCOMM' => 'ISO_6937-2-ADD',
    'CSJISENCODING' => 'JIS_ENCODING',
    'CSKOI8R' => 'KOI8-R',
    'CSKSC56011987' => 'KS_C_5601-1987',
    'CSKSC5636' => 'KSC5636',
    'CSMACINTOSH' => 'MACINTOSH',
    'CSMICROSOFTPUBLISHING' => 'MICROSOFT-PUBLISHING',
    'CSMNEM' => 'MNEM',
    'CSMNEMONIC' => 'MNEMONIC',
    'CSNATSDANO' => 'NATS-DANO',
    'CSNATSDANOADD' => 'NATS-DANO-ADD',
    'CSNATSSEFI' => 'NATS-SEFI',
    'CSNATSSEFIADD' => 'NATS-SEFI-ADD',
    'CSPC775BALTIC' => 'IBM775',
    'CSPC850MULTILINGUAL' => 'IBM850',
    'CSPC862LATINHEBREW' => 'IBM862',
    'CSPC8CODEPAGE437' => 'IBM437',
    'CSPC8DANISHNORWEGIAN' => 'PC8-DANISH-NORWEGIAN',
    'CSPC8TURKISH' => 'PC8-TURKISH',
    'CSPCP852' => 'IBM852',
    'CSPTCP154' => 'PTCP154',
    'CSSHIFTJIS' => 'SHIFT_JIS',
    'CSUCS4' => 'ISO-10646-UCS-4',
    'CSUNICODE' => 'ISO-10646-UCS-2',
    'CSUNICODE11' => 'UNICODE-1-1',
    'CSUNICODE11UTF7' => 'UNICODE-1-1-UTF-7',
    'CSUNICODEASCII' => 'ISO-10646-UCS-BASIC',
    'CSUNICODEIBM1264' => 'ISO-UNICODE-IBM-1264',
    'CSUNICODEIBM1265' => 'ISO-UNICODE-IBM-1265',
    'CSUNICODEIBM1268' => 'ISO-UNICODE-IBM-1268',
    'CSUNICODEIBM1276' => 'ISO-UNICODE-IBM-1276',
    'CSUNICODELATIN1' => 'ISO-10646-UNICODE-LATIN1',
    'CSUNKNOWN8BIT' => 'UNKNOWN-8BIT',
    'CSUSDK' => 'US-DK',
    'CSVENTURAINTERNATIONAL' => 'VENTURA-INTERNATIONAL',
    'CSVENTURAMATH' => 'VENTURA-MATH',
    'CSVENTURAUS' => 'VENTURA-US',
    'CSVIQR' => 'VIQR',
    'CSVISCII' => 'VISCII',
    'CSWINDOWS30LATIN1' => 'ISO-8859-1-WINDOWS-3.0-LATIN-1',
    'CSWINDOWS31J' => 'WINDOWS-31J',
    'CSWINDOWS31LATIN1' => 'ISO-8859-1-WINDOWS-3.1-LATIN-1',
    'CSWINDOWS31LATIN2' => 'ISO-8859-2-WINDOWS-LATIN-2',
    'CSWINDOWS31LATIN5' => 'ISO-8859-9-WINDOWS-LATIN-5',
    'CUBA' => 'NC_NC00-10:81',
	'CWI-2' => 'CWI',
    'CYRILLIC' => 'ISO-8859-5',
    'CYRILLIC-ASIAN' => 'PTCP154',
    'DE' => 'DIN_66003',
    'DEC' => 'DEC-MCS',
    'DK' => 'DS_2089',
    'DS2089' => 'DS_2089',
    'E13B' => 'ISO_2033-1983',
    'EBCDIC-BE' => 'IBM274',
    'EBCDIC-BR' => 'IBM275',
    'EBCDIC-CP-AR1' => 'IBM420',
    'EBCDIC-CP-AR2' => 'IBM918',
    'EBCDIC-CP-BE' => 'IBM500',
    'EBCDIC-CP-CA' => 'IBM037',
    'EBCDIC-CP-CH' => 'IBM500',
    'EBCDIC-CP-DK' => 'IBM277',
    'EBCDIC-CP-ES' => 'IBM284',
    'EBCDIC-CP-FI' => 'IBM278',
    'EBCDIC-CP-FR' => 'IBM297',
    'EBCDIC-CP-GB' => 'IBM285',
    'EBCDIC-CP-GR' => 'IBM423',
    'EBCDIC-CP-HE' => 'IBM424',
    'EBCDIC-CP-IS' => 'IBM871',
    'EBCDIC-CP-IT' => 'IBM280',
    'EBCDIC-CP-NL' => 'IBM037',
    'EBCDIC-CP-NO' => 'IBM277',
    'EBCDIC-CP-ROECE' => 'IBM870',
    'EBCDIC-CP-SE' => 'IBM278',
    'EBCDIC-CP-TR' => 'IBM905',
    'EBCDIC-CP-US' => 'IBM037',
    'EBCDIC-CP-WT' => 'IBM037',
    'EBCDIC-CP-YU' => 'IBM870',
    'EBCDIC-CYRILLIC' => 'IBM880',
    'EBCDIC-DE-273+EURO' => 'IBM01141',
    'EBCDIC-DK-277+EURO' => 'IBM01142',
    'EBCDIC-ES-284+EURO' => 'IBM01145',
    'EBCDIC-FI-278+EURO' => 'IBM01143',
    'EBCDIC-FR-297+EURO' => 'IBM01147',
    'EBCDIC-GB-285+EURO' => 'IBM01146',
	'EBCDIC-GREEK' => 'IBM875',
    'EBCDIC-INT' => 'IBM038',
	'EBCDIC-INT1' => 'IBM256',
    'EBCDIC-INTERNATIONAL-500+EURO' => 'IBM01148',
    'EBCDIC-IS-871+EURO' => 'IBM01149',
    'EBCDIC-IT-280+EURO' => 'IBM01144',
    'EBCDIC-JP-E' => 'IBM281',
    'EBCDIC-JP-KANA' => 'IBM290',
    'EBCDIC-LATIN9--EURO' => 'IBM00924',
    'EBCDIC-NO-277+EURO' => 'IBM01142',
    'EBCDIC-SE-278+EURO' => 'IBM01143',
    'EBCDIC-US-37+EURO' => 'IBM01140',
    'ECMA-114' => 'ISO-8859-6',
    'ECMA-118' => 'ISO-8859-7',
    'ELOT_928' => 'ISO-8859-7',
	'EUC-CN' => 'CN-GB',
	'EUCCN' => 'CN-GB',
	'EUCJP' => 'EUC-JP',
	'EUCKR' => 'EUC-KR',
	'EUCTW' => 'EUC-TW',
    'EXTENDED_UNIX_CODE_PACKED_FORMAT_FOR_JAPANESE' => 'EUC-JP',
    'FI' => 'SEN_850200_B',
    'FR' => 'NF_Z_62-010',
	'FRISS' => 'EBCDIC-IS-FRISS',
    'GB' => 'BS_4730',
    'GB2312' => 'CN-GB',
	'GBK' => 'CP936',
    'GREEK' => 'ISO-8859-7',
    'GREEK8' => 'ISO-8859-7',
    'HEBREW' => 'ISO-8859-8',
    'HU' => 'MSZ_7795.3',
	'HZ-GB-2312' => 'HZ',
    'IBM367' => 'US-ASCII',
	'IBM775' => 'CP775',
    'IBM819' => 'ISO-8859-1',
    'IRV' => 'ISO_646.IRV:1983',
    'ISO-10646' => 'ISO-10646-UNICODE-LATIN1',
    'ISO-CELTIC' => 'ISO-8859-14',
    'ISO-IR-10' => 'SEN_850200_B',
    'ISO-IR-100' => 'ISO-8859-1',
    'ISO-IR-101' => 'ISO-8859-2',
    'ISO-IR-102' => 'T.61-7BIT',
    'ISO-IR-109' => 'ISO-8859-3',
    'ISO-IR-11' => 'SEN_850200_C',
    'ISO-IR-110' => 'ISO-8859-4',
    'ISO-IR-111' => 'ECMA-CYRILLIC',
    'ISO-IR-121' => 'CSA_Z243.4-1985-1',
    'ISO-IR-122' => 'CSA_Z243.4-1985-2',
    'ISO-IR-123' => 'CSA_Z243.4-1985-GR',
    'ISO-IR-126' => 'ISO-8859-7',
    'ISO-IR-127' => 'ISO-8859-6',
    'ISO-IR-128' => 'T.101-G2',
    'ISO-IR-13' => 'JIS_C6220-1969-JP',
    'ISO-IR-138' => 'ISO-8859-8',
    'ISO-IR-139' => 'CSN_369103',
    'ISO-IR-14' => 'JIS_C6220-1969-RO',
    'ISO-IR-141' => 'JUS_I.B1.002',
    'ISO-IR-142' => 'ISO_6937-2-ADD',
    'ISO-IR-143' => 'IEC_P27-1',
    'ISO-IR-144' => 'ISO-8859-5',
    'ISO-IR-146' => 'JUS_I.B1.003-SERB',
    'ISO-IR-147' => 'JUS_I.B1.003-MAC',
    'ISO-IR-148' => 'ISO-8859-9',
    'ISO-IR-149' => 'KS_C_5601-1987',
    'ISO-IR-15' => 'IT',
    'ISO-IR-150' => 'GREEK-CCITT',
    'ISO-IR-151' => 'NC_NC00-10:81',
    'ISO-IR-152' => 'ISO_6937-2-25',
    'ISO-IR-153' => 'GOST_19768-74',
    'ISO-IR-154' => 'ISO_8859-SUPP',
    'ISO-IR-155' => 'ISO_10367-BOX',
    'ISO-IR-157' => 'ISO-8859-10',
    'ISO-IR-158' => 'LATIN-LAP',
    'ISO-IR-159' => 'JIS_X0212-1990',
    'ISO-IR-16' => 'PT',
	'ISO-IR-166' => 'TIS-620',
    'ISO-IR-17' => 'ES',
	'ISO-IR-179' => 'ISO-8859-13',
    'ISO-IR-18' => 'GREEK7-OLD',
    'ISO-IR-19' => 'LATIN-GREEK',
    'ISO-IR-199' => 'ISO-8859-14',
    'ISO-IR-2' => 'ISO_646.IRV:1983',
    'ISO-IR-203' => 'ISO-8859-15',
    'ISO-IR-21' => 'DIN_66003',
    'ISO-IR-226' => 'ISO-8859-16',
    'ISO-IR-25' => 'NF_Z_62-010_(1973)',
    'ISO-IR-27' => 'LATIN-GREEK-1',
    'ISO-IR-37' => 'ISO_5427',
    'ISO-IR-4' => 'BS_4730',
    'ISO-IR-42' => 'JIS_C6226-1978',
    'ISO-IR-47' => 'BS_VIEWDATA',
    'ISO-IR-49' => 'INIS',
    'ISO-IR-50' => 'INIS-8',
    'ISO-IR-51' => 'INIS-CYRILLIC',
    'ISO-IR-54' => 'ISO_5427-EXT',
    'ISO-IR-55' => 'ISO_5428',
    'ISO-IR-57' => 'GB_1988-80',
    'ISO-IR-58' => 'GB_2312-80',
    'ISO-IR-6' => 'US-ASCII',
    'ISO-IR-60' => 'NS_4551-1',
    'ISO-IR-61' => 'NS_4551-2',
    'ISO-IR-69' => 'NF_Z_62-010',
    'ISO-IR-70' => 'VIDEOTEX-SUPPL',
    'ISO-IR-79' => 'ISO-8859-13',
    'ISO-IR-8-1' => 'NATS-SEFI',
    'ISO-IR-8-2' => 'NATS-SEFI-ADD',
    'ISO-IR-84' => 'PT2',
    'ISO-IR-85' => 'ES2',
    'ISO-IR-86' => 'MSZ_7795.3',
    'ISO-IR-87' => 'JIS_C6226-1983',
    'ISO-IR-88' => 'GREEK7',
    'ISO-IR-89' => 'ASMO_449',
    'ISO-IR-9-1' => 'NATS-DANO',
    'ISO-IR-9-2' => 'NATS-DANO-ADD',
    'ISO-IR-91' => 'JIS_C6229-1984-A',
    'ISO-IR-92' => 'JIS_C6229-1984-B',
    'ISO-IR-93' => 'JIS_C6229-1984-B-ADD',
    'ISO-IR-94' => 'JIS_C6229-1984-HAND',
    'ISO-IR-95' => 'JIS_C6229-1984-HAND-ADD',
    'ISO-IR-96' => 'JIS_C6229-1984-KANA',
    'ISO-IR-98' => 'ISO_2033-1983',
    'ISO-IR-99' => 'ANSI_X3.110-1983',
    'ISO5427CYRILLIC1981' => 'ISO_5427:1981',
    'ISO646-CA' => 'CSA_Z243.4-1985-1',
    'ISO646-CA2' => 'CSA_Z243.4-1985-2',
    'ISO646-CN' => 'GB_1988-80',
    'ISO646-CU' => 'NC_NC00-10:81',
    'ISO646-DE' => 'DIN_66003',
    'ISO646-DK' => 'DS_2089',
    'ISO646-ES' => 'ES',
    'ISO646-ES2' => 'ES2',
    'ISO646-FI' => 'SEN_850200_B',
    'ISO646-FR' => 'NF_Z_62-010',
    'ISO646-FR1' => 'NF_Z_62-010_(1973)',
    'ISO646-GB' => 'BS_4730',
    'ISO646-HU' => 'MSZ_7795.3',
    'ISO646-IT' => 'IT',
    'ISO646-JP' => 'JIS_C6220-1969-RO',
    'ISO646-JP-OCR-B' => 'JIS_C6229-1984-B',
    'ISO646-KR' => 'KSC5636',
    'ISO646-NO' => 'NS_4551-1',
    'ISO646-NO2' => 'NS_4551-2',
    'ISO646-PT' => 'PT',
    'ISO646-PT2' => 'PT2',
    'ISO646-SE' => 'SEN_850200_B',
    'ISO646-SE2' => 'SEN_850200_C',
    'ISO646-US' => 'US-ASCII',
    'ISO646-YU' => 'JUS_I.B1.002',
	'ISO_5427:1981' => 'ISO_5427-EXT',
    'ISO_5428:1980' => 'ISO_5428',
    'ISO_646.IRV:1991' => 'US-ASCII',
    'ISO_8859-1' => 'ISO-8859-1',
    'ISO_8859-1:1987' => 'ISO-8859-1',
    'ISO_8859-10' => 'ISO-8859-10',
    'ISO_8859-10:1992' => 'ISO-8859-10',
    'ISO_8859-13' => 'ISO-8859-13',
    'ISO_8859-14' => 'ISO-8859-14',
    'ISO_8859-14:1998' => 'ISO-8859-14',
    'ISO_8859-15' => 'ISO-8859-15',
    'ISO_8859-15:1998' => 'ISO-8859-15',
    'ISO_8859-16' => 'ISO-8859-16',
    'ISO_8859-16:2001' => 'ISO-8859-16',
    'ISO_8859-1:1987' => 'ISO-8859-1',
    'ISO_8859-2' => 'ISO-8859-2',
    'ISO_8859-2:1987' => 'ISO-8859-2',
    'ISO_8859-3' => 'ISO-8859-3',
    'ISO_8859-3:1988' => 'ISO-8859-3',
    'ISO_8859-4' => 'ISO-8859-4',
    'ISO_8859-4:1988' => 'ISO-8859-4',
    'ISO_8859-5' => 'ISO-8859-5',
    'ISO_8859-5:1988' => 'ISO-8859-5',
    'ISO_8859-6' => 'ISO-8859-6',
    'ISO_8859-6-E' => 'ISO-8859-6-E',
    'ISO_8859-6-I' => 'ISO-8859-6-I',
    'ISO_8859-6:1987' => 'ISO-8859-6',
    'ISO_8859-7' => 'ISO-8859-7',
    'ISO_8859-7:1987' => 'ISO-8859-7',
    'ISO_8859-8' => 'ISO-8859-8',
    'ISO_8859-8-E' => 'ISO-8859-8-E',
    'ISO_8859-8-I' => 'ISO-8859-8-I',
    'ISO_8859-8:1988' => 'ISO-8859-8',
    'ISO_8859-9' => 'ISO-8859-9',
    'ISO_8859-9:1989' => 'ISO-8859-9',
    'ISO_9036' => 'ASMO_449',
    'JIS_C6220-1969' => 'JIS_C6220-1969-JP',
    'JIS_X0208-1983' => 'JIS_C6226-1983',
    'JP' => 'JIS_C6220-1969-RO',
    'JP-OCR-A' => 'JIS_C6229-1984-A',
    'JP-OCR-B' => 'JIS_C6229-1984-B',
    'JP-OCR-B-ADD' => 'JIS_C6229-1984-B-ADD',
    'JP-OCR-HAND' => 'JIS_C6229-1984-HAND',
    'JP-OCR-HAND-ADD' => 'JIS_C6229-1984-HAND-ADD',
    'JS' => 'JUS_I.B1.002',
    'KATAKANA' => 'JIS_C6220-1969-JP',
    'KOREAN' => 'KS_C_5601-1987',
    'KSC_5601' => 'KS_C_5601-1987',
    'KS_C_5601-1989' => 'KS_C_5601-1987',
    'L1' => 'ISO-8859-1',
    'L10' => 'ISO-8859-16',
    'L2' => 'ISO-8859-2',
    'L3' => 'ISO-8859-3',
    'L4' => 'ISO-8859-4',
    'L5' => 'ISO-8859-9',
    'L6' => 'ISO-8859-10',
	'L7' => 'ISO-8859-13',
    'L8' => 'ISO-8859-14',
    'LAP' => 'LATIN-LAP',
    'LATIN-9' => 'ISO-8859-15',
    'LATIN1' => 'ISO-8859-1',
    'LATIN1-2-5' => 'ISO_8859-SUPP',
    'LATIN10' => 'ISO-8859-16',
    'LATIN2' => 'ISO-8859-2',
    'LATIN3' => 'ISO-8859-3',
    'LATIN4' => 'ISO-8859-4',
    'LATIN5' => 'ISO-8859-9',
    'LATIN6' => 'ISO-8859-10',
	'LATIN7' => 'ISO-8859-13',
    'LATIN8' => 'ISO-8859-14',
    'MAC' => 'MACINTOSH',
	'MAC-ARABIC' => 'MACARABIC',
	'MAC-CENTRALEUROPE' => 'MACCENTRALEUROPE',
	'MAC-CROATIAN' => 'MACCROATIAN',
	'MAC-CYRILLIC' => 'MACCYRILLIC',
	'MAC-GREEK' => 'MACGREEK',
	'MAC-HEBREW' => 'MACHEBREW',
	'MAC-ICELAND' => 'MACICELAND',
	'MAC-ROMANIA' => 'MACROMANIA',
	'MAC-THAI' => 'MACTHAI',
	'MAC-TURKISH' => 'MACTURKISH',
	'MAC-UKRAINE' => 'MACUKRAINE',
    'MACEDONIAN' => 'JUS_I.B1.003-MAC',
	'MS-ARAB' => 'WINDOWS-1256',
	'MS-ANSI' => 'WINDOWS-1252',
	'MS-EE' => 'WINDOWS-1250',
	'MS-CYRL' => 'WINDOWS-1251',
	'MS-GREEK' => 'WINDOWS-1253',
	'MS-HEBR' => 'WINDOWS-1255',
	'MS-TURK' => 'WINDOWS-1254',
    'MS936' => 'GBK',
    'MS_KANJI' => 'SHIFT_JIS',
    'NAPLPS' => 'ANSI_X3.110-1983',
    'NO' => 'NS_4551-1',
    'NO2' => 'NS_4551-2',
	'OS2LATIN1' => 'IBM1004',
    'PT154' => 'PTCP154',
    'R8' => 'HP-ROMAN8',
    'REF' => 'ISO_646.BASIC:1983',
    'ROMAN8' => 'HP-ROMAN8',
    'SE' => 'SEN_850200_B',
    'SE2' => 'SEN_850200_C',
    'SERBIAN' => 'JUS_I.B1.003-SERB',
    'ST_SEV_358-88' => 'GOST_19768-74',
    'T.61' => 'T.61-8BIT',
	'TIS620' => 'TIS-620',
	'TIS620-0' => 'TIS-620',
	'TIS620.2529-1' => 'TIS-620',
	'TIS620.2533-0' => 'TIS-620',
	'TIS620.2533-1' => 'TIS-620',
	'UHC' => 'CP949',
    'UK' => 'BS_4730',
    'US' => 'US-ASCII',
	'VISCII1.1-1' => 'VISCII',
	'WINBALTRIM' => 'WINDOWS-1257',
	'WINDOWS-874' => 'CP874',
    'WINDOWS-936' => 'GBK',
	'WINDOWS-SAMI2' => 'WIN-SAMI-2',
	'WS2' => 'WIN-SAMI-2',
    'X0201' => 'JIS_X0201',
    'X0201-7' => 'JIS_C6220-1969-JP',
    'X0208' => 'JIS_C6226-1983',
    'X0212' => 'JIS_X0212-1990',
    'YU' => 'JUS_I.B1.002',
	'X-ATARI-ST' => 'ATARI-ST',
	'X-ATARIST' => 'ATARI-ST',
	'X-ATARI-ST-EURO' => 'ATARI-ST-EURO',
	'X-ATARIST-EURO' => 'ATARI-ST-EURO',
	'X-MAC-ARABIC' => 'MACARABIC',
	'X-MAC-CENTRALEUROPE' => 'MACCENTRALEUROPE',
	'X-MAC-CROATIAN' => 'MACCROATIAN',
	'X-MAC-CYRILLIC' => 'MACCYRILLIC',
	'X-MAC-GREEK' => 'MACGREEK',
	'X-MAC-HEBREW' => 'MACHEBREW',
	'X-MAC-ICELAND' => 'MACICELAND',
	'X-MAC-ROMANIA' => 'MACROMANIA',
	'X-MAC-THAI' => 'MACTHAI',
	'X-MAC-TURKISH' => 'MACTURKISH',
	'X-MAC-UKRAINE' => 'MACUKRAINE',
	'X-MACARABIC' => 'MACARABIC',
	'X-MACCENTRALEUROPE' => 'MACCENTRALEUROPE',
	'X-MACCROATIAN' => 'MACCROATIAN',
	'X-MACCYRILLIC' => 'MACCYRILLIC',
	'X-MACGREEK' => 'MACGREEK',
	'X-MACHEBREW' => 'MACHEBREW',
	'X-MACICELAND' => 'MACICELAND',
	'X-MACROMANIA' => 'MACROMANIA',
	'X-MACTHAI' => 'MACTHAI',
	'X-MACTURKISH' => 'MACTURKISH',
	'X-MACUKRAINE' => 'MACUKRAINE',
};

1;

__END__

=head1 NAME

Locale::Recode::_Aliases - Internal Charset Alias Database for libintl-perl

=head1 SYNOPSIS

use Locale::Recode::_Aliases

die "This module is internal to libintl.  Do not use it directly!\n";

=head1 DESCRIPTION

Contains a list of codeset aliases that are known internally to
libintl.

=head1 CONSTANTS

=over 4

=item ALIASES

The constant B<Locale::Recode::_Aliases::ALIASES> contains a hash reference
the keys of which are internally known charset alias names all in
uppercase.  The corresponding value is the canonical name of the charset.

=back

=head1 BUGS

The format of the lookup table will most probably change, do not rely
on the current format!

=head1 AUTHOR

Copyright (C) 2002-2009, Guido Flohr E<lt>guido@imperia.netE<gt>, all
rights reserved.  See the source code for details.

This software is contributed to the Perl community by Imperia
(L<http://www.imperia.net/>).

=head1 SEE ALSO

Locale::Recode(3), perl(1)

=cut
Local Variables:
mode: perl
perl-indent-level: 4
perl-continued-statement-offset: 4
perl-continued-brace-offset: 0
perl-brace-offset: -4
perl-brace-imaginary-offset: 0
perl-label-offset: -4
cperl-indent-level: 4
cperl-continued-statement-offset: 2
tab-width: 4
End:
=cut

repo_name: mthl/texinfo

license: mit


code:
#! /bin/false
# vim: set autoindent shiftwidth=4 tabstop=4:
# $Id: _Conversions.pm,v 1.1 2011-10-12 23:51:27 pertusus Exp $

# List of internally known conversions.
# Copyright (C) 2002-2009 Guido Flohr <guido@imperia.net>,
# all rights reserved.
# This file is generated, do not edit!

# This program is free software; you can redistribute it and/or modify it
# under the terms of the GNU Library General Public License as published
# by the Free Software Foundation; either version 2, or (at your option)
# any later version.

# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
# Library General Public License for more details.

# You should have received a copy of the GNU Library General Public
# License along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
# USA.

package Locale::Recode::_Conversions;

use strict;
use integer;

use vars qw ($conversions $optional_conversions);

# These are the canonical names of the encodings always available.
$conversions = {
	'ASMO_449' => 'ASMO_449',
	'ATARI-ST-EURO' => 'ATARI_ST_EURO',
	'ATARI-ST' => 'ATARI_ST',
	'CP10007' => 'CP10007',
	'CSN_369103' => 'CSN_369103',
	'CWI' => 'CWI',
	'DEC-MCS' => 'DEC_MCS',
	'EBCDIC-AT-DE-A' => 'EBCDIC_AT_DE_A',
	'EBCDIC-AT-DE' => 'EBCDIC_AT_DE',
	'EBCDIC-CA-FR' => 'EBCDIC_CA_FR',
	'EBCDIC-DK-NO-A' => 'EBCDIC_DK_NO_A',
	'EBCDIC-DK-NO' => 'EBCDIC_DK_NO',
	'EBCDIC-ES-A' => 'EBCDIC_ES_A',
	'EBCDIC-ES-S' => 'EBCDIC_ES_S',
	'EBCDIC-ES' => 'EBCDIC_ES',
	'EBCDIC-FI-SE-A' => 'EBCDIC_FI_SE_A',
	'EBCDIC-FI-SE' => 'EBCDIC_FI_SE',
	'EBCDIC-FR' => 'EBCDIC_FR',
	'EBCDIC-IS-FRISS' => 'EBCDIC_IS_FRISS',
	'EBCDIC-IT' => 'EBCDIC_IT',
	'EBCDIC-PT' => 'EBCDIC_PT',
	'EBCDIC-UK' => 'EBCDIC_UK',
	'EBCDIC-US' => 'EBCDIC_US',
	'ECMA-CYRILLIC' => 'ECMA_CYRILLIC',
	'GEORGIAN-ACADEMY' => 'GEORGIAN_ACADEMY',
	'GEORGIAN-PS' => 'GEORGIAN_PS',
	'GOST_19768-74' => 'GOST_19768_74',
	'GREEK-CCITT' => 'GREEK_CCITT',
	'GREEK7-OLD' => 'GREEK7_OLD',
	'GREEK7' => 'GREEK7',
	'HP-ROMAN8' => 'HP_ROMAN8',
	'IBM037' => 'IBM037',
	'IBM038' => 'IBM038',
	'IBM1004' => 'IBM1004',
	'IBM1026' => 'IBM1026',
	'IBM1047' => 'IBM1047',
	'IBM256' => 'IBM256',
	'IBM273' => 'IBM273',
	'IBM274' => 'IBM274',
	'IBM275' => 'IBM275',
	'IBM277' => 'IBM277',
	'IBM278' => 'IBM278',
	'IBM280' => 'IBM280',
	'IBM281' => 'IBM281',
	'IBM284' => 'IBM284',
	'IBM285' => 'IBM285',
	'IBM290' => 'IBM290',
	'IBM297' => 'IBM297',
	'IBM420' => 'IBM420',
	'IBM423' => 'IBM423',
	'IBM424' => 'IBM424',
	'IBM437' => 'IBM437',
	'IBM500' => 'IBM500',
	'IBM850' => 'IBM850',
	'IBM851' => 'IBM851',
	'IBM852' => 'IBM852',
	'IBM855' => 'IBM855',
	'IBM857' => 'IBM857',
	'IBM860' => 'IBM860',
	'IBM861' => 'IBM861',
	'IBM862' => 'IBM862',
	'IBM863' => 'IBM863',
	'IBM864' => 'IBM864',
	'IBM865' => 'IBM865',
	'IBM866' => 'IBM866',
	'IBM868' => 'IBM868',
	'IBM869' => 'IBM869',
	'IBM870' => 'IBM870',
	'IBM871' => 'IBM871',
	'IBM874' => 'IBM874',
	'IBM875' => 'IBM875',
	'IBM880' => 'IBM880',
	'IBM891' => 'IBM891',
	'IBM903' => 'IBM903',
	'IBM904' => 'IBM904',
	'IBM905' => 'IBM905',
	'IBM918' => 'IBM918',
	'IEC_P27-1' => 'IEC_P27_1',
	'INIS-8' => 'INIS_8',
	'INIS-CYRILLIC' => 'INIS_CYRILLIC',
	'INIS' => 'INIS',
	'ISO-8859-1' => 'ISO_8859_1',
	'ISO-8859-10' => 'ISO_8859_10',
	'ISO-8859-11' => 'ISO_8859_11',
	'ISO-8859-13' => 'ISO_8859_13',
	'ISO-8859-14' => 'ISO_8859_14',
	'ISO-8859-15' => 'ISO_8859_15',
	'ISO-8859-16' => 'ISO_8859_16',
	'ISO-8859-2' => 'ISO_8859_2',
	'ISO-8859-3' => 'ISO_8859_3',
	'ISO-8859-4' => 'ISO_8859_4',
	'ISO-8859-5' => 'ISO_8859_5',
	'ISO-8859-6' => 'ISO_8859_6',
	'ISO-8859-7' => 'ISO_8859_7',
	'ISO-8859-8' => 'ISO_8859_8',
	'ISO-8859-9' => 'ISO_8859_9',
	'ISO_10367-BOX' => 'ISO_10367_BOX',
	'ISO_2033-1983' => 'ISO_2033_1983',
	'ISO_5427-EXT' => 'ISO_5427_EXT',
	'ISO_5427' => 'ISO_5427',
	'ISO_5428' => 'ISO_5428',
	'KOI-8' => 'KOI_8',
	'KOI8-R' => 'KOI8_R',
	'KOI8-RU' => 'KOI8_RU',
	'KOI8-T' => 'KOI8_T',
	'KOI8-U' => 'KOI8_U',
	'LATIN-GREEK-1' => 'LATIN_GREEK_1',
	'LATIN-GREEK' => 'LATIN_GREEK',
	'MACINTOSH' => 'MACINTOSH',
	'MACARABIC' => 'MACARABIC',
	'MACCYRILLIC' => 'MACCYRILLIC',
	'MACCROATIAN' => 'MACCROATIAN',
	'MACGREEK' => 'MACGREEK',
	'MACHEBREW' => 'MACHEBREW',
	'MACICELAND' => 'MACICELAND',
	'MACROMANIA' => 'MACROMANIA',
	'MACTHAI' => 'MACTHAI',
	'MACTURKISH' => 'MACTURKISH',
	'MACUKRAINE' => 'MACUKRAINE',
	'MAC-IS' => 'MAC_IS',
	'MAC-SAMI' => 'MAC_SAMI',
	'MAC-UK' => 'MAC_UK',
	'NATS-DANO' => 'NATS_DANO',
	'NATS-SEFI' => 'NATS_SEFI',
	'NEXTSTEP' => 'NEXTSTEP',
	'TIS-620' => 'TIS_620',
	'UTF-8' => 'UTF_8',
	'VISCII' => 'VISCII',
	'WIN-SAMI-2' => 'SAMI_WS2',
	'WINDOWS-1250' => 'CP1250',
	'WINDOWS-1251' => 'CP1251',
	'WINDOWS-1252' => 'CP1252',
	'WINDOWS-1253' => 'CP1253',
	'WINDOWS-1254' => 'CP1254',
	'WINDOWS-1256' => 'CP1256',
	'WINDOWS-1257' => 'CP1257',
	'US-ASCII' => 'US_ASCII',
};

# These encodings are maybe available via Encode(3pm).
$optional_conversions = {
	'BIG5' => undef,
	'BIG5-HKSCS' => undef,
	'CN-GB' => undef,
	'CN-GB-ISOIR165' => undef,
	'CP1006' => undef,
	'CP1026' => undef,
	'CP1047' => undef,
	'CP1361' => undef,
	'CP949' => undef,
    'CP37' => undef,
    'CP424' => undef,
    'CP500' => undef,
    'CP737' => undef,
    'CP775' => undef,
    'CP856' => undef,
    'CP874' => undef,
    'CP875' => undef,
    'CP932' => undef,
    'CP936' => undef,
    'CP950' => undef,
	'EUC-JP' => undef,
	'EUC-KR' => undef,
	'EUC-TW' => undef,
    # mapping from 0xef to 0xff missing.
	# 'HP-ROMAN8' => undef,
	'GB18030' => undef,
	'HZ' => undef,
	'IBM437' => undef,
	'IBM850' => undef,
	'IBM852' => undef,
	'IBM855' => undef,
	'IBM857' => undef,
	'IBM860' => undef,
	'IBM861' => undef,
	'IBM862' => undef,
	'IBM863' => undef,
	'IBM864' => undef,
	'IBM865' => undef,
	'IBM866' => undef,
	'IBM869' => undef,
	'ISO-10646-UCS-2' => undef,
	'ISO-10646-UCS-4' => undef,
	'ISO-2022-JP' => undef,
	'ISO-2022-JP-1' => undef,
	'ISO-2022-KR' => undef,
	'ISO-8859-1' => undef,
	'ISO-8859-10' => undef,
	# This is broken in some versions of Encode.
	# 'ISO-8859-11' => undef,
	'ISO-8859-13' => undef,
	'ISO-8859-14' => undef,
	'ISO-8859-15' => undef,
    # Errors at 0xa5 and 0xab.
	# 'ISO-8859-16' => undef,
	'ISO-8859-2' => undef,
	'ISO-8859-3' => undef,
	'ISO-8859-4' => undef,
	'ISO-8859-5' => undef,
    # Uses arabic digits in ascii range?!
	# 'ISO-8859-6' => undef,
    # 0xa1 and 0xa2 are incorrectly encoded.
	# 'ISO-8859-7' => undef,
    # 0xfd and 0xfe are missing.
	# 'ISO-8859-8' => undef,
	'ISO-8859-9' => undef,
	'ISO-IR-149' => undef,
	'KOI8-R' => undef,
    # 0x95 is BULLET, not BULLET OPERATOR.
	# 'KOI8-U' => undef,
    # Seems to be messed up in certain Encode versions.
	# 'MACINTOSH' => undef,
	# TODO: Check other Mac encodings for correctness.
	# Nextstep is completely broken in my version of Encode.
	# 'NEXTSTEP' => undef,
	'SHIFT_JIS' => undef,
	'UCS-2BE' => undef,
	'UCS-2LE' => undef,
	'UCS-4BE' => undef,
	'UCS-4LE' => undef,
	'US-ASCII' => undef,
	'UTF-16' => undef,
	'UTF-16BE' => undef,
	'UTF-16LE' => undef,
	'UTF-32' => undef,
	'UTF-32BE' => undef,
	'UTF-32LE' => undef,
	'UTF-8' => undef,
    # 0x86 is missing, 0xa6 is incorrectly encoded.
	# 'VISCII' => undef,
	'WINDOWS-1250' => undef,
	'WINDOWS-1251' => undef,
	'WINDOWS-1252' => undef,
	'WINDOWS-1253' => undef,
	'WINDOWS-1254' => undef,
	'WINDOWS-1255' => undef,
	'WINDOWS-1256' => undef,
	'WINDOWS-1257' => undef,
	'WINDOWS-1258' => undef,
};

my $has_encode;

sub resolveAlias
{
	my (undef, $encoding) = @_;

	$encoding = uc $encoding;

	return $encoding if exists $conversions->{$encoding};
	return $encoding if exists $optional_conversions->{$encoding};

	require Locale::Recode::_Aliases;

	my $resolved = Locale::Recode::_Aliases::ALIASES()->{$encoding};

	return $resolved if $resolved;

	return;
}

sub isSupported
{
	my ($class, $encoding) = @_;

	return unless defined $encoding && length $encoding;

	$encoding = uc $encoding;
	my $mimename = $class->resolveAlias ($encoding);

	return unless $mimename;

	# Determine the correct module.
	if (exists $optional_conversions->{$mimename}) {
		unless (defined $has_encode) {
			eval "require Encode";
			$has_encode = !$@;

			if ($has_encode) {
				require Encode::Alias;

				# Add missing real names.
				Encode::Alias::define_alias (MS_KANJI => 'ShiftJIS');
				Encode::Alias::define_alias ('CN-GB' => 'EUC-CN');
			}
		}

		if ($has_encode) {
			# Now check whether Encode really supports that encoding.
			eval "Encode::encode ('$mimename', 'x')";

			unless ($@) {
				$conversions->{$mimename} = '_Encode';
			}
			delete $optional_conversions->{$mimename};
		}
	}

	return $conversions->{$mimename} if exists $conversions->{$mimename};

	return;
}

sub listSupported
{
	my ($class) = @_;

	foreach my $opt (keys %$optional_conversions) {
		$class->isSupported ($opt);
	}

	my @list = keys %$conversions;
	return @list;
}

# Find a conversion path.
sub findPath
{
	my ($class, $from, $to) = @_;

	$from = 'INTERNAL' eq uc $from ? 'INTERNAL' : $class->resolveAlias ($from);
	$to = 'INTERNAL' eq uc $to ? 'INTERNAL' : $class->resolveAlias ($to);

	return unless $from && $to;

	return [] if $from eq $to;

	my $from_module = $class->isSupported ($from);
	my $to_module = $class->isSupported ($to);

	if (!$from_module) {
		if ('INTERNAL' eq $from) {
			$from_module = $to_module or return;
		} else {
			return;
		}
	}

	if (!$to_module) {
		if ('INTERNAL' eq $to) {
			$to_module = $from_module or return;
		} else {
			return;
		}
	}

	if ($from_module eq $to_module
		|| $to eq 'INTERNAL'
		|| $to eq 'UTF-8') {
		return [[ $from_module, $from, $to ]];
	} elsif ($from eq 'INTERNAL') {
		return [[ $to_module, $from, $to ]];
	} else {
		return [[ $from_module, $from, 'INTERNAL' ],
				[ $to_module, 'INTERNAL', $to ]];
	}
}

# TODO: check for
# 7bit-jis
# AdobeStandardEncoding
# AdobeSymbol
# AdobeZdingbat
# ascii-ctrl
# big5ext
# big5plus
# cccii
# cns11643-1
# cns11643-2
# cns11643-3
# cns11643-4
# cns11643-5
# cns11643-6
# cns11643-7
# cns11643-f
# dingbats
# gb12345-raw
# gb2312-raw
# gsm0338
# jis0201-raw
# jis0208-raw
# jis0212-raw
# koi8-f
# MIME-B
# MIME-Header
# MIME-Q
# posix-bc
# symbol
# unisys

1;

__END__

=head1 NAME

Locale::Recode::_Conversions - Internal Table of Known Conversions

=head1 SYNOPSIS

use Locale::Recode::_Conversions

This module is internal to libintl.  Do not use it directly!

=head1 AUTHOR

Copyright (C) 2002-2009, Guido Flohr E<lt>guido@imperia.netE<gt>, all
rights reserved.  See the source code for details.

This software is contributed to the Perl community by Imperia
(L<http://www.imperia.net/>).

=head1 SEE ALSO

Locale::Recode(3), perl(1)

=cut
Local Variables:
mode: perl
perl-indent-level: 4
perl-continued-statement-offset: 4
perl-continued-brace-offset: 0
perl-brace-offset: -4
perl-brace-imaginary-offset: 0
perl-label-offset: -4
cperl-indent-level: 4
cperl-continued-statement-offset: 2
tab-width: 4
End:
=cut


code:
#! /bin/false

# vim: set autoindent shiftwidth=4 tabstop=4:
# $Id: RecodeData.pm,v 1.1 2011-10-12 23:51:26 pertusus Exp $

# Virtual base class for Locale::Recode converters.
# Copyright (C) 2002-2009 Guido Flohr <guido@imperia.net>,
# all rights reserved.

# This program is free software; you can redistribute it and/or modify it
# under the terms of the GNU Library General Public License as published
# by the Free Software Foundation; either version 2, or (at your option)
# any later version.

# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
# Library General Public License for more details.

# You should have received a copy of the GNU Library General Public
# License along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
# USA.

package Locale::RecodeData;

use strict;

sub new
{
    my ($class, %args) = @_;

    bless {
		_from => $args{from},
		_to => $args{to},
    }, $class;
}

sub _getError
{
	shift->{_error};
}

1;

__END__

=head1 NAME

Locale::RecodeData - Abstract Base Class for Charset Converters

=head1 SYNOPSIS

    # For compatibility with Perl 5.005 and earlier, you must
    # *use* the module before inheriting from it!
    use qw (Locale::RecodeData);
    use base qw (Locale::RecodeData);

=head1 DESCRIPTION

The module B<Locale::RecodeData> serves as an abstract base class to
all converters used by Locale::Recode(3).

Adding new conversion modules is currently not straightforward, and
you will have to edit the sources of some modules for that purpose.

First, you have to add your new converter class to the list found
in Locale::_Conversions(3), so that Locale::Recode(3) knows about
its presence.  If there are valid aliases for the codeset of your
converter, you will also have to edit Locale::_Aliases(3).

Finally, you have to implement the (protected) conversion routine
_recode().  See below (L<"INTERFACE")> for details.

=head1 CONSTRUCTOR

=over 4

=item B<new (from =E<gt> FROM_CODESET, to =E<gt> TO_CODESET)>

The constructor takes two (named) arguments:

=over 8

=item B<from>

The canonical name of the source codeset.  Aliases have already been
resolved and the name is converted to uppercase.

=item B<to>

The canonical name of the destination codeset.  Aliases have already been
resolved and the name is converted to uppercase.

=back

You normally don't have to implement the constructor.  The default constructor
implemented here will store the source and destination codesets in the
protected members C<_from> and C<_to>.

=back

=head1 METHODS

The class implements one method:

=over 4

=item B<_getError>

Returns the (protected) member C<_error>.

=back

=head1 INTERFACE

New conversion classes must provide the following interface:

=over 4

=item B<new (from =E<gt> FROM_CODESET, to =E<gt> TO_CODESET)>

The constructor takes two (named) arguments:

=over 8

=item B<from>

The canonical name of the source codeset.  Aliases have already been
resolved and the name is converted to uppercase.

=item B<to>

The canonical name of the destination codeset.  Aliases have already been
resolved and the name is converted to uppercase.

=back

=item B<_getError>

Should return the last error (as a string) or false if there was no error.

This method is implemented in the base class already.

=item B<_recode STRINGREF>

Should convert the argument C<STRINGREF> in-place.  In case of failure,
return false, and make provisions that the method C<_getError()> returns
an informative error message.

=back

=head1 AUTHOR

Copyright (C) 2002-2009, Guido Flohr E<lt>guido@imperia.netE<gt>, all
rights reserved.  See the source code for details.

This software is contributed to the Perl community by Imperia
(L<http://www.imperia.net/>).

=head1 SEE ALSO

Locale::Recode::_Aliases(3pm), Locale::Recode::_Conversions(3pm),
Locale::Recode(3pm), perl(1)

=cut
Local Variables:
mode: perl
perl-indent-level: 4
perl-continued-statement-offset: 4
perl-continued-brace-offset: 0
perl-brace-offset: -4
perl-brace-imaginary-offset: 0
perl-label-offset: -4
cperl-indent-level: 4
cperl-continued-statement-offset: 2
tab-width: 4
End:
=cut


code:
#! /bin/false
# vim: set autoindent shiftwidth=4 tabstop=4:
# $Id: ASMO_449.pm,v 1.1 2011-10-12 23:51:27 pertusus Exp $

# Conversion routines for ASMO_449.
# Copyright (C) 2002-2009 Guido Flohr <guido@imperia.net>, all
# rights reserved.
# This file is generated, do not edit!

# This program is free software; you can redistribute it and/or modify it
# under the terms of the GNU Library General Public License as published
# by the Free Software Foundation; either version 2, or (at your option)
# any later version.

# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
# Library General Public License for more details.

# You should have received a copy of the GNU Library General Public
# License along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
# USA.

package Locale::RecodeData::ASMO_449;

use strict;

require Locale::RecodeData;
use base qw(Locale::RecodeData);

my @to_ucs4 = (
    0x0000,
    0x0001,
    0x0002,
    0x0003,
    0x0004,
    0x0005,
    0x0006,
    0x0007,
    0x0008,
    0x0009,
    0x000a,
    0x000b,
    0x000c,
    0x000d,
    0x000e,
    0x000f,
    0x0010,
    0x0011,
    0x0012,
    0x0013,
    0x0014,
    0x0015,
    0x0016,
    0x0017,
    0x0018,
    0x0019,
    0x001a,
    0x001b,
    0x001c,
    0x001d,
    0x001e,
    0x001f,
    0x0020,
    0x0021,
    0x0022,
    0x0023,
    0x00a4,
    0x0025,
    0x0026,
    0x0027,
    0x0028,
    0x0029,
    0x002a,
    0x002b,
    0x060c,
    0x002d,
    0x002e,
    0x002f,
    0x0030,
    0x0031,
    0x0032,
    0x0033,
    0x0034,
    0x0035,
    0x0036,
    0x0037,
    0x0038,
    0x0039,
    0x003a,
    0x061b,
    0x003c,
    0x003d,
    0x003e,
    0x061f,
    0x0040,
    0x0621,
    0x0622,
    0x0623,
    0x0624,
    0x0625,
    0x0626,
    0x0627,
    0x0628,
    0x0629,
    0x062a,
    0x062b,
    0x062c,
    0x062d,
    0x062e,
    0x062f,
    0x0630,
    0x0631,
    0x0632,
    0x0633,
    0x0634,
    0x0635,
    0x0636,
    0x0637,
    0x0638,
    0x0639,
    0x063a,
    0x005b,
    0x005c,
    0x005d,
    0x005e,
    0x005f,
    0x0640,
    0x0641,
    0x0642,
    0x0643,
    0x0644,
    0x0645,
    0x0646,
    0x0647,
    0x0648,
    0x0649,
    0x064a,
    0x064b,
    0x064c,
    0x064d,
    0x064e,
    0x064f,
    0x0650,
    0x0651,
    0x0652,
    0xfffd,
    0xfffd,
    0xfffd,
    0xfffd,
    0xfffd,
    0xfffd,
    0xfffd,
    0xfffd,
    0x007b,
    0x007c,
    0x007d,
    0x203e,
    0x007f,
    0xfffd,
    0xfffd,
    0xfffd,
    0xfffd,
    0xfffd,
    0xfffd,
    0xfffd,
    0xfffd,
    0xfffd,
    0xfffd,
    0xfffd,
    0xfffd,
    0xfffd,
    0xfffd,
    0xfffd,
    0xfffd,
    0xfffd,
    0xfffd,
    0xfffd,
    0xfffd,
    0xfffd,
    0xfffd,
    0xfffd,
    0xfffd,
    0xfffd,
    0xfffd,
    0xfffd,
    0xfffd,
    0xfffd,
    0xfffd,
    0xfffd,
    0xfffd,
    0xfffd,
    0xfffd,
    0xfffd,
    0xfffd,
    0xfffd,
    0xfffd,
    0xfffd,
    0xfffd,
    0xfffd,
    0xfffd,
    0xfffd,
    0xfffd,
    0xfffd,
    0xfffd,
    0xfffd,
    0xfffd,
    0xfffd,
    0xfffd,
    0xfffd,
    0xfffd,
    0xfffd,
    0xfffd,
    0xfffd,
    0xfffd,
    0xfffd,
    0xfffd,
    0xfffd,
    0xfffd,
    0xfffd,
    0xfffd,
    0xfffd,
    0xfffd,
    0xfffd,
    0xfffd,
    0xfffd,
    0xfffd,
    0xfffd,
    0xfffd,
    0xfffd,
    0xfffd,
    0xfffd,
    0xfffd,
    0xfffd,
    0xfffd,
    0xfffd,
    0xfffd,
    0xfffd,
    0xfffd,
    0xfffd,
    0xfffd,
    0xfffd,
    0xfffd,
    0xfffd,
    0xfffd,
    0xfffd,
    0xfffd,
    0xfffd,
    0xfffd,
    0xfffd,
    0xfffd,
    0xfffd,
    0xfffd,
    0xfffd,
    0xfffd,
    0xfffd,
    0xfffd,
    0xfffd,
    0xfffd,
    0xfffd,
    0xfffd,
    0xfffd,
    0xfffd,
    0xfffd,
    0xfffd,
    0xfffd,
    0xfffd,
    0xfffd,
    0xfffd,
    0xfffd,
    0xfffd,
    0xfffd,
    0xfffd,
    0xfffd,
    0xfffd,
    0xfffd,
    0xfffd,
    0xfffd,
    0xfffd,
    0xfffd,
    0xfffd,
    0xfffd,
    0xfffd,
    0xfffd,
    0xfffd,
    0xfffd,
    0xfffd,
);

my @to_utf8 = (
    "\x00",
    "\x01",
    "\x02",
    "\x03",
    "\x04",
    "\x05",
    "\x06",
    "\x07",
    "\x08",
    "\x09",
    "\x0a",
    "\x0b",
    "\x0c",
    "\x0d",
    "\x0e",
    "\x0f",
    "\x10",
    "\x11",
    "\x12",
    "\x13",
    "\x14",
    "\x15",
    "\x16",
    "\x17",
    "\x18",
    "\x19",
    "\x1a",
    "\x1b",
    "\x1c",
    "\x1d",
    "\x1e",
    "\x1f",
    "\x20",
    "\x21",
    "\x22",
    "\x23",
    "\xc2\xa4",
    "\x25",
    "\x26",
    "\x27",
    "\x28",
    "\x29",
    "\x2a",
    "\x2b",
    "\xd8\x8c",
    "\x2d",
    "\x2e",
    "\x2f",
    "\x30",
    "\x31",
    "\x32",
    "\x33",
    "\x34",
    "\x35",
    "\x36",
    "\x37",
    "\x38",
    "\x39",
    "\x3a",
    "\xd8\x9b",
    "\x3c",
    "\x3d",
    "\x3e",
    "\xd8\x9f",
    "\x40",
    "\xd8\xa1",
    "\xd8\xa2",
    "\xd8\xa3",
    "\xd8\xa4",
    "\xd8\xa5",
    "\xd8\xa6",
    "\xd8\xa7",
    "\xd8\xa8",
    "\xd8\xa9",
    "\xd8\xaa",
    "\xd8\xab",
    "\xd8\xac",
    "\xd8\xad",
    "\xd8\xae",
    "\xd8\xaf",
    "\xd8\xb0",
    "\xd8\xb1",
    "\xd8\xb2",
    "\xd8\xb3",
    "\xd8\xb4",
    "\xd8\xb5",
    "\xd8\xb6",
    "\xd8\xb7",
    "\xd8\xb8",
    "\xd8\xb9",
    "\xd8\xba",
    "\x5b",
    "\x5c",
    "\x5d",
    "\x5e",
    "\x5f",
    "\xd9\x80",
    "\xd9\x81",
    "\xd9\x82",
    "\xd9\x83",
    "\xd9\x84",
    "\xd9\x85",
    "\xd9\x86",
    "\xd9\x87",
    "\xd9\x88",
    "\xd9\x89",
    "\xd9\x8a",
    "\xd9\x8b",
    "\xd9\x8c",
    "\xd9\x8d",
    "\xd9\x8e",
    "\xd9\x8f",
    "\xd9\x90",
    "\xd9\x91",
    "\xd9\x92",
    "\xef\xbf\xbd",
    "\xef\xbf\xbd",
    "\xef\xbf\xbd",
    "\xef\xbf\xbd",
    "\xef\xbf\xbd",
    "\xef\xbf\xbd",
    "\xef\xbf\xbd",
    "\xef\xbf\xbd",
    "\x7b",
    "\x7c",
    "\x7d",
    "\xe2\x80\xbe",
    "\x7f",
    "\xef\xbf\xbd",
    "\xef\xbf\xbd",
    "\xef\xbf\xbd",
    "\xef\xbf\xbd",
    "\xef\xbf\xbd",
    "\xef\xbf\xbd",
    "\xef\xbf\xbd",
    "\xef\xbf\xbd",
    "\xef\xbf\xbd",
    "\xef\xbf\xbd",
    "\xef\xbf\xbd",
    "\xef\xbf\xbd",
    "\xef\xbf\xbd",
    "\xef\xbf\xbd",
    "\xef\xbf\xbd",
    "\xef\xbf\xbd",
    "\xef\xbf\xbd",
    "\xef\xbf\xbd",
    "\xef\xbf\xbd",
    "\xef\xbf\xbd",
    "\xef\xbf\xbd",
    "\xef\xbf\xbd",
    "\xef\xbf\xbd",
    "\xef\xbf\xbd",
    "\xef\xbf\xbd",
    "\xef\xbf\xbd",
    "\xef\xbf\xbd",
    "\xef\xbf\xbd",
    "\xef\xbf\xbd",
    "\xef\xbf\xbd",
    "\xef\xbf\xbd",
    "\xef\xbf\xbd",
    "\xef\xbf\xbd",
    "\xef\xbf\xbd",
    "\xef\xbf\xbd",
    "\xef\xbf\xbd",
    "\xef\xbf\xbd",
    "\xef\xbf\xbd",
    "\xef\xbf\xbd",
    "\xef\xbf\xbd",
    "\xef\xbf\xbd",
    "\xef\xbf\xbd",
    "\xef\xbf\xbd",
    "\xef\xbf\xbd",
    "\xef\xbf\xbd",
    "\xef\xbf\xbd",
    "\xef\xbf\xbd",
    "\xef\xbf\xbd",
    "\xef\xbf\xbd",
    "\xef\xbf\xbd",
    "\xef\xbf\xbd",
    "\xef\xbf\xbd",
    "\xef\xbf\xbd",
    "\xef\xbf\xbd",
    "\xef\xbf\xbd",
    "\xef\xbf\xbd",
    "\xef\xbf\xbd",
    "\xef\xbf\xbd",
    "\xef\xbf\xbd",
    "\xef\xbf\xbd",
    "\xef\xbf\xbd",
    "\xef\xbf\xbd",
    "\xef\xbf\xbd",
    "\xef\xbf\xbd",
    "\xef\xbf\xbd",
    "\xef\xbf\xbd",
    "\xef\xbf\xbd",
    "\xef\xbf\xbd",
    "\xef\xbf\xbd",
    "\xef\xbf\xbd",
    "\xef\xbf\xbd",
    "\xef\xbf\xbd",
    "\xef\xbf\xbd",
    "\xef\xbf\xbd",
    "\xef\xbf\xbd",
    "\xef\xbf\xbd",
    "\xef\xbf\xbd",
    "\xef\xbf\xbd",
    "\xef\xbf\xbd",
    "\xef\xbf\xbd",
    "\xef\xbf\xbd",
    "\xef\xbf\xbd",
    "\xef\xbf\xbd",
    "\xef\xbf\xbd",
    "\xef\xbf\xbd",
    "\xef\xbf\xbd",
    "\xef\xbf\xbd",
    "\xef\xbf\xbd",
    "\xef\xbf\xbd",
    "\xef\xbf\xbd",
    "\xef\xbf\xbd",
    "\xef\xbf\xbd",
    "\xef\xbf\xbd",
    "\xef\xbf\xbd",
    "\xef\xbf\xbd",
    "\xef\xbf\xbd",
    "\xef\xbf\xbd",
    "\xef\xbf\xbd",
    "\xef\xbf\xbd",
    "\xef\xbf\xbd",
    "\xef\xbf\xbd",
    "\xef\xbf\xbd",
    "\xef\xbf\xbd",
    "\xef\xbf\xbd",
    "\xef\xbf\xbd",
    "\xef\xbf\xbd",
    "\xef\xbf\xbd",
    "\xef\xbf\xbd",
    "\xef\xbf\xbd",
    "\xef\xbf\xbd",
    "\xef\xbf\xbd",
    "\xef\xbf\xbd",
    "\xef\xbf\xbd",
    "\xef\xbf\xbd",
    "\xef\xbf\xbd",
    "\xef\xbf\xbd",
    "\xef\xbf\xbd",
    "\xef\xbf\xbd",
    "\xef\xbf\xbd",
    "\xef\xbf\xbd",
    "\xef\xbf\xbd",
    "\xef\xbf\xbd",
    "\xef\xbf\xbd",
    "\xef\xbf\xbd",
    "\xef\xbf\xbd",
    "\xef\xbf\xbd",
    "\xef\xbf\xbd",
    "\xef\xbf\xbd",
);

my %from_ucs4 = (
    0x00000000 => "\x00",
    0x00000001 => "\x01",
    0x00000002 => "\x02",
    0x00000003 => "\x03",
    0x00000004 => "\x04",
    0x00000005 => "\x05",
    0x00000006 => "\x06",
    0x00000007 => "\x07",
    0x00000008 => "\x08",
    0x00000009 => "\x09",
    0x0000000a => "\x0a",
    0x0000000b => "\x0b",
    0x0000000c => "\x0c",
    0x0000000d => "\x0d",
    0x0000000e => "\x0e",
    0x0000000f => "\x0f",
    0x00000010 => "\x10",
    0x00000011 => "\x11",
    0x00000012 => "\x12",
    0x00000013 => "\x13",
    0x00000014 => "\x14",
    0x00000015 => "\x15",
    0x00000016 => "\x16",
    0x00000017 => "\x17",
    0x00000018 => "\x18",
    0x00000019 => "\x19",
    0x0000001a => "\x1a",
    0x0000001b => "\x1b",
    0x0000001c => "\x1c",
    0x0000001d => "\x1d",
    0x0000001e => "\x1e",
    0x0000001f => "\x1f",
    0x00000020 => "\x20",
    0x00000021 => "\x21",
    0x00000022 => "\x22",
    0x00000023 => "\x23",
    0x00000025 => "\x25",
    0x00000026 => "\x26",
    0x00000027 => "\x27",
    0x00000028 => "\x28",
    0x00000029 => "\x29",
    0x0000002a => "\x2a",
    0x0000002b => "\x2b",
    0x0000002d => "\x2d",
    0x0000002e => "\x2e",
    0x0000002f => "\x2f",
    0x00000030 => "\x30",
    0x00000031 => "\x31",
    0x00000032 => "\x32",
    0x00000033 => "\x33",
    0x00000034 => "\x34",
    0x00000035 => "\x35",
    0x00000036 => "\x36",
    0x00000037 => "\x37",
    0x00000038 => "\x38",
    0x00000039 => "\x39",
    0x0000003a => "\x3a",
    0x0000003c => "\x3c",
    0x0000003d => "\x3d",
    0x0000003e => "\x3e",
    0x00000040 => "\x40",
    0x0000005b => "\x5b",
    0x0000005c => "\x5c",
    0x0000005d => "\x5d",
    0x0000005e => "\x5e",
    0x0000005f => "\x5f",
    0x0000007b => "\x7b",
    0x0000007c => "\x7c",
    0x0000007d => "\x7d",
    0x0000007f => "\x7f",
    0x000000a4 => "\x24",
    0x0000060c => "\x2c",
    0x0000061b => "\x3b",
    0x0000061f => "\x3f",
    0x00000621 => "\x41",
    0x00000622 => "\x42",
    0x00000623 => "\x43",
    0x00000624 => "\x44",
    0x00000625 => "\x45",
    0x00000626 => "\x46",
    0x00000627 => "\x47",
    0x00000628 => "\x48",
    0x00000629 => "\x49",
    0x0000062a => "\x4a",
    0x0000062b => "\x4b",
    0x0000062c => "\x4c",
    0x0000062d => "\x4d",
    0x0000062e => "\x4e",
    0x0000062f => "\x4f",
    0x00000630 => "\x50",
    0x00000631 => "\x51",
    0x00000632 => "\x52",
    0x00000633 => "\x53",
    0x00000634 => "\x54",
    0x00000635 => "\x55",
    0x00000636 => "\x56",
    0x00000637 => "\x57",
    0x00000638 => "\x58",
    0x00000639 => "\x59",
    0x0000063a => "\x5a",
    0x00000640 => "\x60",
    0x00000641 => "\x61",
    0x00000642 => "\x62",
    0x00000643 => "\x63",
    0x00000644 => "\x64",
    0x00000645 => "\x65",
    0x00000646 => "\x66",
    0x00000647 => "\x67",
    0x00000648 => "\x68",
    0x00000649 => "\x69",
    0x0000064a => "\x6a",
    0x0000064b => "\x6b",
    0x0000064c => "\x6c",
    0x0000064d => "\x6d",
    0x0000064e => "\x6e",
    0x0000064f => "\x6f",
    0x00000650 => "\x70",
    0x00000651 => "\x71",
    0x00000652 => "\x72",
    0x0000203e => "\x7e",
);

sub _recode
{
    if ($_[0]->{_from} eq 'INTERNAL') {
		$_[1] = join '',
	        map $from_ucs4{$_}
                || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"),
		    @{$_[1]};
    } elsif ($_[0]->{_to} eq 'UTF-8',) {
		$_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1];
    } else {
		$_[1] = [ map
				  $to_ucs4[$_],
				  unpack 'C*', $_[1]
				  ];
    }

    return 1;
}

1;

__END__

=head1 NAME

Locale::RecodeData::ASMO_449 - Conversion routines for ASMO_449

=head1 SYNOPSIS

This module is internal to libintl.  Do not use directly!

=head1 DESCRIPTION

This module is generated and contains the conversion tables and
routines for ASMO_449.

=head1 COMMENTS

The following comments have been extracted from the original charmap:

 version: 1.0
  source: ECMA registry
 alias ISO_9036
 alias ARABIC7
 alias ISO-IR-89

Please note that aliases listed above are not necessarily valid!

=head1 CHARACTER TABLE

The following table is sorted in the same order as the original charmap.
All character codes are in hexadecimal.  Please read 'ISO-10646' as
'ISO-10646-UCS4'.

 Local | ISO-10646 | Description
-------+-----------+-------------------------------------------------
    00 |  00000000 | NULL (NUL)
    01 |  00000001 | START OF HEADING (SOH)
    02 |  00000002 | START OF TEXT (STX)
    03 |  00000003 | END OF TEXT (ETX)
    04 |  00000004 | END OF TRANSMISSION (EOT)
    05 |  00000005 | ENQUIRY (ENQ)
    06 |  00000006 | ACKNOWLEDGE (ACK)
    07 |  00000007 | BELL (BEL)
    08 |  00000008 | BACKSPACE (BS)
    09 |  00000009 | CHARACTER TABULATION (HT)
    0A |  0000000A | LINE FEED (LF)
    0B |  0000000B | LINE TABULATION (VT)
    0C |  0000000C | FORM FEED (FF)
    0D |  0000000D | CARRIAGE RETURN (CR)
    0E |  0000000E | SHIFT OUT (SO)
    0F |  0000000F | SHIFT IN (SI)
    10 |  00000010 | DATALINK ESCAPE (DLE)
    11 |  00000011 | DEVICE CONTROL ONE (DC1)
    12 |  00000012 | DEVICE CONTROL TWO (DC2)
    13 |  00000013 | DEVICE CONTROL THREE (DC3)
    14 |  00000014 | DEVICE CONTROL FOUR (DC4)
    15 |  00000015 | NEGATIVE ACKNOWLEDGE (NAK)
    16 |  00000016 | SYNCHRONOUS IDLE (SYN)
    17 |  00000017 | END OF TRANSMISSION BLOCK (ETB)
    18 |  00000018 | CANCEL (CAN)
    19 |  00000019 | END OF MEDIUM (EM)
    1A |  0000001A | SUBSTITUTE (SUB)
    1B |  0000001B | ESCAPE (ESC)
    1C |  0000001C | FILE SEPARATOR (IS4)
    1D |  0000001D | GROUP SEPARATOR (IS3)
    1E |  0000001E | RECORD SEPARATOR (IS2)
    1F |  0000001F | UNIT SEPARATOR (IS1)
    20 |  00000020 | SPACE
    21 |  00000021 | EXCLAMATION MARK
    22 |  00000022 | QUOTATION MARK
    23 |  00000023 | NUMBER SIGN
    24 |  000000A4 | CURRENCY SIGN
    25 |  00000025 | PERCENT SIGN
    26 |  00000026 | AMPERSAND
    27 |  00000027 | APOSTROPHE
    28 |  00000028 | LEFT PARENTHESIS
    29 |  00000029 | RIGHT PARENTHESIS
    2A |  0000002A | ASTERISK
    2B |  0000002B | PLUS SIGN
    2C |  0000060C | ARABIC COMMA
    2D |  0000002D | HYPHEN-MINUS
    2E |  0000002E | FULL STOP
    2F |  0000002F | SOLIDUS
    30 |  00000030 | DIGIT ZERO
    31 |  00000031 | DIGIT ONE
    32 |  00000032 | DIGIT TWO
    33 |  00000033 | DIGIT THREE
    34 |  00000034 | DIGIT FOUR
    35 |  00000035 | DIGIT FIVE
    36 |  00000036 | DIGIT SIX
    37 |  00000037 | DIGIT SEVEN
    38 |  00000038 | DIGIT EIGHT
    39 |  00000039 | DIGIT NINE
    3A |  0000003A | COLON
    3B |  0000061B | ARABIC SEMICOLON
    3C |  0000003C | LESS-THAN SIGN
    3D |  0000003D | EQUALS SIGN
    3E |  0000003E | GREATER-THAN SIGN
    3F |  0000061F | ARABIC QUESTION MARK
    40 |  00000040 | COMMERCIAL AT
    41 |  00000621 | ARABIC LETTER HAMZA
    42 |  00000622 | ARABIC LETTER ALEF WITH MADDA ABOVE
    43 |  00000623 | ARABIC LETTER ALEF WITH HAMZA ABOVE
    44 |  00000624 | ARABIC LETTER WAW WITH HAMZA ABOVE
    45 |  00000625 | ARABIC LETTER ALEF WITH HAMZA BELOW
    46 |  00000626 | ARABIC LETTER YEH WITH HAMZA ABOVE
    47 |  00000627 | ARABIC LETTER ALEF
    48 |  00000628 | ARABIC LETTER BEH
    49 |  00000629 | ARABIC LETTER TEH MARBUTA
    4A |  0000062A | ARABIC LETTER TEH
    4B |  0000062B | ARABIC LETTER THEH
    4C |  0000062C | ARABIC LETTER JEEM
    4D |  0000062D | ARABIC LETTER HAH
    4E |  0000062E | ARABIC LETTER KHAH
    4F |  0000062F | ARABIC LETTER DAL
    50 |  00000630 | ARABIC LETTER THAL
    51 |  00000631 | ARABIC LETTER REH
    52 |  00000632 | ARABIC LETTER ZAIN
    53 |  00000633 | ARABIC LETTER SEEN
    54 |  00000634 | ARABIC LETTER SHEEN
    55 |  00000635 | ARABIC LETTER SAD
    56 |  00000636 | ARABIC LETTER DAD
    57 |  00000637 | ARABIC LETTER TAH
    58 |  00000638 | ARABIC LETTER ZAH
    59 |  00000639 | ARABIC LETTER AIN
    5A |  0000063A | ARABIC LETTER GHAIN
    5B |  0000005B | LEFT SQUARE BRACKET
    5C |  0000005C | REVERSE SOLIDUS
    5D |  0000005D | RIGHT SQUARE BRACKET
    5E |  0000005E | CIRCUMFLEX ACCENT
    5F |  0000005F | LOW LINE
    60 |  00000640 | ARABIC TATWEEL
    61 |  00000641 | ARABIC LETTER FEH
    62 |  00000642 | ARABIC LETTER QAF
    63 |  00000643 | ARABIC LETTER KAF
    64 |  00000644 | ARABIC LETTER LAM
    65 |  00000645 | ARABIC LETTER MEEM
    66 |  00000646 | ARABIC LETTER NOON
    67 |  00000647 | ARABIC LETTER HEH
    68 |  00000648 | ARABIC LETTER WAW
    69 |  00000649 | ARABIC LETTER ALEF MAKSURA
    6A |  0000064A | ARABIC LETTER YEH
    6B |  0000064B | ARABIC FATHATAN
    6C |  0000064C | ARABIC DAMMATAN
    6D |  0000064D | ARABIC KASRATAN
    6E |  0000064E | ARABIC FATHA
    6F |  0000064F | ARABIC DAMMA
    70 |  00000650 | ARABIC KASRA
    71 |  00000651 | ARABIC SHADDA
    72 |  00000652 | ARABIC SUKUN
    7B |  0000007B | LEFT CURLY BRACKET
    7C |  0000007C | VERTICAL LINE
    7D |  0000007D | RIGHT CURLY BRACKET
    7E |  0000203E | OVERLINE
    7F |  0000007F | DELETE (DEL)

=head1 AUTHOR

Copyright (C) 2002-2009, Guido Flohr E<lt>guido@imperia.netE<gt>, all
rights reserved.  See the source code for details.

This software is contributed to the Perl community by Imperia
(L<http://www.imperia.net/>).

=head1 SEE ALSO

Locale::RecodeData(3), Locale::Recode(3), perl(1)

=cut
Local Variables:
mode: perl
perl-indent-level: 4
perl-continued-statement-offset: 4
perl-continued-brace-offset: 0
perl-brace-offset: -4
perl-brace-imaginary-offset: 0
perl-label-offset: -4
cperl-indent-level: 4
cperl-continued-statement-offset: 2
tab-width: 4
End:
=cut


code:
#! /bin/false
# vim: set autoindent shiftwidth=4 tabstop=4:
# $Id: ATARI_ST.pm,v 1.1 2011-10-12 23:51:27 pertusus Exp $

# Conversion routines for ATARI-ST.
# Copyright (C) 2002-2009 Guido Flohr <guido@imperia.net>, all
# rights reserved.
# This file is generated, do not edit!

# This program is free software; you can redistribute it and/or modify it
# under the terms of the GNU Library General Public License as published
# by the Free Software Foundation; either version 2, or (at your option)
# any later version.

# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
# Library General Public License for more details.

# You should have received a copy of the GNU Library General Public
# License along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
# USA.

package Locale::RecodeData::ATARI_ST;

use strict;

require Locale::RecodeData;
use base qw(Locale::RecodeData);

my @to_ucs4 = (
    0x0000,
    0x0001,
    0x0002,
    0x0003,
    0x0004,
    0x0005,
    0x0006,
    0x0007,
    0x0008,
    0x0009,
    0x000a,
    0x000b,
    0x000c,
    0x000d,
    0x000e,
    0x000f,
    0x0010,
    0x0011,
    0x0012,
    0x0013,
    0x0014,
    0x0015,
    0x0016,
    0x0017,
    0x0018,
    0x0019,
    0x001a,
    0x001b,
    0x001c,
    0x001d,
    0x001e,
    0x001f,
    0x0020,
    0x0021,
    0x0022,
    0x0023,
    0x0024,
    0x0025,
    0x0026,
    0x0027,
    0x0028,
    0x0029,
    0x002a,
    0x002b,
    0x002c,
    0x002d,
    0x002e,
    0x002f,
    0x0030,
    0x0031,
    0x0032,
    0x0033,
    0x0034,
    0x0035,
    0x0036,
    0x0037,
    0x0038,
    0x0039,
    0x003a,
    0x003b,
    0x003c,
    0x003d,
    0x003e,
    0x003f,
    0x0040,
    0x0041,
    0x0042,
    0x0043,
    0x0044,
    0x0045,
    0x0046,
    0x0047,
    0x0048,
    0x0049,
    0x004a,
    0x004b,
    0x004c,
    0x004d,
    0x004e,
    0x004f,
    0x0050,
    0x0051,
    0x0052,
    0x0053,
    0x0054,
    0x0055,
    0x0056,
    0x0057,
    0x0058,
    0x0059,
    0x005a,
    0x005b,
    0x005c,
    0x005d,
    0x005e,
    0x005f,
    0x0060,
    0x0061,
    0x0062,
    0x0063,
    0x0064,
    0x0065,
    0x0066,
    0x0067,
    0x0068,
    0x0069,
    0x006a,
    0x006b,
    0x006c,
    0x006d,
    0x006e,
    0x006f,
    0x0070,
    0x0071,
    0x0072,
    0x0073,
    0x0074,
    0x0075,
    0x0076,
    0x0077,
    0x0078,
    0x0079,
    0x007a,
    0x007b,
    0x007c,
    0x007d,
    0x007e,
    0x007f,
    0x00c7,
    0x00fc,
    0x00e9,
    0x00e2,
    0x00e4,
    0x00e0,
    0x00e5,
    0x00e7,
    0x00ea,
    0x00eb,
    0x00e8,
    0x00ef,
    0x00ee,
    0x00ec,
    0x00c4,
    0x00c5,
    0x00c9,
    0x00e6,
    0x00c6,
    0x00f4,
    0x00f6,
    0x00f2,
    0x00fb,
    0x00f9,
    0x00ff,
    0x00d6,
    0x00dc,
    0x00a2,
    0x00a3,
    0x00a5,
    0x00df,
    0x0192,
    0x00e1,
    0x00ed,
    0x00f3,
    0x00fa,
    0x00f1,
    0x00d1,
    0x00aa,
    0x00ba,
    0x00bf,
    0x2310,
    0x00ac,
    0x00bd,
    0x00bc,
    0x00a1,
    0x00ab,
    0x00bb,
    0x00e3,
    0x00f5,
    0x00d8,
    0x00f8,
    0x0153,
    0x0152,
    0x00c0,
    0x00c3,
    0x00d5,
    0x00a8,
    0x00b4,
    0x2020,
    0x00b6,
    0x00a9,
    0x00ae,
    0x2122,
    0x0133,
    0x0132,
    0x05d0,
    0x05d1,
    0x05d2,
    0x05d3,
    0x05d4,
    0x05d5,
    0x05d6,
    0x05d7,
    0x05d8,
    0x05d9,
    0x05db,
    0x05dc,
    0x05de,
    0x05e0,
    0x05e1,
    0x05e2,
    0x05e4,
    0x05e6,
    0x05e7,
    0x05e8,
    0x05e9,
    0x05ea,
    0x05df,
    0x05da,
    0x05dd,
    0x05e3,
    0x05e5,
    0x00a7,
    0x2038,
    0x221e,
    0x03b1,
    0x03b2,
    0x0393,
    0x03c0,
    0x03a3,
    0x03c3,
    0x00b5,
    0x03c4,
    0x03a6,
    0x03b8,
    0x03a9,
    0x03b4,
    0x222e,
    0x03c6,
    0x2208,
    0x220f,
    0x2261,
    0x00b1,
    0x2265,
    0x2264,
    0x2320,
    0x2321,
    0x00f7,
    0x2248,
    0x00b0,
    0x2022,
    0x00b7,
    0x221a,
    0x207f,
    0x00b2,
    0x00b3,
    0x00af,
);

my @to_utf8 = (
    "\x00",
    "\x01",
    "\x02",
    "\x03",
    "\x04",
    "\x05",
    "\x06",
    "\x07",
    "\x08",
    "\x09",
    "\x0a",
    "\x0b",
    "\x0c",
    "\x0d",
    "\x0e",
    "\x0f",
    "\x10",
    "\x11",
    "\x12",
    "\x13",
    "\x14",
    "\x15",
    "\x16",
    "\x17",
    "\x18",
    "\x19",
    "\x1a",
    "\x1b",
    "\x1c",
    "\x1d",
    "\x1e",
    "\x1f",
    "\x20",
    "\x21",
    "\x22",
    "\x23",
    "\x24",
    "\x25",
    "\x26",
    "\x27",
    "\x28",
    "\x29",
    "\x2a",
    "\x2b",
    "\x2c",
    "\x2d",
    "\x2e",
    "\x2f",
    "\x30",
    "\x31",
    "\x32",
    "\x33",
    "\x34",
    "\x35",
    "\x36",
    "\x37",
    "\x38",
    "\x39",
    "\x3a",
    "\x3b",
    "\x3c",
    "\x3d",
    "\x3e",
    "\x3f",
    "\x40",
    "\x41",
    "\x42",
    "\x43",
    "\x44",
    "\x45",
    "\x46",
    "\x47",
    "\x48",
    "\x49",
    "\x4a",
    "\x4b",
    "\x4c",
    "\x4d",
    "\x4e",
    "\x4f",
    "\x50",
    "\x51",
    "\x52",
    "\x53",
    "\x54",
    "\x55",
    "\x56",
    "\x57",
    "\x58",
    "\x59",
    "\x5a",
    "\x5b",
    "\x5c",
    "\x5d",
    "\x5e",
    "\x5f",
    "\x60",
    "\x61",
    "\x62",
    "\x63",
    "\x64",
    "\x65",
    "\x66",
    "\x67",
    "\x68",
    "\x69",
    "\x6a",
    "\x6b",
    "\x6c",
    "\x6d",
    "\x6e",
    "\x6f",
    "\x70",
    "\x71",
    "\x72",
    "\x73",
    "\x74",
    "\x75",
    "\x76",
    "\x77",
    "\x78",
    "\x79",
    "\x7a",
    "\x7b",
    "\x7c",
    "\x7d",
    "\x7e",
    "\x7f",
    "\xc3\x87",
    "\xc3\xbc",
    "\xc3\xa9",
    "\xc3\xa2",
    "\xc3\xa4",
    "\xc3\xa0",
    "\xc3\xa5",
    "\xc3\xa7",
    "\xc3\xaa",
    "\xc3\xab",
    "\xc3\xa8",
    "\xc3\xaf",
    "\xc3\xae",
    "\xc3\xac",
    "\xc3\x84",
    "\xc3\x85",
    "\xc3\x89",
    "\xc3\xa6",
    "\xc3\x86",
    "\xc3\xb4",
    "\xc3\xb6",
    "\xc3\xb2",
    "\xc3\xbb",
    "\xc3\xb9",
    "\xc3\xbf",
    "\xc3\x96",
    "\xc3\x9c",
    "\xc2\xa2",
    "\xc2\xa3",
    "\xc2\xa5",
    "\xc3\x9f",
    "\xc6\x92",
    "\xc3\xa1",
    "\xc3\xad",
    "\xc3\xb3",
    "\xc3\xba",
    "\xc3\xb1",
    "\xc3\x91",
    "\xc2\xaa",
    "\xc2\xba",
    "\xc2\xbf",
    "\xe2\x8c\x90",
    "\xc2\xac",
    "\xc2\xbd",
    "\xc2\xbc",
    "\xc2\xa1",
    "\xc2\xab",
    "\xc2\xbb",
    "\xc3\xa3",
    "\xc3\xb5",
    "\xc3\x98",
    "\xc3\xb8",
    "\xc5\x93",
    "\xc5\x92",
    "\xc3\x80",
    "\xc3\x83",
    "\xc3\x95",
    "\xc2\xa8",
    "\xc2\xb4",
    "\xe2\x80\xa0",
    "\xc2\xb6",
    "\xc2\xa9",
    "\xc2\xae",
    "\xe2\x84\xa2",
    "\xc4\xb3",
    "\xc4\xb2",
    "\xd7\x90",
    "\xd7\x91",
    "\xd7\x92",
    "\xd7\x93",
    "\xd7\x94",
    "\xd7\x95",
    "\xd7\x96",
    "\xd7\x97",
    "\xd7\x98",
    "\xd7\x99",
    "\xd7\x9b",
    "\xd7\x9c",
    "\xd7\x9e",
    "\xd7\xa0",
    "\xd7\xa1",
    "\xd7\xa2",
    "\xd7\xa4",
    "\xd7\xa6",
    "\xd7\xa7",
    "\xd7\xa8",
    "\xd7\xa9",
    "\xd7\xaa",
    "\xd7\x9f",
    "\xd7\x9a",
    "\xd7\x9d",
    "\xd7\xa3",
    "\xd7\xa5",
    "\xc2\xa7",
    "\xe2\x80\xb8",
    "\xe2\x88\x9e",
    "\xce\xb1",
    "\xce\xb2",
    "\xce\x93",
    "\xcf\x80",
    "\xce\xa3",
    "\xcf\x83",
    "\xc2\xb5",
    "\xcf\x84",
    "\xce\xa6",
    "\xce\xb8",
    "\xce\xa9",
    "\xce\xb4",
    "\xe2\x88\xae",
    "\xcf\x86",
    "\xe2\x88\x88",
    "\xe2\x88\x8f",
    "\xe2\x89\xa1",
    "\xc2\xb1",
    "\xe2\x89\xa5",
    "\xe2\x89\xa4",
    "\xe2\x8c\xa0",
    "\xe2\x8c\xa1",
    "\xc3\xb7",
    "\xe2\x89\x88",
    "\xc2\xb0",
    "\xe2\x80\xa2",
    "\xc2\xb7",
    "\xe2\x88\x9a",
    "\xe2\x81\xbf",
    "\xc2\xb2",
    "\xc2\xb3",
    "\xc2\xaf",
);

my %from_ucs4 = (
    0x00000000 => "\x00",
    0x00000001 => "\x01",
    0x00000002 => "\x02",
    0x00000003 => "\x03",
    0x00000004 => "\x04",
    0x00000005 => "\x05",
    0x00000006 => "\x06",
    0x00000007 => "\x07",
    0x00000008 => "\x08",
    0x00000009 => "\x09",
    0x0000000a => "\x0a",
    0x0000000b => "\x0b",
    0x0000000c => "\x0c",
    0x0000000d => "\x0d",
    0x0000000e => "\x0e",
    0x0000000f => "\x0f",
    0x00000010 => "\x10",
    0x00000011 => "\x11",
    0x00000012 => "\x12",
    0x00000013 => "\x13",
    0x00000014 => "\x14",
    0x00000015 => "\x15",
    0x00000016 => "\x16",
    0x00000017 => "\x17",
    0x00000018 => "\x18",
    0x00000019 => "\x19",
    0x0000001a => "\x1a",
    0x0000001b => "\x1b",
    0x0000001c => "\x1c",
    0x0000001d => "\x1d",
    0x0000001e => "\x1e",
    0x0000001f => "\x1f",
    0x00000020 => "\x20",
    0x00000021 => "\x21",
    0x00000022 => "\x22",
    0x00000023 => "\x23",
    0x00000024 => "\x24",
    0x00000025 => "\x25",
    0x00000026 => "\x26",
    0x00000027 => "\x27",
    0x00000028 => "\x28",
    0x00000029 => "\x29",
    0x0000002a => "\x2a",
    0x0000002b => "\x2b",
    0x0000002c => "\x2c",
    0x0000002d => "\x2d",
    0x0000002e => "\x2e",
    0x0000002f => "\x2f",
    0x00000030 => "\x30",
    0x00000031 => "\x31",
    0x00000032 => "\x32",
    0x00000033 => "\x33",
    0x00000034 => "\x34",
    0x00000035 => "\x35",
    0x00000036 => "\x36",
    0x00000037 => "\x37",
    0x00000038 => "\x38",
    0x00000039 => "\x39",
    0x0000003a => "\x3a",
    0x0000003b => "\x3b",
    0x0000003c => "\x3c",
    0x0000003d => "\x3d",
    0x0000003e => "\x3e",
    0x0000003f => "\x3f",
    0x00000040 => "\x40",
    0x00000041 => "\x41",
    0x00000042 => "\x42",
    0x00000043 => "\x43",
    0x00000044 => "\x44",
    0x00000045 => "\x45",
    0x00000046 => "\x46",
    0x00000047 => "\x47",
    0x00000048 => "\x48",
    0x00000049 => "\x49",
    0x0000004a => "\x4a",
    0x0000004b => "\x4b",
    0x0000004c => "\x4c",
    0x0000004d => "\x4d",
    0x0000004e => "\x4e",
    0x0000004f => "\x4f",
    0x00000050 => "\x50",
    0x00000051 => "\x51",
    0x00000052 => "\x52",
    0x00000053 => "\x53",
    0x00000054 => "\x54",
    0x00000055 => "\x55",
    0x00000056 => "\x56",
    0x00000057 => "\x57",
    0x00000058 => "\x58",
    0x00000059 => "\x59",
    0x0000005a => "\x5a",
    0x0000005b => "\x5b",
    0x0000005c => "\x5c",
    0x0000005d => "\x5d",
    0x0000005e => "\x5e",
    0x0000005f => "\x5f",
    0x00000060 => "\x60",
    0x00000061 => "\x61",
    0x00000062 => "\x62",
    0x00000063 => "\x63",
    0x00000064 => "\x64",
    0x00000065 => "\x65",
    0x00000066 => "\x66",
    0x00000067 => "\x67",
    0x00000068 => "\x68",
    0x00000069 => "\x69",
    0x0000006a => "\x6a",
    0x0000006b => "\x6b",
    0x0000006c => "\x6c",
    0x0000006d => "\x6d",
    0x0000006e => "\x6e",
    0x0000006f => "\x6f",
    0x00000070 => "\x70",
    0x00000071 => "\x71",
    0x00000072 => "\x72",
    0x00000073 => "\x73",
    0x00000074 => "\x74",
    0x00000075 => "\x75",
    0x00000076 => "\x76",
    0x00000077 => "\x77",
    0x00000078 => "\x78",
    0x00000079 => "\x79",
    0x0000007a => "\x7a",
    0x0000007b => "\x7b",
    0x0000007c => "\x7c",
    0x0000007d => "\x7d",
    0x0000007e => "\x7e",
    0x0000007f => "\x7f",
    0x000000a1 => "\xad",
    0x000000a2 => "\x9b",
    0x000000a3 => "\x9c",
    0x000000a5 => "\x9d",
    0x000000a7 => "\xdd",
    0x000000a8 => "\xb9",
    0x000000a9 => "\xbd",
    0x000000aa => "\xa6",
    0x000000ab => "\xae",
    0x000000ac => "\xaa",
    0x000000ae => "\xbe",
    0x000000af => "\xff",
    0x000000b0 => "\xf8",
    0x000000b1 => "\xf1",
    0x000000b2 => "\xfd",
    0x000000b3 => "\xfe",
    0x000000b4 => "\xba",
    0x000000b5 => "\xe6",
    0x000000b6 => "\xbc",
    0x000000b7 => "\xfa",
    0x000000ba => "\xa7",
    0x000000bb => "\xaf",
    0x000000bc => "\xac",
    0x000000bd => "\xab",
    0x000000bf => "\xa8",
    0x000000c0 => "\xb6",
    0x000000c3 => "\xb7",
    0x000000c4 => "\x8e",
    0x000000c5 => "\x8f",
    0x000000c6 => "\x92",
    0x000000c7 => "\x80",
    0x000000c9 => "\x90",
    0x000000d1 => "\xa5",
    0x000000d5 => "\xb8",
    0x000000d6 => "\x99",
    0x000000d8 => "\xb2",
    0x000000dc => "\x9a",
    0x000000df => "\x9e",
    0x000000e0 => "\x85",
    0x000000e1 => "\xa0",
    0x000000e2 => "\x83",
    0x000000e3 => "\xb0",
    0x000000e4 => "\x84",
    0x000000e5 => "\x86",
    0x000000e6 => "\x91",
    0x000000e7 => "\x87",
    0x000000e8 => "\x8a",
    0x000000e9 => "\x82",
    0x000000ea => "\x88",
    0x000000eb => "\x89",
    0x000000ec => "\x8d",
    0x000000ed => "\xa1",
    0x000000ee => "\x8c",
    0x000000ef => "\x8b",
    0x000000f1 => "\xa4",
    0x000000f2 => "\x95",
    0x000000f3 => "\xa2",
    0x000000f4 => "\x93",
    0x000000f5 => "\xb1",
    0x000000f6 => "\x94",
    0x000000f7 => "\xf6",
    0x000000f8 => "\xb3",
    0x000000f9 => "\x97",
    0x000000fa => "\xa3",
    0x000000fb => "\x96",
    0x000000fc => "\x81",
    0x000000ff => "\x98",
    0x00000132 => "\xc1",
    0x00000133 => "\xc0",
    0x00000152 => "\xb5",
    0x00000153 => "\xb4",
    0x00000192 => "\x9f",
    0x00000393 => "\xe2",
    0x000003a3 => "\xe4",
    0x000003a6 => "\xe8",
    0x000003a9 => "\xea",
    0x000003b1 => "\xe0",
    0x000003b2 => "\xe1",
    0x000003b4 => "\xeb",
    0x000003b8 => "\xe9",
    0x000003c0 => "\xe3",
    0x000003c3 => "\xe5",
    0x000003c4 => "\xe7",
    0x000003c6 => "\xed",
    0x000005d0 => "\xc2",
    0x000005d1 => "\xc3",
    0x000005d2 => "\xc4",
    0x000005d3 => "\xc5",
    0x000005d4 => "\xc6",
    0x000005d5 => "\xc7",
    0x000005d6 => "\xc8",
    0x000005d7 => "\xc9",
    0x000005d8 => "\xca",
    0x000005d9 => "\xcb",
    0x000005da => "\xd9",
    0x000005db => "\xcc",
    0x000005dc => "\xcd",
    0x000005dd => "\xda",
    0x000005de => "\xce",
    0x000005df => "\xd8",
    0x000005e0 => "\xcf",
    0x000005e1 => "\xd0",
    0x000005e2 => "\xd1",
    0x000005e3 => "\xdb",
    0x000005e4 => "\xd2",
    0x000005e5 => "\xdc",
    0x000005e6 => "\xd3",
    0x000005e7 => "\xd4",
    0x000005e8 => "\xd5",
    0x000005e9 => "\xd6",
    0x000005ea => "\xd7",
    0x00002020 => "\xbb",
    0x00002022 => "\xf9",
    0x00002038 => "\xde",
    0x0000207f => "\xfc",
    0x00002122 => "\xbf",
    0x00002208 => "\xee",
    0x0000220f => "\xef",
    0x0000221a => "\xfb",
    0x0000221e => "\xdf",
    0x0000222e => "\xec",
    0x00002248 => "\xf7",
    0x00002261 => "\xf0",
    0x00002264 => "\xf3",
    0x00002265 => "\xf2",
    0x00002310 => "\xa9",
    0x00002320 => "\xf4",
    0x00002321 => "\xf5",
);

sub _recode
{
    if ($_[0]->{_from} eq 'INTERNAL') {
		$_[1] = join '',
	        map $from_ucs4{$_}
                || (defined $from_ucs4{$_} ? $from_ucs4{$_} : "\x3f"),
		    @{$_[1]};
    } elsif ($_[0]->{_to} eq 'UTF-8',) {
		$_[1] = join '', map $to_utf8[$_], unpack 'C*', $_[1];
    } else {
		$_[1] = [ map
				  $to_ucs4[$_],
				  unpack 'C*', $_[1]
				  ];
    }

    return 1;
}

1;

__END__

=head1 NAME

Locale::RecodeData::ATARI_ST - Conversion routines for ATARI-ST

=head1 SYNOPSIS

This module is internal to libintl.  Do not use directly!

=head1 DESCRIPTION

This module is generated and contains the conversion tables and
routines for ATARI-ST.

=head1 COMMENTS

The following comments have been extracted from the original charmap:

 version: 1.1
  source: Guido Flohr E<lt>guido@imperia.netE<gt>
 alias ATARIST
 alias X-ATARIST
 alias X-ATARI-ST

Please note that aliases listed above are not necessarily valid!

=head1 CHARACTER TABLE

The following table is sorted in the same order as the original charmap.
All character codes are in hexadecimal.  Please read 'ISO-10646' as
'ISO-10646-UCS4'.

 Local | ISO-10646 | Description
-------+-----------+-------------------------------------------------
    00 |  00000000 | NULL (NUL)
    01 |  00000001 | START OF HEADING (SOH)
    02 |  00000002 | START OF TEXT (STX)
    03 |  00000003 | END OF TEXT (ETX)
    04 |  00000004 | END OF TRANSMISSION (EOT)
    05 |  00000005 | ENQUIRY (ENQ)
    06 |  00000006 | ACKNOWLEDGE (ACK)
    07 |  00000007 | BELL (BEL)
    08 |  00000008 | BACKSPACE (BS)
    09 |  00000009 | CHARACTER TABULATION (HT)
    0A |  0000000A | LINE FEED (LF)
    0B |  0000000B | LINE TABULATION (VT)
    0C |  0000000C | FORM FEED (FF)
    0D |  0000000D | CARRIAGE RETURN (CR)
    0E |  0000000E | SHIFT OUT (SO)
    0F |  0000000F | SHIFT IN (SI)
    10 |  00000010 | DATALINK ESCAPE (DLE)
    11 |  00000011 | DEVICE CONTROL ONE (DC1)
    12 |  00000012 | DEVICE CONTROL TWO (DC2)
    13 |  00000013 | DEVICE CONTROL THREE (DC3)
    14 |  00000014 | DEVICE CONTROL FOUR (DC4)
    15 |  00000015 | NEGATIVE ACKNOWLEDGE (NAK)
    16 |  00000016 | SYNCHRONOUS IDLE (SYN)
    17 |  00000017 | END OF TRANSMISSION BLOCK (ETB)
    18 |  00000018 | CANCEL (CAN)
    19 |  00000019 | END OF MEDIUM (EM)
    1A |  0000001A | SUBSTITUTE (SUB)
    1B |  0000001B | ESCAPE (ESC)
    1C |  0000001C | FILE SEPARATOR (IS4)
    1D |  0000001D | GROUP SEPARATOR (IS3)
    1E |  0000001E | RECORD SEPARATOR (IS2)
    1F |  0000001F | UNIT SEPARATOR (IS1)
    20 |  00000020 | SPACE
    21 |  00000021 | EXCLAMATION MARK
    22 |  00000022 | QUOTATION MARK
    23 |  00000023 | NUMBER SIGN
    24 |  00000024 | DOLLAR SIGN
    25 |  00000025 | PERCENT SIGN
    26 |  00000026 | AMPERSAND
    27 |  00000027 | APOSTROPHE
    28 |  00000028 | LEFT PARENTHESIS
    29 |  00000029 | RIGHT PARENTHESIS
    2A |  0000002A | ASTERISK
    2B |  0000002B | PLUS SIGN
    2C |  0000002C | COMMA
    2D |  0000002D | HYPHEN-MINUS
    2E |  0000002E | FULL STOP
    2F |  0000002F | SOLIDUS
    30 |  00000030 | DIGIT ZERO
    31 |  00000031 | DIGIT ONE
    32 |  00000032 | DIGIT TWO
    33 |  00000033 | DIGIT THREE
    34 |  00000034 | DIGIT FOUR
    35 |  00000035 | DIGIT FIVE
    36 |  00000036 | DIGIT SIX
    37 |  00000037 | DIGIT SEVEN
    38 |  00000038 | DIGIT EIGHT
    39 |  00000039 | DIGIT NINE
    3A |  0000003A | COLON
    3B |  0000003B | SEMICOLON
    3C |  0000003C | LESS-THAN SIGN
    3D |  0000003D | EQUALS SIGN
    3E |  0000003E | GREATER-THAN SIGN
    3F |  0000003F | QUESTION MARK
    40 |  00000040 | COMMERCIAL AT
    41 |  00000041 | LATIN CAPITAL LETTER A
    42 |  00000042 | LATIN CAPITAL LETTER B
    43 |  00000043 | LATIN CAPITAL LETTER C
    44 |  00000044 | LATIN CAPITAL LETTER D
    45 |  00000045 | LATIN CAPITAL LETTER E
    46 |  00000046 | LATIN CAPITAL LETTER F
    47 |  00000047 | LATIN CAPITAL LETTER G
    48 |  00000048 | LATIN CAPITAL LETTER H
    49 |  00000049 | LATIN CAPITAL LETTER I
    4A |  0000004A | LATIN CAPITAL LETTER J
    4B |  0000004B | LATIN CAPITAL LETTER K
    4C |  0000004C | LATIN CAPITAL LETTER L
    4D |  0000004D | LATIN CAPITAL LETTER M
    4E |  0000004E | LATIN CAPITAL LETTER N
    4F |  0000004F | LATIN CAPITAL LETTER O
    50 |  00000050 | LATIN CAPITAL LETTER P
    51 |  00000051 | LATIN CAPITAL LETTER Q
    52 |  00000052 | LATIN CAPITAL LETTER R
    53 |  00000053 | LATIN CAPITAL LETTER S
    54 |  00000054 | LATIN CAPITAL LETTER T
    55 |  00000055 | LATIN CAPITAL LETTER U
    56 |  00000056 | LATIN CAPITAL LETTER V
    57 |  00000057 | LATIN CAPITAL LETTER W
    58 |  00000058 | LATIN CAPITAL LETTER X
    59 |  00000059 | LATIN CAPITAL LETTER Y
    5A |  0000005A | LATIN CAPITAL LETTER Z
    5B |  0000005B | LEFT SQUARE BRACKET
    5C |  0000005C | REVERSE SOLIDUS
    5D |  0000005D | RIGHT SQUARE BRACKET
    5E |  0000005E | CIRCUMFLEX ACCENT
    5F |  0000005F | LOW LINE
    60 |  00000060 | GRAVE ACCENT
    61 |  00000061 | LATIN SMALL LETTER A
    62 |  00000062 | LATIN SMALL LETTER B
    63 |  00000063 | LATIN SMALL LETTER C
    64 |  00000064 | LATIN SMALL LETTER D
    65 |  00000065 | LATIN SMALL LETTER E
    66 |  00000066 | LATIN SMALL LETTER F
    67 |  00000067 | LATIN SMALL LETTER G
    68 |  00000068 | LATIN SMALL LETTER H
    69 |  00000069 | LATIN SMALL LETTER I
    6A |  0000006A | LATIN SMALL LETTER J
    6B |  0000006B | LATIN SMALL LETTER K
    6C |  0000006C | LATIN SMALL LETTER L
    6D |  0000006D | LATIN SMALL LETTER M
    6E |  0000006E | LATIN SMALL LETTER N
    6F |  0000006F | LATIN SMALL LETTER O
    70 |  00000070 | LATIN SMALL LETTER P
    71 |  00000071 | LATIN SMALL LETTER Q
    72 |  00000072 | LATIN SMALL LETTER R
    73 |  00000073 | LATIN SMALL LETTER S
    74 |  00000074 | LATIN SMALL LETTER T
    75 |  00000075 | LATIN SMALL LETTER U
    76 |  00000076 | LATIN SMALL LETTER V
    77 |  00000077 | LATIN SMALL LETTER W
    78 |  00000078 | LATIN SMALL LETTER X
    79 |  00000079 | LATIN SMALL LETTER Y
    7A |  0000007A | LATIN SMALL LETTER Z
    7B |  0000007B | LEFT CURLY BRACKET
    7C |  0000007C | VERTICAL LINE
    7D |  0000007D | RIGHT CURLY BRACKET
    7E |  0000007E | TILDE
    7F |  0000007F | DELETE
    80 |  000000C7 | LATIN CAPITAL LETTER C WITH CEDILLA
    81 |  000000FC | LATIN SMALL LETTER U WITH DIAERESIS
    82 |  000000E9 | LATIN SMALL LETTER E WITH ACUTE
    83 |  000000E2 | LATIN SMALL LETTER A WITH CIRCUMFLEX
    84 |  000000E4 | LATIN SMALL LETTER A WITH DIAERESIS
    85 |  000000E0 | LATIN SMALL LETTER A WITH GRAVE
    86 |  000000E5 | LATIN SMALL LETTER A WITH RING ABOVE
    87 |  000000E7 | LATIN SMALL LETTER C WITH CEDILLA
    88 |  000000EA | LATIN SMALL LETTER E WITH CIRCUMFLEX
    89 |  000000EB | LATIN SMALL LETTER E WITH DIAERESIS
    8A |  000000E8 | LATIN SMALL LETTER E WITH GRAVE
    8B |  000000EF | LATIN SMALL LETTER I WITH DIAERESIS
    8C |  000000EE | LATIN SMALL LETTER I WITH CIRCUMFLEX
    8D |  000000EC | LATIN SMALL LETTER I WITH GRAVE
    8E |  000000C4 | LATIN CAPITAL LETTER A WITH DIAERESIS
    8F |  000000C5 | LATIN CAPITAL LETTER A WITH RING ABOVE
    90 |  000000C9 | LATIN CAPITAL LETTER E WITH ACUTE
    91 |  000000E6 | LATIN SMALL LETTER AE
    92 |  000000C6 | LATIN CAPITAL LETTER AE
    93 |  000000F4 | LATIN SMALL LETTER O WITH CIRCUMFLEX
    94 |  000000F6 | LATIN SMALL LETTER O WITH DIAERESIS
    95 |  000000F2 | LATIN SMALL LETTER O WITH GRAVE
    96 |  000000FB | LATIN SMALL LETTER U WITH CIRCUMFLEX
    97 |  000000F9 | LATIN SMALL LETTER U WITH GRAVE
    98 |  000000FF | LATIN SMALL LETTER Y WITH DIAERESIS
    99 |  000000D6 | LATIN CAPITAL LETTER O WITH DIAERESIS
    9A |  000000DC | LATIN CAPITAL LETTER U WITH DIAERESIS
    9B |  000000A2 | CENT SIGN
    9C |  000000A3 | POUND SIGN
    9D |  000000A5 | YEN SIGN
    9E |  000000DF | LATIN SMALL LETTER SHARP S
    9F |  00000192 | LATIN SMALL LETTER F WITH HOOK
    A0 |  000000E1 | LATIN SMALL LETTER A WITH ACUTE
    A1 |  000000ED | LATIN SMALL LETTER I WITH ACUTE
    A2 |  000000F3 | LATIN SMALL LETTER O WITH ACUTE
    A3 |  000000FA | LATIN SMALL LETTER U WITH ACUTE
    A4 |  000000F1 | LATIN SMALL LETTER N WITH TILDE
    A5 |  000000D1 | LATIN CAPITAL LETTER N WITH TILDE
    A6 |  000000AA | FEMININE ORDINAL INDICATOR
    A7 |  000000BA | MASCULINE ORDINAL INDICATOR
    A8 |  000000BF | INVERTED QUESTION MARK
    A9 |  00002310 | REVERSED NOT SIGN
    AA |  000000AC | NOT SIGN
    AB |  000000BD | VULGAR FRACTION ONE HALF
    AC |  000000BC | VULGAR FRACTION ONE QUARTER
    AD |  000000A1 | INVERTED EXCLAMATION MARK
    AE |  000000AB | LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
    AF |  000000BB | RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
    B0 |  000000E3 | LATIN SMALL LETTER A WITH TILDE
    B1 |  000000F5 | LATIN SMALL LETTER O WITH TILDE
    B2 |  000000D8 | LATIN CAPITAL LETTER O WITH STROKE
    B3 |  000000F8 | LATIN SMALL LETTER O WITH STROKE
    B4 |  00000153 | LATIN SMALL LIGATURE OE
    B5 |  00000152 | LATIN CAPITAL LIGATURE OE
    B6 |  000000C0 | LATIN CAPITAL LETTER A WITH GRAVE
    B7 |  000000C3 | LATIN CAPITAL LETTER A WITH TILDE
    B8 |  000000D5 | LATIN CAPITAL LETTER O WITH TILDE
    B9 |  000000A8 | DIAERESIS
    BA |  000000B4 | ACUTE ACCENT
    BB |  00002020 | DAGGER
    BC |  000000B6 | PILCROW SIGN
    BD |  000000A9 | COPYRIGHT SIGN
    BE |  000000AE | REGISTERED SIGN
    BF |  00002122 | TRADE MARK SIGN
    C0 |  00000133 | LATIN SMALL LIGATURE IJ
    C1 |  00000132 | LATIN CAPITAL LIGATURE IJ
    C2 |  000005D0 | HEBREW LETTER ALEF
    C3 |  000005D1 | HEBREW LETTER BET
    C4 |  000005D2 | HEBREW LETTER GIMEL
    C5 |  000005D3 | HEBREW LETTER DALET
    C6 |  000005D4 | HEBREW LETTER HE
    C7 |  000005D5 | HEBREW LETTER VAV
    C8 |  000005D6 | HEBREW LETTER ZAYIN
    C9 |  000005D7 | HEBREW LETTER HET
    CA |  000005D8 | HEBREW LETTER TET
    CB |  000005D9 | HEBREW LETTER YOD
    CC |  000005DB | HEBREW LETTER KAF
    CD |  000005DC | HEBREW LETTER LAMED
    CE |  000005DE | HEBREW LETTER MEM
    CF |  000005E0 | HEBREW LETTER NUN
    D0 |  000005E1 | HEBREW LETTER SAMEKH
    D1 |  000005E2 | HEBREW LETTER AYIN
    D2 |  000005E4 | HEBREW LETTER PE
    D3 |  000005E6 | HEBREW LETTER TSADI
    D4 |  000005E7 | HEBREW LETTER QOF
    D5 |  000005E8 | HEBREW LETTER RESH
    D6 |  000005E9 | HEBREW LETTER SHIN
    D7 |  000005EA | HEBREW LETTER TAV
    D8 |  000005DF | HEBREW LETTER FINAL NUN
    D9 |  000005DA | HEBREW LETTER FINAL KAF
    DA |  000005DD | HEBREW LETTER FINAL MEM
    DB |  000005E3 | HEBREW LETTER FINAL PE
    DC |  000005E5 | HEBREW LETTER FINAL TSADI
    DD |  000000A7 | SECTION SIGN
    DE |  00002038 | CARET
    DF |  0000221E | INFINITY
    E0 |  000003B1 | GREEK SMALL LETTER ALPHA
    E1 |  000003B2 | GREEK SMALL LETTER BETA
    E2 |  00000393 | GREEK CAPITAL LETTER GAMMA
    E3 |  000003C0 | GREEK SMALL LETTER PI
    E4 |  000003A3 | GREEK CAPITAL LETTER SIGMA
    E5 |  000003C3 | GREEK SMALL LETTER SIGMA
    E6 |  000000B5 | MICRO SIGN
    E7 |  000003C4 | GREEK SMALL LETTER TAU
    E8 |  000003A6 | GREEK CAPITAL LETTER PHI
    E9 |  000003B8 | GREEK SMALL LETTER THETA
    EA |  000003A9 | GREEK CAPITAL LETTER OMEGA
    EB |  000003B4 | GREEK SMALL LETTER DELTA
    EC |  0000222E | CONTOUR INTEGRAL
    ED |  000003C6 | GREEK SMALL LETTER PHI
    EE |  00002208 | ELEMENT OF
    EF |  0000220F | N-ARY PRODUCT
    F0 |  00002261 | IDENTICAL TO
    F1 |  000000B1 | PLUS-MINUS SIGN
    F2 |  00002265 | GREATER-THAN OR EQUAL TO
    F3 |  00002264 | LESS-THAN OR EQUAL TO
    F4 |  00002320 | TOP HALF INTEGRAL
    F5 |  00002321 | BOTTOM HALF INTEGRAL
    F6 |  000000F7 | DIVISION SIGN
    F7 |  00002248 | ALMOST EQUAL TO
    F8 |  000000B0 | DEGREE SIGN
    F9 |  00002022 | BULLET
    FA |  000000B7 | MIDDLE DOT
    FB |  0000221A | SQUARE ROOT
    FC |  0000207F | SUPERSCRIPT LATIN SMALL LETTER N
    FD |  000000B2 | SUPERSCRIPT TWO
    FE |  000000B3 | SUPERSCRIPT THREE
    FF |  000000AF | MACRON

=head1 AUTHOR

Copyright (C) 2002-2009, Guido Flohr E<lt>guido@imperia.netE<gt>, all
rights reserved.  See the source code for details.

This software is contributed to the Perl community by Imperia
(L<http://www.imperia.net/>).

=head1 SEE ALSO

Locale::RecodeData(3), Locale::Recode(3), perl(1)

=cut
Local Variables:
mode: perl
perl-indent-level: 4
perl-continued-statement-offset: 4
perl-continued-brace-offset: 0
perl-brace-offset: -4
perl-brace-imaginary-offset: 0
perl-label-offset: -4
cperl-indent-level: 4
cperl-continued-statement-offset: 2
tab-width: 4
End:
=cut