URL
https://opencores.org/ocsvn/openrisc/openrisc/trunk
Subversion Repositories openrisc
Compare Revisions
- This comparison shows the changes necessary to convert path
/openrisc/trunk/gnu-dev/or1k-gcc/libjava/include
- from Rev 753 to Rev 757
- ↔ Reverse comparison
Rev 753 → Rev 757
/java-cpool.h
0,0 → 1,134
// java-cpool.h - Constant pool parsing header. -*- c++ -*- |
|
/* Copyright (C) 1999, 2000 Free Software Foundation |
|
This file is part of libgcj. |
|
This software is copyrighted work licensed under the terms of the |
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for |
details. */ |
|
#ifndef __JAVA_CPOOL_H__ |
#define __JAVA_CPOOL_H__ |
|
#include <gcj/javaprims.h> |
|
// we rename these, to avoid polluting the name space |
#define JV_CONSTANT_Undefined (0L) |
#define JV_CONSTANT_Utf8 (1L) |
#define JV_CONSTANT_Unicode (2L) |
#define JV_CONSTANT_Integer (3L) |
#define JV_CONSTANT_Float (4L) |
#define JV_CONSTANT_Long (5L) |
#define JV_CONSTANT_Double (6L) |
#define JV_CONSTANT_Class (7L) |
#define JV_CONSTANT_String (8L) |
#define JV_CONSTANT_Fieldref (9L) |
#define JV_CONSTANT_Methodref (10L) |
#define JV_CONSTANT_InterfaceMethodref (11L) |
#define JV_CONSTANT_NameAndType (12L) |
#define JV_CONSTANT_ResolvedFlag (16L) |
#define JV_CONSTANT_LazyFlag (32L) |
#define JV_CONSTANT_ResolvedString (16L | 8L) |
#define JV_CONSTANT_ResolvedClass (16L | 7L) |
|
extern inline void |
_Jv_storeIndexes (_Jv_word *data, |
_Jv_ushort index0, |
_Jv_ushort index1) |
{ |
data->i = (((jint)index0) << 16) | (jint) index1; |
} |
|
extern inline void |
_Jv_loadIndexes (const _Jv_word *data, |
_Jv_ushort& index0, |
_Jv_ushort& index1) |
{ |
jint udata = data->i; |
|
_Jv_uint uindex0 = ((udata >> 16) & 0xffff); |
_Jv_uint uindex1 = udata & 0xffff; |
|
index0 = uindex0; |
index1 = uindex1; |
} |
|
extern inline void |
_Jv_storeFloat (_Jv_word *data, jfloat f) |
{ |
data->f = f; |
} |
|
extern inline jfloat |
_Jv_loadFloat (_Jv_word *data) |
{ |
return data->f; |
} |
|
extern inline void |
_Jv_storeInt (_Jv_word *data, jint i) |
{ |
data->i = i; |
} |
|
extern inline jint |
_Jv_loadInt (_Jv_word *data) |
{ |
return data->i; |
} |
|
extern inline void |
_Jv_storeLong (_Jv_word *data, jlong l) |
{ |
#if SIZEOF_VOID_P == 8 |
data[0].l = l; |
#else |
_Jv_word2 tmp; |
tmp.l = l; |
data[0].ia[0] = tmp.ia[0]; |
data[1].ia[0] = tmp.ia[1]; |
#endif |
} |
|
extern inline jlong |
_Jv_loadLong (_Jv_word *data) |
{ |
#if SIZEOF_VOID_P == 8 |
return data -> l; |
#else |
_Jv_word2 tmp; |
tmp.ia[0] = data[0].ia[0]; |
tmp.ia[1] = data[1].ia[0]; |
return tmp.l; |
#endif |
} |
|
extern inline void |
_Jv_storeDouble (_Jv_word *data, jdouble d) |
{ |
#if SIZEOF_VOID_P == 8 |
data[0].d = d; |
#else |
_Jv_word2 tmp; |
tmp.d = d; |
data[0].ia[0] = tmp.ia[0]; |
data[1].ia[0] = tmp.ia[1]; |
#endif |
} |
|
extern inline jdouble |
_Jv_loadDouble (_Jv_word *data) |
{ |
#if SIZEOF_VOID_P == 8 |
return data -> d; |
#else |
_Jv_word2 tmp; |
tmp.ia[0] = data[0].ia[0]; |
tmp.ia[1] = data[1].ia[0]; |
return tmp.d; |
#endif |
} |
|
|
#endif /* __JAVA_CPOOL_H__ */ |
/Makefile.in
0,0 → 1,599
# Makefile.in generated by automake 1.11.1 from Makefile.am. |
# @configure_input@ |
|
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, |
# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, |
# Inc. |
# This Makefile.in is free software; the Free Software Foundation |
# gives unlimited permission to copy and/or distribute it, |
# with or without modifications, as long as this notice is preserved. |
|
# This program is distributed in the hope that it will be useful, |
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without |
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A |
# PARTICULAR PURPOSE. |
|
@SET_MAKE@ |
|
VPATH = @srcdir@ |
pkgdatadir = $(datadir)/@PACKAGE@ |
pkgincludedir = $(includedir)/@PACKAGE@ |
pkglibdir = $(libdir)/@PACKAGE@ |
pkglibexecdir = $(libexecdir)/@PACKAGE@ |
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd |
install_sh_DATA = $(install_sh) -c -m 644 |
install_sh_PROGRAM = $(install_sh) -c |
install_sh_SCRIPT = $(install_sh) -c |
INSTALL_HEADER = $(INSTALL_DATA) |
transform = $(program_transform_name) |
NORMAL_INSTALL = : |
PRE_INSTALL = : |
POST_INSTALL = : |
NORMAL_UNINSTALL = : |
PRE_UNINSTALL = : |
POST_UNINSTALL = : |
build_triplet = @build@ |
host_triplet = @host@ |
target_triplet = @target@ |
subdir = include |
DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ |
$(srcdir)/config.h.in $(tool_include__HEADERS) |
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 |
am__aclocal_m4_deps = $(top_srcdir)/libltdl/acinclude.m4 \ |
$(top_srcdir)/../config/acx.m4 \ |
$(top_srcdir)/../config/depstand.m4 \ |
$(top_srcdir)/../config/enable.m4 \ |
$(top_srcdir)/../config/gxx-include-dir.m4 \ |
$(top_srcdir)/../config/iconv.m4 \ |
$(top_srcdir)/../config/lcmessage.m4 \ |
$(top_srcdir)/../config/ld-symbolic.m4 \ |
$(top_srcdir)/../config/lead-dot.m4 \ |
$(top_srcdir)/../config/lib-ld.m4 \ |
$(top_srcdir)/../config/lib-link.m4 \ |
$(top_srcdir)/../config/lib-prefix.m4 \ |
$(top_srcdir)/../config/lthostflags.m4 \ |
$(top_srcdir)/../config/multi.m4 \ |
$(top_srcdir)/../config/no-executables.m4 \ |
$(top_srcdir)/../config/override.m4 \ |
$(top_srcdir)/../config/tls.m4 \ |
$(top_srcdir)/../config/unwind_ipinfo.m4 \ |
$(top_srcdir)/../libtool.m4 $(top_srcdir)/../ltgcc.m4 \ |
$(top_srcdir)/../ltoptions.m4 $(top_srcdir)/../ltsugar.m4 \ |
$(top_srcdir)/../ltversion.m4 $(top_srcdir)/../lt~obsolete.m4 \ |
$(top_srcdir)/mingwld.m4 $(top_srcdir)/pkg.m4 \ |
$(top_srcdir)/shlibpath.m4 $(top_srcdir)/configure.ac |
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ |
$(ACLOCAL_M4) |
CONFIG_HEADER = config.h $(top_builddir)/gcj/libgcj-config.h |
CONFIG_CLEAN_FILES = platform.h java-gc.h java-threads.h java-signal.h \ |
java-signal-aux.h |
CONFIG_CLEAN_VPATH_FILES = |
SOURCES = |
am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; |
am__vpath_adj = case $$p in \ |
$(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ |
*) f=$$p;; \ |
esac; |
am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; |
am__install_max = 40 |
am__nobase_strip_setup = \ |
srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` |
am__nobase_strip = \ |
for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" |
am__nobase_list = $(am__nobase_strip_setup); \ |
for p in $$list; do echo "$$p $$p"; done | \ |
sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ |
$(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ |
if (++n[$$2] == $(am__install_max)) \ |
{ print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ |
END { for (dir in files) print dir, files[dir] }' |
am__base_list = \ |
sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ |
sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' |
am__installdirs = "$(DESTDIR)$(tool_include_dir)" |
HEADERS = $(tool_include__HEADERS) |
ETAGS = etags |
CTAGS = ctags |
ACLOCAL = @ACLOCAL@ |
AMTAR = @AMTAR@ |
ANTLR_JAR = @ANTLR_JAR@ |
AR = @AR@ |
AS = @AS@ |
ATOMICSPEC = @ATOMICSPEC@ |
AUTOCONF = @AUTOCONF@ |
AUTOHEADER = @AUTOHEADER@ |
AUTOMAKE = @AUTOMAKE@ |
AWK = @AWK@ |
BACKTRACESPEC = @BACKTRACESPEC@ |
BUILD_VERSION = @BUILD_VERSION@ |
CC = @CC@ |
CCDEPMODE = @CCDEPMODE@ |
CFLAGS = @CFLAGS@ |
CHECKREFSPEC = @CHECKREFSPEC@ |
CLASSPATH_SEPARATOR = @CLASSPATH_SEPARATOR@ |
CPP = @CPP@ |
CPPFLAGS = @CPPFLAGS@ |
CPU = @CPU@ |
CXX = @CXX@ |
CXXCPP = @CXXCPP@ |
CXXDEPMODE = @CXXDEPMODE@ |
CXXFLAGS = @CXXFLAGS@ |
CYGPATH_W = @CYGPATH_W@ |
DEFS = @DEFS@ |
DEPDIR = @DEPDIR@ |
DIRLTDL = @DIRLTDL@ |
DIVIDESPEC = @DIVIDESPEC@ |
DLLTOOL = @DLLTOOL@ |
DSYMUTIL = @DSYMUTIL@ |
DUMPBIN = @DUMPBIN@ |
ECHO_C = @ECHO_C@ |
ECHO_N = @ECHO_N@ |
ECHO_T = @ECHO_T@ |
ECJ_BUILD_JAR = @ECJ_BUILD_JAR@ |
ECJ_JAR = @ECJ_JAR@ |
EGREP = @EGREP@ |
EXCEPTIONSPEC = @EXCEPTIONSPEC@ |
EXEEXT = @EXEEXT@ |
FGREP = @FGREP@ |
GCC_FOR_ECJX = @GCC_FOR_ECJX@ |
GCC_UNWIND_INCLUDE = @GCC_UNWIND_INCLUDE@ |
GCDEPS = @GCDEPS@ |
GCINCS = @GCINCS@ |
GCJ = @GCJ@ |
GCJDEPMODE = @GCJDEPMODE@ |
GCJFLAGS = @GCJFLAGS@ |
GCJH = @GCJH@ |
GCJVERSION = @GCJVERSION@ |
GCJ_BIN_DIR = @GCJ_BIN_DIR@ |
GCJ_FOR_ECJX = @GCJ_FOR_ECJX@ |
GCLIBS = @GCLIBS@ |
GCSPEC = @GCSPEC@ |
GCTESTSPEC = @GCTESTSPEC@ |
GLIB_CFLAGS = @GLIB_CFLAGS@ |
GLIB_LIBS = @GLIB_LIBS@ |
GREP = @GREP@ |
GTK_CFLAGS = @GTK_CFLAGS@ |
GTK_LIBS = @GTK_LIBS@ |
HASH_SYNC_SPEC = @HASH_SYNC_SPEC@ |
IEEESPEC = @IEEESPEC@ |
INCLTDL = @INCLTDL@ |
INSTALL = @INSTALL@ |
INSTALL_DATA = @INSTALL_DATA@ |
INSTALL_PROGRAM = @INSTALL_PROGRAM@ |
INSTALL_SCRIPT = @INSTALL_SCRIPT@ |
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ |
INTERPRETER = @INTERPRETER@ |
JAR = @JAR@ |
JAVA_HOME = @JAVA_HOME@ |
JAVA_VERSION = @JAVA_VERSION@ |
JC1GCSPEC = @JC1GCSPEC@ |
JRE_BIN_DIR = @JRE_BIN_DIR@ |
JRE_DIR = @JRE_DIR@ |
JRE_LIB_DIR = @JRE_LIB_DIR@ |
JRE_LNK = @JRE_LNK@ |
JVM_JAR_DIR = @JVM_JAR_DIR@ |
JVM_JAR_ROOT_DIR = @JVM_JAR_ROOT_DIR@ |
JVM_ROOT_DIR = @JVM_ROOT_DIR@ |
LD = @LD@ |
LDFLAGS = @LDFLAGS@ |
LDLIBICONV = @LDLIBICONV@ |
LD_FINISH_STATIC_SPEC = @LD_FINISH_STATIC_SPEC@ |
LD_START_STATIC_SPEC = @LD_START_STATIC_SPEC@ |
LIBART_CFLAGS = @LIBART_CFLAGS@ |
LIBART_LIBS = @LIBART_LIBS@ |
LIBDIR = @LIBDIR@ |
LIBFFI = @LIBFFI@ |
LIBFFIINCS = @LIBFFIINCS@ |
LIBGCJDEBUG = @LIBGCJDEBUG@ |
LIBGCJTESTSPEC = @LIBGCJTESTSPEC@ |
LIBGCJ_BC_SPEC = @LIBGCJ_BC_SPEC@ |
LIBGCJ_CFLAGS = @LIBGCJ_CFLAGS@ |
LIBGCJ_CXXFLAGS = @LIBGCJ_CXXFLAGS@ |
LIBGCJ_JAVAFLAGS = @LIBGCJ_JAVAFLAGS@ |
LIBGCJ_LD_EXPORT_ALL = @LIBGCJ_LD_EXPORT_ALL@ |
LIBGCJ_LD_SYMBOLIC = @LIBGCJ_LD_SYMBOLIC@ |
LIBGCJ_LD_SYMBOLIC_FUNCTIONS = @LIBGCJ_LD_SYMBOLIC_FUNCTIONS@ |
LIBGCJ_SPEC = @LIBGCJ_SPEC@ |
LIBGCJ_SUBLIB_CORE_EXTRA_DEPS = @LIBGCJ_SUBLIB_CORE_EXTRA_DEPS@ |
LIBGCJ_SUBLIB_LTFLAGS = @LIBGCJ_SUBLIB_LTFLAGS@ |
LIBICONV = @LIBICONV@ |
LIBLTDL = @LIBLTDL@ |
LIBMATHSPEC = @LIBMATHSPEC@ |
LIBOBJS = @LIBOBJS@ |
LIBS = @LIBS@ |
LIBSTDCXXSPEC = @LIBSTDCXXSPEC@ |
LIBTOOL = @LIBTOOL@ |
LIPO = @LIPO@ |
LN_S = @LN_S@ |
LTLIBICONV = @LTLIBICONV@ |
LTLIBOBJS = @LTLIBOBJS@ |
MAINT = @MAINT@ |
MAKE = @MAKE@ |
MAKEINFO = @MAKEINFO@ |
MKDIR_P = @MKDIR_P@ |
NM = @NM@ |
NMEDIT = @NMEDIT@ |
OBJDUMP = @OBJDUMP@ |
OBJEXT = @OBJEXT@ |
OS = @OS@ |
OTOOL = @OTOOL@ |
OTOOL64 = @OTOOL64@ |
PACKAGE = @PACKAGE@ |
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ |
PACKAGE_NAME = @PACKAGE_NAME@ |
PACKAGE_STRING = @PACKAGE_STRING@ |
PACKAGE_TARNAME = @PACKAGE_TARNAME@ |
PACKAGE_URL = @PACKAGE_URL@ |
PACKAGE_VERSION = @PACKAGE_VERSION@ |
PATH_SEPARATOR = @PATH_SEPARATOR@ |
PERL = @PERL@ |
PKG_CONFIG = @PKG_CONFIG@ |
PLATFORM = @PLATFORM@ |
RANLIB = @RANLIB@ |
SDK_BIN_DIR = @SDK_BIN_DIR@ |
SDK_INCLUDE_DIR = @SDK_INCLUDE_DIR@ |
SDK_LIB_DIR = @SDK_LIB_DIR@ |
SDK_LNK = @SDK_LNK@ |
SED = @SED@ |
SET_MAKE = @SET_MAKE@ |
SHELL = @SHELL@ |
STRIP = @STRIP@ |
SYSDEP_SOURCES = @SYSDEP_SOURCES@ |
SYSTEMSPEC = @SYSTEMSPEC@ |
SYS_ZLIBS = @SYS_ZLIBS@ |
THREADCXXFLAGS = @THREADCXXFLAGS@ |
THREADDEPS = @THREADDEPS@ |
THREADINCS = @THREADINCS@ |
THREADLDFLAGS = @THREADLDFLAGS@ |
THREADLIBS = @THREADLIBS@ |
THREADSPEC = @THREADSPEC@ |
THREADSTARTFILESPEC = @THREADSTARTFILESPEC@ |
TOOLKIT = @TOOLKIT@ |
UNZIP = @UNZIP@ |
VERSION = @VERSION@ |
XMKMF = @XMKMF@ |
X_CFLAGS = @X_CFLAGS@ |
X_EXTRA_LIBS = @X_EXTRA_LIBS@ |
X_LIBS = @X_LIBS@ |
X_PRE_LIBS = @X_PRE_LIBS@ |
ZINCS = @ZINCS@ |
ZIP = @ZIP@ |
ZLIBS = @ZLIBS@ |
ZLIBSPEC = @ZLIBSPEC@ |
ZLIBTESTSPEC = @ZLIBTESTSPEC@ |
abs_builddir = @abs_builddir@ |
abs_srcdir = @abs_srcdir@ |
abs_top_builddir = @abs_top_builddir@ |
abs_top_srcdir = @abs_top_srcdir@ |
ac_ct_CC = @ac_ct_CC@ |
ac_ct_CXX = @ac_ct_CXX@ |
ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ |
ac_ct_GCJ = @ac_ct_GCJ@ |
am__include = @am__include@ |
am__leading_dot = @am__leading_dot@ |
am__quote = @am__quote@ |
am__tar = @am__tar@ |
am__untar = @am__untar@ |
bindir = @bindir@ |
build = @build@ |
build_alias = @build_alias@ |
build_cpu = @build_cpu@ |
build_libsubdir = @build_libsubdir@ |
build_os = @build_os@ |
build_subdir = @build_subdir@ |
build_vendor = @build_vendor@ |
builddir = @builddir@ |
datadir = @datadir@ |
datarootdir = @datarootdir@ |
dbexecdir = @dbexecdir@ |
docdir = @docdir@ |
dvidir = @dvidir@ |
exec_prefix = @exec_prefix@ |
extra_ldflags = @extra_ldflags@ |
extra_ldflags_libjava = @extra_ldflags_libjava@ |
gcc_suffix = @gcc_suffix@ |
gcjsubdir = @gcjsubdir@ |
gxx_include_dir = @gxx_include_dir@ |
here = @here@ |
host = @host@ |
host_alias = @host_alias@ |
host_cpu = @host_cpu@ |
host_exeext = @host_exeext@ |
host_os = @host_os@ |
host_subdir = @host_subdir@ |
host_vendor = @host_vendor@ |
htmldir = @htmldir@ |
includedir = @includedir@ |
infodir = @infodir@ |
install_sh = @install_sh@ |
libdir = @libdir@ |
libexecdir = @libexecdir@ |
libstdcxx_incdir = @libstdcxx_incdir@ |
localedir = @localedir@ |
localstatedir = @localstatedir@ |
lt_host_flags = @lt_host_flags@ |
mandir = @mandir@ |
mkdir_p = @mkdir_p@ |
mkinstalldirs = @mkinstalldirs@ |
multi_basedir = @multi_basedir@ |
oldincludedir = @oldincludedir@ |
pdfdir = @pdfdir@ |
prefix = @prefix@ |
program_transform_name = @program_transform_name@ |
psdir = @psdir@ |
python_mod_dir = @python_mod_dir@ |
python_mod_dir_expanded = @python_mod_dir_expanded@ |
sbindir = @sbindir@ |
sharedstatedir = @sharedstatedir@ |
srcdir = @srcdir@ |
subdirs = @subdirs@ |
sysconfdir = @sysconfdir@ |
target = @target@ |
target_alias = @target_alias@ |
target_cpu = @target_cpu@ |
|
# autoconf2.13's target_alias |
target_noncanonical = @target_noncanonical@ |
target_os = @target_os@ |
target_subdir = @target_subdir@ |
target_vendor = @target_vendor@ |
toolexecdir = @toolexecdir@ |
toolexeclibdir = @toolexeclibdir@ |
toolexecmainlibdir = @toolexecmainlibdir@ |
top_build_prefix = @top_build_prefix@ |
top_builddir = @top_builddir@ |
top_srcdir = @top_srcdir@ |
AUTOMAKE_OPTIONS = foreign |
|
# May be used by various substitution variables. |
gcc_version := $(shell cat $(top_srcdir)/../gcc/BASE-VER) |
tool_include_dir = $(libdir)/gcc/$(target_noncanonical)/$(gcc_version)/include |
tool_include__HEADERS = jni_md.h ../classpath/include/jawt.h \ |
../classpath/include/jawt_md.h jvmpi.h ../classpath/include/jni.h |
|
all: config.h |
$(MAKE) $(AM_MAKEFLAGS) all-am |
|
.SUFFIXES: |
$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) |
@for dep in $?; do \ |
case '$(am__configure_deps)' in \ |
*$$dep*) \ |
( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ |
&& { if test -f $@; then exit 0; else break; fi; }; \ |
exit 1;; \ |
esac; \ |
done; \ |
echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign include/Makefile'; \ |
$(am__cd) $(top_srcdir) && \ |
$(AUTOMAKE) --foreign include/Makefile |
.PRECIOUS: Makefile |
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status |
@case '$?' in \ |
*config.status*) \ |
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ |
*) \ |
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ |
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ |
esac; |
|
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) |
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh |
|
$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) |
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh |
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) |
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh |
$(am__aclocal_m4_deps): |
|
config.h: stamp-h1 |
@if test ! -f $@; then \ |
rm -f stamp-h1; \ |
$(MAKE) $(AM_MAKEFLAGS) stamp-h1; \ |
else :; fi |
|
stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status |
@rm -f stamp-h1 |
cd $(top_builddir) && $(SHELL) ./config.status include/config.h |
$(srcdir)/config.h.in: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) |
($(am__cd) $(top_srcdir) && $(AUTOHEADER)) |
rm -f stamp-h1 |
touch $@ |
|
distclean-hdr: |
-rm -f config.h stamp-h1 |
|
mostlyclean-libtool: |
-rm -f *.lo |
|
clean-libtool: |
-rm -rf .libs _libs |
install-tool_include_HEADERS: $(tool_include__HEADERS) |
@$(NORMAL_INSTALL) |
test -z "$(tool_include_dir)" || $(MKDIR_P) "$(DESTDIR)$(tool_include_dir)" |
@list='$(tool_include__HEADERS)'; test -n "$(tool_include_dir)" || list=; \ |
for p in $$list; do \ |
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ |
echo "$$d$$p"; \ |
done | $(am__base_list) | \ |
while read files; do \ |
echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(tool_include_dir)'"; \ |
$(INSTALL_HEADER) $$files "$(DESTDIR)$(tool_include_dir)" || exit $$?; \ |
done |
|
uninstall-tool_include_HEADERS: |
@$(NORMAL_UNINSTALL) |
@list='$(tool_include__HEADERS)'; test -n "$(tool_include_dir)" || list=; \ |
files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ |
test -n "$$files" || exit 0; \ |
echo " ( cd '$(DESTDIR)$(tool_include_dir)' && rm -f" $$files ")"; \ |
cd "$(DESTDIR)$(tool_include_dir)" && rm -f $$files |
|
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) |
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ |
unique=`for i in $$list; do \ |
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ |
done | \ |
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \ |
END { if (nonempty) { for (i in files) print i; }; }'`; \ |
mkid -fID $$unique |
tags: TAGS |
|
TAGS: $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \ |
$(TAGS_FILES) $(LISP) |
set x; \ |
here=`pwd`; \ |
list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \ |
unique=`for i in $$list; do \ |
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ |
done | \ |
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \ |
END { if (nonempty) { for (i in files) print i; }; }'`; \ |
shift; \ |
if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ |
test -n "$$unique" || unique=$$empty_fix; \ |
if test $$# -gt 0; then \ |
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ |
"$$@" $$unique; \ |
else \ |
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ |
$$unique; \ |
fi; \ |
fi |
ctags: CTAGS |
CTAGS: $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \ |
$(TAGS_FILES) $(LISP) |
list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \ |
unique=`for i in $$list; do \ |
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ |
done | \ |
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \ |
END { if (nonempty) { for (i in files) print i; }; }'`; \ |
test -z "$(CTAGS_ARGS)$$unique" \ |
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ |
$$unique |
|
GTAGS: |
here=`$(am__cd) $(top_builddir) && pwd` \ |
&& $(am__cd) $(top_srcdir) \ |
&& gtags -i $(GTAGS_ARGS) "$$here" |
|
distclean-tags: |
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags |
check-am: all-am |
check: check-am |
all-am: Makefile $(HEADERS) config.h |
installdirs: |
for dir in "$(DESTDIR)$(tool_include_dir)"; do \ |
test -z "$$dir" || $(MKDIR_P) "$$dir"; \ |
done |
install: install-am |
install-exec: install-exec-am |
install-data: install-data-am |
uninstall: uninstall-am |
|
install-am: all-am |
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am |
|
installcheck: installcheck-am |
install-strip: |
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ |
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ |
`test -z '$(STRIP)' || \ |
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install |
mostlyclean-generic: |
|
clean-generic: |
|
distclean-generic: |
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) |
-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) |
|
maintainer-clean-generic: |
@echo "This command is intended for maintainers to use" |
@echo "it deletes files that may require special tools to rebuild." |
clean: clean-am |
|
clean-am: clean-generic clean-libtool mostlyclean-am |
|
distclean: distclean-am |
-rm -f Makefile |
distclean-am: clean-am distclean-generic distclean-hdr distclean-tags |
|
dvi: dvi-am |
|
dvi-am: |
|
html: html-am |
|
html-am: |
|
info: info-am |
|
info-am: |
|
install-data-am: install-tool_include_HEADERS |
|
install-dvi: install-dvi-am |
|
install-dvi-am: |
|
install-exec-am: |
|
install-html: install-html-am |
|
install-html-am: |
|
install-info: install-info-am |
|
install-info-am: |
|
install-man: |
|
install-pdf: install-pdf-am |
|
install-pdf-am: |
|
install-ps: install-ps-am |
|
install-ps-am: |
|
installcheck-am: |
|
maintainer-clean: maintainer-clean-am |
-rm -f Makefile |
maintainer-clean-am: distclean-am maintainer-clean-generic |
|
mostlyclean: mostlyclean-am |
|
mostlyclean-am: mostlyclean-generic mostlyclean-libtool |
|
pdf: pdf-am |
|
pdf-am: |
|
ps: ps-am |
|
ps-am: |
|
uninstall-am: uninstall-tool_include_HEADERS |
|
.MAKE: all install-am install-strip |
|
.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ |
clean-libtool ctags distclean distclean-generic distclean-hdr \ |
distclean-libtool distclean-tags dvi dvi-am html html-am info \ |
info-am install install-am install-data install-data-am \ |
install-dvi install-dvi-am install-exec install-exec-am \ |
install-html install-html-am install-info install-info-am \ |
install-man install-pdf install-pdf-am install-ps \ |
install-ps-am install-strip install-tool_include_HEADERS \ |
installcheck installcheck-am installdirs maintainer-clean \ |
maintainer-clean-generic mostlyclean mostlyclean-generic \ |
mostlyclean-libtool pdf pdf-am ps ps-am tags uninstall \ |
uninstall-am uninstall-tool_include_HEADERS |
|
|
# Tell versions [3.59,3.63) of GNU make to not export all variables. |
# Otherwise a system limit (for SysV at least) may be exceeded. |
.NOEXPORT: |
/aix-signal.h
0,0 → 1,50
/* aix-signal.h - Catch runtime signals and turn them into exceptions, |
on a AIX system. */ |
|
/* Copyright (C) 2008, 2011 Free Software Foundation |
|
This file is part of libgcj. |
|
This software is copyrighted work licensed under the terms of the |
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for |
details. */ |
|
/* This file is really more of a specification. The rest of the system |
should be arranged so that this Just Works. */ |
|
#ifndef JAVA_SIGNAL_H |
# define JAVA_SIGNAL_H 1 |
|
#include <sys/types.h> |
#include <sys/signal.h> |
|
typedef void (* SIG_PF)(int); |
|
# define HANDLE_SEGV 1 |
# undef HANDLE_FPE |
|
# define SIGNAL_HANDLER(_name) \ |
static void _name (int _dummy __attribute__ ((unused))) |
|
# define MAKE_THROW_FRAME(_exception) |
|
# define INIT_SEGV \ |
do { \ |
struct sigaction sa; \ |
sa.sa_handler = catch_segv; \ |
sigemptyset (&sa.sa_mask); \ |
sa.sa_flags = SA_NODEFER; \ |
sigaction (SIGBUS, &sa, NULL); \ |
sigaction (SIGSEGV, &sa, NULL); \ |
} while (0) |
|
# define INIT_FPE \ |
do { \ |
struct sigaction sa; \ |
sa.sa_handler = catch_fpe; \ |
sigemptyset (&sa.sa_mask); \ |
sa.sa_flags = SA_NODEFER; \ |
sigaction (SIGFPE, &sa, NULL); \ |
} while (0) |
|
#endif /* JAVA_SIGNAL_H */ |
/jni_md.h
0,0 → 1,165
/* jni_md.h |
Copyright (C) 2001, 2005, 2007, 2010 Free Software Foundation, Inc. |
|
This file is part of GNU Classpath. |
|
GNU Classpath is free software; you can redistribute it and/or modify |
it under the terms of the GNU General Public License as published by |
the Free Software Foundation; either version 2, or (at your option) |
any later version. |
|
GNU Classpath 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 |
General Public License for more details. |
|
You should have received a copy of the GNU General Public License |
along with GNU Classpath; see the file COPYING. If not, write to the |
Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA |
02110-1301 USA. |
|
As a special exception, if you link this library with other files to |
produce an executable, this library does not by itself cause the |
resulting executable to be covered by the GNU General Public License. |
This exception does not however invalidate any other reasons why the |
executable file might be covered by the GNU General Public License. */ |
|
#ifndef __GCJ_JNI_MD_H__ |
#define __GCJ_JNI_MD_H__ |
|
#include <gcj/libgcj-config.h> |
|
#ifdef __GCJ_JNI_IMPL__ |
|
/* If __GCJ_JNI_IMPL__ is defined, then we assume that we're building |
libgcj itself, and we include headers which taint the namespace |
more than is acceptable for the ordinary JNI user. */ |
#include <gcj/javaprims.h> |
#include <gcj/array.h> |
#include <gnu/gcj/runtime/JNIWeakRef.h> |
|
typedef gnu::gcj::runtime::JNIWeakRef *jweak; |
|
typedef struct _Jv_JNIEnv JNIEnv; |
typedef struct _Jv_JavaVM JavaVM; |
|
#define JNI_TRUE true |
#define JNI_FALSE false |
|
/* We defined jobject and friends, so don't redefine them in jni.h. */ |
#define _CLASSPATH_VM_JNI_TYPES_DEFINED |
|
/* We defined jmethodID and and jfieldID, so don't redefine them in |
jni.h. */ |
#define _CLASSPATH_VM_INTERNAL_TYPES_DEFINED |
|
/* Contents of the JNIEnv; but only inside the implementation. */ |
#define _CLASSPATH_JNIENV_CONTENTS \ |
/* The current exception. */ \ |
jthrowable ex; \ |
\ |
/* The chain of local frames. */ \ |
struct _Jv_JNI_LocalFrame *locals; \ |
\ |
/* The bottom-most element of the chain, initialized with the env and \ |
reused between non-nesting JNI calls. */ \ |
struct _Jv_JNI_LocalFrame *bottom_locals; |
|
/* JNI calling convention. Also defined in javaprims.h. */ |
#ifndef JNICALL |
#if (defined (_WIN32) || defined (__WIN32__) || defined (WIN32)) \ |
&& !defined (_WIN64) |
#define JNICALL __stdcall |
#else |
#define JNICALL |
#endif |
#endif |
|
#else /* __GCJ_JNI_IMPL__ */ |
|
# ifdef __GNUC__ |
|
/* If we're using gcc, we can use a platform-independent scheme to get |
the right integer types. FIXME: this is not always correct, for |
instance on the c4x it will be wrong -- it depends on whether |
QImode is 8 bits. */ |
typedef int jbyte __attribute__((__mode__(__QI__))); |
typedef int jshort __attribute__((__mode__(__HI__))); |
typedef int jint __attribute__((__mode__(__SI__))); |
typedef int jlong __attribute__((__mode__(__DI__))); |
typedef unsigned int jboolean __attribute__((__mode__(__QI__))); |
typedef unsigned short jchar __attribute__((__mode__(__HI__))); |
typedef float jfloat; |
typedef double jdouble; |
typedef jint jsize; |
|
# else /* __GNUC__ */ |
|
# ifdef JV_HAVE_INTTYPES_H |
|
/* If <inttypes.h> is available, we use it. */ |
|
# include <inttypes.h> |
|
typedef int8_t jbyte; |
typedef int16_t jshort; |
typedef int32_t jint; |
typedef int64_t jlong; |
typedef float jfloat; |
typedef double jdouble; |
typedef jint jsize; |
typedef uint8_t jboolean; |
typedef uint16_t jchar; |
|
# else /* JV_HAVE_INTTYPES_H */ |
|
/* For now, we require either gcc or <inttypes.h>. If we did more |
work at configure time we could get around this, but right now it |
doesn't seem worth it. */ |
# error jni.h not ported to this platform |
|
# endif /* JV_HAVE_INTTYPES_H */ |
|
# endif /* __GNUC__ */ |
|
#endif /* __GCJ_JNI_IMPL__ */ |
|
|
/* Linkage and calling conventions. */ |
#if (defined (_WIN32) || defined (__WIN32__) || defined (WIN32)) \ |
&& !defined (_WIN64) |
|
#define JNIIMPORT __declspec(dllimport) |
#define JNIEXPORT __declspec(dllexport) |
|
#ifndef JNICALL |
#define JNICALL __stdcall |
#endif |
|
#else /* !( _WIN32 || __WIN32__ || WIN32) || _WIN64 */ |
|
#define JNIIMPORT |
#if defined(__GNUC__) && __GNUC__ > 3 |
#define JNIEXPORT __attribute__ ((visibility("default"))) |
#else |
#define JNIEXPORT |
#endif |
|
#ifndef JNICALL |
#define JNICALL |
#endif |
|
#endif /* !( _WIN32 || __WIN32__ || WIN32) || _WIN64 */ |
|
/* These defines apply to symbols in libgcj */ |
#ifdef __GCJ_DLL__ |
# ifdef __GCJ_JNI_IMPL__ |
# define _CLASSPATH_JNIIMPEXP JNIEXPORT |
# else |
# define _CLASSPATH_JNIIMPEXP JNIIMPORT |
# endif /* ! __GCJ_JNI_IMPL__ */ |
#else /* ! __GCJ_DLL__ */ |
# define _CLASSPATH_JNIIMPEXP |
#endif /* __GCJ_DLL__ */ |
|
#endif /* __GCJ_JNI_MD_H__ */ |
/dwarf2-signal.h
0,0 → 1,196
// dwarf2-signal.h - Catch runtime signals and turn them into exceptions. |
|
/* Copyright (C) 2000, 2001, 2009 Free Software Foundation |
|
This file is part of libgcj. |
|
Use this file for a target for which the dwarf2 unwinder in libgcc |
can unwind through signal handlers. |
|
This software is copyrighted work licensed under the terms of the |
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for |
details. */ |
|
#ifndef JAVA_SIGNAL_H |
#define JAVA_SIGNAL_H 1 |
|
#include <signal.h> |
#include <sys/syscall.h> |
|
#define HANDLE_SEGV 1 |
#undef HANDLE_FPE |
|
#define SIGNAL_HANDLER(_name) \ |
static void _Jv_##_name (int, siginfo_t *_sip, void *_p) |
|
class java::lang::Throwable; |
|
// Unwind the stack to the point at which the signal was generated and |
// then throw an exception. With the dwarf2 unwinder we don't usually |
// need to do anything, with some minor exceptions. |
|
#ifdef __ia64__ |
|
#define MAKE_THROW_FRAME(_exception) \ |
do \ |
{ \ |
/* IA-64 either leaves PC pointing at a faulting instruction or the \ |
following instruction, depending on the signal. SEGV always does \ |
the former, so we adjust the saved PC to point to the following \ |
instruction; this is what the handler in libgcc expects. */ \ |
/* Note that we are lying to the unwinder here, which expects the \ |
faulting pc, not pc+1. But we claim the unwind information can't \ |
be changed by such a ld or st instruction, so it doesn't matter. */ \ |
struct sigcontext *_sc = (struct sigcontext *)_p; \ |
_sc->sc_ip++; \ |
} \ |
while (0) |
|
#else |
#define MAKE_THROW_FRAME(_exception) \ |
do \ |
{ \ |
(void)_p; \ |
} \ |
while (0) |
#endif |
|
#if defined(__sparc__) |
#if defined(__arch64__) |
extern "C" { |
static void __rt_sigreturn_stub(void) |
{ |
__asm__("mov %0, %%g1\n\t" |
"ta 0x6d\n\t" |
: /* no outputs */ |
: "i" (__NR_rt_sigreturn)); |
} |
struct kernel_sigaction |
{ |
void (*k_sa_sigaction)(int,siginfo_t *,void *); |
unsigned long k_sa_flags; |
void (*k_sa_restorer)(void); |
sigset_t k_sa_mask; |
}; |
} |
#define INIT_SEGV \ |
do \ |
{ \ |
struct kernel_sigaction act; \ |
unsigned long stub = ((unsigned long)&__rt_sigreturn_stub); \ |
act.k_sa_sigaction = _Jv_catch_segv; \ |
sigemptyset (&act.k_sa_mask); \ |
act.k_sa_flags = SA_SIGINFO; \ |
act.k_sa_restorer = NULL; \ |
syscall (SYS_rt_sigaction, SIGSEGV, &act, NULL, \ |
stub - 8, _NSIG / 8); \ |
} \ |
while (0) |
|
#define INIT_FPE \ |
do \ |
{ \ |
struct kernel_sigaction act; \ |
unsigned long stub = ((unsigned long)&__rt_sigreturn_stub); \ |
act.k_sa_sigaction = _Jv_catch_fpe; \ |
sigemptyset (&act.k_sa_mask); \ |
act.k_sa_flags = SA_SIGINFO; \ |
act.k_sa_restorer = NULL; \ |
syscall (SYS_rt_sigaction, SIGFPE, &act, NULL, \ |
stub - 8, _NSIG / 8); \ |
} \ |
while (0) |
#else /* __arch64__ */ |
|
extern "C" { |
struct kernel_sigaction |
{ |
void (*k_sa_sigaction)(int,siginfo_t *,void *); |
unsigned long k_sa_mask, k_sa_flags; |
void (*k_sa_restorer)(void); |
}; |
} |
|
#define INIT_SEGV \ |
do \ |
{ \ |
struct kernel_sigaction act; \ |
act.k_sa_sigaction = _Jv_catch_segv; \ |
act.k_sa_mask = 0; \ |
act.k_sa_flags = SA_SIGINFO; \ |
act.k_sa_restorer = NULL; \ |
syscall (SYS_sigaction, -SIGSEGV, &act, NULL); \ |
} \ |
while (0) |
|
#define INIT_FPE \ |
do \ |
{ \ |
struct kernel_sigaction act; \ |
act.k_sa_sigaction = _Jv_catch_fpe; \ |
act.k_sa_mask = 0; \ |
act.k_sa_flags = SA_SIGINFO; \ |
act.k_sa_restorer = NULL; \ |
syscall (SYS_sigaction, -SIGFPE, &act, NULL); \ |
} \ |
while (0) |
#endif |
#elif !defined(__ia64__) |
#define INIT_SEGV \ |
do \ |
{ \ |
struct sigaction act; \ |
act.sa_sigaction = _Jv_catch_segv; \ |
sigemptyset (&act.sa_mask); \ |
act.sa_flags = SA_SIGINFO; \ |
syscall (SYS_sigaction, SIGSEGV, &act, NULL); \ |
} \ |
while (0) |
|
#define INIT_FPE \ |
do \ |
{ \ |
struct sigaction act; \ |
act.sa_sigaction = _Jv_catch_fpe; \ |
sigemptyset (&act.sa_mask); \ |
act.sa_flags = SA_SIGINFO; \ |
syscall (SYS_sigaction, SIGFPE, &act, NULL); \ |
} \ |
while (0) |
|
/* We use syscall(SYS_sigaction) in INIT_SEGV and INIT_FPE instead of |
* sigaction() because on some systems the pthreads wrappers for |
* signal handlers are not compiled with unwind information, so it's |
* not possible to unwind through them. This is a problem that will |
* go away once all systems have pthreads libraries that are |
* compiled with full unwind info. */ |
|
#else /* __ia64__ */ |
|
// On IA64, unwind information is mandatory, so we can unwind |
// correctly through glibc frames. Thus we call the ordinary |
// sigaction. |
|
#define INIT_SEGV \ |
do \ |
{ \ |
struct sigaction act; \ |
act.sa_sigaction = _Jv_catch_segv; \ |
sigemptyset (&act.sa_mask); \ |
act.sa_flags = SA_SIGINFO; \ |
sigaction (SIGSEGV, &act, NULL); \ |
} \ |
while (0) |
|
#define INIT_FPE \ |
do \ |
{ \ |
struct sigaction act; \ |
act.sa_sigaction = _Jv_catch_fpe; \ |
sigemptyset (&act.sa_mask); \ |
act.sa_flags = SA_SIGINFO; \ |
sigaction (SIGFPE, &act, NULL); \ |
} \ |
while (0) |
#endif /* __ia64__ || __sparc__ */ |
#endif /* JAVA_SIGNAL_H */ |
/posix.h
0,0 → 1,207
// posix.h -- Helper functions for POSIX-flavored OSs. |
|
/* Copyright (C) 2000, 2002, 2003, 2006, 2010 Free Software Foundation |
|
This file is part of libgcj. |
|
This software is copyrighted work licensed under the terms of the |
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for |
details. */ |
|
#ifndef __JV_POSIX_H__ |
#define __JV_POSIX_H__ |
|
/* Required on Tru64 UNIX V4/V5 so <sys/socket.h> defines prototypes of |
socket functions with socklen_t instead of size_t. This must be defined |
early so <standards.h> defines the correct version of __PIIX. */ |
#define _POSIX_PII_SOCKET |
|
#include <time.h> |
#include <sys/types.h> |
|
#ifdef HAVE_SYS_TIME_H |
#include <sys/time.h> |
#endif |
|
#ifdef HAVE_SYS_SELECT_H |
#include <sys/select.h> |
#endif |
|
#ifdef HAVE_SYS_SOCKET_H |
#include <sys/socket.h> |
#endif |
|
#ifdef HAVE_UNISTD_H |
#include <unistd.h> |
#endif |
|
#include <fcntl.h> |
|
/* The header file <sys/rw_lock.h> needs to be included before javaprims.h |
on HP-UX 11 to avoid a compilation error. */ |
#ifdef HAVE_SYS_RW_LOCK_H |
#include <sys/rw_lock.h> |
#endif |
|
#include <gcj/cni.h> |
#include <java/util/Properties.h> |
|
// Prefix and suffix for shared libraries. |
#define _Jv_platform_solib_prefix "lib" |
#if defined(__APPLE__) && defined(__MACH__) |
#define _Jv_platform_solib_suffix ".dylib" |
#elif defined(HPUX) && defined(HP_PA) |
#define _Jv_platform_solib_suffix ".sl" |
#else |
#define _Jv_platform_solib_suffix ".so" |
#endif |
|
#if __MACH__ && (__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 1060) |
# undef _Unwind_FindEnclosingFunction |
# define _Unwind_FindEnclosingFunction(PC) _darwin10_Unwind_FindEnclosingFunction(PC) |
#endif |
|
// Some POSIX systems don't have O_SYNC and O_DYSNC so we define them here. |
// Needed in java/io/natFileDescriptorPosix.cc. |
#if !defined (O_SYNC) && defined (O_FSYNC) |
#define O_SYNC O_FSYNC |
#endif |
#if !defined (O_DSYNC) && defined (O_FSYNC) |
#define O_DSYNC O_FSYNC |
#endif |
// If O_DSYNC is still not defined, use O_SYNC (needed for newlib) |
#if !defined (O_DSYNC) |
#define O_DSYNC O_SYNC |
#endif |
|
// Name of the Process implementation. |
#ifdef ECOS |
#define _Jv_platform_process ::java::lang::EcosProcess |
#else |
#define _Jv_platform_process ::java::lang::PosixProcess |
#endif |
|
// Separator for file name components. |
#define _Jv_platform_file_separator ((jchar) '/') |
// Separator for path components. |
#define _Jv_platform_path_separator ((jchar) ':') |
|
// List of names for `JNI_OnLoad'. |
#define _Jv_platform_onload_names { "JNI_OnLoad", NULL } |
|
// Type of libffi ABI used by JNICALL methods. NOTE: This must agree |
// with the JNICALL definition in jni.h |
#define _Jv_platform_ffi_abi FFI_DEFAULT_ABI |
|
#ifndef DISABLE_JAVA_NET |
#include <java/net/InetAddress.h> |
#endif |
|
extern int _Jv_select (int n, fd_set *, fd_set *, fd_set *, struct timeval *); |
extern jlong _Jv_platform_gettimeofday (); |
extern jlong _Jv_platform_nanotime (); |
extern void _Jv_platform_initialize (void); |
extern void _Jv_platform_initProperties (java::util::Properties*); |
|
#ifdef JV_HASH_SYNCHRONIZATION |
#ifndef HAVE_USLEEP_DECL |
extern "C" int usleep (useconds_t useconds); |
#endif /* not HAVE_USLEEP_DECL */ |
|
inline void |
_Jv_platform_usleep (unsigned long usecs) |
{ |
usleep (usecs); |
} |
#endif /* JV_HASH_SYNCHRONIZATION */ |
|
#ifndef DISABLE_JAVA_NET |
|
#ifndef HAVE_SOCKLEN_T |
#define socklen_t int |
#endif |
|
static inline int |
_Jv_socket (int domain, int type, int protocol) |
{ |
return ::socket (domain, type, protocol); |
} |
|
#undef socket |
|
inline int |
_Jv_connect (jint fd, sockaddr *ptr, int len) |
{ |
return ::connect (fd, ptr, len); |
} |
|
#undef connect |
|
inline int |
_Jv_close (jint fd) |
{ |
return ::close (fd); |
} |
|
#undef close |
|
// Avoid macro definitions of bind from system headers, e.g. on |
// Solaris 7 with _XOPEN_SOURCE. FIXME |
inline int |
_Jv_bind (int fd, struct sockaddr *addr, int addrlen) |
{ |
return ::bind (fd, addr, addrlen); |
} |
|
#undef bind |
|
// Same problem with accept on Tru64 UNIX with _POSIX_PII_SOCKET |
inline int |
_Jv_accept (int fd, struct sockaddr *addr, socklen_t *addrlen) |
{ |
return ::accept (fd, addr, addrlen); |
} |
|
#undef accept |
|
inline int |
_Jv_listen (int fd, int backlog) |
{ |
return ::listen (fd, backlog); |
} |
|
#undef listen |
|
inline int |
_Jv_write(int s, void *buf, int len) |
{ |
return ::write (s, buf, len); |
} |
|
#undef write |
|
inline int |
_Jv_read(int s, void *buf, int len) |
{ |
return ::read (s, buf, len); |
} |
|
#undef read |
|
#endif /* DISABLE_JAVA_NET */ |
|
// Wraps ::pipe |
static inline int |
_Jv_pipe (int filedes[2]) |
{ |
return ::pipe (filedes); |
} |
|
// Forward declaration. See java-stack.h for definition. |
struct _Jv_AddrInfo; |
|
// Given an address, determine the executable or shared object that defines |
// it and the nearest named symbol. |
extern int _Jv_platform_dladdr (void *addr, _Jv_AddrInfo *info); |
|
#endif /* __JV_POSIX_H__ */ |
/win32.h
0,0 → 1,188
// win32.h -- Helper functions for Microsoft-flavored OSs. |
|
/* Copyright (C) 2002, 2003, 2006 Free Software Foundation |
|
This file is part of libgcj. |
|
This software is copyrighted work licensed under the terms of the |
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for |
details. */ |
|
#ifndef __JV_WIN32_H__ |
#define __JV_WIN32_H__ |
|
// Enable UNICODE support? |
|
#ifdef MINGW_LIBGCJ_UNICODE |
#define UNICODE |
#define _UNICODE |
#endif // MINGW_LIBGCJ_UNICODE |
|
#include <tchar.h> |
|
// Includes |
#define WIN32_LEAN_AND_MEAN |
// Force Winsock 2 interface. |
#include <winsock2.h> |
#include <windows.h> |
#undef WIN32_LEAN_AND_MEAN |
#undef STRICT |
|
#include <ws2tcpip.h> |
#include <gcj/cni.h> |
#include <jvm.h> |
#include <java/util/Properties.h> |
|
#include <io.h> |
|
/* Begin UNICODE Support Classes and Functions */ |
|
/* Helper class which creates a temporary, null-terminated, |
wide-character C string. */ |
class _Jv_Win32TempString |
{ |
public: |
_Jv_Win32TempString(jstring jstr); |
~_Jv_Win32TempString(); |
|
// Accessors |
operator LPCTSTR() const |
{ |
return buf_; |
} |
LPCTSTR buf() const |
{ |
return buf_; |
} |
LPTSTR buf() |
{ |
return buf_; |
} |
|
private: |
TCHAR stackbuf_[500]; |
LPTSTR buf_; |
}; |
|
// Mimics the JV_TEMP_STRING_UTF macro in jvm.h |
#define JV_TEMP_STRING_WIN32(x,y) _Jv_Win32TempString x(y); |
|
// Creates a jstring from a LPCTSTR |
extern jstring _Jv_Win32NewString (LPCTSTR pcsz); |
|
/* End UNICODE Helpers */ |
|
// Prefix and suffix for shared libraries. |
#define _Jv_platform_solib_prefix "" |
#define _Jv_platform_solib_suffix ".dll" |
|
// Name of the Process implementation. |
#define _Jv_platform_process ::java::lang::Win32Process |
|
// Separator for file name components. |
#define _Jv_platform_file_separator ((jchar) '\\') |
// Separator for path components. |
#define _Jv_platform_path_separator ((jchar) ';') |
|
// List of names for `JNI_OnLoad'. On Win32, JNI_OnLoad is an |
// "stdcall" function taking two pointers (8 bytes) as arguments. It |
// could also have been exported as "JNI_OnLoad@8" (MinGW) or |
// "_JNI_OnLoad@8" (MSVC). |
#define _Jv_platform_onload_names \ |
{ "JNI_OnLoad", "JNI_OnLoad@8", "_JNI_OnLoad@8", NULL } |
|
// Type of libffi ABI used by JNICALL methods. NOTE: This must agree |
// with the JNICALL definition in jni.h |
#define _Jv_platform_ffi_abi FFI_STDCALL |
|
/* Useful helper classes and methods. */ |
|
/* A C++ wrapper around a WSAEVENT which closes the event |
in its destructor. If dwSelFlags is non-zero, we also |
issue an WSAEventSelect on the socket descriptor with |
the given flags; this is undone by a corresponding call |
to WSAEventSelect(fd, 0, 0) in our destructor. */ |
class WSAEventWrapper |
{ |
public: |
// Default constructor. Call init() after this. |
WSAEventWrapper(); |
WSAEventWrapper(int fd, DWORD dwSelFlags); |
~WSAEventWrapper(); |
|
// Used for two-step initialization after calling |
// default constructor. |
void init(int fd, DWORD dwSelFlags); |
|
int getFD() |
{ |
return m_fd; |
} |
|
WSAEVENT getEventHandle() |
{ |
return m_hEvent; |
} |
|
private: |
WSAEVENT m_hEvent; |
int m_fd; |
DWORD m_dwSelFlags; |
}; |
|
// Error string text. The int argument is compatible |
// with both int WSAGetLastError() and DWORD GetLastError() |
// I tried avoiding having to pass the error explicitly, but |
// it didn't work this was invoked with say |
// throw new SomeException(_Jv_WinStrError()). |
extern jstring |
_Jv_WinStrError (LPCTSTR lpszPrologue, int nErrorCode); |
|
extern jstring |
_Jv_WinStrError (int nErrorCode); |
|
extern void |
_Jv_ThrowIOException (DWORD dwErrorCode); |
|
extern void |
_Jv_ThrowIOException (); |
|
extern void |
_Jv_ThrowSocketException (DWORD dwErrorCode); |
|
extern void |
_Jv_ThrowSocketException (); |
|
// Platform implementation |
extern void _Jv_platform_initialize (void); |
extern void _Jv_platform_initProperties (java::util::Properties*); |
extern jlong _Jv_platform_gettimeofday (); |
extern jlong _Jv_platform_nanotime (); |
extern int _Jv_pipe (int filedes[2]); |
|
extern void |
_Jv_platform_close_on_exec (HANDLE h); |
|
#ifdef JV_HASH_SYNCHRONIZATION |
/* Suspends the execution of the current thread for the specified |
number of microseconds. Tries to emulate the behaviour of usleep() |
on UNIX and provides a granularity of 1 millisecond. */ |
inline void |
_Jv_platform_usleep (unsigned long usecs) |
{ |
if (usecs > 0UL) |
{ |
unsigned long millis = ((usecs + 999UL) / 1000UL); |
Sleep (millis); |
} |
} |
#endif /* JV_HASH_SYNCHRONIZATION */ |
|
// Forward declaration. See java-stack.h for definition. |
struct _Jv_AddrInfo; |
|
// Given an address, determine the executable or shared object that defines |
// it and the nearest named symbol. |
extern int _Jv_platform_dladdr (void *addr, _Jv_AddrInfo *info); |
|
#endif /* __JV_WIN32_H__ */ |
/no-threads.h
0,0 → 1,162
// -*- c++ -*- |
// no-threads.h - Defines for using no threads. |
|
/* Copyright (C) 1998, 1999, 2004, 2006 Free Software Foundation |
|
This file is part of libgcj. |
|
This software is copyrighted work licensed under the terms of the |
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for |
details. */ |
|
#ifndef __JV_NO_THREADS__ |
#define __JV_NO_THREADS__ |
|
#include "config.h" |
|
#include <stdlib.h> |
#ifdef HAVE_UNISTD_H |
#include <unistd.h> |
#endif |
|
// |
// Typedefs. |
// |
|
typedef int _Jv_ConditionVariable_t; |
typedef int _Jv_Mutex_t; |
typedef void _Jv_ThreadStartFunc (java::lang::Thread *); |
|
// |
// Declarations |
// |
|
class _Jv_Thread_t { }; |
|
// |
// Condition variables. |
// |
|
inline void |
_Jv_CondInit (_Jv_ConditionVariable_t *) |
{ |
} |
|
// Waiting is ok provided there is a timeout. Otherwise we will just |
// wait forever. |
inline int |
_Jv_CondWait (_Jv_ConditionVariable_t *, _Jv_Mutex_t *, |
jlong millis, jint nanos) |
{ |
if (millis == 0 && nanos == 0) |
JvFail ("_Jv_CondWait without timeout"); |
|
#ifdef HAVE_SLEEP |
int seconds = millis / 1000; |
if (seconds > 0) |
sleep (seconds); |
#endif |
|
return 0; |
} |
|
inline int |
_Jv_CondNotify (_Jv_ConditionVariable_t *, _Jv_Mutex_t *) |
{ |
// It is ok to notify -- it just has no effect. |
return 0; |
} |
|
inline int |
_Jv_CondNotifyAll (_Jv_ConditionVariable_t *, _Jv_Mutex_t *) |
{ |
// It is ok to notify -- it just has no effect. |
return 0; |
} |
|
|
// |
// Mutexes. |
// |
|
inline int _Jv_MutexCheckMonitor (_Jv_Mutex_t *) |
{ |
return 0; |
} |
|
inline void |
_Jv_MutexInit (_Jv_Mutex_t *) |
{ |
} |
|
inline int |
_Jv_MutexLock (_Jv_Mutex_t *) |
{ |
return 0; |
} |
|
inline int |
_Jv_MutexUnlock (_Jv_Mutex_t *) |
{ |
return 0; |
} |
|
|
// |
// Thread creation and manipulation. |
// |
|
inline void |
_Jv_InitThreads (void) |
{ |
} |
|
_Jv_Thread_t * |
_Jv_ThreadInitData (java::lang::Thread *); |
|
inline void |
_Jv_ThreadDestroyData (_Jv_Thread_t *) |
{ |
} |
|
inline java::lang::Thread * |
_Jv_ThreadCurrent (void) |
{ |
extern java::lang::Thread *_Jv_OnlyThread; |
return _Jv_OnlyThread; |
} |
|
inline void |
_Jv_ThreadYield (void) |
{ |
} |
|
inline void |
_Jv_ThreadSetPriority (_Jv_Thread_t *, jint) |
{ |
} |
|
inline void |
_Jv_ThreadRegister (_Jv_Thread_t *) |
{ |
} |
|
inline void |
_Jv_ThreadUnRegister (void) |
{ |
} |
|
void _Jv_ThreadStart (java::lang::Thread *, _Jv_Thread_t *, |
_Jv_ThreadStartFunc *meth); |
|
inline void |
_Jv_ThreadWait (void) |
{ |
} |
|
inline void |
_Jv_ThreadInterrupt (_Jv_Thread_t *) |
{ |
} |
|
#endif /* __JV_NO_THREADS__ */ |
/i386-signal.h
0,0 → 1,178
// i386-signal.h - Catch runtime signals and turn them into exceptions |
// on an i386 based Linux system. |
|
/* Copyright (C) 1998, 1999, 2001, 2002, 2006, 2007, 2011 |
Free Software Foundation |
|
This file is part of libgcj. |
|
This software is copyrighted work licensed under the terms of the |
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for |
details. */ |
|
|
#ifdef __i386__ |
|
#ifndef JAVA_SIGNAL_H |
#define JAVA_SIGNAL_H 1 |
|
#include <signal.h> |
#include <sys/syscall.h> |
|
#define HANDLE_SEGV 1 |
#define HANDLE_FPE 1 |
|
#define SIGNAL_HANDLER(_name) \ |
static void _Jv_##_name (int, siginfo_t *, \ |
void *_p __attribute__ ((__unused__))) |
|
#define HANDLE_DIVIDE_OVERFLOW \ |
do \ |
{ \ |
struct ucontext *_uc = (struct ucontext *)_p; \ |
gregset_t &_gregs = _uc->uc_mcontext.gregs; \ |
unsigned char *_eip = (unsigned char *)_gregs[REG_EIP]; \ |
\ |
/* According to the JVM spec, "if the dividend is the negative \ |
* integer of largest possible magnitude for the type and the \ |
* divisor is -1, then overflow occurs and the result is equal to \ |
* the dividend. Despite the overflow, no exception occurs". \ |
\ |
* We handle this by inspecting the instruction which generated the \ |
* signal and advancing ip to point to the following instruction. \ |
* As the instructions are variable length it is necessary to do a \ |
* little calculation to figure out where the following instruction \ |
* actually is. \ |
\ |
*/ \ |
\ |
/* Detect a signed division of Integer.MIN_VALUE. */ \ |
if (_eip[0] == 0xf7) \ |
{ \ |
bool _min_value_dividend = false; \ |
unsigned char _modrm = _eip[1]; \ |
\ |
if (((_modrm >> 3) & 7) == 7) /* Signed divide */ \ |
{ \ |
_min_value_dividend = \ |
_gregs[REG_EAX] == (greg_t)0x80000000UL; \ |
} \ |
\ |
if (_min_value_dividend) \ |
{ \ |
unsigned char _rm = _modrm & 7; \ |
_gregs[REG_EDX] = 0; /* the remainder is zero */ \ |
switch (_modrm >> 6) \ |
{ \ |
case 0: /* register indirect */ \ |
if (_rm == 5) /* 32-bit displacement */ \ |
_eip += 4; \ |
if (_rm == 4) /* A SIB byte follows the ModR/M byte */ \ |
_eip += 1; \ |
break; \ |
case 1: /* register indirect + 8-bit displacement */ \ |
_eip += 1; \ |
if (_rm == 4) /* A SIB byte follows the ModR/M byte */ \ |
_eip += 1; \ |
break; \ |
case 2: /* register indirect + 32-bit displacement */ \ |
_eip += 4; \ |
if (_rm == 4) /* A SIB byte follows the ModR/M byte */ \ |
_eip += 1; \ |
break; \ |
case 3: \ |
break; \ |
} \ |
_eip += 2; \ |
_gregs[REG_EIP] = (greg_t)_eip; \ |
return; \ |
} \ |
} \ |
} \ |
while (0) |
|
/* We use kernel_sigaction here because we're calling the kernel |
directly rather than via glibc. The sigaction structure that the |
syscall uses is a different shape from the one in userland and not |
visible to us in a header file so we define it here. */ |
|
extern "C" |
{ |
struct kernel_sigaction |
{ |
void (*k_sa_sigaction)(int,siginfo_t *,void *); |
unsigned long k_sa_flags; |
void (*k_sa_restorer) (void); |
sigset_t k_sa_mask; |
}; |
} |
|
#define MAKE_THROW_FRAME(_exception) |
|
#define RESTORE(name, syscall) RESTORE2 (name, syscall) |
#define RESTORE2(name, syscall) \ |
asm \ |
( \ |
".text\n" \ |
".byte 0 # Yes, this really is necessary\n" \ |
" .align 16\n" \ |
"__" #name ":\n" \ |
" movl $" #syscall ", %eax\n" \ |
" int $0x80" \ |
); |
|
/* The return code for realtime-signals. */ |
RESTORE (restore_rt, __NR_rt_sigreturn) |
void restore_rt (void) asm ("__restore_rt") |
__attribute__ ((visibility ("hidden"))); |
|
#define INIT_SEGV \ |
do \ |
{ \ |
struct kernel_sigaction act; \ |
act.k_sa_sigaction = _Jv_catch_segv; \ |
sigemptyset (&act.k_sa_mask); \ |
act.k_sa_flags = SA_SIGINFO|0x4000000; \ |
act.k_sa_restorer = restore_rt; \ |
syscall (SYS_rt_sigaction, SIGSEGV, &act, NULL, _NSIG / 8); \ |
} \ |
while (0) |
|
#define INIT_FPE \ |
do \ |
{ \ |
struct kernel_sigaction act; \ |
act.k_sa_sigaction = _Jv_catch_fpe; \ |
sigemptyset (&act.k_sa_mask); \ |
act.k_sa_flags = SA_SIGINFO|0x4000000; \ |
act.k_sa_restorer = restore_rt; \ |
syscall (SYS_rt_sigaction, SIGFPE, &act, NULL, _NSIG / 8); \ |
} \ |
while (0) |
|
/* You might wonder why we use syscall(SYS_sigaction) in INIT_FPE |
* instead of the standard sigaction(). This is necessary because of |
* the shenanigans above where we increment the PC saved in the |
* context and then return. This trick will only work when we are |
* called _directly_ by the kernel, because linuxthreads wraps signal |
* handlers and its wrappers do not copy the sigcontext struct back |
* when returning from a signal handler. If we return from our divide |
* handler to a linuxthreads wrapper, we will lose the PC adjustment |
* we made and return to the faulting instruction again. Using |
* syscall(SYS_sigaction) causes our handler to be called directly |
* by the kernel, bypassing any wrappers. |
|
* Also, there may not be any unwind info in the linuxthreads |
* library's signal handlers and so we can't unwind through them |
* anyway. */ |
|
#endif /* JAVA_SIGNAL_H */ |
|
#else /* __i386__ */ |
|
/* This is for the 64-bit subsystem on i386. */ |
|
#define sigcontext_struct sigcontext |
#include <java-signal-aux.h> |
|
#endif /* __i386__ */ |
/jvmti_md.h
0,0 → 1,66
/* jvmti_md.h |
Copyright (C) 2006, 2007 Free Software Foundation, Inc. |
|
This file is part of GNU Classpath. |
|
GNU Classpath is free software; you can redistribute it and/or modify |
it under the terms of the GNU General Public License as published by |
the Free Software Foundation; either version 2, or (at your option) |
any later version. |
|
GNU Classpath 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 |
General Public License for more details. |
|
You should have received a copy of the GNU General Public License |
along with GNU Classpath; see the file COPYING. If not, write to the |
Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA |
02110-1301 USA. |
|
As a special exception, if you link this library with other files to |
produce an executable, this library does not by itself cause the |
resulting executable to be covered by the GNU General Public License. |
This exception does not however invalidate any other reasons why the |
executable file might be covered by the GNU General Public License. */ |
|
#ifndef __GCJ_JVMTI_MD_H__ |
#define __GCJ_JVMTI_MD_H__ |
|
#ifdef __GCJ_JNI_IMPL__ |
|
/* If __GCJ_JNI_IMPL__ is defined, then we assume that we're building |
libgcj itself, and we include functions which should not be exposed |
to JVMTI users. */ |
|
/* The number of event slots needed to keep track of event reporting |
constraints for an environment. This will only work if the order of |
events listed in jvmtiEvent and jvmtiEventCallbacks is kept the same |
(which should not be a problem). */ |
#define EVENT_SLOTS \ |
(int)(JVMTI_EVENT_VM_OBJECT_ALLOC - JVMTI_EVENT_VM_INIT + 1) |
|
/* Contents of the jvmtiEnv; but only inside the implementation. */ |
#define _CLASSPATH_JVMTIENV_CONTENTS \ |
/* Event handlers registered via SetEventCallbacks */ \ |
jvmtiEventCallbacks callbacks; \ |
\ |
/* Array of event thread for which to report event. */ \ |
/* NULL means all threads. One for each callback. */ \ |
jthread thread[EVENT_SLOTS]; \ |
\ |
/* Array of notification modes for callbacks. */ \ |
/* One for each callback. */ \ |
bool enabled[EVENT_SLOTS]; |
|
/* Redefine the standard JVMTI types to something a little more |
precise than "jobject". */ |
#define _CLASSPATH_VM_JVMTI_TYPES_DEFINED |
typedef java::lang::Thread *jthread; |
typedef java::lang::ThreadGroup *jthreadGroup; |
typedef jlong jlocation; |
typedef struct _Jv_rawMonitorID *jrawMonitorID; |
|
#endif /* __GCJ_JNI_IMPL__ */ |
|
#endif /* __GCJ_JVMTI_MD_H__ */ |
/s390-signal.h
0,0 → 1,288
// s390-signal.h - Catch runtime signals and turn them into exceptions |
// on an s390 based Linux system. |
|
/* Copyright (C) 2002, 2010 Free Software Foundation |
|
This file is part of libgcj. |
|
This software is copyrighted work licensed under the terms of the |
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for |
details. */ |
|
|
#ifndef JAVA_SIGNAL_H |
#define JAVA_SIGNAL_H 1 |
|
#include <signal.h> |
#include <sys/syscall.h> |
#include <ucontext.h> |
#include <limits.h> |
|
#define HANDLE_SEGV 1 |
#define HANDLE_FPE 1 |
|
#define SIGNAL_HANDLER(_name) \ |
static void _name (int, siginfo_t *_si __attribute__((unused)), \ |
ucontext_t *_uc __attribute__((unused))) |
|
/* We no longer need to fiddle with the PSW address in the signal handler; |
this is now all handled correctly in MD_FALLBACK_FRAME_STATE_FOR. */ |
#define MAKE_THROW_FRAME(_exception) |
|
|
/* According to the JVM spec, "if the dividend is the negative integer |
of the smallest magnitude and the divisor is -1, then overflow occurs |
and the result is equal to the dividend. Despite the overflow, no |
exception occurs". |
|
We handle this by inspecting the instruction which generated the signal, |
and if dividend and divisor are as above, we simply return from the signal |
handler. This causes execution to continue after the instruction. |
Before returning, we the set result registers as expected. */ |
#define UC_EXTENDED 0x00000001 |
|
#define HANDLE_DIVIDE_OVERFLOW \ |
do \ |
{ \ |
unsigned char *_eip = (unsigned char *) \ |
__builtin_extract_return_addr (_si->si_addr); \ |
unsigned long *_regs = _uc->uc_mcontext.gregs; \ |
int _r1, _r2, _d2, _x2, _b2; \ |
struct \ |
{ \ |
unsigned long int uc_flags; \ |
struct ucontext *uc_link; \ |
stack_t uc_stack; \ |
mcontext_t uc_mcontext; \ |
unsigned long sigmask[2]; \ |
unsigned long ext_regs[16]; \ |
} *_uc_ext = (typeof(_uc_ext))_uc; \ |
\ |
/* First, a couple of helper routines to decode instructions. */ \ |
struct _decode \ |
{ \ |
/* Decode RR instruction format. */ \ |
static inline int _is_rr (unsigned char *_eip, \ |
unsigned char _op, \ |
int *_r1, int *_r2) \ |
{ \ |
if (_eip[0] == _op) \ |
{ \ |
*_r1 = _eip[1] >> 4; \ |
*_r2 = _eip[1] & 0xf; \ |
return 1; \ |
} \ |
return 0; \ |
} \ |
\ |
/* Decode RX instruction format. */ \ |
static inline int _is_rx (unsigned char *_eip, \ |
unsigned char _op, \ |
int *_r1, int *_d2, int *_x2, int *_b2) \ |
{ \ |
if (_eip[0] == _op) \ |
{ \ |
*_r1 = _eip[1] >> 4; \ |
*_x2 = _eip[1] & 0xf; \ |
*_b2 = _eip[2] >> 4; \ |
*_d2 = ((_eip[2] & 0xf) << 8) + _eip[3]; \ |
return 1; \ |
} \ |
return 0; \ |
} \ |
\ |
/* Decode RRE instruction format. */ \ |
static inline int _is_rre (unsigned char *_eip, \ |
unsigned char _op1, unsigned char _op2,\ |
int *_r1, int *_r2) \ |
{ \ |
if (_eip[0] == _op1 && _eip[1] == _op2) \ |
{ \ |
*_r1 = _eip[3] >> 4; \ |
*_r2 = _eip[3] & 0xf; \ |
return 1; \ |
} \ |
return 0; \ |
} \ |
\ |
/* Decode RXY instruction format. */ \ |
static inline int _is_rxy (unsigned char *_eip, \ |
unsigned char _op1, unsigned char _op2,\ |
int *_r1, int *_d2, int *_x2, int *_b2)\ |
{ \ |
if (_eip[0] == _op1 && _eip[5] == _op2) \ |
{ \ |
*_r1 = _eip[1] >> 4; \ |
*_x2 = _eip[1] & 0xf; \ |
*_b2 = _eip[2] >> 4; \ |
*_d2 = ((_eip[2] & 0xf) << 8) + _eip[3] + (_eip[4] << 12); \ |
/* We have a 20-bit signed displacement. */ \ |
*_d2 = (*_d2 ^ 0x80000) - 0x80000; \ |
return 1; \ |
} \ |
return 0; \ |
} \ |
\ |
/* Compute effective address. */ \ |
static inline unsigned long _eff (unsigned long *_regs, \ |
long _d, int _x, int _b) \ |
{ \ |
return _d + (_x? _regs[_x] : 0) + (_b? _regs[_b] : 0); \ |
} \ |
\ |
static inline int is_long_long_min_p (unsigned long *_regs, \ |
unsigned long *_ext_regs, \ |
int _r) \ |
{ \ |
return ((long long)_regs[_r] \ |
| (long long)_ext_regs[_r] << 32) == \ |
LONG_LONG_MIN; \ |
} \ |
}; \ |
\ |
/* DR r1,r2 */ \ |
if (_decode::_is_rr (_eip, 0x1d, &_r1, &_r2) \ |
&& (int) _regs[_r1] == -1 && (int) _regs[_r1+1] == INT_MIN \ |
&& (int) _regs[_r2] == -1) \ |
{ \ |
_regs[_r1] &= ~0xffffffff; \ |
return; \ |
} \ |
\ |
/* D r1,d2(x2,b2) */ \ |
if (_decode::_is_rx (_eip, 0x5d, &_r1, &_d2, &_x2, &_b2) \ |
&& (int) _regs[_r1] == -1 && (int) _regs[_r1+1] == INT_MIN \ |
&& *(int *) _decode::_eff (_regs, _d2, _x2, _b2) == -1) \ |
{ \ |
_regs[_r1] &= ~0xffffffff; \ |
return; \ |
} \ |
\ |
/* DSGR r1,r2 */ \ |
if (_decode::_is_rre (_eip, 0xb9, 0x0d, &_r1, &_r2) \ |
&& (long) _regs[_r1+1] == LONG_MIN \ |
&& (long) _regs[_r2] == -1L) \ |
{ \ |
_regs[_r1] = 0; \ |
return; \ |
} \ |
\ |
/* DSGFR r1,r2 */ \ |
if (_decode::_is_rre (_eip, 0xb9, 0x1d, &_r1, &_r2) \ |
&& (long) _regs[_r1+1] == LONG_MIN \ |
&& (int) _regs[_r2] == -1) \ |
{ \ |
_regs[_r1] = 0; \ |
return; \ |
} \ |
\ |
/* DSG r1,d2(x2,b2) */ \ |
if (_decode::_is_rxy (_eip, 0xe3, 0x0d, &_r1, &_d2, &_x2, &_b2) \ |
&& (long) _regs[_r1+1] == LONG_MIN \ |
&& *(long *) _decode::_eff (_regs, _d2, _x2, _b2) == -1L) \ |
{ \ |
_regs[_r1] = 0; \ |
return; \ |
} \ |
\ |
/* DSGF r1,d2(x2,b2) */ \ |
if (_decode::_is_rxy (_eip, 0xe3, 0x1d, &_r1, &_d2, &_x2, &_b2) \ |
&& (long) _regs[_r1+1] == LONG_MIN \ |
&& *(int *) _decode::_eff (_regs, _d2, _x2, _b2) == -1) \ |
{ \ |
_regs[_r1] = 0; \ |
return; \ |
} \ |
\ |
/* The extended ucontext contains the upper halfs of the 64bit \ |
registers in 31bit applications. */ \ |
if (_uc->uc_flags & 1 == 1) \ |
{ \ |
/* DSGR r1,r2 */ \ |
if (_decode::_is_rre (_eip, 0xb9, 0x0d, &_r1, &_r2) \ |
&& (int) _regs[_r2] == -1 \ |
&& (int) _uc_ext->ext_regs[_r2] == -1 \ |
&& _decode::is_long_long_min_p (_regs, _uc_ext->ext_regs, \ |
_r1 + 1)) \ |
{ \ |
_regs[_r1] = 0; \ |
_uc_ext->ext_regs[_r1] = 0; \ |
return; \ |
} \ |
\ |
/* DSGFR r1,r2 */ \ |
if (_decode::_is_rre (_eip, 0xb9, 0x1d, &_r1, &_r2) \ |
&& (int) _regs[_r2] == -1 \ |
&& _decode::is_long_long_min_p (_regs, _uc_ext->ext_regs, \ |
_r1 + 1)) \ |
{ \ |
_regs[_r1] = 0; \ |
_uc_ext->ext_regs[_r1] = 0; \ |
return; \ |
} \ |
\ |
/* DSG r1,d2(x2,b2) */ \ |
if (_decode::_is_rxy (_eip, 0xe3, 0x0d, &_r1, &_d2, &_x2, &_b2) \ |
&& *(int *) _decode::_eff (_regs, _d2, _x2, _b2) == -1 \ |
&& *(int *) _decode::_eff (_regs, _d2 + 4, _x2, _b2) == -1 \ |
&& _decode::is_long_long_min_p (_regs, _uc_ext->ext_regs, \ |
_r1 + 1)) \ |
{ \ |
_regs[_r1] = 0; \ |
_uc_ext->ext_regs[_r1] = 0; \ |
return; \ |
} \ |
\ |
/* DSGF r1,d2(x2,b2) */ \ |
if (_decode::_is_rxy (_eip, 0xe3, 0x1d, &_r1, &_d2, &_x2, &_b2) \ |
&& *(int *) _decode::_eff (_regs, _d2, _x2, _b2) == -1 \ |
&& _decode::is_long_long_min_p (_regs, _uc_ext->ext_regs, \ |
_r1 + 1)) \ |
{ \ |
_regs[_r1] = 0; \ |
_uc_ext->ext_regs[_r1] = 0; \ |
return; \ |
} \ |
} \ |
} \ |
while (0) |
|
/* For an explanation why we cannot simply use sigaction to |
install the handlers, see i386-signal.h. */ |
|
/* We use old_kernel_sigaction here because we're calling the kernel |
directly rather than via glibc. The sigaction structure that the |
syscall uses is a different shape from the one in userland and not |
visible to us in a header file so we define it here. */ |
|
struct old_s390_kernel_sigaction { |
void (*k_sa_handler) (int, siginfo_t *, ucontext_t *); |
unsigned long k_sa_mask; |
unsigned long k_sa_flags; |
void (*sa_restorer) (void); |
}; |
|
#define INIT_SEGV \ |
do \ |
{ \ |
struct old_s390_kernel_sigaction kact; \ |
kact.k_sa_handler = catch_segv; \ |
kact.k_sa_mask = 0; \ |
kact.k_sa_flags = SA_SIGINFO; \ |
syscall (SYS_sigaction, SIGSEGV, &kact, NULL); \ |
} \ |
while (0) |
|
#define INIT_FPE \ |
do \ |
{ \ |
struct old_s390_kernel_sigaction kact; \ |
kact.k_sa_handler = catch_fpe; \ |
kact.k_sa_mask = 0; \ |
kact.k_sa_flags = SA_SIGINFO; \ |
syscall (SYS_sigaction, SIGFPE, &kact, NULL); \ |
} \ |
while (0) |
|
#endif /* JAVA_SIGNAL_H */ |
|
/pa-signal.h
0,0 → 1,49
// pa-signal.h - Catch runtime signals and turn them into exceptions. |
|
/* Copyright (C) 1998, 1999, 2000, 2009 Free Software Foundation |
|
This file is part of libgcj. |
|
This software is copyrighted work licensed under the terms of the |
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for |
details. */ |
|
#ifndef JAVA_SIGNAL_H |
#define JAVA_SIGNAL_H 1 |
|
#include <signal.h> |
#include <sys/syscall.h> |
|
#define HANDLE_SEGV 1 |
#define HANDLE_FPE 1 |
|
#define SIGNAL_HANDLER(_name) \ |
static void _Jv_##_name (int _dummy __attribute__ ((unused)), \ |
siginfo_t *_info __attribute__ ((__unused__)), \ |
void *arg __attribute__ ((__unused__))) |
|
#define MAKE_THROW_FRAME(_exception) |
|
#define INIT_SEGV \ |
do \ |
{ \ |
struct sigaction act; \ |
act.sa_sigaction = _Jv_catch_segv; \ |
sigemptyset (&act.sa_mask); \ |
act.sa_flags = SA_SIGINFO; \ |
syscall (SYS_rt_sigaction, SIGSEGV, &act, NULL, _NSIG / 8); \ |
} \ |
while (0) |
|
#define INIT_FPE \ |
do \ |
{ \ |
struct sigaction act; \ |
act.sa_sigaction = _Jv_catch_fpe; \ |
sigemptyset (&act.sa_mask); \ |
act.sa_flags = SA_SIGINFO; \ |
syscall (SYS_rt_sigaction, SIGFPE, &act, NULL, _NSIG / 8); \ |
} \ |
while (0) |
|
#endif /* JAVA_SIGNAL_H */ |
/java-interp.h
0,0 → 1,588
// java-interp.h - Header file for the bytecode interpreter. -*- c++ -*- |
|
/* Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007 Free Software Foundation |
|
This file is part of libgcj. |
|
This software is copyrighted work licensed under the terms of the |
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for |
details. */ |
|
#ifndef __JAVA_INTERP_H__ |
#define __JAVA_INTERP_H__ |
|
#include <jvm.h> |
#include <java-cpool.h> |
#include <gnu/gcj/runtime/NameFinder.h> |
|
enum _Jv_FrameType |
{ |
frame_native, |
frame_interpreter, |
frame_proxy |
}; |
|
#ifdef INTERPRETER |
|
#pragma interface |
|
#include <java/lang/Class.h> |
#include <java/lang/ClassLoader.h> |
#include <java/lang/reflect/Modifier.h> |
#include <java/lang/Thread.h> |
#include <gnu/gcj/RawData.h> |
|
// Define this to get the direct-threaded interpreter. If undefined, |
// we revert to a basic bytecode interpreter. The former is faster |
// but uses more memory. |
#define DIRECT_THREADED |
|
#include <ffi.h> |
|
struct _Jv_ResolvedMethod; |
|
void _Jv_InitInterpreter (); |
void _Jv_DefineClass (jclass, jbyteArray, jint, jint, |
java::security::ProtectionDomain *, |
_Jv_Utf8Const **); |
|
void _Jv_InitField (jobject, jclass, int); |
void * _Jv_AllocMethodInvocation (jsize size); |
int _Jv_count_arguments (_Jv_Utf8Const *signature, |
jboolean staticp = true); |
void _Jv_VerifyMethod (_Jv_InterpMethod *method); |
void _Jv_CompileMethod (_Jv_InterpMethod* method); |
int _Jv_init_cif (_Jv_Utf8Const* signature, |
int arg_count, |
jboolean staticp, |
ffi_cif *cif, |
ffi_type **arg_types, |
ffi_type **rtype_p); |
|
/* the interpreter is written in C++, primarily because it makes it easy for |
* the entire thing to be "friend" with class Class. */ |
|
class _Jv_InterpClass; |
class _Jv_InterpMethod; |
|
// Before a method is "compiled" we store values as the bytecode PC, |
// an int. Afterwards we store them as pointers into the prepared |
// code itself. |
union _Jv_InterpPC |
{ |
int i; |
void *p; |
}; |
|
class _Jv_InterpException |
{ |
_Jv_InterpPC start_pc; |
_Jv_InterpPC end_pc; |
_Jv_InterpPC handler_pc; |
_Jv_InterpPC handler_type; |
|
friend class _Jv_ClassReader; |
friend class _Jv_InterpMethod; |
friend class _Jv_BytecodeVerifier; |
}; |
|
// Base class for method representations. Subclasses are interpreted |
// and JNI methods. |
class _Jv_MethodBase |
{ |
protected: |
// The class which defined this method. |
jclass defining_class; |
|
// The method description. |
_Jv_Method *self; |
|
// Size of raw arguments. |
_Jv_ushort args_raw_size; |
|
friend class _Jv_InterpreterEngine; |
|
public: |
_Jv_Method *get_method () |
{ |
return self; |
} |
}; |
|
// The type of the PC depends on whether we're doing direct threading |
// or a more ordinary bytecode interpreter. |
#ifdef DIRECT_THREADED |
// Slot in the "compiled" form of the bytecode. |
union insn_slot |
{ |
// Address of code. |
void *insn; |
// An integer value used by an instruction. |
jint int_val; |
// A pointer value used by an instruction. |
void *datum; |
}; |
|
typedef insn_slot *pc_t; |
#else |
typedef unsigned char *pc_t; |
#endif |
|
|
// This structure holds the bytecode pc and corresponding source code |
// line number. An array (plus length field) of this structure is put |
// in each _Jv_InterpMethod and used to resolve the (internal) program |
// counter of the interpreted method to an actual java source file |
// line. |
struct _Jv_LineTableEntry |
{ |
union |
{ |
pc_t pc; |
int bytecode_pc; |
}; |
int line; |
}; |
|
// This structure holds local variable information. |
// Like _Jv_LineTableEntry above, it is remapped when the method is |
// compiled for direct threading. |
struct _Jv_LocalVarTableEntry |
{ |
// First PC value at which variable is live |
union |
{ |
pc_t pc; |
int bytecode_pc; |
}; |
|
// length of visibility of variable |
int length; |
|
// variable name |
char *name; |
|
// type description |
char *descriptor; |
|
// stack slot number (long and double occupy slot and slot + 1) |
int slot; |
}; |
|
class _Jv_InterpMethod : public _Jv_MethodBase |
{ |
// Breakpoint instruction |
static pc_t breakpoint_insn; |
#ifdef DIRECT_THREADED |
static insn_slot bp_insn_slot; |
|
public: |
// Mutex to prevent a data race between threads when rewriting |
// instructions. See interpret-run.cc for an explanation of its use. |
static _Jv_Mutex_t rewrite_insn_mutex; |
|
// The count of threads executing this method. |
long thread_count; |
|
private: |
|
#else |
static unsigned char bp_insn_opcode; |
#endif |
|
_Jv_ushort max_stack; |
_Jv_ushort max_locals; |
int code_length; |
|
_Jv_ushort exc_count; |
bool is_15; |
|
// Length of the line_table - when this is zero then line_table is NULL. |
int line_table_len; |
_Jv_LineTableEntry *line_table; |
|
// The local variable table length and the table itself |
int local_var_table_len; |
_Jv_LocalVarTableEntry *local_var_table; |
|
pc_t prepared; |
int number_insn_slots; |
|
unsigned char* bytecode () |
{ |
return |
((unsigned char*)this) |
+ ROUND((sizeof (_Jv_InterpMethod) |
+ exc_count*sizeof (_Jv_InterpException)), 4); |
} |
|
_Jv_InterpException * exceptions () |
{ |
return (_Jv_InterpException*) (this+1); |
} |
|
static size_t size (int exc_count, int code_length) |
{ |
return |
ROUND ((sizeof (_Jv_InterpMethod) |
+ (exc_count * sizeof (_Jv_InterpException))), 4) |
+ code_length; |
} |
|
// return the method's invocation pointer (a stub). |
void *ncode (jclass); |
void compile (const void * const *); |
|
#if FFI_NATIVE_RAW_API |
# define INTERP_FFI_RAW_TYPE ffi_raw |
#else |
# define INTERP_FFI_RAW_TYPE ffi_java_raw |
#endif |
|
static void run_normal (ffi_cif*, void*, INTERP_FFI_RAW_TYPE*, void*); |
static void run_synch_object (ffi_cif*, void*, INTERP_FFI_RAW_TYPE*, void*); |
static void run_class (ffi_cif*, void*, INTERP_FFI_RAW_TYPE*, void*); |
static void run_synch_class (ffi_cif*, void*, INTERP_FFI_RAW_TYPE*, void*); |
|
static void run_normal_debug (ffi_cif*, void*, INTERP_FFI_RAW_TYPE*, void*); |
static void run_synch_object_debug (ffi_cif*, void*, INTERP_FFI_RAW_TYPE*, |
void*); |
static void run_class_debug (ffi_cif*, void*, INTERP_FFI_RAW_TYPE*, void*); |
static void run_synch_class_debug (ffi_cif*, void*, INTERP_FFI_RAW_TYPE*, |
void*); |
|
static void run (void *, INTERP_FFI_RAW_TYPE *, _Jv_InterpMethod *); |
static void run_debug (void *, INTERP_FFI_RAW_TYPE *, _Jv_InterpMethod *); |
|
|
|
// Returns source file line number for given PC value, or -1 if line |
// number info is unavailable. |
int get_source_line(pc_t mpc); |
|
public: |
|
// Convenience function for indexing bytecode PC/insn slots in |
// line tables for JDWP |
jlong insn_index (pc_t pc); |
|
// Helper function used to check if there is a handler for an exception |
// present at this code index |
jboolean check_handler (pc_t *pc, _Jv_InterpMethod *meth, |
java::lang::Throwable *ex); |
|
/* Get the line table for this method. |
* start is the lowest index in the method |
* end is the highest index in the method |
* line_numbers is an array to hold the list of source line numbers |
* code_indices is an array to hold the corresponding list of code indices |
*/ |
void get_line_table (jlong& start, jlong& end, jintArray& line_numbers, |
jlongArray& code_indices); |
|
int get_max_locals () |
{ |
return static_cast<int> (max_locals); |
} |
|
/* Get info for a local variable of this method. |
* If there is no loca_var_table for this method it will return -1. |
* table_slot indicates which slot in the local_var_table to get, if there is |
* no variable at this location it will return 0. |
* Otherwise, it will return the number of table slots after the selected |
* slot, indexed from 0. |
* |
* Example: there are 5 slots in the table, you request slot 0 so it will |
* return 4. |
*/ |
int get_local_var_table (char **name, char **sig, char **generic_sig, |
jlong *startloc, jint *length, jint *slot, |
int table_slot); |
|
/* Installs a break instruction at the given code index. Returns |
the pc_t of the breakpoint or NULL if index is invalid. */ |
pc_t install_break (jlong index); |
|
// Gets the instruction at the given index |
pc_t get_insn (jlong index); |
|
/* Writes the given instruction at the given code index. Returns |
the insn or NULL if index is invalid. */ |
pc_t set_insn (jlong index, pc_t insn); |
|
// Is the given location in this method a breakpoint? |
bool breakpoint_at (jlong index); |
|
#ifdef DIRECT_THREADED |
friend void _Jv_CompileMethod (_Jv_InterpMethod*); |
#endif |
|
friend class _Jv_ClassReader; |
friend class _Jv_BytecodeVerifier; |
friend class _Jv_StackTrace; |
friend class _Jv_InterpreterEngine; |
|
#ifdef JV_MARKOBJ_DECL |
friend JV_MARKOBJ_DECL; |
#endif |
}; |
|
class _Jv_InterpClass |
{ |
_Jv_MethodBase **interpreted_methods; |
_Jv_ushort *field_initializers; |
jstring source_file_name; |
_Jv_ClosureList **closures; |
|
friend class _Jv_ClassReader; |
friend class _Jv_InterpMethod; |
friend class _Jv_StackTrace; |
friend class _Jv_InterpreterEngine; |
|
friend void _Jv_InitField (jobject, jclass, int); |
#ifdef JV_MARKOBJ_DECL |
friend JV_MARKOBJ_DECL; |
#endif |
|
friend _Jv_MethodBase ** _Jv_GetFirstMethod (_Jv_InterpClass *klass); |
friend jstring _Jv_GetInterpClassSourceFile (jclass); |
}; |
|
extern inline _Jv_MethodBase ** |
_Jv_GetFirstMethod (_Jv_InterpClass *klass) |
{ |
return klass->interpreted_methods; |
} |
|
struct _Jv_ResolvedMethod |
{ |
jint stack_item_count; |
jclass klass; |
_Jv_Method* method; |
|
// a resolved method holds the cif in-line, so that _Jv_MarkObj just needs |
// to mark the resolved method to hold on to the cif. Some memory could be |
// saved by keeping a cache of cif's, since many will be the same. |
ffi_cif cif; |
ffi_type * arg_types[0]; |
}; |
|
class _Jv_JNIMethod : public _Jv_MethodBase |
{ |
// The underlying function. If NULL we have to look for the |
// function. |
void *function; |
|
// This is the CIF used by the JNI function. |
ffi_cif jni_cif; |
|
// These are the argument types used by the JNI function. |
ffi_type **jni_arg_types; |
|
// This function is used when making a JNI call from the interpreter. |
static void call (ffi_cif *, void *, INTERP_FFI_RAW_TYPE *, void *); |
|
void *ncode (jclass); |
|
friend class _Jv_ClassReader; |
friend class _Jv_InterpreterEngine; |
|
#ifdef JV_MARKOBJ_DECL |
friend JV_MARKOBJ_DECL; |
#endif |
|
public: |
// FIXME: this is ugly. |
void set_function (void *f) |
{ |
function = f; |
} |
}; |
|
// The composite call stack as represented by a linked list of frames |
class _Jv_Frame |
{ |
public: |
java::lang::Thread *thread; |
|
union |
{ |
_Jv_MethodBase *self; |
void *meth; |
_Jv_Method *proxyMethod; |
}; |
|
//The full list of frames, JNI and interpreted |
_Jv_Frame *next; |
_Jv_FrameType frame_type; |
|
_Jv_Frame (_Jv_MethodBase *s, java::lang::Thread *thr, _Jv_FrameType type) |
{ |
self = s; |
frame_type = type; |
next = (_Jv_Frame *) thr->frame; |
thr->frame = (gnu::gcj::RawData *) this; |
thread = thr; |
} |
|
~_Jv_Frame () |
{ |
thread->frame = (gnu::gcj::RawData *) next; |
} |
|
int depth () |
{ |
int depth = 0; |
struct _Jv_Frame *f; |
for (f = this; f != NULL; f = f->next) |
++depth; |
|
return depth; |
} |
}; |
|
// An interpreted frame in the call stack |
class _Jv_InterpFrame : public _Jv_Frame |
{ |
public: |
|
// Keep the purely interpreted list around so as not to break backtraces |
_Jv_InterpFrame *next_interp; |
|
union |
{ |
pc_t pc; |
jclass proxyClass; |
}; |
|
// Pointer to the actual pc value. |
pc_t *pc_ptr; |
|
//Debug info for local variables. |
_Jv_word *locals; |
char *locals_type; |
|
// Object pointer for this frame ("this") |
jobject obj_ptr; |
|
_Jv_InterpFrame (void *meth, java::lang::Thread *thr, jclass proxyCls = NULL, |
pc_t *pc = NULL, |
_Jv_FrameType frame_type = frame_interpreter) |
: _Jv_Frame (reinterpret_cast<_Jv_MethodBase *> (meth), thr, |
frame_type) |
{ |
next_interp = (_Jv_InterpFrame *) thr->interp_frame; |
proxyClass = proxyCls; |
thr->interp_frame = (gnu::gcj::RawData *) this; |
obj_ptr = NULL; |
pc_ptr = pc; |
} |
|
~_Jv_InterpFrame () |
{ |
thread->interp_frame = (gnu::gcj::RawData *) next_interp; |
} |
|
jobject get_this_ptr () |
{ |
return obj_ptr; |
} |
|
pc_t get_pc () |
{ |
pc_t pc; |
|
// If the PC_PTR is NULL, we are not debugging. |
if (pc_ptr == NULL) |
pc = 0; |
else |
pc = *pc_ptr - 1; |
|
return pc; |
} |
}; |
|
// A native frame in the call stack really just a placeholder |
class _Jv_NativeFrame : public _Jv_Frame |
{ |
public: |
|
_Jv_NativeFrame (_Jv_JNIMethod *s, java::lang::Thread *thr) |
: _Jv_Frame (s, thr, frame_native) |
{ |
} |
}; |
|
#ifdef DIRECT_THREADED |
// This class increments and decrements the thread_count field in an |
// interpreted method. On entry to the interpreter a |
// ThreadCountAdjuster is created when increments the thread_count in |
// the current method and uses the next_interp field in the frame to |
// find the previous method and decrement its thread_count. |
class ThreadCountAdjuster |
{ |
|
// A class used to handle the rewrite_insn_mutex while we're |
// adjusting the thread_count in a method. Unlocking the mutex in a |
// destructor ensures that it's unlocked even if (for example) a |
// segfault occurs in the critical section. |
class MutexLock |
{ |
private: |
_Jv_Mutex_t *mutex; |
public: |
MutexLock (_Jv_Mutex_t *m) |
{ |
mutex = m; |
_Jv_MutexLock (mutex); |
} |
~MutexLock () |
{ |
_Jv_MutexUnlock (mutex); |
} |
}; |
|
_Jv_InterpMethod *method; |
_Jv_InterpMethod *next_method; |
|
public: |
|
ThreadCountAdjuster (_Jv_InterpMethod *m, _Jv_InterpFrame *fr) |
{ |
MutexLock lock (&::_Jv_InterpMethod::rewrite_insn_mutex); |
|
method = m; |
next_method = NULL; |
|
_Jv_InterpFrame *next_interp = fr->next_interp; |
|
// Record the fact that we're executing this method and that |
// we're no longer executing the method that called us. |
method->thread_count++; |
|
if (next_interp && next_interp->frame_type == frame_interpreter) |
{ |
next_method |
= reinterpret_cast<_Jv_InterpMethod *> (next_interp->meth); |
next_method->thread_count--; |
} |
} |
|
~ThreadCountAdjuster () |
{ |
MutexLock lock (&::_Jv_InterpMethod::rewrite_insn_mutex); |
|
// We're going to return to the method that called us, so bump its |
// thread_count and decrement our own. |
|
method->thread_count--; |
|
if (next_method) |
next_method->thread_count++; |
} |
}; |
#endif // DIRECT_THREADED |
|
#endif /* INTERPRETER */ |
|
#endif /* __JAVA_INTERP_H__ */ |
/jvmti-int.h
0,0 → 1,94
/* jvmti-int.h -- Internal JVMTI definitions |
Copyright (C) 2006, 2007 Free Software Foundation, Inc. |
|
This file is part of GNU Classpath. |
|
GNU Classpath is free software; you can redistribute it and/or modify |
it under the terms of the GNU General Public License as published by |
the Free Software Foundation; either version 2, or (at your option) |
any later version. |
|
GNU Classpath 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 |
General Public License for more details. |
|
You should have received a copy of the GNU General Public License |
along with GNU Classpath; see the file COPYING. If not, write to the |
Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA |
02110-1301 USA. |
|
As a special exception, if you link this library with other files to |
produce an executable, this library does not by itself cause the |
resulting executable to be covered by the GNU General Public License. |
This exception does not however invalidate any other reasons why the |
executable file might be covered by the GNU General Public License. */ |
|
#ifndef __GCJ_JVTMI_INT_H__ |
#define __GCJ_JVMTI_INT_H__ |
|
/* A macro to map jvmtiEvent to an index in thread[] and enabled[] |
in the jvmtiEnv. This will only work if the order of events listed |
in jvmtiEvent and jvmtiEventCallbacks is kept the same (which should |
not be a problem). */ |
#define EVENT_INDEX(jvmtievent) (int)(jvmtievent - JVMTI_EVENT_VM_INIT) |
|
/* A few globals to help limit the impact of JVMTI on normal operations. |
False means no JVMTI environment requested that event type. */ |
namespace JVMTI |
{ |
// Is JVMTI enabled? (i.e., any jvmtiEnv created?) |
extern bool enabled; |
|
// Event notifications |
extern bool VMInit; |
extern bool VMDeath; |
extern bool ThreadStart; |
extern bool ThreadEnd; |
extern bool ClassFileLoadHook; |
extern bool ClassLoad; |
extern bool ClassPrepare; |
extern bool VMStart; |
extern bool Exception; |
extern bool ExceptionCatch; |
extern bool SingleStep; |
extern bool FramePop; |
extern bool Breakpoint; |
extern bool FieldAccess; |
extern bool FieldModification; |
extern bool MethodEntry; |
extern bool MethodExit; |
extern bool NativeMethodBind; |
extern bool CompiledMethodLoad; |
extern bool CompiledMethodUnload; |
extern bool DynamicCodeGenerated; |
extern bool DataDumpRequest; |
extern bool reserved72; |
extern bool MonitorWait; |
extern bool MonitorWaited; |
extern bool MonitorContendedEnter; |
extern bool MonitorContendedEntered; |
extern bool reserved77; |
extern bool reserved78; |
extern bool reserved79; |
extern bool reserved80; |
extern bool GarbageCollectionStart; |
extern bool GarbageCollectionFinish; |
extern bool ObjectFree; |
extern bool VMObjectAlloc; |
}; |
|
/* A macro to test whether an event should be posted to JVMTI.*/ |
#define JVMTI_REQUESTED_EVENT(Event) __builtin_expect (JVMTI::Event, false) |
|
/* Post the event to requesting JVMTI environments. |
|
For speed, this function should only be called after |
JVMTI_REQUESTED_EVENT is checked. */ |
extern void _Jv_JVMTI_PostEvent (jvmtiEvent type, jthread event_thread, ...); |
// Returns the jvmtiEnv used by the JDWP backend |
extern jvmtiEnv *_Jv_GetJDWP_JVMTIEnv (void); |
|
// Reports JVMTI excpetions |
extern void _Jv_ReportJVMTIExceptionThrow (jthrowable); |
#endif /* __GCJ_JVMTI_INT_H__ */ |
/mips-signal.h
0,0 → 1,49
// mips-signal.h - Catch runtime signals and turn them into exceptions |
// on an mips based Linux system. |
|
/* Copyright (C) 1998, 1999, 2001, 2002, 2003, 2004, 2006 |
Free Software Foundation |
|
This file is part of libgcj. |
|
This software is copyrighted work licensed under the terms of the |
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for |
details. */ |
|
/* Adapted from sparc-signal.h and powerpc-signal.h |
by David Daney <ddaney@avtrex.com> */ |
|
#ifndef JAVA_SIGNAL_H |
#define JAVA_SIGNAL_H 1 |
|
#include <signal.h> |
#include <unistd.h> |
|
#define HANDLE_SEGV 1 |
#define HANDLE_FPE 1 |
|
#define SIGNAL_HANDLER(_name) \ |
static void _name (int _dummy __attribute__ ((__unused__)), \ |
siginfo_t *_info __attribute__ ((__unused__)), \ |
void *_arg __attribute__ ((__unused__))) |
|
#define MAKE_THROW_FRAME(_exception) |
|
#define _INIT_SIG_HANDLER(_SIG, _ACTION) \ |
do \ |
{ \ |
struct sigaction act; \ |
act.sa_sigaction = _ACTION; \ |
act.sa_flags = SA_SIGINFO | SA_NODEFER; \ |
sigemptyset (&act.sa_mask); \ |
sigaction(_SIG, &act, NULL); \ |
} \ |
while (0) |
|
#define INIT_SEGV _INIT_SIG_HANDLER (SIGSEGV, catch_segv) |
|
#define INIT_FPE _INIT_SIG_HANDLER (SIGFPE, catch_fpe) |
#undef HANDLE_DIVIDE_OVERFLOW |
|
#endif /* JAVA_SIGNAL_H */ |
|
/java-chartables.h
0,0 → 1,1617
/* java-chartables.h -- Character tables for java.lang.Character -*- c++ -*- |
Copyright (C) 2002, 2006 Free Software Foundation, Inc. |
*** This file is generated by scripts/unicode_to_chartables.pl *** |
|
This file is part of GNU Classpath. |
|
GNU Classpath is free software; you can redistribute it and/or modify |
it under the terms of the GNU General Public License as published by |
the Free Software Foundation; either version 2, or (at your option) |
any later version. |
|
GNU Classpath 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 |
General Public License for more details. |
|
You should have received a copy of the GNU General Public License |
along with GNU Classpath; see the file COPYING. If not, write to the |
Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA |
02110-1301 USA. |
|
Linking this library statically or dynamically with other modules is |
making a combined work based on this library. Thus, the terms and |
conditions of the GNU General Public License cover the whole |
combination. |
|
As a special exception, the copyright holders of this library give you |
permission to link this library with independent modules to produce an |
executable, regardless of the license terms of these independent |
modules, and to copy and distribute the resulting executable under |
terms of your choice, provided that you also meet, for each linked |
independent module, the terms and conditions of the license of that |
module. An independent module is a module which is not derived from |
or based on this library. If you modify this library, you may extend |
this exception to your version of the library, but you are not |
obligated to do so. If you do not wish to do so, delete this |
exception statement from your version. */ |
|
#ifndef __JAVA_CHARTABLES_H__ |
#define __JAVA_CHARTABLES_H__ |
|
// These tables are automatically generated by scripts/unicode_to_chartables.pl. |
// The Unicode data comes from www.unicode.org; this header is based on |
// UnicodeData-4.0.0.txt. JDK 1.5 uses Unicode version 4.0.0. |
// DO NOT EDIT the tables. Instead, fix the upstream scripts and run |
// them again. |
|
// The data is stored in C style arrays of the appropriate CNI types, to |
// guarantee that the data is constant and non-relocatable. The field |
// <code>blocks</code> stores the offset of a block of 2<sup>SHIFT</sup> |
// characters within <code>data</code>. The data field, in turn, stores |
// information about each character in the low order bits, and an offset |
// into the attribute tables <code>upper</code>, <code>lower</code>, |
// <code>numValue</code>, and <code>direction</code>. Notice that the |
// attribute tables are much smaller than 0xffff entries; as many characters |
// in Unicode share common attributes. Finally, there is a listing for |
// <code>title</code> exceptions (most characters just have the same title |
// case as upper case). |
|
// This file should only be included by natCharacter.cc |
|
/** |
* The array containing the numeric values that are too large to be stored as |
* chars in NUM_VALUE. NUM_VALUE in this case will contain a negative integer |
* N such that LARGENUMS[-N - 3] contains the correct numeric value. |
*/ |
static const jint largenums[] = { |
40000, 50000, 60000, 70000, 80000, 90000, }; |
|
/** |
* The character shift amount to look up the block offset. In other words, |
* <code>(char) (blocks[p][off >> SHIFT[p]] + off)</code> is the index where |
* <code>ch</code> is described in <code>data</code>, where <code>off</code> |
* is ch & 0xffff and <code>p</code> is the plane the character belongs to. |
*/ |
static const int shift[] = { |
4, 6, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 7, 8, 8, }; |
|
/** |
* The mapping of character blocks to their location in <code>data</code>. |
* Each entry has been adjusted so that a modulo 16 sum with the desired |
* character gives the actual index into <code>data</code>. |
*/ |
static const jchar blocks0[] = { |
15, 23, 53, 7, 52, 52, 90, 65424, 65437, 65427, |
11, 65461, 11, 4, 28, 21, 23, 7, 65527, 173, |
269, 65479, 65463, 65403, 273, 273, 183, 257, 65500, 65354, |
65335, 65267, 65303, 65287, 65269, 65401, 220, 50, 321, 5, |
65511, 317, 304, 311, 355, 355, 274, 325, 358, 342, |
326, 310, 65409, 401, 262, 65156, 458, 64826, 442, 64843, |
426, 65140, 64823, 334, 435, 64699, 64683, 64716, 64700, 371, |
64695, 64679, 64680, 64647, 64631, 64615, 275, 64583, 64567, 64578, |
64535, 65036, 65020, 64723, 64708, 64701, 65034, 65019, 65012, 65237, |
65219, 64791, 64789, 138, 127, 181, 64945, 220, 64878, 249, |
203, 65507, 107, 249, 64783, 64767, 64751, 64735, 64719, 9, |
171, 105, 65531, 88, 64623, 64822, 65494, 64460, 64444, 64428, |
64527, 64511, 65392, 65529, 64348, 64332, 64316, 64300, 64284, 64268, |
64252, 64236, 64220, 64204, 64188, 64172, 64156, 64140, 64124, 64108, |
64092, 64076, 64060, 64044, 65249, 64259, 64243, 65267, 64724, 65291, |
65299, 63915, 64394, 63482, 64105, 64485, 64366, 63758, 65193, 65199, |
64377, 63354, 63977, 63687, 65020, 63328, 64386, 65087, 63204, 63872, |
63849, 63246, 64454, 63332, 64937, 64989, 64010, 63098, 63721, 64328, |
63117, 62956, 64913, 63171, 63428, 63323, 63407, 63323, 63803, 64222, |
64347, 64791, 63236, 63489, 63465, 64420, 64727, 63279, 64657, 63148, |
64331, 63361, 63337, 64631, 64369, 63898, 64529, 63020, 64203, 63233, |
63209, 64143, 64503, 63838, 64401, 62892, 64468, 62443, 63091, 63450, |
64391, 63538, 62780, 62759, 62994, 62979, 62963, 64143, 64157, 64041, |
62652, 62636, 62151, 63220, 63096, 64185, 64185, 63935, 62524, 62508, |
64137, 62218, 63176, 63172, 62666, 62659, 63643, 62845, 63847, 62669, |
62662, 62649, 62052, 62284, 62268, 62252, 62483, 62467, 62722, 63849, |
63671, 63833, 62140, 62124, 62108, 62092, 63783, 63767, 63761, 62275, |
62259, 63347, 62227, 62211, 62195, 62179, 62163, 63148, 62131, 62115, |
62099, 62083, 63075, 62051, 62035, 62019, 62003, 63473, 61963, 61955, |
61939, 61923, 61227, 61211, 61875, 61859, 61163, 61827, 61795, 61123, |
61107, 61755, 61731, 61731, 61699, 61027, 61683, 61667, 61643, 62635, |
62147, 62425, 61340, 61324, 61555, 61539, 61523, 61507, 61491, 62966, |
61458, 61443, 61427, 61411, 61395, 61379, 61363, 61347, 61331, 61315, |
61299, 61283, 61267, 61251, 61235, 61219, 61203, 61187, 61171, 61155, |
61139, 61123, 61107, 61091, 61075, 61059, 61043, 61027, 61011, 60995, |
60979, 60963, 60947, 60931, 60915, 60899, 60883, 60867, 60205, 62324, |
61814, 61782, 60787, 60771, 60755, 60739, 62073, 62215, 60677, 62199, |
60659, 62183, 60627, 62167, 60581, 62151, 60563, 60547, 60531, 62103, |
61004, 62098, 60246, 62097, 62097, 60198, 60403, 60387, 61402, 60355, |
60339, 61811, 60307, 60291, 61953, 60012, 59996, 59980, 59964, 59948, |
60179, 61161, 61746, 60531, 59888, 60099, 61080, 61558, 59804, 59788, |
59772, 59756, 59740, 59724, 61668, 61652, 59676, 59660, 59644, 59628, |
59612, 59596, 59580, 59564, 59548, 59532, 59516, 59500, 59484, 59468, |
59452, 59436, 59420, 59404, 59388, 59372, 59356, 59340, 59324, 59308, |
59292, 59276, 59260, 59244, 59228, 59212, 59196, 59180, 59164, 59148, |
59132, 59116, 59100, 59084, 59068, 59052, 59036, 59020, 59004, 58988, |
58972, 58956, 58940, 58924, 59088, 59072, 59060, 59056, 59040, 59024, |
61022, 58796, 58780, 58764, 58748, 58732, 58716, 58700, 58684, 58668, |
58135, 58119, 58103, 58087, 58071, 58055, 58039, 58023, 58007, 58200, |
57975, 57959, 57943, 57927, 57911, 59112, 60622, 60622, 60590, 60574, |
60574, 60574, 60526, 60558, 60558, 60542, 60526, 60526, 58499, 60510, |
60510, 57701, 60494, 60494, 57467, 60493, 57427, 57334, 59163, 60445, |
60445, 57996, 60429, 60427, 57948, 60411, 58887, 57900, 58047, 59809, |
60046, 59529, 60439, 58731, 60423, 60423, 60423, 59922, 60407, 59668, |
59654, 59631, 59620, 59616, 59751, 60187, 60182, 59602, 60111, 60058, |
59577, 60060, 59602, 59637, 60006, 60003, 59952, 59516, 59950, 59932, |
60070, 59316, 60048, 60043, 60033, 60017, 60001, 57613, 59204, 57620, |
59188, 57600, 59140, 59945, 57148, 57132, 59076, 59060, 59859, 57068, |
59823, 57036, 59825, 59805, 59785, 59785, 59681, 59818, 59808, 59808, |
59798, 58754, 58820, 58804, 58788, 58772, 58756, 58740, 58724, 58708, |
58692, 58676, 58660, 59374, 58626, 58612, 58596, 58588, 58564, 57001, |
58532, 58516, 58500, 58484, 58469, 59260, 58436, 59240, 59224, 56428, |
56412, 56396, 56380, 56364, 56728, 58292, 56729, 58260, 56650, 59204, |
56673, 56667, 56657, 58964, 58148, 58939, 56156, 58635, 59076, 58084, |
58052, 58036, 58020, 58004, 57988, 57972, 57956, 57940, 57924, 57908, |
57892, 57876, 57860, 57844, 57828, 57812, 57812, 57796, 57780, 57764, |
57748, 57732, 57716, 57700, 57710, 57702, 58220, 57822, 57775, 58235, |
57679, 57584, 57562, 58161, 57661, 57673, 57492, 57671, 58045, 57561, |
57996, 57980, 57473, 57948, 57932, 57405, 57879, 57420, 58092, 55308, |
55292, 55276, 55260, 55244, 55228, 55212, 55196, 55180, 55164, 55148, |
55132, 55116, 55100, 55084, 55068, 55052, 55036, 55020, 55004, 54988, |
54972, 54956, 54940, 54924, 54908, 54892, 54876, 54860, 54844, 54828, |
54812, 54796, 54780, 54764, 54748, 54732, 54716, 54700, 54684, 54668, |
54652, 54636, 54620, 54604, 54588, 54572, 54556, 54540, 54524, 54508, |
54492, 54476, 54460, 54444, 56388, 54823, 56356, 56340, 56324, 56308, |
56292, 57094, 56260, 56244, 56228, 56212, 56196, 56180, 56164, 56148, |
56132, 56116, 56100, 56084, 56068, 56868, 54076, 56830, 57012, 57010, |
54323, 56918, 54226, 54211, 54195, 54179, 54163, 55228, 54114, 54115, |
54099, 54083, 54067, 55067, 55046, 54019, 55001, 53986, 53971, 53955, |
53939, 53923, 53891, 53991, 53875, 55347, 53596, 53580, 53564, 53795, |
56257, 56244, 56368, 56209, 56320, 56450, 56161, 56149, 56272, 56113, |
56097, 56100, 56165, 56049, 56033, 56133, 56001, 55985, 55969, 55953, |
55937, 55921, 55905, 55994, 55873, 55857, 55841, 55825, 55809, 55795, |
55777, 55762, 53267, 53251, 53235, 53219, 53203, 53187, 53171, 53155, |
53139, 53123, 53107, 53091, 53075, 53059, 53043, 53027, 53011, 52995, |
52979, 52963, 52947, 52931, 52915, 52899, 52883, 52867, 52851, 52835, |
52819, 52803, 52787, 52771, 52755, 52739, 52723, 52707, 52691, 52675, |
52659, 52643, 52627, 52611, 52595, 52579, 52563, 52547, 52531, 52515, |
52499, 52483, 52467, 52451, 52435, 52419, 52403, 52387, 52371, 52355, |
52339, 52323, 52307, 52291, 52275, 52259, 52243, 52227, 52211, 52195, |
52179, 52163, 52147, 52131, 52115, 52099, 52083, 52067, 52051, 52035, |
52019, 52003, 51987, 51971, 51955, 51939, 51923, 51907, 51891, 51875, |
51859, 51843, 51827, 51811, 51795, 51779, 51763, 51747, 51731, 51715, |
51699, 51683, 51667, 51651, 51635, 51619, 51603, 51587, 51571, 51555, |
51539, 51523, 51507, 51491, 51475, 51459, 51443, 51427, 51411, 51395, |
51379, 51363, 51347, 51331, 51315, 51299, 51283, 51267, 51251, 51235, |
51219, 51203, 51187, 51171, 51155, 51139, 51123, 51107, 51091, 51075, |
51059, 51043, 51027, 51011, 50995, 50979, 50963, 50947, 50931, 50915, |
50899, 50883, 50867, 50851, 50835, 50819, 50803, 50787, 50771, 50755, |
50739, 50723, 50707, 50691, 50675, 50659, 50643, 50627, 50611, 50595, |
50579, 50563, 50547, 50531, 50515, 50499, 50483, 50467, 50451, 50435, |
50419, 50403, 50387, 50371, 50355, 50339, 50323, 50307, 50291, 50275, |
50259, 50243, 50227, 50211, 50195, 50179, 50163, 50147, 50131, 50115, |
50099, 50083, 50067, 50051, 50035, 50019, 50003, 49987, 49971, 49955, |
49939, 49923, 49907, 49891, 49875, 49859, 49843, 49827, 49811, 49795, |
49779, 49763, 49747, 49731, 49715, 49699, 49683, 49667, 49651, 49635, |
49619, 49603, 49587, 49571, 49555, 49539, 49523, 49507, 49491, 49475, |
49459, 49443, 49427, 49411, 49395, 49379, 49363, 49347, 49331, 49315, |
49299, 49283, 49267, 49251, 49235, 49219, 49203, 49187, 49171, 49155, |
49139, 49123, 49107, 49091, 49075, 49059, 49043, 49027, 49011, 48995, |
48979, 48963, 48947, 48931, 48915, 48899, 48883, 48867, 48851, 48835, |
48819, 48803, 48787, 48771, 48755, 48739, 48723, 48707, 48691, 48675, |
48659, 48643, 48627, 48611, 48595, 48579, 48563, 48547, 48531, 48515, |
48499, 48483, 48467, 48451, 48435, 48419, 48403, 48387, 48371, 48355, |
48339, 48323, 48307, 48291, 48275, 48259, 48243, 48227, 48211, 48195, |
48179, 48163, 48147, 48131, 48115, 48099, 48083, 48067, 48051, 48035, |
48019, 48003, 47987, 47971, 47955, 47939, 47923, 47907, 47891, 47875, |
47859, 47843, 47827, 47811, 47795, 47779, 47763, 47747, 47731, 47715, |
47699, 47683, 47667, 47651, 47635, 47619, 47603, 47587, 47571, 47555, |
47539, 47523, 47507, 47491, 47475, 47459, 47443, 47427, 47411, 47395, |
47379, 47363, 47347, 47331, 47315, 47299, 47283, 47267, 47251, 47235, |
47219, 47203, 47187, 47171, 47155, 47139, 47123, 47107, 47091, 47075, |
47059, 47043, 47027, 47011, 46995, 46979, 46963, 46947, 46931, 46915, |
46899, 46883, 46867, 46851, 46835, 46819, 46803, 46787, 46771, 46755, |
46739, 46723, 46707, 48181, 48388, 48372, 48356, 48340, 46611, 46595, |
46579, 46563, 46547, 46531, 46515, 46499, 46483, 46467, 46451, 46435, |
46419, 46403, 46387, 46371, 46355, 46339, 46323, 46307, 46291, 46275, |
46259, 46243, 46227, 46211, 46195, 46179, 46163, 46147, 46131, 46115, |
46099, 46083, 46067, 46051, 46035, 46019, 46003, 45987, 45971, 45955, |
45939, 45923, 45907, 45891, 45875, 45859, 45843, 45827, 45811, 45795, |
45779, 45763, 45747, 45731, 45715, 45699, 45683, 45667, 45651, 45635, |
45619, 45603, 45587, 45571, 45555, 45539, 45523, 45507, 45491, 45475, |
45459, 45443, 45427, 45411, 45395, 45379, 45363, 45347, 45331, 45315, |
45299, 45283, 45267, 45251, 45235, 45219, 45203, 45187, 45171, 45155, |
45139, 45123, 45107, 45091, 45075, 45059, 45043, 45027, 45011, 44995, |
44979, 44963, 44947, 44931, 44915, 44899, 44883, 44867, 44851, 44835, |
44819, 44803, 44787, 44771, 44755, 44739, 44723, 44707, 44691, 44675, |
44659, 44643, 44627, 44611, 44595, 44579, 44563, 44547, 44531, 44515, |
44499, 44483, 44467, 44451, 44435, 44419, 44403, 44387, 44371, 44355, |
44339, 44323, 44307, 44291, 44275, 44259, 44243, 44227, 44211, 44195, |
44179, 44163, 44147, 44131, 44115, 44099, 44083, 44067, 44051, 44035, |
44019, 44003, 43987, 43971, 43955, 43939, 43923, 43907, 43891, 43875, |
43859, 43843, 43827, 43811, 43795, 43779, 43763, 43747, 43731, 43715, |
43699, 43683, 43667, 43651, 43635, 43619, 43603, 43587, 43571, 43555, |
43539, 43523, 43507, 43491, 43475, 43459, 43443, 43427, 43411, 43395, |
43379, 43363, 43347, 43331, 43315, 43299, 43283, 43267, 43251, 43235, |
43219, 43203, 43187, 43171, 43155, 43139, 43123, 43107, 43091, 43075, |
43059, 43043, 43027, 43011, 42995, 42979, 42963, 42947, 42931, 42915, |
42899, 42883, 42867, 42851, 42835, 42819, 42803, 42787, 42771, 42755, |
42739, 42723, 42707, 42691, 42675, 42659, 42643, 42627, 42611, 42595, |
42579, 42563, 42547, 42531, 42515, 42499, 42483, 42467, 42451, 42435, |
42419, 42403, 42387, 42371, 42355, 42339, 42323, 42307, 42291, 42275, |
42259, 42243, 42227, 42211, 42195, 42179, 42163, 42147, 42131, 42115, |
42099, 42083, 42067, 42051, 42035, 42019, 42003, 41987, 41971, 41955, |
41939, 41923, 41907, 41891, 41875, 41859, 41843, 41827, 41811, 41795, |
41779, 41763, 41747, 41731, 41715, 41699, 41683, 41667, 41651, 41635, |
41619, 41603, 41587, 41571, 41555, 41539, 41523, 41507, 41491, 41475, |
41459, 41443, 41427, 41411, 41395, 41379, 41363, 41347, 41331, 41315, |
41299, 41283, 41267, 41251, 41235, 41219, 41203, 41187, 41171, 41155, |
41139, 41123, 41107, 41091, 41075, 41059, 41043, 41027, 41011, 40995, |
40979, 40963, 40947, 40931, 40915, 40899, 40883, 40867, 40851, 40835, |
40819, 40803, 40787, 40771, 40755, 40739, 40723, 40707, 40691, 40675, |
40659, 40643, 40627, 40611, 40595, 40579, 40563, 40547, 40531, 40515, |
40499, 40483, 40467, 40451, 40435, 40419, 40403, 40387, 40371, 40355, |
40339, 40323, 40307, 40291, 40275, 40259, 40243, 40227, 40211, 40195, |
40179, 40163, 40147, 40131, 40115, 40099, 40083, 40067, 40051, 40035, |
40019, 40003, 39987, 39971, 39955, 39939, 39923, 39907, 39891, 39875, |
39859, 39843, 39827, 39811, 39795, 39779, 39763, 39747, 39731, 39715, |
39699, 39683, 39667, 39651, 39635, 39619, 39603, 39587, 39571, 39555, |
39539, 39523, 39507, 39491, 39475, 39459, 39443, 39427, 39411, 39395, |
39379, 39363, 39347, 39331, 39315, 39299, 39283, 39267, 39251, 39235, |
39219, 39203, 39187, 39171, 39155, 39139, 39123, 39107, 39091, 39075, |
39059, 39043, 39027, 39011, 38995, 38979, 38963, 38947, 38931, 38915, |
38899, 38883, 38867, 38851, 38835, 38819, 38803, 38787, 38771, 38755, |
38739, 38723, 38707, 38691, 38675, 38659, 38643, 38627, 38611, 38595, |
38579, 38563, 38547, 38531, 38515, 38499, 38483, 38467, 38451, 38435, |
38419, 38403, 38387, 38371, 38355, 38339, 38323, 38307, 38291, 38275, |
38259, 38243, 38227, 38211, 38195, 38179, 38163, 38147, 38131, 38115, |
38099, 38083, 38067, 38051, 38035, 38019, 38003, 37987, 37971, 37955, |
37939, 37923, 37907, 37891, 37875, 37859, 37843, 37827, 37811, 37795, |
37779, 37763, 37747, 37731, 37715, 37699, 37683, 37667, 37651, 37635, |
37619, 37603, 37587, 37571, 37555, 37539, 37523, 37507, 37491, 37475, |
37459, 37443, 37427, 37411, 37395, 37379, 37363, 37347, 37331, 37315, |
37299, 37283, 37267, 37251, 37235, 37219, 37203, 37187, 37171, 37155, |
37139, 37123, 37107, 37091, 37075, 37059, 37043, 37027, 37011, 36995, |
36979, 36963, 36947, 36931, 36915, 36899, 36883, 36867, 36851, 36835, |
36819, 36803, 36787, 36771, 36755, 36739, 36723, 36707, 36691, 36675, |
36659, 36643, 36627, 36611, 36595, 36579, 36563, 36547, 36531, 36515, |
36499, 36483, 36467, 36451, 36435, 36419, 36403, 36387, 36371, 36355, |
36339, 36323, 36307, 36291, 36275, 36259, 36243, 36227, 36211, 36195, |
36179, 36163, 36147, 36131, 36115, 36099, 36083, 36067, 36051, 36035, |
36019, 36003, 35987, 35971, 35955, 35939, 35923, 35907, 35891, 35875, |
35859, 35843, 35827, 35811, 35795, 35779, 35763, 35747, 35731, 35715, |
35699, 35683, 35667, 35651, 35635, 35619, 35603, 35587, 35571, 35555, |
35539, 35523, 35507, 35491, 35475, 35459, 35443, 35427, 35411, 35395, |
35379, 35363, 35347, 35331, 35315, 35299, 35283, 35267, 35251, 35235, |
35219, 35203, 35187, 35171, 35155, 35139, 35123, 35107, 35091, 35075, |
35059, 35043, 35027, 35011, 34995, 34979, 34963, 34947, 34931, 34915, |
34899, 34883, 34867, 34851, 34835, 34819, 34803, 34787, 34771, 34755, |
34739, 34723, 34707, 34691, 34675, 34659, 34643, 34627, 34611, 34595, |
34579, 34563, 34547, 34531, 34515, 34499, 34483, 34467, 34451, 34435, |
34419, 34403, 34387, 34371, 34355, 34339, 34323, 34307, 34291, 34275, |
34259, 34243, 34227, 34211, 34195, 34179, 34163, 34147, 34131, 34115, |
34099, 34083, 34067, 34051, 34035, 34019, 34003, 33987, 33971, 33955, |
33939, 33923, 33907, 33891, 33875, 33859, 33843, 33827, 33811, 33795, |
33779, 33763, 33747, 33731, 33715, 33699, 33683, 33667, 33651, 33635, |
33619, 33603, 33587, 33571, 33555, 33539, 33523, 33507, 33491, 33475, |
33459, 33443, 33427, 33411, 33395, 33379, 33363, 33347, 33331, 33315, |
33299, 33283, 33267, 33251, 33235, 33219, 33203, 33187, 33171, 33155, |
33139, 33123, 33107, 33091, 33075, 33059, 33043, 33027, 33011, 32995, |
32979, 32963, 32947, 32931, 32915, 32899, 32883, 32867, 32851, 32835, |
32819, 32803, 32787, 32771, 32755, 32739, 32723, 32707, 32691, 32675, |
32659, 32643, 32627, 32611, 32595, 32579, 32563, 32547, 32531, 32515, |
32499, 32483, 32467, 32451, 32435, 32419, 32403, 32387, 32371, 32355, |
32339, 32323, 32307, 32291, 32275, 32259, 32243, 32227, 32211, 32195, |
32179, 32163, 32147, 32131, 32115, 32099, 32083, 32067, 32051, 32035, |
32019, 32003, 31987, 31971, 31955, 31939, 31923, 31907, 31891, 31875, |
31859, 31843, 31827, 31811, 31795, 31779, 31763, 31747, 31731, 31715, |
31699, 31683, 31667, 31651, 31635, 31619, 31603, 31587, 31571, 31555, |
31539, 31523, 31507, 31491, 31475, 31459, 31443, 31427, 31411, 31395, |
31379, 31363, 31347, 31331, 31315, 31299, 31283, 31267, 31251, 31235, |
31219, 31203, 31187, 31171, 31155, 31139, 31123, 31107, 31091, 31075, |
31059, 31043, 31027, 31011, 30995, 30979, 30963, 30947, 30931, 30915, |
30899, 30883, 30867, 30851, 30835, 30819, 30803, 30787, 30771, 30755, |
30739, 30723, 30707, 30691, 30675, 30659, 30643, 30627, 30611, 30595, |
30579, 30563, 30547, 30531, 30515, 30499, 30483, 30467, 30451, 30435, |
30419, 30403, 30387, 30371, 30355, 30339, 30323, 30307, 30291, 30275, |
30259, 30243, 30227, 30211, 30195, 30179, 30163, 30147, 30131, 30115, |
30099, 30083, 30067, 30051, 30035, 30019, 30003, 29987, 29971, 29955, |
29939, 29923, 29907, 29891, 29875, 29859, 29843, 29827, 29811, 29795, |
29779, 29763, 29747, 29731, 29715, 29699, 29683, 29667, 29651, 29635, |
29619, 29603, 29587, 29571, 29555, 29539, 29523, 29507, 29491, 29475, |
29459, 29443, 29427, 29411, 29395, 29379, 29363, 29347, 29331, 29315, |
29299, 29283, 29267, 29251, 29235, 29219, 29203, 29187, 29171, 29155, |
29139, 29123, 29107, 29091, 29075, 29059, 29043, 29027, 29011, 28995, |
28979, 28963, 28947, 28931, 28915, 28899, 28883, 28867, 28851, 28835, |
28819, 28803, 28787, 28771, 28755, 28739, 28723, 28707, 28691, 28675, |
28659, 28643, 28627, 28611, 28595, 28579, 28563, 28547, 28531, 28515, |
28499, 28483, 28467, 28451, 28435, 28419, 28403, 28387, 28371, 28355, |
28339, 28323, 28307, 28291, 28275, 28259, 28243, 28227, 28211, 28195, |
28179, 28163, 28147, 28131, 28115, 28099, 28083, 28067, 28051, 28035, |
28019, 28003, 27987, 27971, 27955, 27939, 27923, 27907, 27891, 27875, |
27859, 27843, 27827, 27811, 27795, 27779, 27763, 27747, 27731, 27715, |
27699, 27683, 27667, 27651, 27635, 27619, 27603, 27587, 27571, 27555, |
27539, 27523, 27507, 27491, 27475, 27459, 27443, 27427, 27411, 27395, |
27379, 27363, 27347, 27331, 27315, 27299, 27283, 27267, 27251, 27235, |
27219, 27203, 27187, 27171, 27155, 27139, 27123, 27107, 27091, 27075, |
27059, 27043, 27027, 27011, 26995, 26979, 26963, 26947, 26931, 26915, |
26899, 26883, 26867, 26851, 26835, 26819, 26803, 26787, 26771, 26755, |
26739, 26723, 26707, 26691, 26675, 26659, 26643, 26627, 26611, 26595, |
26579, 26563, 26547, 26531, 26515, 26499, 26483, 26467, 26451, 26435, |
26419, 26403, 26387, 26371, 26355, 26339, 26323, 26307, 26291, 26275, |
26259, 26243, 26227, 26211, 26195, 26179, 26163, 26147, 26131, 26115, |
26099, 26083, 26067, 26051, 26035, 26019, 26003, 25987, 25971, 25955, |
25939, 25923, 25907, 25891, 25875, 25859, 25843, 25827, 25811, 25795, |
25779, 25763, 25747, 25731, 27205, 25452, 25436, 25420, 25404, 25388, |
25619, 25603, 25587, 25571, 25555, 25539, 25523, 25507, 25491, 25475, |
25459, 25443, 25427, 25411, 25395, 25379, 25363, 25347, 25331, 25315, |
25299, 25283, 25267, 25251, 25235, 25219, 25203, 25187, 25171, 25155, |
25139, 25123, 25107, 25091, 25075, 25059, 25043, 25027, 25011, 24995, |
24979, 24963, 24947, 24931, 24915, 24899, 24883, 24867, 24851, 24835, |
24819, 24803, 24787, 24771, 24755, 24739, 24723, 24707, 24691, 24675, |
24659, 24643, 24627, 24611, 24595, 24579, 24563, 24547, 24531, 24515, |
24499, 24483, 25465, 26164, 26148, 26132, 26931, 24140, 24124, 24108, |
24092, 24076, 24060, 24044, 24028, 24012, 23996, 23980, 23964, 23948, |
23932, 23916, 23900, 23884, 23868, 23852, 23836, 23820, 23804, 23788, |
23772, 23756, 23740, 23724, 23708, 23692, 23676, 23660, 23644, 23628, |
23612, 23596, 23580, 23564, 23548, 23532, 23516, 23500, 23484, 23468, |
23452, 23436, 23420, 23404, 23388, 23372, 23356, 23340, 23324, 23308, |
23292, 23276, 23260, 23244, 23228, 23212, 23196, 23180, 23164, 23148, |
23132, 23116, 23100, 23084, 23068, 23052, 23036, 23020, 23004, 22988, |
22972, 22956, 22940, 22924, 22908, 22892, 22876, 22860, 22844, 22828, |
22812, 22796, 22780, 22764, 22748, 22732, 22716, 22700, 22684, 22668, |
22652, 22636, 22620, 22604, 22588, 22572, 22556, 22540, 22524, 22508, |
22492, 22476, 22460, 22444, 22428, 22412, 22396, 22380, 22364, 22348, |
22332, 22316, 22547, 22531, 22515, 22499, 22483, 22467, 22451, 22435, |
22419, 22403, 22387, 22371, 22355, 22339, 22323, 22307, 22291, 22275, |
22259, 22243, 22227, 22211, 22195, 22179, 22163, 22147, 22131, 22115, |
22099, 22083, 22067, 22051, 22035, 22019, 22003, 21987, 21971, 21955, |
21939, 21923, 21907, 21891, 21875, 21859, 21843, 21827, 21811, 21795, |
21779, 21763, 21747, 21731, 21715, 21699, 21683, 21667, 21651, 21635, |
21619, 21603, 21587, 21571, 21555, 21539, 21523, 21507, 21491, 21475, |
21459, 21443, 21427, 21411, 21395, 21379, 21363, 21347, 21331, 21315, |
21299, 21283, 21267, 21251, 21235, 21219, 21203, 21187, 21171, 21155, |
21139, 21123, 21107, 21091, 21075, 21059, 21043, 21027, 21011, 20995, |
20979, 20963, 20947, 20931, 20915, 20899, 20883, 20867, 20851, 20835, |
20819, 20803, 20787, 20771, 20755, 20739, 20723, 20707, 20691, 20675, |
20659, 20643, 20627, 20611, 20595, 20579, 20563, 20547, 20531, 20515, |
20499, 20483, 20467, 20451, 20435, 20419, 20403, 20387, 20371, 20355, |
20339, 20323, 20307, 20291, 20275, 20259, 20243, 20227, 20211, 20195, |
20179, 20163, 20147, 20131, 20115, 20099, 20083, 20067, 20051, 20035, |
20019, 20003, 19987, 19971, 19955, 19939, 19923, 19907, 19891, 19875, |
19859, 19843, 19827, 19811, 19795, 19779, 19763, 19747, 19731, 19715, |
19699, 19683, 19667, 19651, 19635, 19619, 19603, 19587, 19571, 19555, |
19539, 19523, 19507, 19491, 19475, 19459, 19443, 19427, 19411, 19395, |
19379, 19363, 19347, 19331, 19315, 19299, 19283, 19267, 19251, 19235, |
19219, 19203, 19187, 19171, 19155, 19139, 19123, 19107, 19091, 19075, |
19059, 19043, 19027, 19011, 18995, 18979, 18963, 18947, 18931, 18915, |
18899, 18883, 18867, 18851, 18835, 18819, 18803, 18787, 18771, 18755, |
18739, 18723, 18707, 18691, 18675, 18659, 18643, 18627, 18611, 18595, |
18579, 18563, 18547, 18531, 18515, 18499, 18483, 18467, 18451, 18435, |
18419, 18403, 18387, 18371, 18355, 18339, 18323, 18307, 18291, 18275, |
18259, 18243, 18227, 18211, 18195, 18179, 18163, 18147, 18131, 18115, |
18099, 18083, 18067, 18051, 18035, 18019, 18003, 17987, 17971, 17955, |
17939, 17923, 17907, 17891, 17875, 17859, 17843, 17827, 17811, 17795, |
17779, 17763, 17747, 17731, 17715, 17699, 17683, 17667, 17651, 17635, |
17619, 17603, 17587, 17571, 17555, 17539, 17523, 17507, 17491, 17475, |
17459, 17443, 17427, 17411, 17395, 17379, 17363, 17347, 17331, 17315, |
17299, 17283, 17267, 17251, 17235, 17219, 17203, 17187, 17171, 17155, |
17139, 17123, 17107, 17091, 17075, 17059, 17043, 17027, 17011, 16995, |
16979, 16963, 16947, 16931, 16915, 16899, 16883, 16867, 16851, 16835, |
16819, 16803, 16787, 16771, 16755, 16739, 16723, 16707, 16691, 16675, |
16659, 16643, 16627, 16611, 16595, 16579, 16563, 16547, 16531, 16515, |
16499, 16483, 16467, 16451, 16435, 16419, 16403, 16387, 16371, 16355, |
16339, 16323, 16307, 16291, 16275, 16259, 16243, 16227, 16211, 16195, |
16179, 16163, 16147, 16131, 16115, 16099, 16083, 16067, 16051, 16035, |
16019, 16003, 15987, 15971, 15955, 15939, 15923, 15907, 15891, 15875, |
15859, 15843, 15827, 15811, 15795, 15779, 15763, 15747, 15731, 15715, |
15699, 15683, 15667, 15651, 15635, 15619, 15603, 15587, 15571, 15555, |
15539, 15523, 15507, 15491, 15475, 15459, 15443, 15427, 15411, 15395, |
15379, 15363, 15347, 15331, 15315, 15299, 15283, 15267, 15251, 15235, |
15219, 15203, 15187, 15171, 15155, 15139, 15123, 15107, 15091, 15075, |
15059, 15043, 15027, 15011, 14995, 14979, 14963, 14947, 14931, 14915, |
14899, 14883, 14867, 14851, 14835, 14819, 14803, 14787, 14771, 14755, |
14739, 14723, 14707, 14691, 14675, 14659, 14643, 14627, 14611, 14595, |
14579, 14563, 14547, 14531, 14515, 14499, 14483, 14467, 14451, 14435, |
14419, 14403, 14387, 14371, 14355, 14339, 14323, 14307, 14291, 14275, |
14259, 14243, 14227, 14211, 14195, 14179, 14163, 14147, 14131, 14115, |
14099, 14083, 14067, 14051, 14035, 14019, 14003, 13987, 13971, 13955, |
13939, 13923, 13907, 13891, 13875, 13859, 13843, 13827, 13811, 13795, |
13779, 13763, 13747, 13731, 13715, 13699, 13683, 13667, 13651, 13635, |
13619, 13603, 13587, 13571, 13555, 13539, 13523, 13507, 13491, 13475, |
13459, 13443, 13427, 13411, 13395, 13379, 13363, 13347, 13331, 13315, |
13299, 13283, 13267, 13251, 13235, 13219, 13203, 13187, 13171, 13155, |
13139, 13123, 13107, 13091, 13075, 13059, 13043, 13027, 13011, 12995, |
12979, 12963, 12947, 12931, 12915, 12899, 12883, 12867, 12851, 12835, |
12819, 12803, 12787, 12771, 12755, 12739, 12723, 12707, 12691, 12675, |
12659, 12643, 12627, 12611, 12595, 12579, 12563, 12547, 12531, 12515, |
12499, 12483, 12467, 12451, 12435, 12419, 12403, 12387, 12371, 12355, |
12339, 12323, 12307, 12291, 12275, 12259, 12243, 12227, 12211, 12195, |
12179, 12163, 12147, 12131, 12115, 12099, 12083, 12067, 12051, 12035, |
12019, 12003, 11987, 11971, 11955, 11939, 11923, 11907, 11891, 11875, |
11859, 11843, 11827, 11811, 11795, 11779, 11763, 11747, 11731, 11715, |
11699, 11683, 11667, 11651, 11635, 11619, 11603, 11587, 11571, 11555, |
11539, 11523, 11507, 11491, 11475, 11459, 11443, 11427, 11411, 11395, |
12871, 11116, 11100, 11084, 11068, 11052, 14050, 14034, 14018, 14002, |
13986, 13970, 13954, 13938, 13922, 13906, 13890, 13874, 13858, 13842, |
13826, 13810, 13794, 13778, 13762, 13746, 13730, 13714, 13698, 13682, |
13666, 13650, 13634, 13618, 13602, 13586, 13570, 13554, 13538, 13522, |
13506, 13490, 13474, 13458, 13442, 13426, 13410, 13394, 13378, 13362, |
13346, 13330, 13314, 13298, 13282, 13266, 13250, 13234, 13218, 13202, |
13186, 13170, 13154, 13138, 13122, 13106, 13090, 13074, 13058, 13042, |
13026, 13010, 12994, 12978, 12962, 12946, 12930, 12914, 12898, 12882, |
12866, 12850, 12834, 12818, 12802, 12786, 12770, 12754, 12738, 12722, |
12706, 12690, 12674, 12658, 12642, 12626, 12610, 12594, 12578, 12562, |
12546, 12530, 12514, 12498, 12482, 12466, 12450, 12434, 12418, 12402, |
12386, 12370, 12354, 12338, 12322, 12306, 12290, 12274, 12258, 12242, |
12226, 12210, 12194, 12178, 12162, 12146, 12130, 12114, 12098, 12082, |
12066, 12050, 12034, 12018, 12018, 12002, 11986, 11970, 11954, 11938, |
11922, 11906, 11890, 11874, 11858, 11842, 11826, 11810, 11794, 11778, |
11762, 11746, 11730, 11714, 11698, 11682, 11666, 11650, 11634, 11618, |
11602, 11586, 11570, 11554, 11538, 11522, 11506, 11490, 11474, 11458, |
11442, 11426, 11410, 11394, 11378, 11362, 11346, 11330, 11314, 11298, |
11282, 11266, 11250, 11234, 11218, 11202, 11186, 11170, 11154, 11138, |
11122, 11106, 11090, 11074, 11058, 11042, 11026, 11010, 10994, 10978, |
10962, 10946, 10930, 10914, 10898, 10882, 10866, 10850, 10834, 10818, |
10802, 10786, 10770, 10754, 10738, 10722, 10706, 10690, 10674, 10658, |
10642, 10626, 10610, 10594, 10578, 10562, 10546, 10530, 10514, 10498, |
10482, 10466, 10450, 10434, 10418, 10402, 10386, 10370, 10354, 10338, |
10322, 10306, 10290, 10274, 10258, 10242, 10226, 10210, 10194, 10178, |
10162, 10146, 10130, 10114, 10098, 10082, 10066, 10050, 10034, 10018, |
10002, 9986, 9970, 9954, 9938, 9922, 9906, 9890, 9874, 9858, |
9842, 9826, 9810, 9794, 9778, 9762, 9746, 9730, 9714, 9698, |
9682, 9666, 9650, 9634, 9618, 9602, 9586, 9570, 9554, 9538, |
9522, 9506, 9490, 9474, 9458, 9442, 9426, 9410, 9394, 9378, |
9362, 9346, 9330, 9314, 9298, 9282, 9266, 9250, 9234, 9218, |
9202, 9186, 9170, 9154, 9138, 9122, 9106, 9090, 9074, 9058, |
9042, 9026, 9010, 8994, 8978, 8962, 8946, 8930, 8914, 8898, |
8882, 8866, 8850, 8834, 8818, 8802, 8786, 8770, 8754, 8738, |
8722, 8706, 8690, 8674, 8658, 8642, 8626, 8610, 8594, 8578, |
8562, 8546, 8530, 8514, 8498, 8482, 8466, 8450, 8434, 8418, |
8402, 8386, 8370, 8354, 8338, 8322, 8306, 8290, 8274, 8258, |
8242, 8226, 8210, 8194, 8178, 8162, 8146, 8130, 8114, 8098, |
8082, 8066, 8050, 8034, 8018, 8002, 7986, 7970, 7954, 7938, |
7922, 7906, 7890, 7874, 7858, 7842, 7826, 7810, 7794, 7778, |
7762, 7746, 7730, 7714, 7698, 7682, 7666, 7650, 7634, 7618, |
7602, 7586, 7570, 7554, 7538, 7522, 7506, 7490, 7474, 7458, |
7442, 7426, 7410, 7394, 7378, 7362, 7346, 7330, 7314, 7298, |
7282, 7266, 7250, 7234, 7218, 7202, 7186, 7170, 7154, 7138, |
7122, 7106, 7090, 7074, 7058, 7042, 7026, 7010, 6994, 6978, |
6962, 6946, 6930, 6914, 6898, 6882, 6866, 6850, 6834, 6818, |
6802, 6786, 6770, 6754, 6738, 6722, 6706, 6690, 6674, 6658, |
6642, 6626, 6610, 6594, 6578, 6562, 6546, 6530, 6514, 6498, |
6482, 6466, 6450, 6434, 6418, 6402, 6386, 6370, 6354, 6338, |
6322, 6306, 6290, 6274, 6258, 6242, 6226, 6210, 6194, 6178, |
6162, 6146, 6130, 6114, 6098, 6082, 6066, 6050, 6034, 6018, |
6002, 5986, 5970, 5954, 5938, 5922, 5906, 5890, 5874, 5858, |
5842, 5826, 5810, 5794, 5778, 5762, 5746, 5730, 5714, 5698, |
5682, 5666, 5650, 5634, 2835, 2819, 2803, 2787, 2771, 2755, |
2739, 2723, 2707, 2691, 2675, 2659, 2643, 2627, 2611, 2595, |
2579, 2563, 3544, 2531, 2515, 2499, 3483, 2220, 2204, 2188, |
2172, 2156, 2140, 2124, 2108, 2092, 5122, 2869, 5106, 5100, |
2836, 2111, 2095, 2079, 2063, 2047, 2031, 2946, 1884, 1980, |
1967, 1951, 1935, 1919, 1903, 1887, 1871, 1855, 1839, 1823, |
1807, 1791, 1775, 1759, 1743, 1727, 1711, 1695, 1679, 1663, |
1647, 1633, 1500, 1599, 1583, 1567, 1551, 1533, 1519, 1503, |
2412, 1356, 1340, 2473, 1638, 1292, 2072, 4348, 4344, 3614, |
4328, 2227, 1295, 1279, 1263, 1247, 1231, 1215, 1199, 2172, |
1941, 295, 340, 340, 378, 4104, 2137, 2221, 1171, 1157, |
1139, 1107, 451, 907, 3976, 819, |
}; |
|
static const jchar blocks1[] = { |
0, 65535, 63, 4, 4, 253, 189, 125, 61, 65533, |
65469, 65405, 65405, 65266, 65325, 65149, 64639, 64623, 65133, 64893, |
64829, 64765, 64701, 64637, 64573, 64509, 64445, 64381, 64317, 64253, |
64189, 64125, 64301, 63997, 63933, 63869, 63805, 63741, 63677, 63613, |
63549, 63485, 63421, 63357, 63293, 63229, 63165, 63101, 63037, 62973, |
62909, 62845, 62781, 62717, 62653, 62589, 62525, 62461, 62397, 62333, |
62269, 62205, 62141, 62077, 62013, 61949, 61885, 61821, 61757, 61693, |
61629, 61565, 61501, 61437, 61373, 61309, 61245, 61181, 61117, 61053, |
60989, 60925, 60861, 60797, 60733, 60669, 60605, 60541, 60477, 60413, |
60349, 60285, 60221, 60157, 60093, 60029, 59965, 59901, 59837, 59773, |
59709, 59645, 59581, 59517, 59453, 59389, 59325, 59261, 59197, 59133, |
59069, 59005, 58941, 58877, 58813, 58749, 58685, 58621, 58557, 58493, |
58429, 58365, 58301, 58237, 58173, 58109, 58045, 57981, 57917, 57853, |
57789, 57725, 57661, 57597, 57533, 57469, 57405, 57341, 57277, 57213, |
57149, 57085, 57021, 56957, 56893, 56829, 56765, 56701, 56637, 56573, |
56509, 56445, 56381, 56317, 56253, 56189, 56125, 56061, 55997, 55933, |
55869, 55805, 55741, 55677, 55613, 55549, 55485, 55421, 55357, 55293, |
55229, 55165, 55101, 55037, 54973, 54909, 54845, 54781, 54717, 54653, |
54589, 54525, 54461, 54397, 54333, 54269, 54205, 54141, 54077, 54013, |
53949, 53885, 53821, 53757, 53693, 53629, 53565, 53501, 53437, 53373, |
53309, 53245, 53181, 53117, 53053, 52989, 52925, 52861, 52797, 52733, |
52669, 52605, 52541, 52477, 52413, 52349, 52285, 52221, 52157, 52093, |
52029, 51965, 51901, 51837, 51773, 51709, 51645, 51581, 51517, 51453, |
51389, 51325, 51261, 51197, 51133, 51069, 51005, 50941, 50877, 50813, |
50749, 50685, 50621, 50557, 50493, 50429, 50365, 50301, 50237, 50173, |
50109, 50045, 49981, 49917, 49853, 49789, 49725, 49661, 49597, 49533, |
49469, 49405, 49341, 49277, 49213, 49149, 49085, 49021, 48957, 48893, |
48829, 48765, 48701, 48637, 48573, 48509, 48445, 48381, 48317, 48253, |
48189, 48125, 48061, 47997, 47933, 47869, 47805, 47741, 47677, 47613, |
47549, 47485, 47421, 47357, 47293, 47229, 47165, 47101, 47037, 46973, |
46909, 46845, 46781, 46717, 46653, 46589, 46525, 46461, 46397, 46333, |
46269, 46205, 46141, 46077, 46013, 45949, 45885, 45821, 45757, 45693, |
45629, 45565, 45501, 45437, 45373, 45309, 45245, 45181, 45117, 45053, |
44989, 44925, 44861, 44797, 44733, 44669, 44605, 44541, 44477, 44413, |
44349, 44285, 44221, 44157, 44093, 44029, 43965, 43901, 43837, 43773, |
43709, 43645, 43581, 43517, 43453, 43389, 43325, 43261, 43197, 43133, |
43069, 43005, 42941, 42877, 42813, 42749, 42685, 42621, 42557, 42493, |
42429, 42365, 42301, 42237, 42173, 42109, 42045, 41981, 41917, 41853, |
41789, 41725, 41661, 41597, 41533, 41469, 41405, 41341, 41277, 41213, |
41149, 41085, 41021, 40957, 40893, 40829, 40765, 40701, 40637, 40573, |
40509, 40445, 40381, 40317, 40253, 40189, 40125, 40061, 39997, 39933, |
39869, 39805, 39741, 39677, 39613, 39549, 39485, 39421, 39357, 39293, |
39229, 39165, 39101, 39037, 38973, 38909, 38845, 38781, 38717, 38653, |
38589, 38525, 38461, 38397, 38333, 38269, 38205, 38141, 38077, 38013, |
37949, 37885, 37821, 37757, 37693, 37629, 37565, 37501, 37437, 37373, |
37309, 37245, 37181, 37117, 37053, 36989, 36925, 36861, 36797, 36733, |
36669, 36605, 36541, 36477, 36413, 36349, 36285, 36221, 36157, 36093, |
36029, 35965, 35901, 35837, 35773, 35709, 35645, 35581, 35517, 35453, |
35389, 35325, 35261, 35197, 35133, 35069, 35005, 34941, 34877, 34813, |
34749, 34685, 34621, 34557, 34493, 34429, 34365, 34301, 34237, 34173, |
34109, 34045, 33981, 33917, 33853, 33789, 33725, 33661, 33597, 33533, |
33469, 33405, 33341, 33277, 33213, 33149, 33085, 33021, 32957, 32893, |
32829, 32765, 32701, 32637, 32573, 32509, 32445, 32381, 32317, 32253, |
32189, 32125, 32061, 31997, 31933, 31869, 31805, 31741, 31677, 31613, |
31549, 31485, 31421, 31357, 31293, 31229, 31165, 31101, 31037, 30973, |
30909, 30845, 30781, 30717, 30653, 30589, 30525, 30461, 30397, 30333, |
30269, 30205, 30141, 30077, 30013, 29949, 29885, 29821, 29757, 29693, |
29629, 29565, 29501, 29437, 29373, 29309, 29245, 29181, 29117, 29053, |
28989, 28925, 28861, 28797, 28733, 28669, 28605, 28541, 28477, 28413, |
28349, 28285, 28221, 28157, 28093, 28029, 27965, 27901, 27837, 27773, |
27709, 27645, 27581, 27517, 27453, 27389, 27325, 27261, 27197, 27133, |
27069, 27005, 26941, 26877, 26813, 26749, 26685, 26621, 26557, 26493, |
26429, 26365, 26301, 26237, 26173, 26109, 26045, 25981, 25917, 25853, |
25789, 25725, 25661, 25597, 25533, 25469, 25405, 25341, 25277, 25213, |
25149, 25085, 25021, 24957, 24893, 24829, 24765, 24701, 24637, 24573, |
24509, 24445, 24381, 24317, 24253, 24189, 24125, 24061, 23997, 23933, |
23869, 23805, 23741, 23677, 23613, 23549, 23485, 23421, 23357, 23293, |
23229, 23165, 23101, 23037, 22973, 22909, 22845, 22781, 22717, 22653, |
22589, 22525, 22461, 22397, 22333, 22269, 22205, 22141, 22077, 22013, |
21949, 21885, 21821, 21757, 21693, 21629, 21565, 21501, 21437, 21373, |
21309, 21245, 21181, 21117, 21053, 20989, 20925, 20861, 20797, 20733, |
20669, 20605, 20541, 20477, 20413, 20349, 20285, 20221, 20157, 20093, |
20029, 19965, 19901, 19837, 19773, 19709, 19645, 19581, 19517, 19453, |
19389, 19325, 19261, 19197, 19133, 19069, 19005, 18941, 18877, 18813, |
18749, 18685, 18621, 18557, 18493, 18429, 18365, 18301, 18237, 18173, |
18109, 18045, 17981, 17917, 17853, 17789, 17725, 17661, 17597, 17533, |
17469, 17405, 17341, 17277, 17213, 17149, 17085, 17021, 16957, 16893, |
16829, 16765, 16701, 16637, 16573, 16509, 16445, 16381, 16317, 16253, |
16189, 16125, 16061, 15997, 15933, 15869, 15805, 15741, 15677, 15613, |
15549, 15485, 15421, 15357, 15293, 15229, 15165, 15101, 15037, 14973, |
14909, 14845, 14781, 14717, 14653, 14589, 14525, 14461, 14397, 14333, |
14269, 14205, 14141, 14077, 14013, 13949, 13885, 13821, 13757, 13693, |
13629, 13565, 13501, 13437, 13373, 13309, 13245, 13181, 13117, 13053, |
12989, 12925, 12752, 12688, 12624, 12570, 12454, 12283, 12280, 12338, |
12349, 12285, 12221, 12157, 12397, 12374, 11965, 11901, 12340, 12394, |
12451, 12132, 12384, 12197, 11976, 11924, 11820, 11768, 11768, 11542, |
11484, 11426, 11368, 11744, 10813, 10749, 10685, 10621, 10557, 10493, |
10429, 10365, 10301, 10237, 10173, 10109, 10045, 9981, 9917, 9853, |
9789, 9725, 9661, 9597, 9533, 9469, 9405, 9341, 9277, 9213, |
9149, 9085, 9021, 8957, 8893, 8829, 8765, 8701, 8637, 8573, |
8509, 8445, 8381, 8317, 8253, 8189, 8125, 8061, 7997, 7933, |
7869, 7805, 7741, 7677, 7613, 7549, 7485, 7421, 7357, 7293, |
7229, 7165, 7101, 7037, 6973, 6909, 6845, 6781, 6717, 6653, |
6589, 6525, 6461, 6397, 6333, 6269, 6205, 6141, 6077, 6013, |
5949, 5885, 5821, 5757, 5693, 5629, 5565, 5501, 5437, 5373, |
5309, 5245, 5181, 5117, 5053, 4989, 4925, 4861, 4797, 4733, |
4669, 4605, 4541, 4477, 4413, 4349, 4285, 4221, 4157, 4093, |
4029, 3965, 3901, 3837, 3773, 3709, 3645, 3581, 3517, 3453, |
3389, 3325, 3261, 3197, 3133, 3069, 3005, 2941, 2877, 2813, |
2749, 2685, 2621, 2557, 2493, 2429, 2365, 2301, 2237, 2173, |
2109, 2045, 1981, 1917, 1853, 1789, 1725, 1661, 1597, 1533, |
1469, 1405, 1341, 1277, 1213, 1149, 1085, 1021, 957, 893, |
829, 765, 701, 637, |
}; |
|
static const jchar blocks2[] = { |
0, 65408, 65280, 65152, 65024, 64896, 64768, 64640, 64512, 64384, |
64256, 64128, 64000, 63872, 63744, 63616, 63488, 63360, 63232, 63104, |
62976, 62848, 62720, 62592, 62464, 62336, 62208, 62080, 61952, 61824, |
61696, 61568, 61440, 61312, 61184, 61056, 60928, 60800, 60672, 60544, |
60416, 60288, 60160, 60032, 59904, 59776, 59648, 59520, 59392, 59264, |
59136, 59008, 58880, 58752, 58624, 58496, 58368, 58240, 58112, 57984, |
57856, 57728, 57600, 57472, 57344, 57216, 57088, 56960, 56832, 56704, |
56576, 56448, 56320, 56192, 56064, 55936, 55808, 55680, 55552, 55424, |
55296, 55168, 55040, 54912, 54784, 54656, 54528, 54400, 54272, 54144, |
54016, 53888, 53760, 53632, 53504, 53376, 53248, 53120, 52992, 52864, |
52736, 52608, 52480, 52352, 52224, 52096, 51968, 51840, 51712, 51584, |
51456, 51328, 51200, 51072, 50944, 50816, 50688, 50560, 50432, 50304, |
50176, 50048, 49920, 49792, 49664, 49536, 49408, 49280, 49152, 49024, |
48896, 48768, 48640, 48512, 48384, 48256, 48128, 48000, 47872, 47744, |
47616, 47488, 47360, 47232, 47104, 46976, 46848, 46720, 46592, 46464, |
46336, 46208, 46080, 45952, 45824, 45696, 45568, 45440, 45312, 45184, |
45056, 44928, 44800, 44672, 44544, 44416, 44288, 44160, 44032, 43904, |
43776, 43648, 43520, 43392, 43264, 43136, 43008, 42880, 42752, 42624, |
42496, 42368, 42240, 42112, 41984, 41856, 41728, 41600, 41472, 41344, |
41216, 41088, 40960, 40832, 40704, 40576, 40448, 40320, 40192, 40064, |
39936, 39808, 39680, 39552, 39424, 39296, 39168, 39040, 38912, 38784, |
38656, 38528, 38400, 38272, 38144, 38016, 37888, 37760, 37632, 37504, |
37376, 37248, 37120, 36992, 36864, 36736, 36608, 36480, 36352, 36224, |
36096, 35968, 35840, 35712, 35584, 35456, 35328, 35200, 35072, 34944, |
34816, 34688, 34560, 34432, 34304, 34176, 34048, 33920, 33792, 33664, |
33536, 33408, 33280, 33152, 33024, 32896, 32768, 32640, 32512, 32384, |
32256, 32128, 32000, 31872, 31744, 31616, 31488, 31360, 31232, 31104, |
30976, 30848, 30720, 30592, 30464, 30336, 30208, 30080, 29952, 29824, |
29696, 29568, 29440, 29312, 29184, 29056, 28928, 28800, 28672, 28544, |
28416, 28288, 28160, 28032, 27904, 27776, 27648, 27520, 27392, 27264, |
27136, 27008, 26880, 26752, 26624, 26496, 26368, 26240, 26112, 25984, |
25856, 25728, 25600, 25472, 25344, 25216, 25088, 24960, 24832, 24704, |
24576, 24448, 24320, 24192, 24064, 23936, 23808, 23680, 23552, 23424, |
23296, 23168, 23040, 22953, 22912, 22784, 22656, 22528, 22400, 22272, |
22144, 22016, 21888, 21760, 21632, 21504, 21376, 21248, 21120, 20992, |
20864, 20736, 20608, 20480, 20352, 20224, 20096, 19968, 19840, 19712, |
19584, 19456, 19328, 19200, 19072, 18944, 18816, 18688, 18560, 18432, |
18304, 18176, 18048, 17920, 17792, 17664, 17536, 17408, 17280, 17152, |
17024, 16896, 16768, 16640, 16512, 16384, 16256, 16128, 16000, 15872, |
15744, 15616, 15488, 15360, 15232, 15104, 14976, 14848, 14720, 14592, |
14464, 14336, 14208, 14080, 13952, 13824, 13696, 13568, 13440, 13312, |
13184, 13056, 12928, 12800, 12672, 12544, 12416, 12288, 12160, 12032, |
11904, 11776, 11648, 11520, 11392, 11264, 11136, 11008, 10880, 10752, |
10624, 10496, 10368, 10240, 10112, 9984, 9856, 9728, 9600, 9472, |
9344, 9216, 9088, 8960, 8832, 8704, 8576, 8448, 8320, 8192, |
8064, 7936, 7808, 7680, 7552, 7424, 7296, 7168, 7040, 6912, |
6784, 6656, 6528, 6400, 6272, 6144, 6016, 5888, 5760, 5632, |
5504, 5376, 5248, 5120, 4992, 4864, 4736, 4608, 4480, 4352, |
4224, 4096, 3968, 3840, 3712, 3584, 3456, 3328, 3200, 3072, |
2944, 2816, 2688, 2560, 2432, 2304, 2048, 1920, 1792, 1664, |
1634, 1536, 1408, 1280, 1152, 1024, 896, 768, 640, 512, |
384, 256, |
}; |
|
static const jchar blocks14[] = { |
255, 0, 65280, 65168, 65152, 65024, 64896, 64768, 64640, 64512, |
64384, 64256, 64128, 64000, 63872, 63744, 63616, 63488, 63360, 63232, |
63104, 62976, 62848, 62720, 62592, 62464, 62336, 62208, 62080, 61952, |
61824, 61696, 61568, 61440, 61312, 61184, 61056, 60928, 60800, 60672, |
60544, 60416, 60288, 60160, 60032, 59904, 59776, 59648, 59520, 59392, |
59264, 59136, 59008, 58880, 58752, 58624, 58496, 58368, 58240, 58112, |
57984, 57856, 57728, 57600, 57472, 57344, 57216, 57088, 56960, 56832, |
56704, 56576, 56448, 56320, 56192, 56064, 55936, 55808, 55680, 55552, |
55424, 55296, 55168, 55040, 54912, 54784, 54656, 54528, 54400, 54272, |
54144, 54016, 53888, 53760, 53632, 53504, 53376, 53248, 53120, 52992, |
52864, 52736, 52608, 52480, 52352, 52224, 52096, 51968, 51840, 51712, |
51584, 51456, 51328, 51200, 51072, 50944, 50816, 50688, 50560, 50432, |
50304, 50176, 50048, 49920, 49792, 49664, 49536, 49408, 49280, 49152, |
49024, 48896, 48768, 48640, 48512, 48384, 48256, 48128, 48000, 47872, |
47744, 47616, 47488, 47360, 47232, 47104, 46976, 46848, 46720, 46592, |
46464, 46336, 46208, 46080, 45952, 45824, 45696, 45568, 45440, 45312, |
45184, 45056, 44928, 44800, 44672, 44544, 44416, 44288, 44160, 44032, |
43904, 43776, 43648, 43520, 43392, 43264, 43136, 43008, 42880, 42752, |
42624, 42496, 42368, 42240, 42112, 41984, 41856, 41728, 41600, 41472, |
41344, 41216, 41088, 40960, 40832, 40704, 40576, 40448, 40320, 40192, |
40064, 39936, 39808, 39680, 39552, 39424, 39296, 39168, 39040, 38912, |
38784, 38656, 38528, 38400, 38272, 38144, 38016, 37888, 37760, 37632, |
37504, 37376, 37248, 37120, 36992, 36864, 36736, 36608, 36480, 36352, |
36224, 36096, 35968, 35840, 35712, 35584, 35456, 35328, 35200, 35072, |
34944, 34816, 34688, 34560, 34432, 34304, 34176, 34048, 33920, 33792, |
33664, 33536, 33408, 33280, 33152, 33024, 32896, 32768, 32640, 32512, |
32384, 32256, 32128, 32000, 31872, 31744, 31616, 31488, 31360, 31232, |
31104, 30976, 30848, 30720, 30592, 30464, 30336, 30208, 30080, 29952, |
29824, 29696, 29568, 29440, 29312, 29184, 29056, 28928, 28800, 28672, |
28544, 28416, 28288, 28160, 28032, 27904, 27776, 27648, 27520, 27392, |
27264, 27136, 27008, 26880, 26752, 26624, 26496, 26368, 26240, 26112, |
25984, 25856, 25728, 25600, 25472, 25344, 25216, 25088, 24960, 24832, |
24704, 24576, 24448, 24320, 24192, 24064, 23936, 23808, 23680, 23552, |
23424, 23296, 23168, 23040, 22912, 22784, 22656, 22528, 22400, 22272, |
22144, 22016, 21888, 21760, 21632, 21504, 21376, 21248, 21120, 20992, |
20864, 20736, 20608, 20480, 20352, 20224, 20096, 19968, 19840, 19712, |
19584, 19456, 19328, 19200, 19072, 18944, 18816, 18688, 18560, 18432, |
18304, 18176, 18048, 17920, 17792, 17664, 17536, 17408, 17280, 17152, |
17024, 16896, 16768, 16640, 16512, 16384, 16256, 16128, 16000, 15872, |
15744, 15616, 15488, 15360, 15232, 15104, 14976, 14848, 14720, 14592, |
14464, 14336, 14208, 14080, 13952, 13824, 13696, 13568, 13440, 13312, |
13184, 13056, 12928, 12800, 12672, 12544, 12416, 12288, 12160, 12032, |
11904, 11776, 11648, 11520, 11392, 11264, 11136, 11008, 10880, 10752, |
10624, 10496, 10368, 10240, 10112, 9984, 9856, 9728, 9600, 9472, |
9344, 9216, 9088, 8960, 8832, 8704, 8576, 8448, 8320, 8192, |
8064, 7936, 7808, 7680, 7552, 7424, 7296, 7168, 7040, 6912, |
6784, 6656, 6528, 6400, 6272, 6144, 6016, 5888, 5760, 5632, |
5504, 5376, 5248, 5120, 4992, 4864, 4736, 4608, 4480, 4352, |
4224, 4096, 3968, 3840, 3712, 3584, 3456, 3328, 3200, 3072, |
2944, 2816, 2688, 2560, 2432, 2304, 2176, 2048, 1920, 1792, |
1664, 1536, 1408, 1280, 1152, 1024, 896, 768, 640, 512, |
384, 256, |
}; |
|
static const int blocks_length[] = { |
4096, 1024, 512, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 512, -1, -1, }; |
static const jchar* blocks[] = { |
blocks0, blocks1, blocks2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, |
NULL, NULL, NULL, NULL, blocks14, NULL, NULL}; |
|
/** |
* Information about each character. The low order 5 bits form the |
* character type, the next bit is a flag for non-breaking spaces, and the |
* next bit is a flag for mirrored directionality. The high order 9 bits |
* form the offset into the attribute tables. Note that this limits the |
* number of unique character attributes per plane to 512, which is not a |
* problem as of Unicode version 4.0.0, but may soon become one. |
*/ |
static const jchar data0[] = { |
8834, 8962, 9090, 9218, 9346, 9474, 9602, 9730, 9858, 9986, |
10114, 1109, 3225, 1238, 3225, 15, 15, 15, 15, 15, |
15, 15, 15, 15, 143, 271, 143, 399, 271, 15, |
15, 15, 15, 15, 271, 15, 15, 15, 15, 15, |
15, 15, 15, 15, 15, 15, 15, 15, 15, 15, |
15, 271, 271, 271, 143, 1801, 1929, 2057, 2185, 2313, |
2441, 2569, 2697, 2825, 2953, 1432, 664, 3161, 3225, 3161, |
664, 664, 3225, 664, 6807, 16256, 16256, 664, 16256, 16256, |
16256, 16256, 16256, 16256, 16256, 524, 664, 664, 792, 922, |
792, 664, 664, 1109, 1238, 664, 1305, 1432, 1556, 1432, |
1688, 10908, 1305, 11019, 11147, 6683, 11266, 10396, 664, 6683, |
11403, 10498, 11614, 11659, 11659, 11659, 664, 3329, 3457, 3585, |
3713, 3841, 3969, 4097, 4225, 4353, 4481, 4609, 4737, 4865, |
4993, 5121, 5249, 5377, 5505, 5633, 5761, 5889, 6017, 6145, |
6273, 6401, 6529, 1109, 664, 1238, 6683, 6807, 664, 664, |
664, 3225, 1109, 1238, 664, 664, 664, 664, 664, 664, |
664, 664, 664, 34189, 34318, 34448, 34576, 34704, 34832, 34960, |
33452, 10284, 664, 922, 922, 922, 922, 10396, 10396, 6683, |
10396, 10498, 10717, 3225, 10768, 10396, 6683, 6914, 7042, 7170, |
7298, 7426, 7554, 7682, 7810, 7938, 8066, 8194, 8322, 8450, |
8578, 8706, 19074, 11777, 11777, 11777, 11777, 11777, 11777, 11777, |
11777, 11777, 11777, 11777, 11777, 11777, 11777, 11777, 11777, 3225, |
11777, 11777, 11777, 11777, 11777, 11777, 11777, 11906, 15361, 15491, |
15618, 12289, 12418, 15873, 16001, 12289, 12418, 12289, 12418, 12289, |
12418, 12289, 12418, 12801, 12289, 12418, 12289, 12418, 12289, 12418, |
12930, 19074, 12034, 12034, 12034, 12034, 12034, 12034, 12034, 12034, |
12034, 12034, 12034, 12034, 12034, 12034, 12034, 12034, 3225, 12034, |
12034, 12034, 12034, 12034, 12034, 12034, 12162, 16129, 10498, 12289, |
12418, 12289, 12418, 12289, 12418, 12289, 12418, 12289, 12418, 12289, |
12418, 12289, 12418, 12289, 12418, 15746, 12289, 12418, 21404, 18310, |
18310, 18310, 18310, 16256, 21511, 21511, 12289, 12418, 12289, 12418, |
12289, 12418, 16256, 16256, 12289, 12418, 16256, 16256, 16256, 16256, |
16256, 16256, 18310, 24584, 16256, 16256, 16256, 16256, 15109, 15109, |
16256, 15109, 16256, 16256, 15109, 15109, 16256, 15109, 16256, 16256, |
15109, 16256, 16256, 11906, 32258, 11906, 16256, 11906, 19074, 33153, |
33153, 33281, 33281, 32515, 6683, 6683, 16256, 18310, 18310, 24584, |
16256, 15109, 15109, 15109, 15109, 15109, 15109, 15109, 15109, 15109, |
16256, 15109, 16256, 15109, 15109, 15109, 15109, 16256, 16256, 15109, |
15109, 15109, 15109, 15109, 15109, 15109, 16256, 16256, 16256, 15109, |
15109, 15109, 15109, 15109, 15109, 16256, 16256, 15109, 15109, 15109, |
15109, 15109, 15109, 15109, 15109, 15109, 15109, 15109, 15109, 15109, |
21784, 21784, 15109, 15109, 15109, 15109, 15361, 15491, 15618, 15361, |
15491, 15618, 15361, 15491, 15618, 12289, 12418, 12289, 12418, 10498, |
10498, 10498, 16256, 16256, 16256, 16256, 16256, 16256, 16256, 16256, |
16256, 15109, 15109, 15109, 15109, 16256, 15109, 16256, 15109, 15109, |
16256, 15109, 15109, 15109, 15109, 15109, 16256, 16256, 18310, 15109, |
24584, 24584, 18310, 18310, 18310, 16256, 16256, 16256, 24584, 24584, |
16256, 16256, 24584, 24584, 18310, 16256, 16256, 12545, 12674, 12289, |
12418, 12289, 12418, 12289, 12418, 10498, 12289, 12418, 12289, 12418, |
12289, 12418, 12289, 12418, 11906, 11906, 11906, 11906, 11906, 30850, |
16256, 16256, 16256, 16256, 6683, 6683, 16256, 16256, 16256, 16256, |
18052, 16256, 16256, 16256, 664, 16256, 21633, 21633, 21633, 21633, |
21633, 21633, 21633, 21633, 21633, 21633, 21633, 21633, 21633, 21633, |
21633, 21633, 16256, 16256, 18052, 21784, 21784, 21784, 21784, 21784, |
21784, 21404, 21404, 21404, 21404, 21404, 18310, 18310, 21404, 21404, |
21404, 21404, 21404, 21404, 18310, 21404, 21404, 21404, 21404, 21404, |
21404, 16256, 16256, 21404, 15109, 16256, 16256, 16256, 16256, 16256, |
16256, 16256, 16256, 16256, 16256, 16256, 16256, 16256, 16256, 16256, |
19842, 19970, 20097, 20097, 20097, 20226, 20354, 10498, 12289, 12418, |
12289, 12418, 12289, 12418, 12289, 12418, 12289, 12418, 11906, 12289, |
12418, 12289, 12418, 12289, 12418, 14721, 12289, 12418, 14721, 10498, |
10498, 12289, 12418, 14721, 12289, 17666, 10498, 10498, 17666, 10498, |
10498, 10498, 10498, 17666, 10498, 17794, 17794, 10498, 10498, 10498, |
10498, 17410, 10498, 10498, 17538, 10498, 10498, 10498, 10498, 10498, |
10498, 10498, 10498, 10498, 10498, 16386, 16514, 10498, 16642, 16642, |
10498, 16770, 10498, 16898, 10498, 10498, 10498, 10498, 13057, 12289, |
12418, 12289, 12418, 13185, 12289, 12418, 13313, 13313, 12289, 12418, |
10498, 13441, 13569, 13697, 12289, 12418, 13313, 13825, 13954, 14081, |
14209, 12289, 12418, 10498, 10498, 14081, 14337, 14466, 14593, 12418, |
14849, 14849, 12289, 12418, 12289, 12418, 14977, 12289, 12418, 10498, |
15109, 12289, 12418, 10498, 15234, 18310, 18310, 18310, 18310, 18310, |
18438, 18310, 18310, 18310, 18310, 18310, 18310, 18310, 18310, 18310, |
18310, 16256, 18310, 18310, 18310, 22168, 18310, 18310, 22168, 18310, |
16256, 16256, 16256, 16256, 16256, 16256, 16256, 16256, 16256, 16256, |
16256, 24584, 16256, 16256, 16256, 16256, 15109, 15109, 16256, 15109, |
15109, 15109, 15109, 16256, 16256, 16256, 15109, 15109, 16256, 15109, |
16256, 15109, 15109, 16256, 15109, 15109, 16256, 15109, 15109, 16256, |
16256, 18310, 16256, 24584, 24584, 24584, 16256, 15109, 15109, 15109, |
15109, 15109, 15109, 15109, 15109, 16256, 15109, 15109, 15109, 16256, |
16256, 16256, 16256, 24584, 24584, 21784, 16256, 16256, 16256, 16256, |
16256, 16256, 16256, 16256, 16256, 16256, 16256, 16256, 16256, 16256, |
16256, 16256, 24464, 24464, 24464, 10396, 10396, 16256, 16256, 16256, |
664, 664, 24713, 24841, 24969, 25097, 25225, 25353, 25481, 25609, |
25737, 25865, 16256, 16256, 16256, 16256, 16256, 16256, 18310, 15109, |
16256, 15109, 15109, 15109, 15109, 15109, 15109, 16256, 16256, 16256, |
15109, 15109, 16256, 16256, 16256, 15109, 15109, 15109, 16256, 16256, |
16256, 15109, 15109, 15109, 15109, 15109, 15109, 16256, 16256, 15109, |
15109, 15109, 16256, 16256, 16256, 21890, 21890, 21890, 21890, 21890, |
21890, 21890, 21890, 21890, 21890, 21890, 21890, 21890, 21890, 21890, |
21890, 11906, 16256, 21784, 22036, 16256, 16256, 16256, 16256, 16256, |
18310, 18310, 16256, 16256, 16256, 16256, 16256, 16256, 16256, 16256, |
16256, 22661, 22661, 22661, 22661, 22661, 22661, 22661, 22661, 22661, |
22661, 22661, 22661, 22661, 22661, 22661, 22661, 27541, 27670, 16642, |
10498, 10498, 17026, 10498, 10498, 10498, 10498, 17154, 17282, 10498, |
10498, 10498, 10498, 10498, 17282, 22416, 22416, 22416, 22416, 16256, |
16256, 16256, 16256, 16256, 16256, 16256, 16256, 1432, 22552, 10396, |
10396, 20097, 10396, 10396, 10396, 10396, 20097, 10396, 10396, 10498, |
20097, 20097, 20097, 10498, 10498, 17922, 10498, 10498, 10498, 10498, |
10498, 10498, 10498, 10498, 10498, 10498, 10498, 10498, 10498, 10498, |
10498, 10498, 18052, 18052, 18052, 18052, 18052, 18052, 18052, 18052, |
18052, 18052, 18052, 18052, 18052, 18052, 18052, 18052, 18180, 18180, |
18052, 18052, 18052, 18052, 18052, 6683, 6683, 6683, 6683, 6683, |
6683, 6683, 6683, 6683, 18052, 6683, 22036, 15109, 15109, 15109, |
15109, 15109, 15109, 15109, 15109, 15109, 15109, 15109, 15109, 15109, |
15109, 15109, 16256, 15109, 15109, 15109, 15109, 15109, 15109, 15109, |
15109, 15109, 15109, 15109, 15109, 15109, 15109, 15109, 15109, 18052, |
18052, 6683, 6683, 6683, 6683, 18180, 18180, 18180, 18180, 18180, |
18180, 18180, 18180, 18180, 18180, 18052, 18052, 6683, 6683, 6683, |
6683, 6683, 6683, 6683, 6683, 6683, 6683, 6683, 6683, 6683, |
6683, 6683, 6683, 11906, 32258, 11906, 16256, 11906, 19074, 32769, |
32769, 32769, 32769, 32515, 6683, 6683, 6683, 10396, 44170, 44298, |
44426, 44554, 44682, 44810, 44938, 45066, 45194, 18310, 18310, 18310, |
18310, 18310, 18310, 18310, 18310, 16256, 18310, 18310, 18310, 18310, |
18310, 18310, 18310, 18310, 18310, 18310, 18310, 18310, 18310, 18310, |
18310, 18310, 16256, 21404, 21404, 25995, 26123, 26251, 26379, 21404, |
21404, 21404, 21404, 21404, 21404, 21404, 21404, 21404, 21404, 21404, |
10396, 3225, 10396, 10396, 10396, 10396, 10396, 10396, 10396, 10396, |
10396, 10396, 10396, 10396, 16256, 10396, 16256, 10396, 10396, 10396, |
10396, 16256, 10396, 10396, 10396, 10396, 16256, 16256, 10396, 10396, |
10396, 10396, 10396, 21404, 10396, 10396, 10396, 10396, 10396, 3225, |
3225, 3225, 3225, 3225, 27541, 27670, 664, 10396, 10396, 10396, |
10396, 10396, 10396, 10396, 10396, 10396, 10396, 16256, 10396, 10396, |
10396, 10396, 10396, 10396, 10396, 1109, 1238, 1109, 1238, 1109, |
1238, 1109, 1238, 29579, 29707, 29835, 29963, 30091, 30219, 30347, |
30475, 30603, 43915, 29579, 29707, 29835, 29963, 30091, 30219, 18310, |
18310, 18310, 18310, 18310, 18310, 18310, 18310, 16256, 16256, 16256, |
16256, 16256, 18310, 18310, 18310, 18310, 18310, 18310, 18310, 18310, |
18310, 18310, 18310, 18310, 18310, 18310, 24584, 24584, 16256, 16256, |
16256, 24584, 24584, 24584, 16256, 24584, 24584, 24584, 18310, 16256, |
16256, 18310, 24584, 24584, 16256, 15109, 15109, 15109, 15109, 15109, |
15109, 15109, 15109, 16256, 16256, 15109, 15109, 15109, 16256, 15109, |
16256, 15109, 16256, 16256, 15109, 15109, 16256, 15109, 15109, 15109, |
15109, 15109, 16256, 15109, 15109, 16256, 24584, 18310, 18310, 18310, |
18310, 16256, 16256, 24584, 24584, 16256, 16256, 24584, 24584, 18310, |
16256, 16256, 20482, 20610, 20738, 10498, 20865, 20994, 3225, 12289, |
12418, 21121, 12289, 12418, 16256, 16256, 16256, 16256, 6683, 6683, |
18561, 664, 18689, 18689, 18689, 16256, 18817, 16256, 18945, 18945, |
11777, 11777, 16256, 11777, 11777, 11777, 11777, 11777, 11777, 11777, |
11777, 11777, 19202, 19330, 19330, 19330, 12034, 12034, 19458, 12034, |
12034, 12034, 12034, 12034, 12034, 12034, 12034, 12034, 19586, 19714, |
19714, 16256, 18310, 18310, 24584, 16256, 15109, 15109, 15109, 15109, |
15109, 15109, 16256, 16256, 16256, 16256, 15109, 15109, 15109, 15109, |
16256, 15109, 15109, 15109, 15109, 15109, 15109, 15109, 15109, 15109, |
16256, 15109, 16256, 16256, 16256, 15109, 15109, 15109, 15109, 16256, |
16256, 18310, 15109, 24584, 24584, 18310, 24584, 24584, 24584, 24584, |
24584, 24584, 18310, 18310, 18310, 16256, 16256, 16256, 16256, 21249, |
21249, 21249, 21249, 21249, 21249, 21249, 21249, 21249, 21249, 21249, |
21249, 21249, 21249, 21249, 21249, 20610, 20610, 20610, 20610, 20610, |
20610, 20610, 20610, 20610, 20610, 20610, 20610, 20610, 20610, 20610, |
20610, 20097, 12289, 12418, 12289, 12418, 12289, 12418, 12289, 12418, |
12289, 12418, 12289, 12418, 12289, 12418, 16256, 16256, 16256, 16256, |
16256, 16256, 24713, 24841, 24969, 25097, 25225, 25353, 25481, 25609, |
25737, 25865, 27403, 27403, 27403, 27403, 27403, 27403, 21404, 18310, |
21404, 18310, 21404, 18310, 27541, 27670, 27541, 27670, 24584, 24584, |
18310, 18310, 18310, 16256, 18310, 16256, 24584, 24584, 24584, 24584, |
24584, 24584, 24584, 24584, 18310, 24584, 24584, 18310, 18310, 18310, |
18310, 18310, 18310, 18310, 18310, 24584, 24584, 24584, 24584, 18310, |
16256, 16256, 21784, 21784, 21784, 21784, 21784, 21784, 21784, 21784, |
24841, 24969, 25097, 25225, 25353, 25481, 25609, 18310, 18310, 18310, |
18310, 18310, 18310, 18310, 18310, 18310, 16256, 16256, 16256, 16256, |
16256, 16256, 16256, 16256, 16256, 16256, 16256, 16256, 11906, 11906, |
11906, 11906, 11906, 16256, 16256, 16256, 16256, 16256, 22277, 18310, |
22277, 22277, 16256, 22277, 22277, 16256, 22277, 22277, 22277, 22277, |
22277, 22277, 22277, 22277, 22277, 22277, 22277, 22277, 22277, 22277, |
22277, 22277, 16256, 16256, 16256, 16256, 16256, 24584, 24584, 16256, |
16256, 16256, 16256, 16256, 16256, 16256, 15109, 16256, 15109, 15109, |
16256, 15109, 15109, 15109, 15109, 15109, 16256, 16256, 18310, 15109, |
24584, 18310, 18310, 18310, 18310, 18310, 16256, 18310, 18310, 24584, |
16256, 24584, 24584, 18310, 16256, 16256, 664, 664, 792, 922, |
792, 664, 664, 1109, 1238, 664, 1305, 1432, 1556, 1432, |
1688, 22277, 22277, 22277, 22168, 22168, 16256, 16256, 16256, 16256, |
16256, 16256, 16256, 16256, 16256, 16256, 16256, 24584, 16256, 16256, |
16256, 16256, 16256, 16256, 16256, 16256, 11659, 11659, 11659, 11659, |
11659, 11659, 11659, 11659, 11659, 11659, 11659, 11659, 29579, 22921, |
23049, 23177, 23305, 23433, 23561, 23689, 23817, 23945, 24073, 792, |
24216, 24216, 22552, 22661, 22661, 22661, 22661, 22552, 22661, 18310, |
18310, 18310, 18310, 18310, 18310, 18310, 22416, 21511, 18310, 21511, |
21511, 21511, 18310, 18310, 18310, 18310, 18310, 18310, 16256, 16256, |
16256, 16256, 16256, 22552, 16256, 16256, 16256, 22552, 22552, 22552, |
22552, 22552, 22552, 22552, 22552, 22552, 22552, 22552, 22552, 22552, |
22552, 16256, 24464, 22788, 22661, 22661, 22661, 22661, 22661, 22661, |
22661, 22661, 22661, 22661, 18310, 18310, 18310, 18310, 18310, 18310, |
18310, 18310, 18310, 18310, 18310, 16256, 16256, 22661, 22661, 22661, |
22661, 22661, 16256, 22661, 22661, 22661, 22661, 22661, 22661, 22661, |
22661, 22661, 22661, 22661, 16256, 16256, 16256, 16256, 16256, 16256, |
16256, 16256, 16256, 16256, 16256, 16256, 16256, 16256, 24841, 24969, |
25097, 25225, 25353, 25481, 25609, 25737, 25865, 26763, 27787, 27915, |
28043, 28171, 28299, 28427, 28555, 28683, 26891, 28811, 16256, 16256, |
16256, 1801, 1929, 2057, 2185, 2313, 2441, 2569, 2697, 2825, |
2953, 22661, 22661, 22661, 24348, 24348, 22661, 18310, 22661, 22661, |
22661, 22661, 22661, 22661, 22661, 22661, 22661, 22661, 22661, 22661, |
22661, 22661, 22661, 16256, 16256, 24464, 24464, 24464, 24464, 16256, |
16256, 16256, 16256, 16256, 16256, 24464, 24464, 24464, 24464, 24464, |
24464, 18310, 18310, 18310, 18310, 18310, 22788, 22788, 18310, 18310, |
10396, 18310, 18310, 18310, 18310, 22661, 22661, 22661, 22661, 22661, |
22661, 22661, 22661, 22661, 22661, 22661, 22661, 50458, 10396, 16256, |
16256, 18310, 22661, 16256, 16256, 16256, 16256, 16256, 16256, 16256, |
16256, 16256, 16256, 16256, 16256, 16256, 16256, 1238, 664, 1109, |
1238, 664, 6807, 15109, 15109, 15109, 15109, 15109, 15109, 15109, |
15109, 15109, 15109, 16256, 16256, 16256, 16256, 24584, 24584, 16256, |
15109, 15109, 15109, 15109, 15109, 15109, 15109, 15109, 16256, 15109, |
15109, 15109, 15109, 15109, 16256, 16256, 16256, 16256, 18310, 18310, |
24584, 15109, 15109, 15109, 15109, 15109, 15109, 15109, 15109, 15109, |
15109, 15109, 15109, 27541, 27670, 16256, 16256, 16256, 524, 15109, |
15109, 15109, 15109, 15109, 15109, 15109, 15109, 15109, 15109, 15109, |
15109, 15109, 15109, 15109, 16256, 16256, 16256, 16256, 16256, 15109, |
15109, 15109, 15109, 15109, 15109, 15109, 15109, 15109, 15109, 15109, |
6807, 18052, 18052, 18052, 15109, 15109, 15109, 18052, 15109, 15109, |
15109, 15109, 15109, 15109, 15109, 15109, 15109, 15109, 15109, 15109, |
15109, 15109, 15109, 16256, 16256, 18310, 15109, 24584, 24584, 24584, |
24584, 24584, 16256, 27142, 24584, 24584, 16256, 24584, 24584, 18310, |
18310, 16256, 16256, 16256, 16256, 18310, 18310, 16256, 16256, 18310, |
18310, 18310, 16256, 16256, 15109, 15109, 15109, 15109, 15109, 15109, |
15109, 16256, 16256, 18310, 18310, 6683, 6683, 18052, 18052, 15109, |
18310, 18310, 18310, 18310, 16256, 16256, 16256, 15109, 15109, 15109, |
15109, 15109, 15109, 15109, 15109, 15109, 16256, 16256, 21784, 16256, |
16256, 16256, 16256, 15109, 15109, 18310, 18310, 21784, 21784, 24713, |
24841, 24969, 25097, 25225, 25353, 25481, 25609, 25737, 25865, 21784, |
21784, 16256, 16256, 16256, 16256, 15109, 15109, 18310, 18310, 16256, |
16256, 24713, 24841, 24969, 25097, 25225, 25353, 25481, 25609, 25737, |
25865, 16256, 16256, 15109, 15109, 16256, 16256, 15109, 15109, 922, |
922, 25995, 26123, 26251, 26379, 26507, 26635, 21404, 16256, 16256, |
16256, 16256, 16256, 18310, 18310, 15109, 15109, 15109, 16256, 16256, |
16256, 16256, 16256, 16256, 16256, 16256, 16256, 16256, 16256, 15109, |
18310, 15109, 15109, 18310, 18310, 18310, 18310, 18310, 18310, 18310, |
16256, 16256, 16256, 16256, 922, 16256, 16256, 16256, 16256, 16256, |
16256, 16256, 16256, 16256, 16256, 16256, 16256, 16256, 16256, 15109, |
15109, 15109, 15109, 15109, 15109, 18052, 18310, 18310, 18310, 18310, |
18310, 18310, 18310, 18310, 21784, 18310, 18310, 15109, 15109, 15109, |
15109, 16256, 16256, 16256, 16256, 24713, 24841, 24969, 25097, 25225, |
25353, 25481, 25609, 25737, 25865, 21784, 21784, 21784, 21784, 21784, |
21784, 26763, 26891, 27019, 10396, 10396, 10396, 10396, 10396, 10396, |
922, 10396, 16256, 16256, 16256, 16256, 16256, 18310, 24584, 24584, |
24584, 24584, 16256, 18310, 18310, 18310, 16256, 18310, 18310, 18310, |
18310, 16256, 16256, 15109, 15109, 15109, 15109, 16256, 15109, 15109, |
15109, 15109, 15109, 16256, 16256, 18310, 15109, 24584, 27142, 24584, |
18310, 18310, 18310, 16256, 16256, 24584, 24584, 24584, 16256, 24584, |
24584, 24584, 18310, 16256, 16256, 15109, 15109, 15109, 15109, 15109, |
15109, 15109, 16256, 16256, 16256, 18310, 16256, 16256, 16256, 16256, |
24584, 24584, 16256, 15109, 15109, 15109, 15109, 15109, 15109, 15109, |
15109, 15109, 15109, 15109, 21784, 21784, 21784, 28938, 29066, 15109, |
18310, 15109, 15109, 18310, 18310, 18310, 18310, 18310, 18310, 16256, |
18310, 18310, 15109, 16256, 16256, 15109, 15109, 15109, 15109, 15109, |
16256, 18052, 16256, 18310, 18310, 18310, 18310, 18310, 18310, 16256, |
16256, 15109, 21404, 21404, 21404, 21784, 21784, 21784, 21784, 21784, |
21784, 21784, 21784, 27320, 21784, 21784, 21784, 18310, 24584, 18310, |
16256, 16256, 16256, 18310, 18310, 24584, 18310, 16256, 16256, 16256, |
16256, 16256, 16256, 15109, 15109, 15109, 15109, 15109, 15109, 24584, |
24584, 18310, 18310, 16256, 16256, 16256, 16256, 16256, 16256, 20097, |
20097, 10396, 20097, 10498, 15109, 15109, 15109, 15109, 10498, 10396, |
10396, 16256, 10498, 20097, 20097, 20097, 20097, 20097, 20097, 20097, |
20097, 20097, 20097, 20097, 20097, 20097, 20097, 20097, 20097, 16256, |
16256, 16256, 16256, 16256, 16256, 16256, 16256, 16256, 16256, 15109, |
15109, 15109, 15109, 15109, 15109, 15109, 15109, 15109, 15109, 16256, |
16256, 16256, 16256, 16256, 16256, 16256, 16256, 16256, 16256, 16256, |
16256, 29194, 16256, 16256, 16256, 16256, 16256, 16256, 16256, 16256, |
16256, 16256, 16256, 16256, 16256, 16256, 16256, 15109, 15109, 18310, |
18310, 18310, 16256, 16256, 16256, 16256, 16256, 16256, 16256, 16256, |
16256, 16256, 16256, 15109, 15109, 18310, 18310, 18310, 21784, 21784, |
16256, 16256, 16256, 16256, 16256, 16256, 16256, 16256, 16256, 15109, |
15109, 18310, 18310, 16256, 16256, 16256, 16256, 16256, 16256, 16256, |
16256, 16256, 16256, 16256, 16256, 15109, 16256, 18310, 18310, 16256, |
16256, 16256, 16256, 16256, 16256, 16256, 16256, 16256, 16256, 16256, |
16256, 15109, 15109, 15109, 15109, 29328, 29328, 24584, 18310, 18310, |
18310, 18310, 18310, 18310, 18310, 24584, 24584, 24584, 24584, 18310, |
18310, 30728, 30728, 30728, 16256, 16256, 16256, 16256, 18310, 18310, |
18310, 18310, 21784, 21784, 21784, 18052, 21784, 21784, 21784, 922, |
15109, 18310, 16256, 16256, 43275, 43403, 43531, 43659, 43787, 29579, |
29707, 29835, 29963, 30091, 30219, 30347, 30475, 30603, 43915, 29451, |
29579, 29707, 29835, 29963, 30091, 30219, 30347, 30475, 30603, 16256, |
16256, 16256, 16256, 16256, 16256, 664, 664, 664, 664, 664, |
664, 22036, 664, 664, 664, 664, 18310, 18310, 18310, 524, |
16256, 15109, 15109, 15109, 15109, 15109, 15109, 15109, 15109, 15109, |
18310, 16256, 16256, 16256, 16256, 16256, 16256, 20097, 20097, 20097, |
10498, 10396, 20097, 10396, 10396, 10396, 20097, 20097, 20097, 20097, |
20097, 10396, 10396, 3225, 10396, 3225, 10396, 10396, 10396, 10396, |
10396, 10396, 10396, 10396, 10396, 10396, 10396, 10396, 10396, 10396, |
10396, 10396, 3225, 3225, 3225, 3225, 3225, 3225, 3225, 3225, |
3225, 3225, 3225, 3225, 3225, 3225, 3225, 3225, 3161, 3161, |
3161, 3161, 3161, 3161, 3225, 3225, 1109, 1238, 3225, 3225, |
3225, 1109, 1238, 1109, 1238, 1109, 1238, 1109, 1238, 1109, |
1238, 1109, 1238, 1109, 1238, 3225, 3225, 3161, 3161, 3161, |
3161, 3161, 3225, 3225, 3225, 3225, 3225, 3161, 3225, 3161, |
3161, 3161, 3161, 3161, 3161, 3161, 3225, 3225, 3225, 3225, |
3225, 3161, 3225, 3161, 3225, 3161, 3161, 3161, 3161, 3161, |
3161, 3161, 3161, 3225, 3225, 3161, 3161, 3161, 3161, 3161, |
3161, 3161, 3161, 3225, 3161, 3225, 3161, 3161, 3161, 3225, |
3225, 3161, 3161, 3225, 3225, 3225, 3225, 3225, 3225, 3161, |
3225, 3225, 3225, 3161, 3161, 3161, 3161, 3161, 3225, 3161, |
3225, 3225, 3161, 3161, 3225, 3225, 3225, 3225, 3161, 3161, |
3161, 3161, 3161, 3161, 3161, 3161, 3161, 3161, 3161, 3161, |
3161, 3225, 3225, 3161, 3225, 3161, 3225, 3225, 3161, 3225, |
3161, 3161, 3161, 3161, 3225, 3225, 3225, 3161, 3161, 3161, |
3161, 3161, 3161, 3225, 3225, 3225, 3161, 3225, 3225, 3225, |
3225, 3161, 3161, 3225, 3225, 3225, 3225, 3225, 3225, 3161, |
3161, 3161, 3225, 3225, 3225, 3225, 3225, 3161, 3225, 3225, |
3225, 3225, 3225, 3225, 3225, 3225, 3161, 3225, 3225, 3225, |
3225, 3225, 3225, 3225, 3161, 3161, 3225, 3225, 3225, 3225, |
3225, 3225, 3225, 10396, 10396, 10396, 10396, 10396, 3225, 3225, |
10396, 10396, 10396, 10396, 20097, 10396, 35969, 10396, 20097, 10396, |
36097, 36225, 20097, 20097, 10908, 10498, 18052, 18052, 10498, 10498, |
10498, 10498, 10498, 10498, 10498, 10498, 10498, 10498, 16256, 16256, |
16256, 16256, 30978, 30978, 30978, 30978, 30978, 30978, 30978, 30978, |
31105, 31105, 31105, 31105, 31105, 31105, 31105, 31105, 30978, 30978, |
30978, 30978, 30978, 30978, 16256, 16256, 31105, 31105, 31105, 31105, |
31105, 31105, 16256, 16256, 11906, 30978, 19074, 30978, 19074, 30978, |
19074, 30978, 16256, 31105, 16256, 31105, 16256, 31105, 16256, 31105, |
31234, 31234, 31362, 31362, 31362, 31362, 31490, 31490, 31618, 31618, |
31746, 31746, 31874, 31874, 16256, 16256, 32002, 32002, 32002, 32002, |
32002, 32002, 32002, 32002, 32131, 32131, 32131, 32131, 32131, 32131, |
32131, 32131, 30978, 30978, 11906, 32258, 11906, 16256, 11906, 19074, |
31105, 31105, 32385, 32385, 32515, 6683, 32642, 6683, 30978, 30978, |
19074, 19074, 16256, 16256, 11906, 19074, 31105, 31105, 32897, 32897, |
16256, 6683, 6683, 6683, 30978, 30978, 19074, 19074, 11906, 20738, |
11906, 19074, 31105, 31105, 33025, 33025, 21121, 6683, 6683, 6683, |
524, 524, 524, 524, 524, 524, 524, 33452, 524, 524, |
524, 33548, 24464, 24464, 29328, 33680, 22036, 33844, 22036, 22036, |
22036, 22036, 664, 664, 33949, 34078, 27541, 33949, 33949, 34078, |
27541, 33949, 1432, 664, 1432, 16256, 664, 1432, 664, 664, |
22036, 27541, 27670, 27541, 27670, 27541, 27670, 792, 792, 792, |
792, 792, 664, 664, 664, 664, 10717, 11614, 664, 664, |
664, 664, 6807, 35083, 10498, 16256, 16256, 35211, 35339, 35467, |
35595, 35723, 35851, 1305, 1305, 3225, 1109, 1238, 10498, 35083, |
11403, 11019, 11147, 35211, 35339, 35467, 35595, 35723, 35851, 1305, |
1305, 3225, 1109, 1238, 16256, 922, 922, 922, 922, 922, |
922, 922, 922, 922, 922, 922, 922, 922, 922, 922, |
922, 16256, 16256, 16256, 16256, 16256, 16256, 16256, 16256, 16256, |
16256, 16256, 16256, 16256, 16256, 18310, 18310, 18310, 18310, 18310, |
18310, 18310, 18310, 18310, 18310, 18310, 18310, 18310, 21511, 21511, |
21511, 3225, 3225, 3225, 3161, 3161, 3161, 3161, 3225, 3225, |
3225, 3225, 3225, 3161, 3161, 3161, 3225, 3225, 3161, 3161, |
3161, 3161, 3225, 3225, 3225, 3225, 3225, 3225, 3225, 3225, |
3225, 3161, 3161, 3161, 3161, 3161, 3225, 3225, 3225, 3225, |
3225, 3161, 3161, 3161, 3225, 3225, 3161, 3161, 3225, 3225, |
3161, 3161, 3161, 3161, 3161, 3161, 3161, 3161, 3161, 3161, |
3161, 3161, 3161, 3161, 3161, 3161, 3225, 3225, 3225, 3225, |
3225, 3161, 3161, 3225, 3225, 3225, 3225, 3161, 3161, 3161, |
3161, 3225, 3161, 1305, 1305, 3225, 3161, 3161, 3225, 3225, |
3225, 3161, 3161, 3161, 3161, 3225, 3161, 3225, 3161, 3225, |
3225, 3225, 3225, 3161, 3161, 3161, 3161, 3161, 3161, 3161, |
3161, 3161, 3161, 3161, 3161, 3161, 3225, 3161, 3161, 3225, |
3225, 1109, 1238, 1109, 1238, 3161, 3225, 3225, 3225, 3225, |
20097, 10498, 10498, 10498, 10498, 10396, 3225, 16256, 16256, 16256, |
16256, 36362, 36490, 36618, 36746, 36874, 37002, 37130, 37258, 37386, |
37514, 37642, 37770, 37898, 38026, 38154, 38282, 38410, 38538, 38666, |
38794, 38922, 39050, 39178, 39306, 39434, 39562, 39690, 39818, 39946, |
40074, 40202, 40330, 40458, 40586, 40714, 40842, 16256, 16256, 16256, |
16256, 16256, 16256, 16256, 16256, 16256, 16256, 16256, 16256, 3225, |
10396, 10396, 3225, 10396, 10396, 3225, 10396, 10396, 10396, 10396, |
10396, 10396, 10396, 3225, 10396, 10396, 10396, 10396, 10396, 10396, |
10396, 10396, 3161, 3161, 3161, 3161, 10396, 10396, 10396, 10396, |
10396, 10396, 10396, 1109, 1238, 10396, 10396, 10396, 10396, 10396, |
10396, 21404, 21404, 21404, 21404, 21404, 21404, 21404, 21404, 21404, |
21404, 21404, 21404, 21404, 21404, 21404, 21404, 10396, 10396, 16256, |
21404, 48267, 48395, 48523, 48651, 48779, 48907, 49035, 49163, 49291, |
49419, 49547, 49675, 49803, 49931, 50059, 30347, 30475, 30603, 43915, |
10396, 16256, 16256, 16256, 10396, 10396, 10396, 10396, 10396, 10396, |
10396, 10396, 10396, 10396, 10396, 10396, 10396, 10396, 16256, 16256, |
16256, 16256, 16256, 16256, 16256, 16256, 16256, 16256, 16256, 16256, |
16256, 16256, 16256, 41355, 41483, 41611, 41739, 41867, 41995, 42123, |
42251, 11403, 11019, 11147, 35211, 35339, 35467, 35595, 35723, 35851, |
40971, 41099, 41227, 41355, 41483, 41611, 41739, 41867, 41995, 42123, |
42251, 21404, 21404, 21404, 21404, 21404, 21404, 21404, 21404, 21404, |
21404, 21404, 21404, 10396, 10396, 10396, 10396, 21404, 21404, 21404, |
21404, 21404, 21404, 21404, 21404, 21404, 21404, 21404, 21404, 21404, |
21404, 21404, 16256, 16256, 16256, 16256, 16256, 16256, 16256, 16256, |
16256, 16256, 16256, 16256, 25995, 26123, 26251, 26379, 45707, 45835, |
45963, 46091, 46219, 26763, 21404, 21404, 21404, 21404, 21404, 21404, |
42396, 42396, 42396, 42396, 42396, 42396, 42396, 42396, 42396, 42396, |
42396, 42396, 42396, 42396, 42396, 42396, 42524, 42524, 42524, 42524, |
42524, 42524, 42524, 42524, 42524, 42524, 42524, 42524, 42524, 42524, |
42524, 42524, 35083, 42635, 42763, 42891, 43019, 43147, 22036, 18052, |
18052, 18052, 18052, 18052, 10396, 10396, 45322, 45450, 45578, 18052, |
15109, 664, 10396, 10396, 10396, 16256, 16256, 16256, 10396, 16256, |
10396, 10396, 10396, 10396, 10396, 10396, 10396, 16256, 3225, 3225, |
3161, 3161, 3161, 3161, 1109, 1238, 1109, 1238, 1109, 1238, |
16256, 16256, 16256, 16256, 524, 664, 664, 664, 10396, 18052, |
15109, 44042, 1109, 1238, 1109, 1238, 1109, 1238, 1109, 1238, |
10396, 10396, 1109, 1238, 1109, 1238, 1109, 1238, 1109, 1238, |
22036, 27541, 27670, 27670, 10396, 46347, 46475, 46603, 46731, 46859, |
46987, 47115, 47243, 47371, 47499, 47627, 47755, 47883, 48011, 48139, |
50195, 50195, 50195, 50195, 50195, 50195, 50195, 50195, 50195, 50195, |
50195, 50195, 50195, 50195, 50195, 50195, 50322, 50322, 50322, 50322, |
50322, 50322, 50322, 50322, 50322, 50322, 50322, 50322, 50322, 50322, |
50322, 50322, 11906, 11906, 11906, 19074, 19074, 11906, 11906, 16256, |
16256, 16256, 16256, 16256, 16256, 16256, 16256, 16256, 22277, 22277, |
22277, 22277, 22277, 22277, 22277, 22277, 22277, 1305, 22277, 22277, |
22277, 22277, 22277, 22277, 22277, 16256, 22277, 22277, 22277, 22277, |
22277, 16256, 22277, 16256, 664, 22036, 22036, 6807, 6807, 27541, |
27670, 27541, 27670, 27541, 27670, 27541, 27670, 27541, 27670, 27541, |
27670, 664, 664, 27541, 27670, 664, 664, 664, 664, 6807, |
6807, 6807, 664, 664, 1305, 1556, 3225, 3225, 3225, 16256, |
664, 922, 792, 664, 16256, 16256, 16256, 16256, 8834, 8962, |
9090, 9218, 9346, 9474, 9602, 9730, 9858, 9986, 10114, 1109, |
3225, 1238, 3225, 1109, 922, 922, 3225, 6683, 10396, 922, |
922, 16256, 10396, 3225, 3225, 3225, 3225, 10396, 10396, 16256, |
}; |
|
static const jchar data1[] = { |
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, |
5, 5, 128, 5, 5, 5, 5, 5, 5, 5, |
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, |
5, 5, 5, 5, 5, 5, 5, 5, 5, 128, |
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, |
5, 5, 5, 5, 5, 5, 5, 5, 5, 128, |
5, 5, 128, 5, 5, 5, 5, 5, 5, 5, |
5, 5, 5, 5, 5, 5, 5, 128, 128, 5, |
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, |
5, 5, 5, 128, 128, 128, 128, 128, 128, 128, |
128, 128, 128, 128, 128, 128, 128, 128, 128, 128, |
128, 128, 128, 128, 128, 128, 128, 128, 128, 128, |
128, 128, 128, 128, 128, 128, 128, 6529, 6529, 6529, |
6529, 6529, 6529, 6529, 6529, 6529, 6529, 6529, 6529, 6529, |
6529, 6529, 6529, 6529, 6529, 6529, 6529, 6529, 6529, 6529, |
6529, 6529, 6529, 6529, 6529, 6529, 6529, 6529, 6529, 6529, |
6529, 6529, 6529, 6529, 6529, 6529, 6529, 6658, 6658, 6658, |
6658, 6658, 6658, 6658, 6658, 6658, 6658, 6658, 6658, 6658, |
6658, 6658, 6658, 6658, 6658, 6658, 6658, 6658, 6658, 6658, |
6658, 5, 5, 5, 5, 5, 5, 5, 5, 5, |
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, |
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, |
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, |
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, |
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, |
5, 5, 5, 5, 5, 128, 128, 128, 128, 128, |
280, 408, 540, 128, 128, 128, 128, 651, 779, 907, |
1035, 1163, 1291, 1419, 1547, 1675, 1803, 1931, 2059, 2187, |
2315, 2443, 2571, 2699, 2827, 2955, 3083, 3211, 3339, 3467, |
3595, 3723, 3851, 3979, 4107, 4235, 4363, 4491, 4619, 4747, |
4875, 5003, 5131, 5259, 5387, 5515, 5643, 5771, 5899, 6027, |
6155, 6283, 128, 128, 128, 540, 540, 540, 540, 540, |
540, 540, 540, 540, 540, 540, 540, 540, 540, 540, |
540, 540, 540, 540, 540, 540, 540, 540, 540, 540, |
540, 540, 540, 540, 540, 540, 540, 540, 540, 540, |
540, 540, 8200, 8200, 8326, 8326, 8326, 540, 540, 540, |
8200, 8200, 8200, 8200, 8200, 8200, 8464, 8464, 8464, 8464, |
8464, 8464, 8464, 8464, 8326, 8326, 8326, 8326, 8326, 540, |
540, 8326, 8326, 8326, 8326, 8326, 8326, 8326, 540, 540, |
540, 540, 540, 540, 540, 540, 540, 540, 540, 540, |
540, 540, 540, 540, 540, 540, 540, 540, 540, 540, |
540, 540, 540, 540, 540, 540, 540, 540, 8326, 8326, |
8326, 8326, 540, 540, 540, 540, 540, 540, 540, 540, |
540, 540, 540, 540, 540, 540, 540, 540, 540, 540, |
540, 540, 540, 540, 540, 540, 540, 540, 540, 540, |
540, 540, 540, 540, 540, 540, 540, 540, 540, 540, |
540, 128, 128, 128, 540, 540, 540, 540, 540, 540, |
540, 540, 540, 540, 540, 540, 540, 540, 540, 540, |
540, 540, 540, 540, 540, 540, 540, 540, 540, 540, |
540, 540, 540, 540, 540, 540, 540, 540, 540, 540, |
540, 540, 540, 540, 540, 540, 540, 540, 540, 540, |
540, 540, 540, 540, 540, 540, 540, 540, 540, 540, |
540, 540, 540, 540, 540, 540, 540, 540, 128, 128, |
128, 128, 128, 128, 128, 128, 128, 128, 128, 128, |
128, 128, 128, 128, 128, 128, 128, 128, 128, 128, |
128, 128, 128, 128, 128, 128, 128, 128, 128, 128, |
128, 128, 5, 5, 5, 5, 5, 5, 5, 5, |
5, 5, 6410, 128, 128, 128, 128, 128, 128, 128, |
128, 128, 128, 128, 128, 128, 128, 128, 128, 128, |
128, 128, 128, 128, 128, 128, 128, 128, 128, 128, |
128, 128, 128, 128, 128, 128, 128, 128, 128, 128, |
128, 128, 128, 128, 128, 128, 128, 128, 128, 128, |
128, 128, 128, 128, 128, 128, 128, 128, 128, 128, |
128, 128, 128, 128, 128, 128, 128, 5, 5, 5, |
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, |
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, |
5, 5, 5, 5, 5, 5, 5, 5, 128, 651, |
1163, 1803, 2315, 128, 128, 128, 128, 128, 128, 128, |
128, 128, 128, 128, 128, 5, 5, 5, 5, 5, |
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, |
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, |
5, 5, 5, 5, 5, 128, 280, 128, 128, 128, |
128, 128, 128, 128, 128, 128, 128, 128, 128, 128, |
128, 128, 128, 128, 128, 128, 128, 128, 128, 128, |
128, 128, 128, 128, 128, 128, 128, 128, 128, 5, |
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, |
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, |
5, 5, 5, 5, 5, 5, 5, 5, 5, 128, |
128, 6793, 6921, 7049, 7177, 7305, 7433, 7561, 7689, 7817, |
7945, 128, 128, 128, 128, 128, 128, 128, 128, 128, |
128, 128, 128, 128, 128, 128, 128, 128, 128, 128, |
128, 128, 128, 8069, 8069, 8069, 8069, 8069, 8069, 128, |
128, 8069, 128, 8069, 8069, 8069, 8069, 8069, 8069, 8069, |
8069, 8069, 8069, 8069, 8069, 8069, 8069, 8069, 8069, 8069, |
8069, 8069, 8069, 8069, 8069, 8069, 8069, 8069, 8069, 8069, |
8069, 8069, 8069, 8069, 8069, 8069, 8069, 8069, 8069, 8069, |
8069, 8069, 8069, 8069, 8069, 8069, 8069, 128, 8069, 8069, |
128, 128, 128, 8069, 128, 128, 8069, 8604, 8604, 8604, |
8604, 8604, 8604, 8604, 8604, 8604, 8604, 8604, 8604, 8604, |
8604, 8604, 8604, 8604, 8604, 8604, 8604, 8604, 8604, 8604, |
8604, 8604, 8604, 8604, 8604, 8604, 8604, 8604, 8604, 8604, |
8604, 8604, 8604, 8604, 8604, 8604, 8604, 8604, 8604, 8604, |
8604, 8604, 8604, 8604, 8604, 8604, 8604, 8604, 8604, 8604, |
8604, 8604, 8604, 8604, 8604, 8604, 8604, 8604, 8604, 8604, |
8604, 128, 128, 128, 128, 128, 128, 128, 128, 128, |
128, 128, 128, 128, 128, 128, 128, 128, 128, 128, |
128, 128, 128, 128, 128, 128, 128, 128, 128, 128, |
128, 128, 128, 128, 128, 128, 128, 128, 128, 128, |
128, 128, 8705, 8985, 8834, 8834, 8834, 8834, 8834, 8834, |
8834, 8834, 8834, 8834, 8834, 8834, 8834, 8834, 8834, 8834, |
8834, 8834, 8834, 8834, 8834, 8834, 8834, 8834, 8834, 8985, |
8834, 8834, 8834, 8834, 8834, 8834, 8705, 8705, 8705, 8705, |
8705, 8705, 8705, 8705, 8705, 8705, 8705, 8705, 8705, 8705, |
8705, 8705, 8705, 8705, 8705, 8705, 8705, 8705, 8705, 8705, |
8705, 8985, 8834, 8834, 8834, 8834, 8834, 8834, 8834, 8834, |
8834, 8834, 8834, 8834, 8834, 8834, 8834, 8834, 8834, 8834, |
8834, 8834, 8834, 8834, 128, 8834, 8834, 8834, 8834, 8834, |
8834, 8834, 8834, 8834, 8834, 8834, 8705, 8705, 8705, 8705, |
8705, 8705, 8705, 8705, 8705, 8705, 8705, 8705, 8705, 8705, |
8705, 8705, 8705, 8705, 8705, 8705, 8705, 8705, 8705, 8705, |
8705, 8705, 8834, 8834, 8834, 8834, 8834, 8834, 8834, 8834, |
8834, 8834, 8834, 8834, 8834, 8834, 8834, 8834, 8834, 8834, |
8834, 8834, 8834, 8834, 8834, 8834, 8834, 8834, 8705, 8705, |
8705, 8705, 8705, 8705, 8705, 8705, 8705, 8705, 8705, 8705, |
8705, 8705, 8705, 8705, 8705, 8705, 8705, 8705, 8705, 8705, |
8705, 8705, 8705, 8705, 8834, 8834, 8834, 8834, 8834, 8834, |
8834, 8834, 8834, 8834, 8834, 8834, 8834, 8834, 8834, 8834, |
8834, 8834, 8834, 8834, 8834, 8834, 8834, 8834, 8834, 8834, |
128, 128, 128, 128, 8705, 8705, 8705, 8705, 8705, 8705, |
8705, 8705, 8705, 8705, 8705, 8705, 8705, 8705, 8705, 8705, |
8705, 8705, 8705, 8705, 8705, 8705, 8705, 8705, 8834, 8834, |
8834, 8834, 8834, 8834, 8834, 128, 8834, 8834, 8834, 8834, |
8834, 8834, 8834, 8834, 8834, 8834, 8834, 8834, 8834, 8834, |
8834, 8834, 8834, 8834, 8705, 8705, 8705, 8705, 8705, 8705, |
8705, 8705, 8705, 8705, 8705, 8705, 8705, 8705, 8705, 8705, |
8705, 8705, 8705, 8705, 8705, 8705, 8705, 8705, 128, 8705, |
128, 128, 128, 8705, 8705, 8705, 8705, 8705, 8705, 8705, |
128, 8834, 8834, 8834, 8834, 8834, 8834, 8834, 8834, 8834, |
8834, 8834, 8834, 8834, 8834, 8834, 8834, 8834, 8834, 8834, |
8834, 8834, 8834, 8834, 8834, 8834, 8834, 8705, 8705, 8705, |
8705, 8705, 8705, 8705, 8705, 8705, 8705, 8705, 8705, 8705, |
8705, 8705, 8705, 8705, 8705, 8705, 8705, 8834, 8834, 8834, |
8834, 8834, 8834, 8834, 8834, 8834, 8834, 8834, 8834, 8834, |
8834, 8834, 8834, 8834, 8834, 8834, 8834, 8834, 8834, 8834, |
8834, 8834, 8834, 8705, 128, 8705, 8705, 128, 128, 8705, |
128, 128, 8705, 8705, 128, 128, 8705, 8705, 8705, 8705, |
128, 8705, 8705, 8705, 8705, 8705, 8705, 8705, 8705, 8834, |
8834, 8834, 8834, 128, 8834, 128, 8834, 8834, 8834, 8834, |
8705, 8705, 128, 8705, 8705, 8705, 8705, 128, 128, 8705, |
8705, 8705, 8705, 8705, 8705, 8705, 8705, 128, 8705, 8705, |
8705, 8705, 8705, 8705, 8705, 128, 8834, 8834, 8834, 8834, |
8834, 8834, 8834, 8834, 8834, 8834, 8834, 8834, 8834, 8834, |
8834, 8834, 8834, 8834, 8834, 8834, 8834, 8834, 8834, 8834, |
8834, 8834, 8705, 8705, 128, 8705, 8705, 8705, 8705, 128, |
8834, 8834, 8834, 8985, 8834, 8834, 8834, 8834, 8834, 8834, |
128, 128, 128, 128, 9097, 9225, 9353, 9481, 9609, 9737, |
9865, 9993, 10121, 10249, 9097, 9225, 9353, 9481, 9609, 9737, |
9865, 9993, 10121, 10249, 9097, 9225, 9353, 9481, 9609, 9737, |
9865, 9993, 10121, 10249, 9097, 9225, 9353, 9481, 9609, 9737, |
9865, 9993, 10121, 10249, 9097, 9225, 9353, 9481, 9609, 9737, |
9865, 9993, 10121, 10249, |
}; |
|
static const jchar data2[] = { |
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, |
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, |
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, |
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, |
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, |
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, |
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, |
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, |
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, |
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, |
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, |
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, |
5, 5, 5, 5, 5, 5, 5, 5, 128, 128, |
128, 128, 128, 128, 128, 128, 128, 128, 128, 128, |
128, 128, 128, 128, 128, 128, 128, 128, 128, 128, |
128, 128, 128, 128, 128, 128, 128, 128, 128, 128, |
128, 128, 128, 128, 128, 128, 128, 128, 128, 128, |
128, 128, 128, 128, 128, 128, 128, 128, 128, 128, |
128, 128, 128, 128, 128, 128, 128, 128, 128, 128, |
128, 128, 128, 128, 128, 128, 128, 128, 128, 128, |
128, 128, 128, 128, 128, 128, 128, 128, 128, 128, |
128, 128, 128, 128, 128, 128, 128, 128, 128, 128, |
128, 128, 128, 128, 128, 128, 128, 128, 128, 128, |
128, 128, 128, 128, 128, 128, 128, 128, 128, 128, |
128, 128, 128, 128, 128, 128, 128, 128, 128, 128, |
128, 128, 128, 128, 128, 128, |
}; |
|
static const jchar data14[] = { |
262, 262, 262, 262, 262, 262, 262, 262, 262, 262, |
262, 262, 262, 262, 262, 262, 262, 262, 262, 262, |
262, 262, 262, 262, 262, 262, 262, 262, 262, 262, |
262, 262, 262, 262, 262, 262, 262, 262, 262, 262, |
262, 262, 262, 262, 262, 262, 262, 262, 262, 262, |
262, 262, 262, 262, 262, 262, 262, 262, 262, 262, |
262, 262, 262, 262, 262, 262, 262, 262, 262, 262, |
262, 262, 262, 262, 262, 262, 262, 262, 262, 262, |
262, 262, 262, 262, 262, 262, 262, 262, 262, 262, |
262, 262, 262, 262, 262, 262, 262, 262, 262, 262, |
262, 262, 262, 262, 262, 262, 262, 262, 262, 262, |
262, 262, 262, 262, 262, 262, 262, 262, 262, 262, |
262, 262, 262, 262, 262, 262, 262, 262, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 144, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 144, 144, 144, |
144, 144, 144, 144, 144, 144, 144, 144, 144, 144, |
144, 144, 144, 144, 144, 144, 144, 144, 144, 144, |
144, 144, 144, 144, 144, 144, 144, 144, 144, 144, |
144, 144, 144, 144, 144, 144, 144, 144, 144, 144, |
144, 144, 144, 144, 144, 144, 144, 144, 144, 144, |
144, 144, 144, 144, 144, 144, 144, 144, 144, 144, |
144, 144, 144, 144, 144, 144, 144, 144, 144, 144, |
144, 144, 144, 144, 144, 144, 144, 144, 144, 144, |
144, 144, 144, 144, 144, 144, 144, 144, 144, 144, |
144, 144, 144, |
}; |
|
static const int data_length[] = { |
3960, 1504, 256, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 383, -1, -1, }; |
static const jchar* data[] = { |
data0, data1, data2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, |
NULL, NULL, NULL, NULL, data14, NULL, NULL}; |
|
|
/** |
* This is the attribute table for computing the numeric value of a |
* character. The value is -1 if Unicode does not define a value, -2 |
* if the value is not a positive integer, otherwise it is the value. |
*/ |
static const jshort numValue0[] = { |
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, |
-1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, -1, -1, |
10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, |
23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, |
-1, -1, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, |
21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, |
34, 35, -1, -1, -1, -1, -1, -1, 2, 3, -1, 1, -1, |
-2, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, |
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, |
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, |
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, |
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, |
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, |
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, 1, 2, |
3, 4, 5, 6, 7, 8, 9, -1, -1, -1, -1, 0, 1, |
2, 3, 4, 5, 6, 7, 8, 9, 1, 2, 3, 4, -1, |
16, 10, 100, 1000, -1, -1, -2, -1, -1, 20, 30, 40, 50, |
60, 70, 80, 90, 10000, 17, 18, 19, -1, 0, 1, 2, 3, |
4, 5, 6, 7, 8, 9, -1, -1, -1, -1, -1, -1, -1, |
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, |
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, |
-1, 0, 4, 5, 6, 7, 8, 9, -1, -1, -1, 1, 2, |
3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 50, 100, 500, |
1000, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, |
50, 100, 500, 1000, 1000, 5000, 10000, -1, 10, 11, 12, 13, 14, |
15, 16, 17, 18, 19, 20, -1, -1, 11, 12, 13, 14, 15, |
16, 17, 18, 19, 20, 10, 0, 1, 2, 3, 4, 5, 6, |
7, 8, 9, 10, 20, 30, 5, 6, 7, 8, 9, 21, 22, |
23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, |
36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, |
49, 50, -1, -1, -1, |
}; |
|
static const jshort numValue1[] = { |
-1, -1, -1, -1, -1, 1, 2, 3, 4, 5, 6, 7, 8, |
9, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100, 200, 300, |
400, 500, 600, 700, 800, 900, 1000, 2000, 3000, 4000, 5000, 6000, 7000, |
8000, 9000, 10000, 20000, 30000, -3, -4, -5, -6, -7, -8, -1, -1, |
-1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, -1, -1, |
-1, -1, -1, -1, -1, -1, 0, 1, 2, 3, 4, 5, 6, |
7, 8, 9, |
}; |
|
static const jshort numValue2[] = { |
-1, -1, |
}; |
|
static const jshort numValue14[] = { |
-1, -1, -1, |
}; |
|
static const int numValue_length[] = { |
395, 81, 2, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3, -1, -1, }; |
static const jshort* numValue[] = { |
numValue0, numValue1, numValue2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, |
NULL, NULL, NULL, NULL, numValue14, NULL, NULL}; |
|
|
|
/** |
* This is the attribute table for computing the uppercase representation |
* of a character. The value is the difference between the character and |
* its uppercase version. |
*/ |
static const jshort upper0[] = { |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, |
-32, -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, |
-32, -32, 0, 0, 0, 0, 0, 0, 0, 0, 743, 0, 0, |
0, 0, 0, -32, 121, 0, -1, 0, -232, 0, -300, 0, 0, |
0, 0, 0, 0, 0, 97, 0, 0, 0, 130, 0, 0, 0, |
0, 0, 56, 0, -1, -2, -79, 0, 0, 0, 0, -210, -206, |
-205, -202, -203, -207, -209, -211, -213, -214, -218, -217, -219, 0, 0, |
0, 84, 0, 0, 0, 0, 0, -38, -37, -31, -64, -63, -62, |
-57, 0, -47, -54, -86, -80, 7, 0, -96, 0, 0, 0, 0, |
0, 0, -48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, -59, 8, 0, 74, 86, 100, |
128, 112, 126, 8, 0, 9, 0, 0, -7205, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, |
-16, -16, -16, -16, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, -26, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, |
}; |
|
static const jshort upper1[] = { |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
-40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, |
}; |
|
static const jshort upper2[] = { |
0, 0, |
}; |
|
static const jshort upper14[] = { |
0, 0, 0, |
}; |
|
static const int upper_length[] = { |
395, 81, 2, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3, -1, -1, }; |
static const jshort* upper[] = { |
upper0, upper1, upper2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, |
NULL, NULL, NULL, NULL, upper14, NULL, NULL}; |
|
|
/** |
* This is the attribute table for computing the lowercase representation |
* of a character. The value is the difference between the character and |
* its lowercase version. |
*/ |
static const jshort lower0[] = { |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, |
32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 32, 0, 0, 0, 1, 0, -199, 0, -121, 0, 210, 206, |
205, 79, 202, 203, 207, 0, 211, 209, 213, 0, 214, 218, 217, |
219, 0, 0, 2, 1, 0, 0, -97, -56, -130, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 38, 37, 64, 63, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, -60, 0, -7, 80, 0, 0, |
48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, -8, 0, 0, 0, |
0, 0, 0, 0, -8, 0, -74, -9, 0, -86, -100, -112, -128, |
-126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, -7517, -8383, -8262, 16, 16, |
16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, |
16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 26, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, |
}; |
|
static const jshort lower1[] = { |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, |
}; |
|
static const jshort lower2[] = { |
0, 0, |
}; |
|
static const jshort lower14[] = { |
0, 0, 0, |
}; |
|
static const int lower_length[] = { |
395, 81, 2, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3, -1, -1, }; |
static const jshort* lower[] = { |
lower0, lower1, lower2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, |
NULL, NULL, NULL, NULL, lower14, NULL, NULL}; |
|
|
/** |
* This is the attribute table for computing the directionality class |
* of a character. At present, the value is in the range 0 - 18 if the |
* character has a direction, otherwise it is -1. |
*/ |
static const jbyte direction0[] = { |
9, 11, 10, 12, 12, 13, 5, 5, 13, 13, 5, 7, 5, 4, 3, 3, 3, 3, 3, |
3, 3, 3, 3, 3, 13, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 13, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 7, 13, 0, 13, 13, 5, 3, 3, 0, 3, 13, 13, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 8, 8, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, |
0, 13, 1, 1, 2, 2, 2, 2, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, |
2, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 13, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 8, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 9, 1, 13, 13, |
13, 12, 10, 14, 16, 18, 15, 17, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, |
3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 13, 13, 13, 13, 13, 13, 13, 13, 13, |
13, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, |
13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 0, 0, 2, |
}; |
|
static const jbyte direction1[] = { |
0, -1, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0, 0, 0, 0, 0, 0, 1, 0, 8, 9, 13, 0, 0, 0, 3, 3, 3, 3, 3, |
3, 3, 3, 3, 3, |
}; |
|
static const jbyte direction2[] = { |
0, -1, |
}; |
|
static const jbyte direction14[] = { |
-1, 9, 8, |
}; |
|
static const int direction_length[] = { |
395, 81, 2, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3, -1, -1, }; |
static const jbyte* direction[] = { |
direction0, direction1, direction2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, |
NULL, NULL, NULL, NULL, direction14, NULL, NULL}; |
|
|
/** |
* This is the listing of titlecase special cases (all other character |
* can use <code>upper</code> to determine their titlecase). The listing |
* is a sequence of character pairs; converting the first character of the |
* pair to titlecase produces the second character. |
*/ |
static const jchar title[] = { |
452, 453, 453, 453, 454, 453, 455, 456, 456, 456, |
457, 456, 458, 459, 459, 459, 460, 459, 497, 498, |
498, 498, 499, 498, |
}; |
/** Length of title. */ |
static const int title_length = 24; |
|
#endif /* __JAVA_CHARTABLES_H__ */ |
/stamp-h.in
0,0 → 1,1617
timestamp |
/powerpc-signal.h
0,0 → 1,113
// powerpc-signal.h - Catch runtime signals and turn them into exceptions |
// on a powerpc based Linux system. |
|
/* Copyright (C) 2003, 2006 Free Software Foundation |
|
This file is part of libgcj. |
|
This software is copyrighted work licensed under the terms of the |
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for |
details. */ |
|
|
#ifndef JAVA_SIGNAL_H |
#define JAVA_SIGNAL_H 1 |
|
#include <signal.h> |
#include <sys/syscall.h> |
|
#define HANDLE_SEGV 1 |
#undef HANDLE_FPE |
|
#define SIGNAL_HANDLER(_name) \ |
static void _name (int /* _signal */, struct sigcontext *_sc) |
|
/* MD_FALLBACK_FRAME_STATE_FOR takes care of special casing PC |
before the faulting instruction, so we don't need to do anything |
here. */ |
|
#define MAKE_THROW_FRAME(_exception) |
|
/* For an explanation why we cannot simply use sigaction to |
install the handlers, see i386-signal.h. */ |
|
/* We use kernel_old_sigaction here because we're calling the kernel |
directly rather than via glibc. The sigaction structure that the |
syscall uses is a different shape from the one in userland and not |
visible to us in a header file so we define it here. |
Additionally we want a proper prototype for the handler function |
with the struct sigcontext pointer passed by the kernel as the 2nd |
argument, which isn't there in userland headers. |
|
Note that we explicitly avoid the SA_SIGINFO flag in INIT_SEGV and |
INIT_FPE below. Using the ucontext pointer passed as 3rd argument |
of a SA_SIGINFO type handler would need complicated backwards |
compatibility hacks in MAKE_THROW_FRAME, as the ucontext layout |
on PPC changed during the 2.5 kernel series. */ |
|
#ifndef __powerpc64__ |
struct kernel_old_sigaction { |
void (*k_sa_handler) (int, struct sigcontext *); |
unsigned long k_sa_mask; |
unsigned long k_sa_flags; |
void (*k_sa_restorer) (void); |
}; |
|
#define INIT_SEGV \ |
do \ |
{ \ |
struct kernel_old_sigaction kact; \ |
kact.k_sa_handler = catch_segv; \ |
kact.k_sa_mask = 0; \ |
kact.k_sa_flags = 0; \ |
if (syscall (SYS_sigaction, SIGSEGV, &kact, NULL) != 0) \ |
__asm__ __volatile__ (".long 0"); \ |
} \ |
while (0) |
|
#define INIT_FPE \ |
do \ |
{ \ |
struct kernel_old_sigaction kact; \ |
kact.k_sa_handler = catch_fpe; \ |
kact.k_sa_mask = 0; \ |
kact.k_sa_flags = 0; \ |
if (syscall (SYS_sigaction, SIGFPE, &kact, NULL) != 0) \ |
__asm__ __volatile__ (".long 0"); \ |
} \ |
while (0) |
|
#else /* powerpc64 */ |
|
struct kernel_sigaction |
{ |
void (*k_sa_handler) (int, struct sigcontext *); |
unsigned long k_sa_flags; |
void (*k_sa_restorer)(void); |
unsigned long k_sa_mask; |
}; |
|
#define INIT_SEGV \ |
do \ |
{ \ |
struct kernel_sigaction kact; \ |
memset (&kact, 0, sizeof (kact)); \ |
kact.k_sa_handler = catch_segv; \ |
if (syscall (SYS_rt_sigaction, SIGSEGV, &kact, NULL, 8) != 0) \ |
__asm__ __volatile__ (".long 0"); \ |
} \ |
while (0) |
|
#define INIT_FPE \ |
do \ |
{ \ |
struct kernel_sigaction kact; \ |
memset (&kact, 0, sizeof (kact)); \ |
kact.k_sa_handler = catch_fpe; \ |
if (syscall (SYS_rt_sigaction, SIGFPE, &kact, NULL, 8) != 0) \ |
__asm__ __volatile__ (".long 0"); \ |
} \ |
while (0) |
#endif |
|
#endif /* JAVA_SIGNAL_H */ |
/posix-threads.h
0,0 → 1,384
// -*- c++ -*- |
// posix-threads.h - Defines for using POSIX threads. |
|
/* Copyright (C) 1998, 1999, 2001, 2003, 2006 Free Software Foundation |
|
This file is part of libgcj. |
|
This software is copyrighted work licensed under the terms of the |
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for |
details. */ |
|
#ifndef __JV_POSIX_THREADS__ |
#define __JV_POSIX_THREADS__ |
|
// NOTE: This file may only reference those pthread functions which |
// are known not to be overridden by the Boehm GC. If in doubt, scan |
// boehm-gc/gc.h. This is yucky but lets us avoid including gc.h |
// everywhere (which would be truly yucky). |
|
#include <pthread.h> |
#include <sched.h> |
#include <sysdep/locks.h> |
|
// |
// Typedefs. |
// |
|
typedef struct _Jv_Thread_t |
{ |
// Flag values are defined in implementation. |
int flags; |
|
// Actual thread id. |
pthread_t thread; |
|
// Java Thread object. |
java::lang::Thread *thread_obj; |
|
// Condition variable and corresponding mutex, used to implement the |
// interruptable wait/notify mechanism. |
pthread_cond_t wait_cond; |
pthread_mutex_t wait_mutex; |
|
// Next thread for Condition Variable wait-list chain. |
_Jv_Thread_t *next; |
|
} _Jv_Thread_t; |
|
typedef void _Jv_ThreadStartFunc (java::lang::Thread *); |
|
// Condition Variables used to implement wait/notify/sleep/interrupt. |
typedef struct |
{ |
// Linked list of Threads that are waiting to be notified. |
_Jv_Thread_t *first; |
|
} _Jv_ConditionVariable_t; |
|
typedef struct |
{ |
// For compatibility, simplicity, and correctness, we do not use the native |
// pthreads recursive mutex implementation, but simulate them instead. |
|
// Mutex the thread holds the entire time this mutex is held. |
pthread_mutex_t mutex; |
|
// Thread holding this mutex. |
pthread_t owner; |
|
// Number of times mutex is held (lock depth). If 0, the lock is not held. |
int count; |
} _Jv_Mutex_t; |
|
// This is a convenience function used only by the pthreads thread |
// implementation. This is slow, but that's too bad -- we need to do |
// the checks for correctness. It might be nice to be able to compile |
// this out. Returns 0 if the lock is held by the current thread, and |
// 1 otherwise. |
inline int |
_Jv_MutexCheckMonitor (_Jv_Mutex_t *mu) |
{ |
return (mu->owner != pthread_self()); |
} |
|
// Type identifying a POSIX thread. |
typedef pthread_t _Jv_ThreadDesc_t; |
|
inline _Jv_ThreadDesc_t |
_Jv_GetPlatformThreadID(_Jv_Thread_t *t) |
{ |
return t->thread; |
} |
|
// |
// Signal helpers. |
// |
|
void _Jv_BlockSigchld(); |
void _Jv_UnBlockSigchld(); |
|
|
// |
// Condition variables. |
// |
|
int _Jv_CondWait (_Jv_ConditionVariable_t *cv, _Jv_Mutex_t *mu, |
jlong millis, jint nanos); |
|
int _Jv_CondNotify (_Jv_ConditionVariable_t *cv, _Jv_Mutex_t *mu); |
|
int _Jv_CondNotifyAll (_Jv_ConditionVariable_t *cv, _Jv_Mutex_t *mu); |
|
inline void |
_Jv_CondInit (_Jv_ConditionVariable_t *cv) |
{ |
cv->first = 0; |
} |
|
// |
// Mutexes. |
// |
|
#ifdef LOCK_DEBUG |
# include <stdio.h> |
#endif |
|
inline void |
_Jv_MutexInit (_Jv_Mutex_t *mu) |
{ |
# ifdef LOCK_DEBUG /* Assumes Linuxthreads */ |
pthread_mutexattr_t attr; |
pthread_mutexattr_init(&attr); |
pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_ERRORCHECK); |
pthread_mutex_init (&mu->mutex, &attr); |
# else |
pthread_mutex_init (&mu->mutex, 0); |
# endif |
|
mu->count = 0; |
mu->owner = 0; |
} |
|
extern int _Jv_MutexLock (_Jv_Mutex_t *); |
|
inline int |
_Jv_MutexUnlock (_Jv_Mutex_t *mu) |
{ |
if (_Jv_MutexCheckMonitor (mu)) |
{ |
# ifdef LOCK_DEBUG |
fprintf(stderr, "_Jv_MutexUnlock: Not owner\n"); |
for (;;) {} |
# endif |
return 1; |
} |
|
mu->count--; |
|
if (mu->count == 0) |
{ |
mu->owner = 0; |
# ifdef LOCK_DEBUG |
int result = pthread_mutex_unlock (&mu->mutex); |
if (0 != result) |
{ |
fprintf(stderr, "Pthread_mutex_unlock returned %d\n", result); |
for (;;) {} |
} |
# else |
pthread_mutex_unlock (&mu->mutex); |
# endif |
} |
return 0; |
} |
|
#ifndef LINUX_THREADS |
|
// pthread_mutex_destroy does nothing on Linux and it is a win to avoid |
// defining this macro. |
|
#define _Jv_HaveMutexDestroy |
|
inline void |
_Jv_MutexDestroy (_Jv_Mutex_t *mu) |
{ |
pthread_mutex_destroy (&mu->mutex); |
} |
|
#endif /* LINUX_THREADS */ |
|
// |
// Thread creation and manipulation. |
// |
|
void _Jv_InitThreads (void); |
|
_Jv_Thread_t *_Jv_ThreadInitData (java::lang::Thread *thread); |
void _Jv_ThreadDestroyData (_Jv_Thread_t *data); |
|
inline java::lang::Thread * |
_Jv_ThreadCurrent (void) |
{ |
extern pthread_key_t _Jv_ThreadKey; |
return (java::lang::Thread *) pthread_getspecific (_Jv_ThreadKey); |
} |
|
#ifdef JV_HASH_SYNCHRONIZATION |
// Should be specialized to just load the "current thread" register |
// on platforms that support it. Speed is of the essence. The value |
// of the descriptor is not, so long as there is a one-to-one correspondence |
// to threads. |
|
|
#ifdef __ia64__ |
|
typedef size_t _Jv_ThreadId_t; |
|
register size_t _Jv_self __asm__("r13"); |
// For linux_threads this is really a pointer to its thread data |
// structure. We treat it as opaque. That should also work |
// on other operating systems that follow the ABI standard. |
|
// This should become the prototype for machines that maintain a thread |
// pointer in a register. |
inline _Jv_ThreadId_t |
_Jv_ThreadSelf (void) |
{ |
return _Jv_self; |
} |
|
#define JV_SELF_DEFINED |
|
#endif /* __ia64__ */ |
|
#ifdef __alpha__ |
|
typedef void *_Jv_ThreadId_t; |
|
inline _Jv_ThreadId_t |
_Jv_ThreadSelf (void) |
{ |
return __builtin_thread_pointer (); |
} |
|
#define JV_SELF_DEFINED |
|
#endif /* __alpha__ */ |
|
#if defined(SLOW_PTHREAD_SELF) |
|
#include "sysdep/locks.h" |
|
typedef pthread_t _Jv_ThreadId_t; |
|
// E.g. on X86 Linux, pthread_self() is too slow for our purpose. |
// Instead we maintain a cache based on the current sp value. |
// This is similar to what's done for thread local allocation in the |
// GC, only far simpler. |
// This code should probably go away when Linux/X86 starts using a |
// segment register to hold the thread id. |
# define LOG_THREAD_SPACING 12 |
// If two thread pointer values are closer than |
// 1 << LOG_THREAD_SPACING, we assume they belong |
// to the same thread. |
# define SELF_CACHE_SIZE 1024 |
# define SC_INDEX(sp) (((unsigned long)(sp) >> 19) & (SELF_CACHE_SIZE-1)) |
// Mapping from sp value to cache index. |
// Note that this is not in any real sense a hash |
// function, since we need to be able to clear |
// all possibly matching slots on thread startup. |
// Thus all entries that might correspond to |
// a given thread are intentionally contiguous. |
// Works well with anything that allocates at least |
// 512KB stacks. |
# define SC_CLEAR_MIN (-16) // When starting a new thread, we clear |
# define SC_CLEAR_MAX 0 // all self cache entries between |
// SC_INDEX(sp)+SC_CLEAR_MIN and |
// SC_INDEX(sp)+SC_CLEAR_MAX to ensure |
// we never see stale values. The |
// current values assume a downward |
// growing stack of size <= 7.5 MB. |
# define BAD_HIGH_SP_VALUE ((size_t)(-1)) |
|
extern volatile |
struct self_cache_entry { |
size_t high_sp_bits; // sp value >> LOG_THREAD_SPACING |
pthread_t self; // Corresponding thread |
} _Jv_self_cache[]; |
|
void _Jv_Self_Cache_Init(); |
|
_Jv_ThreadId_t |
_Jv_ThreadSelf_out_of_line(volatile self_cache_entry *sce, |
size_t high_sp_bits); |
|
inline _Jv_ThreadId_t |
_Jv_ThreadSelf (void) |
{ |
int dummy; |
size_t sp = (size_t)(&dummy); |
unsigned h = SC_INDEX(sp); |
volatile self_cache_entry *sce = _Jv_self_cache + h; |
pthread_t candidate_self = sce -> self; // Read must precede following one. |
read_barrier(); |
if (sce -> high_sp_bits == sp >> LOG_THREAD_SPACING) |
{ |
// The sce -> self value we read must be valid. An intervening |
// cache replacement by another thread would have first replaced |
// high_sp_bits by something else, and it can't possibly change |
// back without our intervention. |
return candidate_self; |
} |
else |
return _Jv_ThreadSelf_out_of_line(sce, sp >> LOG_THREAD_SPACING); |
} |
|
#define JV_SELF_DEFINED |
|
#endif /* SLOW_PTHREAD_SELF */ |
|
#ifndef JV_SELF_DEFINED /* If all else fails, call pthread_self directly */ |
|
typedef pthread_t _Jv_ThreadId_t; |
|
inline _Jv_ThreadId_t |
_Jv_ThreadSelf (void) |
{ |
return pthread_self(); |
} |
|
#endif /* !JV_SELF_DEFINED */ |
|
#endif /* JV_HASH_SYNCHRONIZATION */ |
|
inline _Jv_Thread_t * |
_Jv_ThreadCurrentData (void) |
{ |
extern pthread_key_t _Jv_ThreadDataKey; |
return (_Jv_Thread_t *) pthread_getspecific (_Jv_ThreadDataKey); |
} |
|
inline void |
_Jv_ThreadYield (void) |
{ |
#ifdef HAVE_SCHED_YIELD |
sched_yield (); |
#endif /* HAVE_SCHED_YIELD */ |
} |
|
void _Jv_ThreadRegister (_Jv_Thread_t *data); |
void _Jv_ThreadUnRegister (); |
|
void _Jv_ThreadSetPriority (_Jv_Thread_t *data, jint prio); |
|
void _Jv_ThreadStart (java::lang::Thread *thread, _Jv_Thread_t *data, |
_Jv_ThreadStartFunc *meth); |
|
void _Jv_ThreadWait (void); |
|
void _Jv_ThreadInterrupt (_Jv_Thread_t *data); |
|
// park() / unpark() support |
|
struct ParkHelper |
{ |
volatile obj_addr_t permit; |
pthread_mutex_t mutex; |
pthread_cond_t cond; |
|
void init (); |
void deactivate (); |
void destroy (); |
void park (jboolean isAbsolute, jlong time); |
void unpark (); |
}; |
|
inline void |
ParkHelper::destroy () |
{ |
pthread_mutex_destroy (&mutex); |
pthread_cond_destroy (&cond); |
} |
|
#endif /* __JV_POSIX_THREADS__ */ |
/win32-threads.h
0,0 → 1,232
// -*- c++ -*- |
// win32-threads.h - Defines for using Win32 threads. |
|
/* Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2006 Free Software |
Foundation |
|
This file is part of libgcj. |
|
This software is copyrighted work licensed under the terms of the |
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for |
details. */ |
|
#ifndef __JV_WIN32_THREADS__ |
#define __JV_WIN32_THREADS__ |
|
#define WIN32_LEAN_AND_MEAN |
#include <windows.h> |
|
// |
// Typedefs. |
// |
|
typedef struct |
{ |
// ev[0] (signal) is a Win32 auto-reset event for _Jv_CondNotify |
// ev[1] (broadcast) is a Win32 manual-reset event for _Jv_CondNotifyAll |
HANDLE ev[2]; |
|
// Number of threads waiting on this condition variable |
int blocked_count; |
|
// Protects access to the blocked_count variable |
CRITICAL_SECTION count_mutex; |
|
} _Jv_ConditionVariable_t; |
|
typedef struct |
{ |
// The thread-id of the owner thread if any, 0 otherwise |
DWORD owner; |
|
// Track nested mutex acquisitions by the same thread |
int refcount; |
|
// The actual Windows construct used to implement this mutex |
CRITICAL_SECTION cs; |
|
} _Jv_Mutex_t; |
|
typedef struct _Jv_Thread_t |
{ |
int flags; // Flags are defined in implementation. |
HANDLE handle; // Actual handle to the thread |
|
// Protects access to the thread's interrupt_flag and |
// interrupt_event variables within this module. |
CRITICAL_SECTION interrupt_mutex; |
|
// A Win32 auto-reset event for thread interruption |
HANDLE interrupt_event; |
|
java::lang::Thread *thread_obj; |
} _Jv_Thread_t; |
|
typedef DWORD _Jv_ThreadId_t; |
|
inline _Jv_ThreadId_t |
_Jv_ThreadSelf (void) |
{ |
return GetCurrentThreadId(); |
} |
|
typedef void _Jv_ThreadStartFunc (java::lang::Thread *); |
|
// Type identifying a win32 thread. |
typedef HANDLE _Jv_ThreadDesc_t; |
|
inline _Jv_ThreadDesc_t |
_Jv_GetPlatformThreadID(_Jv_Thread_t *t) |
{ |
return t->handle; |
} |
|
// |
// Condition variables. |
// |
|
#define _Jv_HaveCondDestroy |
int _Jv_CondWait (_Jv_ConditionVariable_t *cv, _Jv_Mutex_t *mu, jlong millis, jint nanos); |
void _Jv_CondInit (_Jv_ConditionVariable_t *cv); |
void _Jv_CondDestroy (_Jv_ConditionVariable_t *cv); |
int _Jv_CondNotify (_Jv_ConditionVariable_t *cv, _Jv_Mutex_t *); |
int _Jv_CondNotifyAll (_Jv_ConditionVariable_t *cv, _Jv_Mutex_t *); |
|
// |
// Mutexes. |
// We use CRITICAL_SECTIONs instead of CreateMutex() for better performance |
// |
|
// Returns 0 if the mutex lock is held by the current thread, and 1 otherwise. |
inline int _Jv_MutexCheckMonitor (_Jv_Mutex_t *mu) |
{ |
return (mu->owner != GetCurrentThreadId ( )); |
} |
|
inline void _Jv_MutexInit (_Jv_Mutex_t *mu) |
{ |
mu->owner = 0UL; |
mu->refcount = 0; |
InitializeCriticalSection (&(mu->cs)); |
} |
|
#define _Jv_HaveMutexDestroy |
inline void _Jv_MutexDestroy (_Jv_Mutex_t *mu) |
{ |
mu->owner = 0UL; |
mu->refcount = 0; |
DeleteCriticalSection (&(mu->cs)); |
mu = NULL; |
} |
|
inline int _Jv_MutexUnlock (_Jv_Mutex_t *mu) |
{ |
if (mu->owner == GetCurrentThreadId ( )) |
{ |
mu->refcount--; |
if (mu->refcount == 0) |
mu->owner = 0UL; |
LeaveCriticalSection (&(mu->cs)); |
return 0; |
} |
else |
return 1; |
} |
|
inline int _Jv_MutexLock (_Jv_Mutex_t *mu) |
{ |
EnterCriticalSection (&(mu->cs)); |
mu->owner = GetCurrentThreadId ( ); |
mu->refcount++; |
return 0; |
} |
|
// |
// Thread creation and manipulation. |
// |
|
void _Jv_InitThreads (void); |
_Jv_Thread_t *_Jv_ThreadInitData (java::lang::Thread *thread); |
void _Jv_ThreadDestroyData (_Jv_Thread_t *data); |
|
inline java::lang::Thread* _Jv_ThreadCurrent (void) |
{ |
extern DWORD _Jv_ThreadKey; |
return (java::lang::Thread *) TlsGetValue(_Jv_ThreadKey); |
} |
|
inline _Jv_Thread_t *_Jv_ThreadCurrentData(void) |
{ |
extern DWORD _Jv_ThreadDataKey; |
return (_Jv_Thread_t *) TlsGetValue(_Jv_ThreadDataKey); |
} |
|
inline void _Jv_ThreadYield (void) |
{ |
Sleep (0); |
} |
|
void _Jv_ThreadRegister (_Jv_Thread_t *data); |
void _Jv_ThreadUnRegister (); |
|
void _Jv_ThreadSetPriority (_Jv_Thread_t *data, jint prio); |
void _Jv_ThreadStart (java::lang::Thread *thread, _Jv_Thread_t *data, |
_Jv_ThreadStartFunc *meth); |
void _Jv_ThreadWait (void); |
void _Jv_ThreadInterrupt (_Jv_Thread_t *data); |
|
// |
// Thread interruption support |
// |
|
// Gets the auto-reset event for the current thread which is |
// signalled by _Jv_ThreadInterrupt. The caller can wait on this |
// event in addition to other waitable objects. |
// |
// NOTE: After waiting on this event with WaitForMultipleObjects, |
// you should ALWAYS use the return value of WaitForMultipleObjects |
// to test whether this event was signalled and whether thread |
// interruption has occurred. You should do this instead of checking |
// the thread's interrupted_flag, because someone could have reset |
// this flag in the interval of time between the return of |
// WaitForMultipleObjects and the time you query interrupted_flag. |
// See java/lang/natWin32Process.cc (waitFor) for an example. |
HANDLE _Jv_Win32GetInterruptEvent (void); |
|
// park() / unpark() support |
|
struct ParkHelper |
{ |
// We use LONG instead of obj_addr_t to avoid pulling in locks.h, |
// which depends on size_t, ... |
volatile LONG permit; |
|
// The critical section is used for lazy initialization of our event |
CRITICAL_SECTION cs; |
HANDLE event; |
|
void init (); |
void deactivate (); |
void destroy (); |
void park (jboolean isAbsolute, jlong time); |
void unpark (); |
|
private: |
void init_event(); |
}; |
|
// Remove defines from <windows.h> that conflict with various things in libgcj code |
|
#undef TRUE |
#undef FALSE |
#undef MAX_PRIORITY |
#undef MIN_PRIORITY |
#undef min |
#undef max |
#undef interface |
#undef STRICT |
#undef VOID |
#undef TEXT |
#undef OUT |
|
#endif /* __JV_WIN32_THREADS__ */ |
/jvm.h
0,0 → 1,804
// jvm.h - Header file for private implementation information. -*- c++ -*- |
|
/* Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation |
|
This file is part of libgcj. |
|
This software is copyrighted work licensed under the terms of the |
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for |
details. */ |
|
#ifndef __JAVA_JVM_H__ |
#define __JAVA_JVM_H__ |
|
// Define this before including jni.h. |
// jni.h is included by jvmpi.h, which might be included. We define |
// this unconditionally because it is convenient and it lets other |
// files include jni.h without difficulty. |
#define __GCJ_JNI_IMPL__ |
|
#include <gcj/javaprims.h> |
|
#include <java-assert.h> |
#include <java-threads.h> |
// Must include java-gc.h before Object.h for the implementation. |
#include <java-gc.h> |
|
#include <java/lang/Object.h> |
|
// Include cni.h before field.h to enable all definitions. FIXME. |
#include <gcj/cni.h> |
#include <gcj/field.h> |
|
#include <java/lang/Thread.h> |
|
#include <sysdep/locks.h> |
|
/* Macro for possible unused arguments. */ |
#define MAYBE_UNUSED __attribute__((__unused__)) |
|
/* Structure of the virtual table. */ |
struct _Jv_VTable |
{ |
#ifdef __ia64__ |
typedef struct { void *pc, *gp; } vtable_elt; |
#else |
typedef void *vtable_elt; |
#endif |
jclass clas; |
void *gc_descr; |
|
// This must be last, as derived classes "extend" this by |
// adding new data members. |
vtable_elt method[1]; |
|
#ifdef __ia64__ |
void *get_method(int i) { return &method[i]; } |
void set_method(int i, void *fptr) { method[i] = *(vtable_elt *)fptr; } |
void *get_finalizer() |
{ |
// We know that get_finalizer is only used for checking whether |
// this object needs to have a finalizer registered. So it is |
// safe to simply return just the PC component of the vtable |
// slot. |
return ((vtable_elt *)(get_method(0)))->pc; |
} |
#else |
void *get_method(int i) { return method[i]; } |
void set_method(int i, void *fptr) { method[i] = fptr; } |
void *get_finalizer() { return get_method(0); } |
#endif |
|
static size_t vtable_elt_size() { return sizeof(vtable_elt); } |
|
// Given a method index, return byte offset from the vtable pointer. |
static jint idx_to_offset (int index) |
{ |
return (2 * sizeof (void *)) + (index * vtable_elt_size ()); |
} |
|
static _Jv_VTable *new_vtable (int count); |
}; |
|
union _Jv_word |
{ |
jobject o; |
jint i; // Also stores smaller integral types. |
jfloat f; |
jint ia[1]; // Half of _Jv_word2. |
void* p; |
|
#if SIZEOF_VOID_P == 8 |
// We can safely put a long or a double in here without increasing |
// the size of _Jv_Word; we take advantage of this in the interpreter. |
jlong l; |
jdouble d; |
#endif |
|
jclass clazz; |
jstring string; |
struct _Jv_Field *field; |
struct _Jv_Utf8Const *utf8; |
struct _Jv_ResolvedMethod *rmethod; |
}; |
|
union _Jv_word2 |
{ |
jint ia[2]; |
jlong l; |
jdouble d; |
}; |
|
union _Jv_value |
{ |
jbyte byte_value; |
jshort short_value; |
jchar char_value; |
jint int_value; |
jlong long_value; |
jfloat float_value; |
jdouble double_value; |
jobject object_value; |
}; |
|
/* Extract a character from a Java-style Utf8 string. |
* PTR points to the current character. |
* LIMIT points to the end of the Utf8 string. |
* PTR is incremented to point after the character thta gets returns. |
* On an error, -1 is returned. */ |
#define UTF8_GET(PTR, LIMIT) \ |
((PTR) >= (LIMIT) ? -1 \ |
: *(PTR) < 128 ? *(PTR)++ \ |
: (*(PTR)&0xE0) == 0xC0 && ((PTR)+=2)<=(LIMIT) && ((PTR)[-1]&0xC0) == 0x80 \ |
? (((PTR)[-2] & 0x1F) << 6) + ((PTR)[-1] & 0x3F) \ |
: (*(PTR) & 0xF0) == 0xE0 && ((PTR) += 3) <= (LIMIT) \ |
&& ((PTR)[-2] & 0xC0) == 0x80 && ((PTR)[-1] & 0xC0) == 0x80 \ |
? (((PTR)[-3]&0x0F) << 12) + (((PTR)[-2]&0x3F) << 6) + ((PTR)[-1]&0x3F) \ |
: ((PTR)++, -1)) |
|
extern int _Jv_strLengthUtf8(const char* str, int len); |
|
typedef struct _Jv_Utf8Const Utf8Const; |
_Jv_Utf8Const *_Jv_makeUtf8Const (const char *s, int len); |
_Jv_Utf8Const *_Jv_makeUtf8Const (jstring string); |
static inline _Jv_Utf8Const *_Jv_makeUtf8Const (const char *s) |
{ |
return _Jv_makeUtf8Const (s, strlen (s)); |
} |
extern jboolean _Jv_equalUtf8Consts (const _Jv_Utf8Const *, const _Jv_Utf8Const *); |
extern jboolean _Jv_equal (_Jv_Utf8Const *, jstring, jint); |
extern jboolean _Jv_equaln (_Jv_Utf8Const *, jstring, jint); |
|
/* Helper class which converts a jstring to a temporary char*. |
Uses the supplied buffer, if non-null. Otherwise, allocates |
the buffer on the heap. Use the JV_TEMP_UTF_STRING macro, |
which follows, to automatically allocate a stack buffer if |
the string is small enough. */ |
class _Jv_TempUTFString |
{ |
public: |
_Jv_TempUTFString(jstring jstr, char* buf=0); |
~_Jv_TempUTFString(); |
|
// Accessors |
operator const char*() const |
{ |
return buf_; |
} |
const char* buf() const |
{ |
return buf_; |
} |
char* buf() |
{ |
return buf_; |
} |
|
private: |
char* buf_; |
bool heapAllocated_; |
}; |
|
inline _Jv_TempUTFString::_Jv_TempUTFString (jstring jstr, char* buf) |
: buf_(0), heapAllocated_(false) |
{ |
if (!jstr) return; |
jsize len = JvGetStringUTFLength (jstr); |
if (buf) |
buf_ = buf; |
else |
{ |
buf_ = (char*) _Jv_Malloc (len+1); |
heapAllocated_ = true; |
} |
|
JvGetStringUTFRegion (jstr, 0, jstr->length(), buf_); |
buf_[len] = '\0'; |
} |
|
inline _Jv_TempUTFString::~_Jv_TempUTFString () |
{ |
if (heapAllocated_) |
_Jv_Free (buf_); |
} |
|
/* Macro which uses _Jv_TempUTFString. Allocates a stack-based |
buffer if the string and its null terminator are <= 256 |
characters in length. Otherwise, a heap-based buffer is |
used. The parameters to this macro are the variable name |
which is an instance of _Jv_TempUTFString (above) and a |
jstring. |
|
Sample Usage: |
|
jstring jstr = getAJString(); |
JV_TEMP_UTF_STRING(utfstr, jstr); |
printf("The string is: %s\n", utfstr.buf()); |
|
*/ |
#define JV_TEMP_UTF_STRING(utfstr, jstr) \ |
jstring utfstr##thejstr = (jstr); \ |
jsize utfstr##_len = utfstr##thejstr ? JvGetStringUTFLength (utfstr##thejstr) + 1 : 0; \ |
char utfstr##_buf[utfstr##_len <= 256 ? utfstr##_len : 0]; \ |
_Jv_TempUTFString utfstr(utfstr##thejstr, sizeof(utfstr##_buf)==0 ? 0 : utfstr##_buf) |
|
namespace gcj |
{ |
/* Some constants used during lookup of special class methods. */ |
extern _Jv_Utf8Const *void_signature; /* "()V" */ |
extern _Jv_Utf8Const *clinit_name; /* "<clinit>" */ |
extern _Jv_Utf8Const *init_name; /* "<init>" */ |
extern _Jv_Utf8Const *finit_name; /* "finit$", */ |
|
/* Set to true by _Jv_CreateJavaVM. */ |
extern bool runtimeInitialized; |
|
/* Print out class names as they are initialized. */ |
extern bool verbose_class_flag; |
|
/* When true, enable the bytecode verifier and BC-ABI verification. */ |
extern bool verifyClasses; |
|
/* Thread stack size specified by the -Xss runtime argument. */ |
extern size_t stack_size; |
|
/* The start time */ |
extern jlong startTime; |
|
/* The VM arguments */ |
extern JArray<jstring>* vmArgs; |
|
// Currently loaded classes |
extern jint loadedClasses; |
|
// Unloaded classes |
extern jlong unloadedClasses; |
} |
|
// This class handles all aspects of class preparation and linking. |
class _Jv_Linker |
{ |
private: |
typedef unsigned int uaddr __attribute__ ((mode (pointer))); |
|
static _Jv_Field *find_field_helper(jclass, _Jv_Utf8Const *, _Jv_Utf8Const *, |
jclass, jclass *); |
static _Jv_Field *find_field(jclass, jclass, jclass *, _Jv_Utf8Const *, |
_Jv_Utf8Const *); |
static void check_loading_constraints (_Jv_Method *, jclass, jclass); |
static void prepare_constant_time_tables(jclass); |
static jshort get_interfaces(jclass, _Jv_ifaces *); |
static void link_symbol_table(jclass); |
static void link_exception_table(jclass); |
static void layout_interface_methods(jclass); |
static void set_vtable_entries(jclass, _Jv_VTable *); |
static void make_vtable(jclass); |
static void ensure_fields_laid_out(jclass); |
static void ensure_class_linked(jclass); |
static void ensure_supers_installed(jclass); |
static void add_miranda_methods(jclass, jclass); |
static void ensure_method_table_complete(jclass); |
static void verify_class(jclass); |
static jshort find_iindex(jclass *, jshort *, jshort); |
static jshort indexof(void *, void **, jshort); |
static int get_alignment_from_class(jclass); |
static void generate_itable(jclass, _Jv_ifaces *, jshort *); |
static jshort append_partial_itable(jclass, jclass, void **, jshort); |
static _Jv_Method *search_method_in_superclasses (jclass cls, jclass klass, |
_Jv_Utf8Const *method_name, |
_Jv_Utf8Const *method_signature, |
jclass *found_class, |
bool check_perms = true); |
static void *create_error_method(_Jv_Utf8Const *, jclass); |
|
/* The least significant bit of the signature pointer in a symbol |
table is set to 1 by the compiler if the reference is "special", |
i.e. if it is an access to a private field or method. Extract |
that bit, clearing it in the address and setting the LSB of |
SPECIAL accordingly. */ |
static void maybe_adjust_signature (_Jv_Utf8Const *&s, uaddr &special) |
{ |
union { |
_Jv_Utf8Const *signature; |
uaddr signature_bits; |
}; |
signature = s; |
special = signature_bits & 1; |
signature_bits -= special; |
s = signature; |
} |
|
static _Jv_Mutex_t resolve_mutex; |
static void init (void) __attribute__((constructor)); |
|
public: |
|
static bool has_field_p (jclass, _Jv_Utf8Const *); |
static void print_class_loaded (jclass); |
static void resolve_class_ref (jclass, jclass *); |
static void wait_for_state(jclass, int); |
static _Jv_Method *resolve_method_entry (jclass, jclass &, |
int, int, |
bool, bool); |
static _Jv_word resolve_pool_entry (jclass, int, bool =false); |
static void resolve_field (_Jv_Field *, java::lang::ClassLoader *); |
static void verify_type_assertions (jclass); |
static _Jv_Method *search_method_in_class (jclass, jclass, |
_Jv_Utf8Const *, |
_Jv_Utf8Const *, |
bool check_perms = true); |
static void layout_vtable_methods(jclass); |
|
static jbyte read_cpool_entry (_Jv_word *data, |
const _Jv_Constants *const pool, |
int index) |
{ |
_Jv_MutexLock (&resolve_mutex); |
jbyte tags = pool->tags[index]; |
*data = pool->data[index]; |
_Jv_MutexUnlock (&resolve_mutex); |
return tags; |
} |
|
static void write_cpool_entry (_Jv_word data, jbyte tags, |
_Jv_Constants *pool, |
int index) |
{ |
_Jv_MutexLock (&resolve_mutex); |
pool->data[index] = data; |
pool->tags[index] = tags; |
_Jv_MutexUnlock (&resolve_mutex); |
} |
}; |
|
/* Type of pointer used as finalizer. */ |
typedef void _Jv_FinalizerFunc (jobject); |
|
/* Allocate space for a new Java object. */ |
void *_Jv_AllocObj (jsize size, jclass cl) __attribute__((__malloc__)); |
/* Allocate space for a potentially uninitialized pointer-free object. |
Interesting only with JV_HASH_SYNCHRONIZATION. */ |
void *_Jv_AllocPtrFreeObj (jsize size, jclass cl) __attribute__((__malloc__)); |
/* Allocate space for an array of Java objects. */ |
void *_Jv_AllocArray (jsize size, jclass cl) __attribute__((__malloc__)); |
/* Allocate space that is known to be pointer-free. */ |
void *_Jv_AllocBytes (jsize size) __attribute__((__malloc__)); |
/* Allocate space for a new non-Java object, which does not have the usual |
Java object header but may contain pointers to other GC'ed objects. */ |
void *_Jv_AllocRawObj (jsize size) __attribute__((__malloc__)); |
/* Allocate a double-indirect pointer to a _Jv_ClosureList such that |
the _Jv_ClosureList gets automatically finalized when it is no |
longer reachable, not even by other finalizable objects. */ |
_Jv_ClosureList **_Jv_ClosureListFinalizer (void) __attribute__((__malloc__)); |
/* Explicitly throw an out-of-memory exception. */ |
void _Jv_ThrowNoMemory() __attribute__((__noreturn__)); |
/* Allocate an object with a single pointer. The first word is reserved |
for the GC, and the second word is the traced pointer. */ |
void *_Jv_AllocTraceOne (jsize size /* incl. reserved slot */); |
/* Ditto, but for two traced pointers. */ |
void *_Jv_AllocTraceTwo (jsize size /* incl. reserved slot */); |
/* Initialize the GC. */ |
void _Jv_InitGC (void); |
/* Register a finalizer. */ |
void _Jv_RegisterFinalizer (void *object, _Jv_FinalizerFunc *method); |
/* Compute the GC descriptor for a class */ |
void * _Jv_BuildGCDescr(jclass); |
|
/* Allocate some unscanned, unmoveable memory. Return NULL if out of |
memory. */ |
void *_Jv_MallocUnchecked (jsize size) __attribute__((__malloc__)); |
|
/* Initialize finalizers. The argument is a function to be called |
when a finalizer is ready to be run. */ |
void _Jv_GCInitializeFinalizers (void (*notifier) (void)); |
/* Run finalizers for objects ready to be finalized.. */ |
void _Jv_RunFinalizers (void); |
/* Run all finalizers. Should be called only before exit. */ |
void _Jv_RunAllFinalizers (void); |
/* Perform a GC. */ |
void _Jv_RunGC (void); |
/* Disable and enable GC. */ |
void _Jv_DisableGC (void); |
void _Jv_EnableGC (void); |
/* Register a disappearing link. This is a field F which should be |
cleared when *F is found to be inaccessible. This is used in the |
implementation of java.lang.ref.Reference. */ |
void _Jv_GCRegisterDisappearingLink (jobject *objp); |
/* Return true if OBJECT should be reclaimed. This is used to |
implement soft references. */ |
jboolean _Jv_GCCanReclaimSoftReference (jobject obj); |
|
/* Register a finalizer for a String object. This is only used by |
the intern() implementation. */ |
void _Jv_RegisterStringFinalizer (jobject str); |
/* This is called to actually finalize a possibly-intern()d String. */ |
void _Jv_FinalizeString (jobject str); |
|
/* Return approximation of total size of heap. */ |
long _Jv_GCTotalMemory (void); |
/* Return approximation of total free memory. */ |
long _Jv_GCFreeMemory (void); |
|
/* Set initial heap size. If SIZE==0, ignore. Should be run before |
_Jv_InitGC. Not required to have any actual effect. */ |
void _Jv_GCSetInitialHeapSize (size_t size); |
|
/* Set maximum heap size. If SIZE==0, unbounded. Should be run |
before _Jv_InitGC. Not required to have any actual effect. */ |
void _Jv_GCSetMaximumHeapSize (size_t size); |
|
/* External interface to setting the heap size. Parses ARG (a number |
which can optionally have "k" or "m" appended and calls |
_Jv_GCSetInitialHeapSize. */ |
void _Jv_SetInitialHeapSize (const char *arg); |
|
/* External interface to setting the maximum heap size. Parses ARG (a |
number which can optionally have "k" or "m" appended and calls |
_Jv_GCSetMaximumHeapSize. */ |
void _Jv_SetMaximumHeapSize (const char *arg); |
|
/* External interface for setting the GC_free_space_divisor. Calls |
GC_set_free_space_divisor and returns the old value. */ |
int _Jv_SetGCFreeSpaceDivisor (int div); |
|
/* Free the method cache, if one was allocated. This is only called |
during thread deregistration. */ |
void _Jv_FreeMethodCache (); |
|
/* Set the stack size for threads. Parses ARG, a number which can |
optionally have "k" or "m" appended. */ |
void _Jv_SetStackSize (const char *arg); |
|
extern "C" void JvRunMain (jclass klass, int argc, const char **argv); |
extern "C" void JvRunMainName (const char *name, int argc, const char **argv); |
|
void _Jv_RunMain (jclass klass, const char *name, int argc, const char **argv, |
bool is_jar); |
|
void _Jv_RunMain (struct _Jv_VMInitArgs *vm_args, jclass klass, |
const char *name, int argc, const char **argv, bool is_jar); |
|
// Delayed until after _Jv_AllocRawObj is declared. |
inline _Jv_VTable * |
_Jv_VTable::new_vtable (int count) |
{ |
size_t size = sizeof(_Jv_VTable) + (count - 1) * vtable_elt_size (); |
return (_Jv_VTable *) _Jv_AllocRawObj (size); |
} |
|
// Determine if METH gets an entry in a VTable. |
static inline jboolean _Jv_isVirtualMethod (_Jv_Method *meth) |
{ |
using namespace java::lang::reflect; |
return (((meth->accflags & (Modifier::STATIC | Modifier::PRIVATE)) == 0) |
&& meth->name->first() != '<'); |
} |
|
// This function is used to determine the hash code of an object. |
inline jint |
_Jv_HashCode (jobject obj) |
{ |
// This was chosen to yield relatively well distributed results on |
// both 32- and 64-bit architectures. Note 0x7fffffff is prime. |
// FIXME: we assume sizeof(long) == sizeof(void *). |
return (jint) ((unsigned long) obj % 0x7fffffff); |
} |
|
// Return a raw pointer to the elements of an array given the array |
// and its element type. You might think we could just pick a single |
// array type and use elements() on it, but we can't because we must |
// account for alignment of the element type. When ARRAY is null, we |
// obtain the number of bytes taken by the base part of the array. |
inline char * |
_Jv_GetArrayElementFromElementType (jobject array, |
jclass element_type) |
{ |
char *elts; |
if (element_type == JvPrimClass (byte)) |
elts = (char *) elements ((jbyteArray) array); |
else if (element_type == JvPrimClass (short)) |
elts = (char *) elements ((jshortArray) array); |
else if (element_type == JvPrimClass (int)) |
elts = (char *) elements ((jintArray) array); |
else if (element_type == JvPrimClass (long)) |
elts = (char *) elements ((jlongArray) array); |
else if (element_type == JvPrimClass (boolean)) |
elts = (char *) elements ((jbooleanArray) array); |
else if (element_type == JvPrimClass (char)) |
elts = (char *) elements ((jcharArray) array); |
else if (element_type == JvPrimClass (float)) |
elts = (char *) elements ((jfloatArray) array); |
else if (element_type == JvPrimClass (double)) |
elts = (char *) elements ((jdoubleArray) array); |
else |
elts = (char *) elements ((jobjectArray) array); |
return elts; |
} |
|
extern "C" void _Jv_ThrowBadArrayIndex (jint bad_index) |
__attribute__((noreturn)); |
extern "C" void _Jv_ThrowNullPointerException (void) |
__attribute__((noreturn)); |
extern "C" void _Jv_ThrowNoSuchMethodError (void) |
__attribute__((noreturn)); |
extern "C" void _Jv_ThrowNoSuchFieldError (int) |
__attribute__((noreturn)); |
extern "C" jobject _Jv_NewArray (jint type, jint size) |
__attribute__((__malloc__)); |
extern "C" jobject _Jv_NewMultiArray (jclass klass, jint dims, ...) |
__attribute__((__malloc__)); |
extern "C" void *_Jv_CheckCast (jclass klass, jobject obj); |
extern "C" void *_Jv_LookupInterfaceMethod (jclass klass, Utf8Const *name, |
Utf8Const *signature); |
extern "C" void *_Jv_LookupInterfaceMethodIdx (jclass klass, jclass iface, |
int meth_idx); |
extern "C" void _Jv_CheckArrayStore (jobject array, jobject obj); |
extern "C" void _Jv_RegisterClass (jclass klass); |
extern "C" void _Jv_RegisterClasses (const jclass *classes); |
extern "C" void _Jv_RegisterClasses_Counted (const jclass *classes, |
size_t count); |
extern "C" void _Jv_RegisterResource (void *vptr); |
extern void _Jv_UnregisterClass (_Jv_Utf8Const*, java::lang::ClassLoader*); |
|
extern "C" jobject _Jv_UnwrapJNIweakReference (jobject); |
|
extern jclass _Jv_FindClass (_Jv_Utf8Const *name, |
java::lang::ClassLoader *loader); |
|
extern jclass _Jv_FindClassNoException (_Jv_Utf8Const *name, |
java::lang::ClassLoader *loader); |
|
extern jclass _Jv_FindClassFromSignature (char *, |
java::lang::ClassLoader *loader, |
char ** = NULL); |
|
extern jclass _Jv_FindClassFromSignatureNoException (char *, |
java::lang::ClassLoader *loader, |
char ** = NULL); |
|
extern void _Jv_GetTypesFromSignature (jmethodID method, |
jclass declaringClass, |
JArray<jclass> **arg_types_out, |
jclass *return_type_out); |
|
extern jboolean _Jv_CheckAccess (jclass self_klass, jclass other_klass, |
jint flags); |
|
extern jobject _Jv_CallAnyMethodA (jobject obj, jclass return_type, |
jmethodID meth, jboolean is_constructor, |
JArray<jclass> *parameter_types, |
jobjectArray args, |
jclass iface = NULL); |
|
union jvalue; |
extern void _Jv_CallAnyMethodA (jobject obj, |
jclass return_type, |
jmethodID meth, |
jboolean is_constructor, |
jboolean is_virtual_call, |
JArray<jclass> *parameter_types, |
const jvalue *args, |
jvalue *result, |
jboolean is_jni_call = true, |
jclass iface = NULL); |
|
extern void _Jv_CheckOrCreateLoadingConstraint (jclass, |
java::lang::ClassLoader *); |
|
extern jobject _Jv_NewMultiArray (jclass, jint ndims, jint* dims) |
__attribute__((__malloc__)); |
|
extern "C" void _Jv_ThrowAbstractMethodError () __attribute__((__noreturn__)); |
|
/* Checked divide subroutines. */ |
extern "C" |
{ |
jint _Jv_divI (jint, jint); |
jint _Jv_remI (jint, jint); |
jlong _Jv_divJ (jlong, jlong); |
jlong _Jv_remJ (jlong, jlong); |
} |
|
/* Get the number of arguments (cf. argc) or 0 if our argument |
list was never initialized. */ |
extern int _Jv_GetNbArgs (void); |
|
/* Get the specified argument (cf. argv[index]) or "" if either |
our argument list was never initialized or the specified index |
is out of bounds. */ |
extern const char * _Jv_GetSafeArg (int index); |
|
/* Sets our argument list. Can be used by programs with non-standard |
entry points. */ |
extern void _Jv_SetArgs (int argc, const char **argv); |
|
/* Get the name of the running executable. */ |
extern const char *_Jv_ThisExecutable (void); |
|
/* Return a pointer to a symbol in executable or loaded library. */ |
void *_Jv_FindSymbolInExecutable (const char *); |
|
/* Initialize JNI. */ |
extern void _Jv_JNI_Init (void); |
|
/* Get or set the per-thread JNIEnv used by the invocation API. */ |
_Jv_JNIEnv *_Jv_GetCurrentJNIEnv (); |
void _Jv_SetCurrentJNIEnv (_Jv_JNIEnv *); |
|
/* Free a JNIEnv. */ |
void _Jv_FreeJNIEnv (_Jv_JNIEnv *); |
|
extern "C" void _Jv_JNI_PopSystemFrame (_Jv_JNIEnv *); |
_Jv_JNIEnv *_Jv_GetJNIEnvNewFrameWithLoader (::java::lang::ClassLoader *); |
|
struct _Jv_JavaVM; |
_Jv_JavaVM *_Jv_GetJavaVM (); |
|
/* Get a JVMTI environment */ |
struct _Jv_JVMTIEnv; |
_Jv_JVMTIEnv *_Jv_GetJVMTIEnv (void); |
|
/* Initialize JVMTI */ |
extern void _Jv_JVMTI_Init (void); |
|
// Some verification functions from defineclass.cc. |
bool _Jv_VerifyFieldSignature (_Jv_Utf8Const*sig); |
bool _Jv_VerifyMethodSignature (_Jv_Utf8Const*sig); |
bool _Jv_VerifyClassName (unsigned char* ptr, _Jv_ushort length); |
bool _Jv_VerifyClassName (_Jv_Utf8Const *name); |
bool _Jv_VerifyIdentifier (_Jv_Utf8Const *); |
bool _Jv_ClassNameSamePackage (_Jv_Utf8Const *name1, _Jv_Utf8Const *name2); |
|
struct _Jv_core_chain |
{ |
int name_length; |
const char *name; |
int data_length; |
const void *data; |
|
struct _Jv_core_chain *next; |
}; |
|
// This is called when new core data is loaded. |
extern void (*_Jv_RegisterCoreHook) (_Jv_core_chain *); |
|
_Jv_core_chain *_Jv_FindCore (_Jv_core_chain *node, jstring name); |
void _Jv_FreeCoreChain (_Jv_core_chain *chain); |
|
#ifdef ENABLE_JVMPI |
|
#include "jvmpi.h" |
|
extern void (*_Jv_JVMPI_Notify_OBJECT_ALLOC) (JVMPI_Event *event); |
extern void (*_Jv_JVMPI_Notify_THREAD_START) (JVMPI_Event *event); |
extern void (*_Jv_JVMPI_Notify_THREAD_END) (JVMPI_Event *event); |
#endif |
|
/* FIXME: this should really be defined in some more generic place */ |
#define ROUND(V, A) (((((unsigned) (V))-1) | ((A)-1))+1) |
|
extern void _Jv_RegisterBootstrapPackages (); |
|
#define FLAG_BINARYCOMPAT_ABI (1<<31) /* Class is built with the BC-ABI. */ |
|
#define FLAG_BOOTSTRAP_LOADER (1<<30) /* Used when defining a class that |
should be loaded by the bootstrap |
loader. */ |
|
// These are used to find ABI versions we recognize. |
#define GCJ_CXX_ABI_VERSION (__GNUC__ * 100000 + __GNUC_MINOR__ * 1000) |
|
// This is the old-style BC version ID used by GCJ 4.0.0. |
#define OLD_GCJ_40_BC_ABI_VERSION (4 * 10000 + 0 * 10 + 5) |
|
// New style version IDs used by GCJ 4.0.1 and later. |
#define GCJ_40_BC_ABI_VERSION (4 * 100000 + 0 * 1000) |
|
void _Jv_CheckABIVersion (unsigned long value); |
|
|
inline bool |
_Jv_ClassForBootstrapLoader (unsigned long value) |
{ |
return (value & FLAG_BOOTSTRAP_LOADER); |
} |
|
// It makes the source cleaner if we simply always define this |
// function. If the interpreter is not built, it will never return |
// 'true'. |
extern inline jboolean |
_Jv_IsInterpretedClass (jclass c) |
{ |
return (c->accflags & java::lang::reflect::Modifier::INTERPRETED) != 0; |
} |
|
// Return true if the class was compiled with the BC ABI. |
extern inline jboolean |
_Jv_IsBinaryCompatibilityABI (jclass c) |
{ |
// There isn't really a better test for the ABI type at this point, |
// that will work once the class has been registered. |
return c->otable_syms || c->atable_syms || c->itable_syms; |
} |
|
// Returns whether the given class does not really exists (ie. we have no |
// bytecode) but still allows us to do some very conservative actions. |
// E.g. throwing a NoClassDefFoundError with the name of the missing |
// class. |
extern inline jboolean |
_Jv_IsPhantomClass (jclass c) |
{ |
return c->state == JV_STATE_PHANTOM; |
} |
|
// A helper function defined in prims.cc. |
char* _Jv_PrependVersionedLibdir (char* libpath); |
|
|
// An enum for use with JvSetThreadState. We use a C++ enum rather |
// than the Java enum to avoid problems with class initialization |
// during VM bootstrap. |
typedef enum |
{ |
JV_BLOCKED, |
JV_NEW, |
JV_RUNNABLE, |
JV_TERMINATED, |
JV_TIMED_WAITING, |
JV_WAITING |
} JvThreadState; |
|
// Temporarily set the thread's state. |
class JvSetThreadState |
{ |
private: |
::java::lang::Thread *thread; |
jint saved; |
|
public: |
|
// Note that 'cthread' could be NULL -- during VM startup there may |
// not be a Thread available. |
JvSetThreadState(::java::lang::Thread *cthread, JvThreadState nstate) |
: thread (cthread), |
saved (cthread ? cthread->state : (jint)JV_NEW) |
{ |
if (thread) |
thread->state = nstate; |
} |
|
~JvSetThreadState() |
{ |
if (thread) |
thread->state = saved; |
} |
}; |
|
// This structure is used to represent all the data the native side |
// needs. An object of this type is assigned to the `data' member of |
// the Thread class. |
struct natThread |
{ |
// A thread is either alive, dead, or being sent a signal; if it is |
// being sent a signal, it is also alive. Thus, if you want to know |
// if a thread is alive, it is sufficient to test alive_status != |
// THREAD_DEAD. |
volatile obj_addr_t alive_flag; |
|
// These are used to interrupt sleep and join calls. We can share a |
// condition variable here since it only ever gets notified when the thread |
// exits. |
_Jv_Mutex_t join_mutex; |
_Jv_ConditionVariable_t join_cond; |
|
// These are used by Unsafe.park() and Unsafe.unpark(). |
ParkHelper park_helper; |
|
// This is private data for the thread system layer. |
_Jv_Thread_t *thread; |
|
// Each thread has its own JNI object. |
_Jv_JNIEnv *jni_env; |
}; |
|
#endif /* __JAVA_JVM_H__ */ |
/darwin-signal.h
0,0 → 1,51
/* darwin-signal.h - Catch runtime signals and turn them into exceptions, |
on a Darwin system. */ |
|
/* Copyright (C) 2004 Free Software Foundation |
|
This file is part of libgcj. |
|
This software is copyrighted work licensed under the terms of the |
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for |
details. */ |
|
/* This file is really more of a specification. The rest of the system |
should be arranged so that this Just Works. */ |
|
#ifndef JAVA_SIGNAL_H |
# define JAVA_SIGNAL_H 1 |
|
#include <sys/types.h> |
#include <stdio.h> |
#include <signal.h> |
|
typedef void (* SIG_PF)(int); |
|
# define HANDLE_SEGV 1 |
# undef HANDLE_FPE |
|
# define SIGNAL_HANDLER(_name) \ |
static void _name (int _dummy __attribute__ ((unused))) |
|
# define MAKE_THROW_FRAME(_exception) |
|
# define INIT_SEGV \ |
do { \ |
struct sigaction sa; \ |
sa.sa_handler = catch_segv; \ |
sigemptyset (&sa.sa_mask); \ |
sa.sa_flags = SA_NODEFER; \ |
sigaction (SIGBUS, &sa, NULL); \ |
sigaction (SIGSEGV, &sa, NULL); \ |
} while (0) |
|
# define INIT_FPE \ |
do { \ |
struct sigaction sa; \ |
sa.sa_handler = catch_fpe; \ |
sigemptyset (&sa.sa_mask); \ |
sa.sa_flags = SA_NODEFER; \ |
sigaction (SIGFPE, &sa, NULL); \ |
} while (0) |
|
#endif /* JAVA_SIGNAL_H */ |
/default-signal.h
0,0 → 1,51
// default-signal.h - Catch runtime signals and turn them into exceptions. |
|
/* Copyright (C) 1998, 1999, 2000 Free Software Foundation |
|
This file is part of libgcj. |
|
This software is copyrighted work licensed under the terms of the |
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for |
details. */ |
|
#ifndef JAVA_SIGNAL_H |
#define JAVA_SIGNAL_H 1 |
|
#ifdef SJLJ_EXCEPTIONS |
|
#define HANDLE_SEGV 1 |
#define HANDLE_FPE 1 |
|
#include <signal.h> |
|
#define SIGNAL_HANDLER(_name) \ |
static void _name (int _dummy __attribute__ ((__unused__))) |
|
#define INIT_SEGV \ |
do \ |
{ \ |
signal (SIGSEGV, catch_segv); \ |
} \ |
while (0) |
|
#define INIT_FPE \ |
do \ |
{ \ |
signal (SIGFPE, catch_fpe); \ |
} \ |
while (0) |
|
#define MAKE_THROW_FRAME(_exception) do {} while (0) |
|
#else /* SJLJ_EXCEPTIONS */ |
|
#undef HANDLE_SEGV |
#undef HANDLE_FPE |
|
#define INIT_SEGV do {} while (0) |
#define INIT_FPE do {} while (0) |
|
#endif /* SJLJ_EXCEPTIONS */ |
|
#endif /* JAVA_SIGNAL_H */ |
|
/no-gc.h
0,0 → 1,23
// -*- c++ -*- |
// no-gc.h - Defines for no garbage collector. |
|
/* Copyright (C) 1998, 1999, 2006, 2007 Free Software Foundation |
|
This file is part of libgcj. |
|
This software is copyrighted work licensed under the terms of the |
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for |
details. */ |
|
#ifndef __JV_NO_GC__ |
#define __JV_NO_GC__ |
|
// Suspend the given thread. This includes suspending the calling thread. |
extern "C" void _Jv_SuspendThread (_Jv_Thread_t *); |
|
// Resume a suspended thread. |
extern "C" void _Jv_ResumeThread (_Jv_Thread_t *); |
|
// Is the given thread suspended? |
extern "C" int _Jv_IsThreadSuspended (_Jv_Thread_t *); |
#endif /* __JV_NO_GC__ */ |
/execution.h
0,0 → 1,276
// execution.h - Execution engines. -*- c++ -*- |
|
/* Copyright (C) 2004, 2006, 2007 Free Software Foundation |
|
This file is part of libgcj. |
|
This software is copyrighted work licensed under the terms of the |
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for |
details. */ |
|
#ifndef __JAVA_EXECUTION_H__ |
#define __JAVA_EXECUTION_H__ |
|
// This represents one execution engine. Note that we use function |
// pointers and not virtual methods to avoid calls to |
// __cxa_call_unexpected and the like. |
struct _Jv_ExecutionEngine |
{ |
public: |
|
void (*unregister) (jclass); |
// FIXME: probably should handle this elsewhere, see how |
// interpreter does it. |
bool (*need_resolve_string_fields) (); |
void (*verify) (jclass); |
void (*allocate_static_fields) (jclass, int, int); |
void (*allocate_field_initializers) (jclass); |
void (*create_ncode) (jclass); |
_Jv_ResolvedMethod *(*resolve_method) (_Jv_Method *, jclass, |
jboolean); |
void (*post_miranda_hook) (jclass); |
_Jv_ClosureList **(*get_closure_list) (jclass); |
}; |
|
// This handles gcj-compiled code except that compiled with |
// -findirect-classes. |
struct _Jv_CompiledEngine : public _Jv_ExecutionEngine |
{ |
public: |
|
static void do_unregister (jclass) |
{ |
} |
|
static bool do_need_resolve_string_fields () |
{ |
return true; |
} |
|
static void do_verify (jclass klass) |
{ |
_Jv_Linker::verify_type_assertions (klass); |
} |
|
static _Jv_ResolvedMethod *do_resolve_method (_Jv_Method *, jclass, |
jboolean) |
{ |
return NULL; |
} |
|
static void do_allocate_static_fields (jclass, |
int, |
int) |
{ |
} |
|
static void do_allocate_field_initializers (jclass) |
{ |
} |
|
static void do_create_ncode (jclass) |
{ |
// Not needed. |
} |
|
static void do_post_miranda_hook (jclass) |
{ |
// Not needed. |
} |
|
static _Jv_ClosureList **do_get_closure_list (jclass) |
{ |
return NULL; |
} |
|
_Jv_CompiledEngine () |
{ |
unregister = do_unregister; |
need_resolve_string_fields = do_need_resolve_string_fields; |
verify = do_verify; |
allocate_static_fields = do_allocate_static_fields; |
allocate_field_initializers = do_allocate_field_initializers; |
create_ncode = do_create_ncode; |
resolve_method = do_resolve_method; |
post_miranda_hook = do_post_miranda_hook; |
get_closure_list = do_get_closure_list; |
} |
|
// These operators make it so we don't have to link in libstdc++. |
void *operator new (size_t bytes) |
{ |
return _Jv_Malloc(bytes); |
} |
|
void operator delete (void *mem) |
{ |
_Jv_Free(mem); |
} |
}; |
|
class _Jv_IndirectCompiledClass |
{ |
public: |
void **field_initializers; |
_Jv_ClosureList **closures; |
}; |
|
// This handles gcj-compiled code compiled with -findirect-classes. |
struct _Jv_IndirectCompiledEngine : public _Jv_CompiledEngine |
{ |
_Jv_IndirectCompiledEngine () : _Jv_CompiledEngine () |
{ |
allocate_static_fields = do_allocate_static_fields; |
allocate_field_initializers = do_allocate_field_initializers; |
get_closure_list = do_get_closure_list; |
} |
|
static _Jv_IndirectCompiledClass *get_aux_info (jclass klass) |
{ |
_Jv_IndirectCompiledClass *aux = |
(_Jv_IndirectCompiledClass*)klass->aux_info; |
if (!aux) |
{ |
aux = (_Jv_IndirectCompiledClass*) |
_Jv_AllocRawObj (sizeof (_Jv_IndirectCompiledClass)); |
klass->aux_info = aux; |
} |
|
return aux; |
} |
|
static void do_allocate_field_initializers (jclass klass) |
{ |
_Jv_IndirectCompiledClass *aux = get_aux_info (klass); |
if (!aux) |
{ |
aux = (_Jv_IndirectCompiledClass*) |
_Jv_AllocRawObj (sizeof (_Jv_IndirectCompiledClass)); |
klass->aux_info = aux; |
} |
|
aux->field_initializers = (void **)_Jv_Malloc (klass->field_count |
* sizeof (void*)); |
|
for (int i = 0; i < klass->field_count; i++) |
{ |
_Jv_Field *field = &klass->fields[i]; |
if (field->flags & java::lang::reflect::Modifier::STATIC) |
{ |
aux->field_initializers[i] = field->u.addr; |
field->u.addr = NULL; |
} |
} |
} |
|
static void do_allocate_static_fields (jclass klass, |
int pointer_size, |
int other_size) |
{ |
// Splitting the allocations here lets us scan reference fields |
// and avoid scanning non-reference fields. |
char *reference_fields = (char *) _Jv_AllocRawObj (pointer_size); |
char *non_reference_fields = (char *) _Jv_AllocBytes (other_size); |
|
_Jv_IndirectCompiledClass *aux |
= (_Jv_IndirectCompiledClass*)klass->aux_info; |
|
for (int i = 0; i < klass->field_count; i++) |
{ |
_Jv_Field *field = &klass->fields[i]; |
|
if ((field->flags & java::lang::reflect::Modifier::STATIC) == 0) |
continue; |
|
char *base = field->isRef() ? reference_fields : non_reference_fields; |
field->u.addr = base + field->u.boffset; |
|
if (aux->field_initializers[i]) |
{ |
int field_size; |
if (! field->isRef ()) |
field_size = field->type->size (); |
else |
field_size = sizeof (jobject); |
|
memcpy (field->u.addr, aux->field_initializers[i], field_size); |
} |
} |
_Jv_Free (aux->field_initializers); |
} |
|
#ifdef INTERPRETER |
static _Jv_ClosureList **do_get_closure_list (jclass klass) |
{ |
_Jv_IndirectCompiledClass *aux = get_aux_info (klass); |
|
if (!aux->closures) |
aux->closures = _Jv_ClosureListFinalizer (); |
|
return aux->closures; |
} |
#endif |
}; |
|
#ifdef INTERPRETER |
|
// This handles interpreted code. |
class _Jv_InterpreterEngine : public _Jv_ExecutionEngine |
{ |
public: |
|
static void do_verify (jclass); |
static void do_allocate_static_fields (jclass, int, int); |
static void do_create_ncode (jclass); |
static _Jv_ResolvedMethod *do_resolve_method (_Jv_Method *, jclass, |
jboolean); |
|
static bool do_need_resolve_string_fields () |
{ |
return false; |
} |
|
static void do_unregister(jclass klass) |
{ |
_Jv_UnregisterClass(klass); |
} |
|
static void do_allocate_field_initializers (jclass) |
{ |
} |
|
static void do_post_miranda_hook (jclass); |
|
static _Jv_ClosureList **do_get_closure_list (jclass klass); |
|
_Jv_InterpreterEngine () |
{ |
unregister = do_unregister; |
need_resolve_string_fields = do_need_resolve_string_fields; |
verify = do_verify; |
allocate_static_fields = do_allocate_static_fields; |
allocate_field_initializers = do_allocate_field_initializers; |
create_ncode = do_create_ncode; |
resolve_method = do_resolve_method; |
post_miranda_hook = do_post_miranda_hook; |
get_closure_list = do_get_closure_list; |
} |
|
// These operators make it so we don't have to link in libstdc++. |
void *operator new (size_t bytes) |
{ |
return _Jv_Malloc(bytes); |
} |
|
void operator delete (void *mem) |
{ |
_Jv_Free(mem); |
} |
}; |
|
extern _Jv_InterpreterEngine _Jv_soleInterpreterEngine; |
#endif // INTERPRETER |
|
extern _Jv_CompiledEngine _Jv_soleCompiledEngine; |
extern _Jv_IndirectCompiledEngine _Jv_soleIndirectCompiledEngine; |
#endif // __JAVA_EXECUTION_H__ |
/hppa-signal.h
0,0 → 1,49
/* hppa-signal.h - Catch runtime signals and turn them into exceptions, |
on a HP-UX 11 PA system. */ |
|
/* Copyright (C) 2006, 2009 Free Software Foundation |
|
This file is part of libgcj. |
|
This software is copyrighted work licensed under the terms of the |
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for |
details. */ |
|
#ifndef JAVA_SIGNAL_H |
#define JAVA_SIGNAL_H 1 |
|
#include <signal.h> |
|
#define HANDLE_SEGV 1 |
#define HANDLE_FPE 1 |
|
#define SIGNAL_HANDLER(_name) \ |
static void _name (int _dummy __attribute__ ((unused)), \ |
siginfo_t *_info __attribute__ ((__unused__)), \ |
void *arg __attribute__ ((__unused__))) |
|
#define MAKE_THROW_FRAME(_exception) |
|
#define INIT_SEGV \ |
do \ |
{ \ |
struct sigaction sa; \ |
sa.sa_sigaction = catch_segv; \ |
sigemptyset (&sa.sa_mask); \ |
sa.sa_flags = SA_SIGINFO | SA_NODEFER; \ |
sigaction (SIGSEGV, &sa, NULL); \ |
} \ |
while (0) |
|
#define INIT_FPE \ |
do \ |
{ \ |
struct sigaction sa; \ |
sa.sa_sigaction = catch_fpe; \ |
sigemptyset (&sa.sa_mask); \ |
sa.sa_flags = SA_SIGINFO | SA_NODEFER; \ |
sigaction (SIGFPE, &sa, NULL); \ |
} \ |
while (0) |
|
#endif /* JAVA_SIGNAL_H */ |
/java-insns.h
0,0 → 1,248
// java-insns.h - Instruction encodings. This is -*- c++ -*- |
|
/* Copyright (C) 1999, 2001, 2002, 2006 Free Software Foundation |
|
This file is part of libgcj. |
|
This software is copyrighted work licensed under the terms of the |
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for |
details. */ |
|
#ifndef __JAVA_INSNS_H__ |
#define __JAVA_INSNS_H__ |
|
enum java_opcode |
{ |
op_nop = 0x00, |
op_aconst_null = 0x01, |
op_iconst_m1 = 0x02, |
op_iconst_0 = 0x03, |
op_iconst_1 = 0x04, |
op_iconst_2 = 0x05, |
op_iconst_3 = 0x06, |
op_iconst_4 = 0x07, |
op_iconst_5 = 0x08, |
op_lconst_0 = 0x09, |
op_lconst_1 = 0x0a, |
op_fconst_0 = 0x0b, |
op_fconst_1 = 0x0c, |
op_fconst_2 = 0x0d, |
op_dconst_0 = 0x0e, |
op_dconst_1 = 0x0f, |
op_bipush = 0x10, |
op_sipush = 0x11, |
op_ldc = 0x12, |
op_ldc_w = 0x13, |
op_ldc2_w = 0x14, |
op_iload = 0x15, |
op_lload = 0x16, |
op_fload = 0x17, |
op_dload = 0x18, |
op_aload = 0x19, |
op_iload_0 = 0x1a, |
op_iload_1 = 0x1b, |
op_iload_2 = 0x1c, |
op_iload_3 = 0x1d, |
op_lload_0 = 0x1e, |
op_lload_1 = 0x1f, |
op_lload_2 = 0x20, |
op_lload_3 = 0x21, |
op_fload_0 = 0x22, |
op_fload_1 = 0x23, |
op_fload_2 = 0x24, |
op_fload_3 = 0x25, |
op_dload_0 = 0x26, |
op_dload_1 = 0x27, |
op_dload_2 = 0x28, |
op_dload_3 = 0x29, |
op_aload_0 = 0x2a, |
op_aload_1 = 0x2b, |
op_aload_2 = 0x2c, |
op_aload_3 = 0x2d, |
op_iaload = 0x2e, |
op_laload = 0x2f, |
op_faload = 0x30, |
op_daload = 0x31, |
op_aaload = 0x32, |
op_baload = 0x33, |
op_caload = 0x34, |
op_saload = 0x35, |
op_istore = 0x36, |
op_lstore = 0x37, |
op_fstore = 0x38, |
op_dstore = 0x39, |
op_astore = 0x3a, |
op_istore_0 = 0x3b, |
op_istore_1 = 0x3c, |
op_istore_2 = 0x3d, |
op_istore_3 = 0x3e, |
op_lstore_0 = 0x3f, |
op_lstore_1 = 0x40, |
op_lstore_2 = 0x41, |
op_lstore_3 = 0x42, |
op_fstore_0 = 0x43, |
op_fstore_1 = 0x44, |
op_fstore_2 = 0x45, |
op_fstore_3 = 0x46, |
op_dstore_0 = 0x47, |
op_dstore_1 = 0x48, |
op_dstore_2 = 0x49, |
op_dstore_3 = 0x4a, |
op_astore_0 = 0x4b, |
op_astore_1 = 0x4c, |
op_astore_2 = 0x4d, |
op_astore_3 = 0x4e, |
op_iastore = 0x4f, |
op_lastore = 0x50, |
op_fastore = 0x51, |
op_dastore = 0x52, |
op_aastore = 0x53, |
op_bastore = 0x54, |
op_castore = 0x55, |
op_sastore = 0x56, |
op_pop = 0x57, |
op_pop2 = 0x58, |
op_dup = 0x59, |
op_dup_x1 = 0x5a, |
op_dup_x2 = 0x5b, |
op_dup2 = 0x5c, |
op_dup2_x1 = 0x5d, |
op_dup2_x2 = 0x5e, |
op_swap = 0x5f, |
op_iadd = 0x60, |
op_ladd = 0x61, |
op_fadd = 0x62, |
op_dadd = 0x63, |
op_isub = 0x64, |
op_lsub = 0x65, |
op_fsub = 0x66, |
op_dsub = 0x67, |
op_imul = 0x68, |
op_lmul = 0x69, |
op_fmul = 0x6a, |
op_dmul = 0x6b, |
op_idiv = 0x6c, |
op_ldiv = 0x6d, |
op_fdiv = 0x6e, |
op_ddiv = 0x6f, |
op_irem = 0x70, |
op_lrem = 0x71, |
op_frem = 0x72, |
op_drem = 0x73, |
op_ineg = 0x74, |
op_lneg = 0x75, |
op_fneg = 0x76, |
op_dneg = 0x77, |
op_ishl = 0x78, |
op_lshl = 0x79, |
op_ishr = 0x7a, |
op_lshr = 0x7b, |
op_iushr = 0x7c, |
op_lushr = 0x7d, |
op_iand = 0x7e, |
op_land = 0x7f, |
op_ior = 0x80, |
op_lor = 0x81, |
op_ixor = 0x82, |
op_lxor = 0x83, |
op_iinc = 0x84, |
op_i2l = 0x85, |
op_i2f = 0x86, |
op_i2d = 0x87, |
op_l2i = 0x88, |
op_l2f = 0x89, |
op_l2d = 0x8a, |
op_f2i = 0x8b, |
op_f2l = 0x8c, |
op_f2d = 0x8d, |
op_d2i = 0x8e, |
op_d2l = 0x8f, |
op_d2f = 0x90, |
op_i2b = 0x91, |
op_i2c = 0x92, |
op_i2s = 0x93, |
op_lcmp = 0x94, |
op_fcmpl = 0x95, |
op_fcmpg = 0x96, |
op_dcmpl = 0x97, |
op_dcmpg = 0x98, |
op_ifeq = 0x99, |
op_ifne = 0x9a, |
op_iflt = 0x9b, |
op_ifge = 0x9c, |
op_ifgt = 0x9d, |
op_ifle = 0x9e, |
op_if_icmpeq = 0x9f, |
op_if_icmpne = 0xa0, |
op_if_icmplt = 0xa1, |
op_if_icmpge = 0xa2, |
op_if_icmpgt = 0xa3, |
op_if_icmple = 0xa4, |
op_if_acmpeq = 0xa5, |
op_if_acmpne = 0xa6, |
op_goto = 0xa7, |
op_jsr = 0xa8, |
op_ret = 0xa9, |
op_tableswitch = 0xaa, |
op_lookupswitch = 0xab, |
op_ireturn = 0xac, |
op_lreturn = 0xad, |
op_freturn = 0xae, |
op_dreturn = 0xaf, |
op_areturn = 0xb0, |
op_return = 0xb1, |
op_getstatic = 0xb2, |
op_putstatic = 0xb3, |
op_getfield = 0xb4, |
op_putfield = 0xb5, |
op_invokevirtual = 0xb6, |
op_invokespecial = 0xb7, |
op_invokestatic = 0xb8, |
op_invokeinterface = 0xb9, |
op_breakpoint = 0xba, |
op_new = 0xbb, |
op_newarray = 0xbc, |
op_anewarray = 0xbd, |
op_arraylength = 0xbe, |
op_athrow = 0xbf, |
op_checkcast = 0xc0, |
op_instanceof = 0xc1, |
op_monitorenter = 0xc2, |
op_monitorexit = 0xc3, |
op_wide = 0xc4, |
op_multianewarray = 0xc5, |
op_ifnull = 0xc6, |
op_ifnonnull = 0xc7, |
op_goto_w = 0xc8, |
op_jsr_w = 0xc9, |
|
// new opcodes |
|
op_putfield_1 = 0xca, |
op_putfield_2 = 0xcb, |
op_putfield_4 = 0xcc, |
op_putfield_8 = 0xcd, |
op_putfield_a = 0xce, |
|
op_putstatic_1 = 0xcf, |
op_putstatic_2 = 0xd0, |
op_putstatic_4 = 0xd1, |
op_putstatic_8 = 0xd2, |
op_putstatic_a = 0xd3, |
|
op_getfield_1 = 0xd4, |
op_getfield_2s = 0xd5, |
op_getfield_2u = 0xd6, |
op_getfield_4 = 0xd7, |
op_getfield_8 = 0xd8, |
op_getfield_a = 0xd9, |
|
op_getstatic_1 = 0xda, |
op_getstatic_2s = 0xdb, |
op_getstatic_2u = 0xdc, |
op_getstatic_4 = 0xdd, |
op_getstatic_8 = 0xde, |
op_getstatic_a = 0xdf |
}; |
|
#endif /* __JAVA_INSNS_H__ */ |
/x86_64-signal.h
0,0 → 1,181
// x86_64-signal.h - Catch runtime signals and turn them into exceptions |
// on an x86_64 based GNU/Linux system. |
|
/* Copyright (C) 2003, 2006, 2007 Free Software Foundation |
|
This file is part of libgcj. |
|
This software is copyrighted work licensed under the terms of the |
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for |
details. */ |
|
|
#ifdef __x86_64__ |
|
#ifndef JAVA_SIGNAL_H |
#define JAVA_SIGNAL_H 1 |
|
#include <signal.h> |
#include <sys/syscall.h> |
|
#define HANDLE_SEGV 1 |
#define HANDLE_FPE 1 |
|
#define SIGNAL_HANDLER(_name) \ |
static void _Jv_##_name (int, siginfo_t *, \ |
void *_p __attribute__ ((__unused__))) |
|
#define HANDLE_DIVIDE_OVERFLOW \ |
do \ |
{ \ |
struct ucontext *_uc = (struct ucontext *)_p; \ |
gregset_t &_gregs = _uc->uc_mcontext.gregs; \ |
unsigned char *_rip = (unsigned char *)_gregs[REG_RIP]; \ |
\ |
/* According to the JVM spec, "if the dividend is the negative \ |
* integer of largest possible magnitude for the type and the \ |
* divisor is -1, then overflow occurs and the result is equal to \ |
* the dividend. Despite the overflow, no exception occurs". \ |
\ |
* We handle this by inspecting the instruction which generated the \ |
* signal and advancing ip to point to the following instruction. \ |
* As the instructions are variable length it is necessary to do a \ |
* little calculation to figure out where the following instruction \ |
* actually is. \ |
\ |
*/ \ |
\ |
bool _is_64_bit = false; \ |
\ |
if ((_rip[0] & 0xf0) == 0x40) /* REX byte present. */ \ |
{ \ |
unsigned char _rex = _rip[0] & 0x0f; \ |
_is_64_bit = (_rex & 0x08) != 0; \ |
_rip++; \ |
} \ |
\ |
/* Detect a signed division of Integer.MIN_VALUE or Long.MIN_VALUE. */ \ |
if (_rip[0] == 0xf7) \ |
{ \ |
bool _min_value_dividend = false; \ |
unsigned char _modrm = _rip[1]; \ |
\ |
if (((_modrm >> 3) & 7) == 7) \ |
{ \ |
if (_is_64_bit) \ |
_min_value_dividend = \ |
_gregs[REG_RAX] == (greg_t)0x8000000000000000UL; \ |
else \ |
_min_value_dividend = \ |
(_gregs[REG_RAX] & 0xffffffff) == (greg_t)0x80000000UL; \ |
} \ |
\ |
if (_min_value_dividend) \ |
{ \ |
unsigned char _rm = _modrm & 7; \ |
_gregs[REG_RDX] = 0; /* the remainder is zero */ \ |
switch (_modrm >> 6) \ |
{ \ |
case 0: /* register indirect */ \ |
if (_rm == 5) /* 32-bit displacement */ \ |
_rip += 4; \ |
if (_rm == 4) /* A SIB byte follows the ModR/M byte */ \ |
_rip += 1; \ |
break; \ |
case 1: /* register indirect + 8-bit displacement */ \ |
_rip += 1; \ |
if (_rm == 4) /* A SIB byte follows the ModR/M byte */ \ |
_rip += 1; \ |
break; \ |
case 2: /* register indirect + 32-bit displacement */ \ |
_rip += 4; \ |
if (_rm == 4) /* A SIB byte follows the ModR/M byte */ \ |
_rip += 1; \ |
break; \ |
case 3: \ |
break; \ |
} \ |
_rip += 2; \ |
_gregs[REG_RIP] = (greg_t)_rip; \ |
return; \ |
} \ |
} \ |
} \ |
while (0) |
|
extern "C" |
{ |
struct kernel_sigaction |
{ |
void (*k_sa_sigaction)(int,siginfo_t *,void *); |
unsigned long k_sa_flags; |
void (*k_sa_restorer) (void); |
sigset_t k_sa_mask; |
}; |
} |
|
#define MAKE_THROW_FRAME(_exception) |
|
#define RESTORE(name, syscall) RESTORE2 (name, syscall) |
#define RESTORE2(name, syscall) \ |
asm \ |
( \ |
".text\n" \ |
".byte 0 # Yes, this really is necessary\n" \ |
".align 16\n" \ |
"__" #name ":\n" \ |
" movq $" #syscall ", %rax\n" \ |
" syscall\n" \ |
); |
|
/* The return code for realtime-signals. */ |
RESTORE (restore_rt, __NR_rt_sigreturn) |
void restore_rt (void) asm ("__restore_rt") |
__attribute__ ((visibility ("hidden"))); |
|
#define INIT_SEGV \ |
do \ |
{ \ |
struct kernel_sigaction act; \ |
act.k_sa_sigaction = _Jv_catch_segv; \ |
sigemptyset (&act.k_sa_mask); \ |
act.k_sa_flags = SA_SIGINFO|0x4000000; \ |
act.k_sa_restorer = restore_rt; \ |
syscall (SYS_rt_sigaction, SIGSEGV, &act, NULL, _NSIG / 8); \ |
} \ |
while (0) |
|
#define INIT_FPE \ |
do \ |
{ \ |
struct kernel_sigaction act; \ |
act.k_sa_sigaction = _Jv_catch_fpe; \ |
sigemptyset (&act.k_sa_mask); \ |
act.k_sa_flags = SA_SIGINFO|0x4000000; \ |
act.k_sa_restorer = restore_rt; \ |
syscall (SYS_rt_sigaction, SIGFPE, &act, NULL, _NSIG / 8); \ |
} \ |
while (0) |
|
/* You might wonder why we use syscall(SYS_sigaction) in INIT_FPE |
* instead of the standard sigaction(). This is necessary because of |
* the shenanigans above where we increment the PC saved in the |
* context and then return. This trick will only work when we are |
* called _directly_ by the kernel, because linuxthreads wraps signal |
* handlers and its wrappers do not copy the sigcontext struct back |
* when returning from a signal handler. If we return from our divide |
* handler to a linuxthreads wrapper, we will lose the PC adjustment |
* we made and return to the faulting instruction again. Using |
* syscall(SYS_sigaction) causes our handler to be called directly |
* by the kernel, bypassing any wrappers. */ |
|
#endif /* JAVA_SIGNAL_H */ |
|
#else /* __x86_64__ */ |
|
/* This is for the 32-bit subsystem on x86-64. */ |
|
#define sigcontext_struct sigcontext |
#include <java-signal-aux.h> |
|
#endif /* __x86_64__ */ |
/config.h.in
0,0 → 1,479
/* include/config.h.in. Generated from configure.ac by autoheader. */ |
|
/* Define if building universal (internal helper macro) */ |
#undef AC_APPLE_UNIVERSAL_BUILD |
|
/* Name of default AWT toolkit */ |
#undef AWT_TOOLKIT |
|
/* Define if system properties shouldn't be read from |
getenv("GCJ_PROPERTIES"). */ |
#undef DISABLE_GETENV_PROPERTIES |
|
/* Define if java.net native functions should be stubbed out. */ |
#undef DISABLE_JAVA_NET |
|
/* Define if we should ignore arguments to main(). */ |
#undef DISABLE_MAIN_ARGS |
|
/* Define if you're running eCos. */ |
#undef ECOS |
|
/* Define if you are using JVMPI. */ |
#undef ENABLE_JVMPI |
|
/* Short GCJ version ID */ |
#undef GCJVERSION |
|
/* Define if gethostbyaddr_r returns 'int'. */ |
#undef GETHOSTBYADDR_R_RETURNS_INT |
|
/* Define if gethostbyname_r returns 'int'. */ |
#undef GETHOSTBYNAME_R_RETURNS_INT |
|
/* Define to 1 if you have the `access' function. */ |
#undef HAVE_ACCESS |
|
/* Define to 1 if you have the <arpa/inet.h> header file. */ |
#undef HAVE_ARPA_INET_H |
|
/* Define if Boehm GC in use. */ |
#undef HAVE_BOEHM_GC |
|
/* Define if you have u_int32_t */ |
#undef HAVE_BSD_INT32_DEFINED |
|
/* Define to 1 if you have the <bstring.h> header file. */ |
#undef HAVE_BSTRING_H |
|
/* Define to 1 if the target assembler supports thread-local storage. */ |
#undef HAVE_CC_TLS |
|
/* Define to 1 if you have the `chmod' function. */ |
#undef HAVE_CHMOD |
|
/* Define if you have clock_gettime() */ |
#undef HAVE_CLOCK_GETTIME |
|
/* Define to 1 if you have the declaration of `tzname', and to 0 if you don't. |
*/ |
#undef HAVE_DECL_TZNAME |
|
/* Define to 1 if you have the <dirent.h> header file. */ |
#undef HAVE_DIRENT_H |
|
/* Define if you have dladdr() */ |
#undef HAVE_DLADDR |
|
/* Define to 1 if you have the <dlfcn.h> header file. */ |
#undef HAVE_DLFCN_H |
|
/* Define if dlopen is available */ |
#undef HAVE_DLOPEN |
|
/* Define to 1 if you have the <fcntl.h> header file. */ |
#undef HAVE_FCNTL_H |
|
/* Define to 1 if you have the `fstat' function. */ |
#undef HAVE_FSTAT |
|
/* Define to 1 if you have the `fsync' function. */ |
#undef HAVE_FSYNC |
|
/* Define to 1 if you have the `ftime' function. */ |
#undef HAVE_FTIME |
|
/* Define to 1 if you have the `ftruncate' function. */ |
#undef HAVE_FTRUNCATE |
|
/* Define to 1 if you have the `getcwd' function. */ |
#undef HAVE_GETCWD |
|
/* Define if you have the 'gethostbyaddr_r' function. */ |
#undef HAVE_GETHOSTBYADDR_R |
|
/* Define if you have the 'gethostbyname_r' function. */ |
#undef HAVE_GETHOSTBYNAME_R |
|
/* Define if you have the 'gethostname' function. */ |
#undef HAVE_GETHOSTNAME |
|
/* Define if gethostname is declared in <unistd.h>. */ |
#undef HAVE_GETHOSTNAME_DECL |
|
/* Define to 1 if you have the `getifaddrs' function. */ |
#undef HAVE_GETIFADDRS |
|
/* Define if _Unwind_GetIPInfo is available. */ |
#undef HAVE_GETIPINFO |
|
/* Define to 1 if you have the `getpwuid_r' function. */ |
#undef HAVE_GETPWUID_R |
|
/* Define to 1 if you have the `getrlimit' function. */ |
#undef HAVE_GETRLIMIT |
|
/* Define to 1 if you have the `gettimeofday' function. */ |
#undef HAVE_GETTIMEOFDAY |
|
/* Define if you have the 'gmtime_r' function */ |
#undef HAVE_GMTIME_R |
|
/* Define if you have the iconv() function. */ |
#undef HAVE_ICONV |
|
/* Define to 1 if you have the <ifaddrs.h> header file. */ |
#undef HAVE_IFADDRS_H |
|
/* Define if inet6 structures are defined in netinet/in.h. */ |
#undef HAVE_INET6 |
|
/* Define to 1 if you have the `inet_addr' function. */ |
#undef HAVE_INET_ADDR |
|
/* Define to 1 if you have the `inet_aton' function. */ |
#undef HAVE_INET_ATON |
|
/* Define to 1 if you have the `inet_ntoa' function. */ |
#undef HAVE_INET_NTOA |
|
/* Define to 1 if you have the `inet_pton' function. */ |
#undef HAVE_INET_PTON |
|
/* Define if you have int32_t and uint32_t. */ |
#undef HAVE_INT32_DEFINED |
|
/* Define if <inttypes.h> is available */ |
#undef HAVE_INTTYPES_H |
|
/* Define to 1 if 'in_addr_t' is defined in sys/types.h or netinet/in.h. */ |
#undef HAVE_IN_ADDR_T |
|
/* Define to 1 if you have the <langinfo.h> header file. */ |
#undef HAVE_LANGINFO_H |
|
/* Define if your <locale.h> file defines LC_MESSAGES. */ |
#undef HAVE_LC_MESSAGES |
|
/* Define to 1 if you have the <locale.h> header file. */ |
#undef HAVE_LOCALE_H |
|
/* Define is you have 'localtime' in <time.h> */ |
#undef HAVE_LOCALTIME |
|
/* Define to 1 if you have the `localtime_r' function. */ |
#undef HAVE_LOCALTIME_R |
|
/* Define to 1 if you have the `lstat' function. */ |
#undef HAVE_LSTAT |
|
/* Define to 1 if you have the <magic.h> header file. */ |
#undef HAVE_MAGIC_H |
|
/* Define if magic.h declares magic_t */ |
#undef HAVE_MAGIC_T |
|
/* Define to 1 if you have the `memcpy' function. */ |
#undef HAVE_MEMCPY |
|
/* Define to 1 if you have the `memmove' function. */ |
#undef HAVE_MEMMOVE |
|
/* Define to 1 if you have the <memory.h> header file. */ |
#undef HAVE_MEMORY_H |
|
/* Define to 1 if you have the `mkdir' function. */ |
#undef HAVE_MKDIR |
|
/* Define to 1 if you have the `mmap' function. */ |
#undef HAVE_MMAP |
|
/* Define to 1 if you have the <netdb.h> header file. */ |
#undef HAVE_NETDB_H |
|
/* Define to 1 if you have the <netinet/in.h> header file. */ |
#undef HAVE_NETINET_IN_H |
|
/* Define to 1 if you have the <net/if.h> header file. */ |
#undef HAVE_NET_IF_H |
|
/* Define to 1 if you have the `nl_langinfo' function. */ |
#undef HAVE_NL_LANGINFO |
|
/* Define to 1 if you have the `open' function. */ |
#undef HAVE_OPEN |
|
/* Define to 1 if you have the `opendir' function. */ |
#undef HAVE_OPENDIR |
|
/* Define if you have /proc/self/exe */ |
#undef HAVE_PROC_SELF_EXE |
|
/* Define if you have /proc/self/maps */ |
#undef HAVE_PROC_SELF_MAPS |
|
/* Define if using POSIX threads that have the mutexattr functions. */ |
#undef HAVE_PTHREAD_MUTEXATTR_INIT |
|
/* Define to 1 if you have the <pwd.h> header file. */ |
#undef HAVE_PWD_H |
|
/* Define to 1 if you have the `readlink' function. */ |
#undef HAVE_READLINK |
|
/* Define to 1 if you have the `rename' function. */ |
#undef HAVE_RENAME |
|
/* Define to 1 if you have the `rmdir' function. */ |
#undef HAVE_RMDIR |
|
/* Define to 1 if you have the `sched_yield' function. */ |
#undef HAVE_SCHED_YIELD |
|
/* Define to 1 if you have the `select' function. */ |
#undef HAVE_SELECT |
|
/* Define to 1 if you have the `setlocale' function. */ |
#undef HAVE_SETLOCALE |
|
/* Define to 1 if you have the `sigaction' function. */ |
#undef HAVE_SIGACTION |
|
/* Define to 1 if you have the `sleep' function. */ |
#undef HAVE_SLEEP |
|
/* Define it socklen_t typedef is in sys/socket.h. */ |
#undef HAVE_SOCKLEN_T |
|
/* Define to 1 if you have the `stat' function. */ |
#undef HAVE_STAT |
|
/* Define to 1 if you have the <stdint.h> header file. */ |
#undef HAVE_STDINT_H |
|
/* Define to 1 if you have the <stdlib.h> header file. */ |
#undef HAVE_STDLIB_H |
|
/* Define to 1 if you have the `strerror_r' function. */ |
#undef HAVE_STRERROR_R |
|
/* Define to 1 if you have the <strings.h> header file. */ |
#undef HAVE_STRINGS_H |
|
/* Define to 1 if you have the <string.h> header file. */ |
#undef HAVE_STRING_H |
|
/* Define if struct hostent_data is defined in netdb.h */ |
#undef HAVE_STRUCT_HOSTENT_DATA |
|
/* Define if struct ipv6_mreq is defined in netinet/in.h. */ |
#undef HAVE_STRUCT_IPV6_MREQ |
|
/* Define if struct ip_mreq is defined in netinet/in.h. */ |
#undef HAVE_STRUCT_IP_MREQ |
|
/* Define to 1 if `struct tm' is a member of `tm_zone'. */ |
#undef HAVE_STRUCT_TM_TM_ZONE |
|
/* Define to 1 if you have the <sys/config.h> header file. */ |
#undef HAVE_SYS_CONFIG_H |
|
/* Define to 1 if you have the <sys/filio.h> header file. */ |
#undef HAVE_SYS_FILIO_H |
|
/* Define to 1 if you have the <sys/ioctl.h> header file. */ |
#undef HAVE_SYS_IOCTL_H |
|
/* Define to 1 if you have the <sys/resource.h> header file. */ |
#undef HAVE_SYS_RESOURCE_H |
|
/* Define to 1 if you have the <sys/rw_lock.h> header file. */ |
#undef HAVE_SYS_RW_LOCK_H |
|
/* Define to 1 if you have the <sys/select.h> header file. */ |
#undef HAVE_SYS_SELECT_H |
|
/* Define to 1 if you have the <sys/socket.h> header file. */ |
#undef HAVE_SYS_SOCKET_H |
|
/* Define to 1 if you have the <sys/stat.h> header file. */ |
#undef HAVE_SYS_STAT_H |
|
/* Define to 1 if you have the <sys/time.h> header file. */ |
#undef HAVE_SYS_TIME_H |
|
/* Define to 1 if you have the <sys/types.h> header file. */ |
#undef HAVE_SYS_TYPES_H |
|
/* Define to 1 if you have the `time' function. */ |
#undef HAVE_TIME |
|
/* Define if global 'timezone' exists. */ |
#undef HAVE_TIMEZONE |
|
/* Define to 1 if the target supports thread-local storage. */ |
#undef HAVE_TLS |
|
/* Define to 1 if your `struct tm' has `tm_zone'. Deprecated, use |
`HAVE_STRUCT_TM_TM_ZONE' instead. */ |
#undef HAVE_TM_ZONE |
|
/* Define to 1 if you don't have `tm_zone' but do have the external array |
`tzname'. */ |
#undef HAVE_TZNAME |
|
/* Define to 1 if you have the `uname' function. */ |
#undef HAVE_UNAME |
|
/* Define if your platform has the global _timezone variable. */ |
#undef HAVE_UNDERSCORE_TIMEZONE |
|
/* Define to 1 if you have the <unistd.h> header file. */ |
#undef HAVE_UNISTD_H |
|
/* Define to 1 if you have the `unlink' function. */ |
#undef HAVE_UNLINK |
|
/* Define to 1 if you have the `usleep' function. */ |
#undef HAVE_USLEEP |
|
/* Define if usleep is declared in <unistd.h>. */ |
#undef HAVE_USLEEP_DECL |
|
/* Define to 1 if you have the `utime' function. */ |
#undef HAVE_UTIME |
|
/* Define to 1 if you have the file `/proc/self/exe'. */ |
#undef HAVE__PROC_SELF_EXE |
|
/* Define to 1 if you have the file `/proc/self/maps'. */ |
#undef HAVE__PROC_SELF_MAPS |
|
/* Define as const if the declaration of iconv() needs const. */ |
#undef ICONV_CONST |
|
/* Define if you want a bytecode interpreter. */ |
#undef INTERPRETER |
|
/* API compatibility version string */ |
#undef JV_API_VERSION |
|
/* Define if hash synchronization is in use */ |
#undef JV_HASH_SYNCHRONIZATION |
|
/* Define if <inttypes.h> is available */ |
#undef JV_HAVE_INTTYPES_H |
|
/* Indicate that linker is not able to 8-byte align static data */ |
#undef JV_LINKER_CANNOT_8BYTE_ALIGN_STATICS |
|
/* Compatibility version string */ |
#undef JV_VERSION |
|
/* Define if we want to use debug calls into the garbage collector. */ |
#undef LIBGCJ_GC_DEBUG |
|
/* Installation prefix */ |
#undef LIBGCJ_PREFIX |
|
/* Define if using POSIX threads on Linux. */ |
#undef LINUX_THREADS |
|
/* Define to the name of the environment variable that determines the dynamic |
library search path. */ |
#undef LTDL_SHLIBPATH_VAR |
|
/* Define to the sub-directory in which libtool stores uninstalled libraries. |
*/ |
#undef LT_OBJDIR |
|
/* Define if MinGW libgcj uses the Windows UNICODE OS API. */ |
#undef MINGW_LIBGCJ_UNICODE |
|
/* Define if getuid() and friends are missing. */ |
#undef NO_GETUID |
|
/* Define to 1 if your C compiler doesn't accept -c and -o together. */ |
#undef NO_MINUS_C_MINUS_O |
|
/* Name of package */ |
#undef PACKAGE |
|
/* Define to the address where bug reports for this package should be sent. */ |
#undef PACKAGE_BUGREPORT |
|
/* Define to the full name of this package. */ |
#undef PACKAGE_NAME |
|
/* Define to the full name and version of this package. */ |
#undef PACKAGE_STRING |
|
/* Define to the one symbol short name of this package. */ |
#undef PACKAGE_TARNAME |
|
/* Define to the home page for this package. */ |
#undef PACKAGE_URL |
|
/* Define to the version of this package. */ |
#undef PACKAGE_VERSION |
|
/* Define if pthread_mutex_t has m_count member. */ |
#undef PTHREAD_MUTEX_HAVE_M_COUNT |
|
/* Define if pthread_mutex_t has __m_count member. */ |
#undef PTHREAD_MUTEX_HAVE___M_COUNT |
|
/* The size of `void *', as computed by sizeof. */ |
#undef SIZEOF_VOID_P |
|
/* Define if the compiler is configured for setjmp/longjmp exceptions. */ |
#undef SJLJ_EXCEPTIONS |
|
/* Define if if the synchronization code should try to avoid pthread_self |
calls by caching thread IDs in a hashtable. */ |
#undef SLOW_PTHREAD_SELF |
|
/* Define to 1 if you have the ANSI C header files. */ |
#undef STDC_HEADERS |
|
/* Define if struct tm has tm_gmtoff field. */ |
#undef STRUCT_TM_HAS_GMTOFF |
|
/* Define to 1 if your <sys/time.h> declares `struct tm'. */ |
#undef TM_IN_SYS_TIME |
|
/* Define if we're to use libffi. */ |
#undef USE_LIBFFI |
|
/* Define if libltdl is in use. */ |
#undef USE_LTDL |
|
/* Version number of package */ |
#undef VERSION |
|
/* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most |
significant byte first (like Motorola and SPARC, unlike Intel). */ |
#if defined AC_APPLE_UNIVERSAL_BUILD |
# if defined __BIG_ENDIAN__ |
# define WORDS_BIGENDIAN 1 |
# endif |
#else |
# ifndef WORDS_BIGENDIAN |
# undef WORDS_BIGENDIAN |
# endif |
#endif |
|
/* Define to 1 if the X Window System is missing or not being used. */ |
#undef X_DISPLAY_MISSING |
|
/* Required define if using POSIX threads */ |
#undef _POSIX_PTHREAD_SEMANTICS |
|
/* Required define if using POSIX threads */ |
#undef _REENTRANT |
|
/* Define this if you want runtime debugging enabled. */ |
#undef __GCJ_DEBUG |
|
/* Define to `int' if <sys/types.h> does not define. */ |
#undef ssize_t |
/posix-signal.h
0,0 → 1,60
// posix-signal.h - Catch runtime signals and turn them into exceptions. |
|
/* Copyright (C) 1998, 1999, 2000, 2009, 2011 Free Software Foundation |
|
This file is part of libgcj. |
|
This software is copyrighted work licensed under the terms of the |
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for |
details. */ |
|
#ifndef JAVA_SIGNAL_H |
#define JAVA_SIGNAL_H 1 |
|
#include <signal.h> |
|
#define HANDLE_SEGV 1 |
#define HANDLE_FPE 1 |
|
/* Different implementations of MD_FALLBACK_FRAME_STATE_FOR either require |
SA_SIGINFO being set or fail if so. Cf. gcc/ada/init.c |
(__gnat_install_handler) for details. */ |
|
#if (defined __alpha__ && defined __osf__) \ |
|| (defined __sun__ && defined __svr4__) |
#define SA_FLAGS SA_NODEFER | SA_SIGINFO |
#elif defined __sgi__ |
#define SA_FLAGS SA_NODEFER |
#else |
#error Must define SA_FLAGS. |
#endif |
|
#if SA_FLAGS & SA_SIGINFO |
#define SIGNAL_HANDLER(_name) \ |
static void _Jv_##_name (int, \ |
siginfo_t *_si __attribute__ ((__unused__)), \ |
void *_uc __attribute__ ((__unused__))) |
#define sa_signal_handler sa_sigaction |
#else |
#define SIGNAL_HANDLER(_name) \ |
static void _Jv_##_name (int) |
#define sa_signal_handler sa_handler |
#endif |
|
#define MAKE_THROW_FRAME(_exception) |
|
#define _INIT_SIG_HANDLER(_SIG, _ACTION) \ |
do \ |
{ \ |
struct sigaction act; \ |
act.sa_signal_handler = _Jv_##_ACTION; \ |
act.sa_flags = SA_FLAGS; \ |
sigemptyset (&act.sa_mask); \ |
sigaction(_SIG, &act, NULL); \ |
} \ |
while (0) |
|
#define INIT_SEGV _INIT_SIG_HANDLER (SIGSEGV, catch_segv) |
#define INIT_FPE _INIT_SIG_HANDLER (SIGFPE, catch_fpe) |
|
#endif /* JAVA_SIGNAL_H */ |
/win32-signal.h
0,0 → 1,40
// win32-signal.h - Catch runtime signals and turn them into exceptions. |
|
/* Copyright (C) 1998, 1999, 2000 Free Software Foundation |
|
This file is part of libgcj. |
|
This software is copyrighted work licensed under the terms of the |
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for |
details. */ |
|
// Exception handling is done totally differently on Win32 this stuff |
// just keeps it compatible |
|
#ifndef JAVA_SIGNAL_H |
#define JAVA_SIGNAL_H 1 |
|
#define HANDLE_SEGV 1 |
#define HANDLE_FPE 1 |
|
#define SIGNAL_HANDLER(_name) \ |
static void _name (int _dummy) |
|
#define MAKE_THROW_FRAME(_exception) do {} while (0) |
#define HANDLE_DIVIDE_OVERFLOW do {} while (0) |
|
#define INIT_SEGV \ |
do \ |
{ \ |
} \ |
while (0) |
|
|
#define INIT_FPE \ |
do \ |
{ \ |
} \ |
while (0) |
|
|
#endif /* JAVA_SIGNAL_H */ |
/java-assert.h
0,0 → 1,38
// java-assert.h - Header file holding assertion definitions. -*- c++ -*- |
|
/* Copyright (C) 1998, 1999, 2010 Free Software Foundation |
|
This file is part of libgcj. |
|
This software is copyrighted work licensed under the terms of the |
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for |
details. */ |
|
#ifndef __JAVA_ASSERT_H__ |
#define __JAVA_ASSERT_H__ |
|
// This is a libgcj implementation header. |
|
void _Jv_Abort (const char *, const char *, int, const char *) |
__attribute__ ((__noreturn__)); |
|
#ifdef __GCJ_DEBUG |
#define _Jv_AssertDoCall(Message) _Jv_Abort (__FUNCTION__, __FILE__, __LINE__, Message) |
|
#define JvAssertMessage(Expr, Message) \ |
do { if (! (Expr)) _Jv_AssertDoCall (Message); } while (0) |
#define JvAssert(Expr) \ |
do { if (! (Expr)) _Jv_AssertDoCall (# Expr); } while (0) |
|
#define JvFail(Message) _Jv_AssertDoCall (Message) |
|
#else /* __GCJ_DEBUG */ |
|
#define _Jv_AssertDoCall(Message) |
#define JvAssertMessage(Expr, Message) (void) sizeof (Expr) |
#define JvAssert(Expr) (void) sizeof (Expr) |
#define JvFail(Message) _Jv_Abort (0, 0, 0, Message) |
|
#endif /* not __GCJ_DEBUG */ |
|
#endif /* __JAVA_ASSERT_H__ */ |
/boehm-gc.h
0,0 → 1,98
// -*- c++ -*- |
// boehm-gc.h - Defines for Boehm collector. |
|
/* Copyright (C) 1998, 1999, 2002, 2004, 2006, 2007 Free Software Foundation |
|
This file is part of libgcj. |
|
This software is copyrighted work licensed under the terms of the |
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for |
details. */ |
|
#ifndef __JV_BOEHM_GC__ |
#define __JV_BOEHM_GC__ |
|
#define JV_MARKOBJ_DECL void *::_Jv_MarkObj (void *, void *, void *, void *) |
#define JV_MARKARRAY_DECL void *::_Jv_MarkArray (void *, void *, void *, void *) |
|
extern "C" |
{ |
void *_Jv_MarkObj (void *, void *, void *, void *); |
void *_Jv_MarkArray (void *, void *, void *, void *); |
void _Jv_RegisterLibForGc (const void *); |
} |
|
// Enough stuff to inline _Jv_AllocObj. Ugly. |
#include <gcj/javaprims.h> |
#include <java/lang/Class.h> |
#include <string.h> |
|
#include <gc_ext_config.h> // for THREAD_LOCAL_ALLOC |
|
extern "C" void * GC_gcj_malloc(size_t, void *); |
extern "C" void * GC_malloc_atomic(size_t); |
#ifdef THREAD_LOCAL_ALLOC |
extern "C" void * GC_local_gcj_malloc(size_t, void *); |
extern "C" void * GC_local_malloc_atomic(size_t); |
#endif |
|
#ifndef LIBGCJ_GC_DEBUG |
|
inline void * |
_Jv_AllocObj (jsize size, jclass klass) |
{ |
// This should call GC_GCJ_MALLOC, but that would involve |
// including gc.h. |
#ifdef THREAD_LOCAL_ALLOC |
return GC_local_gcj_malloc (size, klass->vtable); |
#else |
return GC_gcj_malloc (size, klass->vtable); |
#endif |
} |
|
inline void * |
_Jv_AllocPtrFreeObj (jsize size, jclass klass) |
{ |
#ifdef JV_HASH_SYNCHRONIZATION |
# ifdef THREAD_LOCAL_ALLOC |
void * obj = GC_local_malloc_atomic(size); |
# else |
void * obj = GC_malloc_atomic(size); |
# endif |
*((_Jv_VTable **) obj) = klass->vtable; |
#else |
# ifdef THREAD_LOCAL_ALLOC |
void * obj = GC_local_gcj_malloc(size, klass->vtable); |
# else |
void * obj = GC_gcj_malloc(size, klass->vtable); |
# endif |
#endif |
return obj; |
} |
|
#else /* LIBGCJ_GC_DEBUG */ |
|
void * |
_Jv_AllocObj (jsize size, jclass klass); |
|
void * |
_Jv_AllocPtrFreeObj (jsize size, jclass klass); |
|
#endif /* LIBGCJ_GC_DEBUG */ |
|
void _Jv_GCAttachThread (); |
|
void _Jv_GCDetachThread (); |
|
// _Jv_AllocBytes (jsize size) should go here, too. But clients don't |
// usually include this header. |
|
// Suspend the given thread. This includes suspending the calling thread. |
extern "C" void _Jv_SuspendThread (_Jv_Thread_t *); |
|
// Resume a suspended thread. |
extern "C" void _Jv_ResumeThread (_Jv_Thread_t *); |
|
// Is the given thread suspended? |
extern "C" int _Jv_IsThreadSuspended (_Jv_Thread_t *); |
#endif /* __JV_BOEHM_GC__ */ |
/java-props.h
0,0 → 1,33
// java-props.h - Properties -*- c++ -*- |
|
/* Copyright (C) 1999 Free Software Foundation |
|
This file is part of libgcj. |
|
This software is copyrighted work licensed under the terms of the |
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for |
details. */ |
|
#ifndef __JAVA_PROPS_H__ |
#define __JAVA_PROPS_H__ |
|
typedef struct |
{ |
char *key; |
size_t key_length; |
char *value; |
size_t value_length; |
} property_pair; |
|
// Set to NULL-terminated list of properties set at compile time. |
extern const char **_Jv_Compiler_Properties; |
extern int _Jv_Properties_Count; |
|
// Properties taken from the user's environment. |
extern property_pair *_Jv_Environment_Properties; |
|
// Module load path. |
extern char *_Jv_Module_Load_Path; |
|
#endif |
|
/Makefile.am
0,0 → 1,15
## Process this file with automake to produce Makefile.in. |
|
AUTOMAKE_OPTIONS = foreign |
|
# May be used by various substitution variables. |
gcc_version := $(shell cat $(top_srcdir)/../gcc/BASE-VER) |
|
# autoconf2.13's target_alias |
target_noncanonical = @target_noncanonical@ |
|
tool_include_dir = $(libdir)/gcc/$(target_noncanonical)/$(gcc_version)/include |
## The 'jni.h' here is fairly hacky, but it is simpler than trying to |
## tell Classpath about our peculiar install directory. |
tool_include__HEADERS = jni_md.h ../classpath/include/jawt.h \ |
../classpath/include/jawt_md.h jvmpi.h ../classpath/include/jni.h |
/java-stack.h
0,0 → 1,177
// java-stack.h - Definitions for unwinding & inspecting the call stack. |
|
/* Copyright (C) 2005, 2006 Free Software Foundation |
|
This file is part of libgcj. |
|
This software is copyrighted work licensed under the terms of the |
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for |
details. */ |
|
#ifndef __JV_STACKTRACE_H__ |
#define __JV_STACKTRACE_H__ |
|
#include <stdlib.h> |
#include <unwind.h> |
|
#include <gcj/cni.h> |
#include <gcj/javaprims.h> |
|
#include <java-interp.h> |
|
#include <java/lang/Class.h> |
#include <java/lang/StackTraceElement.h> |
#include <java/lang/Throwable.h> |
#include <java/lang/Thread.h> |
#include <java/util/IdentityHashMap.h> |
|
#include <gnu/gcj/runtime/NameFinder.h> |
|
using namespace gnu::gcj::runtime; |
using namespace java::lang; |
|
extern "Java" |
{ |
namespace gnu |
{ |
namespace classpath |
{ |
class VMStackWalker; |
} |
} |
} |
|
#ifdef INTERPRETER |
struct _Jv_InterpFrameInfo |
{ |
_Jv_InterpMethod *meth; |
pc_t pc; |
}; |
#endif |
|
struct _Jv_StackFrame |
{ |
_Jv_FrameType type; /* Native or interpreted. */ |
union { |
#ifdef INTERPRETER |
_Jv_InterpFrameInfo interp; |
#endif |
struct { |
jclass proxyClass; |
_Jv_Method *proxyMethod; |
}; |
struct { |
void *ip; |
void *start_ip; |
}; |
}; |
jclass klass; |
_Jv_Method *meth; |
}; |
|
struct _Jv_UnwindState; |
typedef _Unwind_Reason_Code (*_Jv_TraceFn) (_Jv_UnwindState *); |
|
struct _Jv_UnwindState |
{ |
jint length; // length of FRAMES |
jint pos; // current position in FRAMES |
_Jv_StackFrame *frames; // array of stack frame data to be filled. |
#ifdef INTERPRETER |
_Jv_InterpFrame *interp_frame; // current frame in the interpreter stack. |
#endif |
_Jv_TraceFn trace_function; // function to call back after each frame |
// is enumerated. May be NULL. |
void *trace_data; // additional state data for trace_function. |
|
_Jv_UnwindState (jint ln) |
{ |
length = ln; |
pos = 0; |
frames = NULL; |
#ifdef INTERPRETER |
Thread *thread = Thread::currentThread(); |
// Check for NULL currentThread(), in case an exception is created |
// very early during the runtime startup. |
if (thread) |
interp_frame = (_Jv_InterpFrame *) thread->interp_frame; |
else |
interp_frame = NULL; |
#endif |
trace_function = NULL; |
trace_data = NULL; |
} |
}; |
|
class _Jv_StackTrace |
{ |
private: |
int length; |
_Jv_StackFrame frames[]; |
|
static java::util::IdentityHashMap *ncodeMap; |
static void UpdateNCodeMap (); |
static jclass ClassForFrame (_Jv_StackFrame *frame); |
static void FillInFrameInfo (_Jv_StackFrame *frame); |
static void getLineNumberForFrame(_Jv_StackFrame *frame, NameFinder *finder, |
jstring *sourceFileName, jint *lineNum, |
jstring *methodName); |
|
static _Unwind_Reason_Code UnwindTraceFn (struct _Unwind_Context *context, |
void *state_ptr); |
|
static _Unwind_Reason_Code calling_class_trace_fn (_Jv_UnwindState *state); |
static _Unwind_Reason_Code non_system_trace_fn (_Jv_UnwindState *state); |
static _Unwind_Reason_Code accesscontrol_trace_fn (_Jv_UnwindState *state); |
static _Unwind_Reason_Code stackwalker_trace_fn (_Jv_UnwindState *state); |
static _Unwind_Reason_Code stackwalker_nnl_trace_fn (_Jv_UnwindState *state); |
|
public: |
static _Jv_StackTrace *GetStackTrace (void); |
static JArray< ::java::lang::StackTraceElement *>* |
GetStackTraceElements (_Jv_StackTrace *trace, |
java::lang::Throwable *throwable); |
static jclass GetCallingClass (jclass); |
static void GetCallerInfo (jclass checkClass, jclass *, _Jv_Method **); |
static ClassLoader *GetFirstNonSystemClassLoader (void); |
static jobjectArray GetAccessControlStack (); |
static JArray<jclass> *GetStackWalkerStack (); |
static jclass GetStackWalkerCallingClass (); |
static ClassLoader *GetStackWalkerFirstNonNullLoader (); |
|
friend jclass _Jv_GetMethodDeclaringClass (jmethodID); |
friend class gnu::classpath::VMStackWalker; |
}; |
|
// Information about a given address. |
struct _Jv_AddrInfo |
{ |
// File name of the defining module. |
const char *file_name; |
|
// Base address of the loaded module. |
void *base; |
|
// Name of the nearest symbol. |
const char *sym_name; |
|
// Address of the nearest symbol. |
void *sym_addr; |
|
~_Jv_AddrInfo (void) |
{ |
// On systems with a real dladdr(), the file and symbol names given by |
// _Jv_platform_dladdr() are not dynamically allocated. On Windows, |
// they are. |
|
#ifdef WIN32 |
if (file_name) |
free ((void *)file_name); |
|
if (sym_name) |
free ((void *)sym_name); |
#endif /* WIN32 */ |
} |
}; |
|
#endif /* __JV_STACKTRACE_H__ */ |
/java-chardecomp.h
0,0 → 1,3510
// java-chardecomp.h - Decomposition character tables -*- c++ -*- |
|
#ifndef __JAVA_CHARDECOMP_H__ |
#define __JAVA_CHARDECOMP_H__ |
|
|
// These tables are automatically generated by the scripts/unicode-decomp.pl |
// script. DO NOT EDIT the tables. Instead, fix the script |
// and run it again. |
|
// This file should only be included by natCollator.cc |
|
struct decomp_entry |
{ |
jchar key; |
const char *value; |
}; |
|
static const decomp_entry canonical_decomposition[] = |
{ |
{ 0x00c0, "\x00\x41\x03\x00" }, |
{ 0x00c1, "\x00\x41\x03\x01" }, |
{ 0x00c2, "\x00\x41\x03\x02" }, |
{ 0x00c3, "\x00\x41\x03\x03" }, |
{ 0x00c4, "\x00\x41\x03\x08" }, |
{ 0x00c5, "\x00\x41\x03\x0a" }, |
{ 0x00c7, "\x00\x43\x03\x27" }, |
{ 0x00c8, "\x00\x45\x03\x00" }, |
{ 0x00c9, "\x00\x45\x03\x01" }, |
{ 0x00ca, "\x00\x45\x03\x02" }, |
{ 0x00cb, "\x00\x45\x03\x08" }, |
{ 0x00cc, "\x00\x49\x03\x00" }, |
{ 0x00cd, "\x00\x49\x03\x01" }, |
{ 0x00ce, "\x00\x49\x03\x02" }, |
{ 0x00cf, "\x00\x49\x03\x08" }, |
{ 0x00d1, "\x00\x4e\x03\x03" }, |
{ 0x00d2, "\x00\x4f\x03\x00" }, |
{ 0x00d3, "\x00\x4f\x03\x01" }, |
{ 0x00d4, "\x00\x4f\x03\x02" }, |
{ 0x00d5, "\x00\x4f\x03\x03" }, |
{ 0x00d6, "\x00\x4f\x03\x08" }, |
{ 0x00d9, "\x00\x55\x03\x00" }, |
{ 0x00da, "\x00\x55\x03\x01" }, |
{ 0x00db, "\x00\x55\x03\x02" }, |
{ 0x00dc, "\x00\x55\x03\x08" }, |
{ 0x00dd, "\x00\x59\x03\x01" }, |
{ 0x00e0, "\x00\x61\x03\x00" }, |
{ 0x00e1, "\x00\x61\x03\x01" }, |
{ 0x00e2, "\x00\x61\x03\x02" }, |
{ 0x00e3, "\x00\x61\x03\x03" }, |
{ 0x00e4, "\x00\x61\x03\x08" }, |
{ 0x00e5, "\x00\x61\x03\x0a" }, |
{ 0x00e7, "\x00\x63\x03\x27" }, |
{ 0x00e8, "\x00\x65\x03\x00" }, |
{ 0x00e9, "\x00\x65\x03\x01" }, |
{ 0x00ea, "\x00\x65\x03\x02" }, |
{ 0x00eb, "\x00\x65\x03\x08" }, |
{ 0x00ec, "\x00\x69\x03\x00" }, |
{ 0x00ed, "\x00\x69\x03\x01" }, |
{ 0x00ee, "\x00\x69\x03\x02" }, |
{ 0x00ef, "\x00\x69\x03\x08" }, |
{ 0x00f1, "\x00\x6e\x03\x03" }, |
{ 0x00f2, "\x00\x6f\x03\x00" }, |
{ 0x00f3, "\x00\x6f\x03\x01" }, |
{ 0x00f4, "\x00\x6f\x03\x02" }, |
{ 0x00f5, "\x00\x6f\x03\x03" }, |
{ 0x00f6, "\x00\x6f\x03\x08" }, |
{ 0x00f9, "\x00\x75\x03\x00" }, |
{ 0x00fa, "\x00\x75\x03\x01" }, |
{ 0x00fb, "\x00\x75\x03\x02" }, |
{ 0x00fc, "\x00\x75\x03\x08" }, |
{ 0x00fd, "\x00\x79\x03\x01" }, |
{ 0x00ff, "\x00\x79\x03\x08" }, |
{ 0x0100, "\x00\x41\x03\x04" }, |
{ 0x0101, "\x00\x61\x03\x04" }, |
{ 0x0102, "\x00\x41\x03\x06" }, |
{ 0x0103, "\x00\x61\x03\x06" }, |
{ 0x0104, "\x00\x41\x03\x28" }, |
{ 0x0105, "\x00\x61\x03\x28" }, |
{ 0x0106, "\x00\x43\x03\x01" }, |
{ 0x0107, "\x00\x63\x03\x01" }, |
{ 0x0108, "\x00\x43\x03\x02" }, |
{ 0x0109, "\x00\x63\x03\x02" }, |
{ 0x010a, "\x00\x43\x03\x07" }, |
{ 0x010b, "\x00\x63\x03\x07" }, |
{ 0x010c, "\x00\x43\x03\x0c" }, |
{ 0x010d, "\x00\x63\x03\x0c" }, |
{ 0x010e, "\x00\x44\x03\x0c" }, |
{ 0x010f, "\x00\x64\x03\x0c" }, |
{ 0x0112, "\x00\x45\x03\x04" }, |
{ 0x0113, "\x00\x65\x03\x04" }, |
{ 0x0114, "\x00\x45\x03\x06" }, |
{ 0x0115, "\x00\x65\x03\x06" }, |
{ 0x0116, "\x00\x45\x03\x07" }, |
{ 0x0117, "\x00\x65\x03\x07" }, |
{ 0x0118, "\x00\x45\x03\x28" }, |
{ 0x0119, "\x00\x65\x03\x28" }, |
{ 0x011a, "\x00\x45\x03\x0c" }, |
{ 0x011b, "\x00\x65\x03\x0c" }, |
{ 0x011c, "\x00\x47\x03\x02" }, |
{ 0x011d, "\x00\x67\x03\x02" }, |
{ 0x011e, "\x00\x47\x03\x06" }, |
{ 0x011f, "\x00\x67\x03\x06" }, |
{ 0x0120, "\x00\x47\x03\x07" }, |
{ 0x0121, "\x00\x67\x03\x07" }, |
{ 0x0122, "\x00\x47\x03\x27" }, |
{ 0x0123, "\x00\x67\x03\x27" }, |
{ 0x0124, "\x00\x48\x03\x02" }, |
{ 0x0125, "\x00\x68\x03\x02" }, |
{ 0x0128, "\x00\x49\x03\x03" }, |
{ 0x0129, "\x00\x69\x03\x03" }, |
{ 0x012a, "\x00\x49\x03\x04" }, |
{ 0x012b, "\x00\x69\x03\x04" }, |
{ 0x012c, "\x00\x49\x03\x06" }, |
{ 0x012d, "\x00\x69\x03\x06" }, |
{ 0x012e, "\x00\x49\x03\x28" }, |
{ 0x012f, "\x00\x69\x03\x28" }, |
{ 0x0130, "\x00\x49\x03\x07" }, |
{ 0x0134, "\x00\x4a\x03\x02" }, |
{ 0x0135, "\x00\x6a\x03\x02" }, |
{ 0x0136, "\x00\x4b\x03\x27" }, |
{ 0x0137, "\x00\x6b\x03\x27" }, |
{ 0x0139, "\x00\x4c\x03\x01" }, |
{ 0x013a, "\x00\x6c\x03\x01" }, |
{ 0x013b, "\x00\x4c\x03\x27" }, |
{ 0x013c, "\x00\x6c\x03\x27" }, |
{ 0x013d, "\x00\x4c\x03\x0c" }, |
{ 0x013e, "\x00\x6c\x03\x0c" }, |
{ 0x0143, "\x00\x4e\x03\x01" }, |
{ 0x0144, "\x00\x6e\x03\x01" }, |
{ 0x0145, "\x00\x4e\x03\x27" }, |
{ 0x0146, "\x00\x6e\x03\x27" }, |
{ 0x0147, "\x00\x4e\x03\x0c" }, |
{ 0x0148, "\x00\x6e\x03\x0c" }, |
{ 0x014c, "\x00\x4f\x03\x04" }, |
{ 0x014d, "\x00\x6f\x03\x04" }, |
{ 0x014e, "\x00\x4f\x03\x06" }, |
{ 0x014f, "\x00\x6f\x03\x06" }, |
{ 0x0150, "\x00\x4f\x03\x0b" }, |
{ 0x0151, "\x00\x6f\x03\x0b" }, |
{ 0x0154, "\x00\x52\x03\x01" }, |
{ 0x0155, "\x00\x72\x03\x01" }, |
{ 0x0156, "\x00\x52\x03\x27" }, |
{ 0x0157, "\x00\x72\x03\x27" }, |
{ 0x0158, "\x00\x52\x03\x0c" }, |
{ 0x0159, "\x00\x72\x03\x0c" }, |
{ 0x015a, "\x00\x53\x03\x01" }, |
{ 0x015b, "\x00\x73\x03\x01" }, |
{ 0x015c, "\x00\x53\x03\x02" }, |
{ 0x015d, "\x00\x73\x03\x02" }, |
{ 0x015e, "\x00\x53\x03\x27" }, |
{ 0x015f, "\x00\x73\x03\x27" }, |
{ 0x0160, "\x00\x53\x03\x0c" }, |
{ 0x0161, "\x00\x73\x03\x0c" }, |
{ 0x0162, "\x00\x54\x03\x27" }, |
{ 0x0163, "\x00\x74\x03\x27" }, |
{ 0x0164, "\x00\x54\x03\x0c" }, |
{ 0x0165, "\x00\x74\x03\x0c" }, |
{ 0x0168, "\x00\x55\x03\x03" }, |
{ 0x0169, "\x00\x75\x03\x03" }, |
{ 0x016a, "\x00\x55\x03\x04" }, |
{ 0x016b, "\x00\x75\x03\x04" }, |
{ 0x016c, "\x00\x55\x03\x06" }, |
{ 0x016d, "\x00\x75\x03\x06" }, |
{ 0x016e, "\x00\x55\x03\x0a" }, |
{ 0x016f, "\x00\x75\x03\x0a" }, |
{ 0x0170, "\x00\x55\x03\x0b" }, |
{ 0x0171, "\x00\x75\x03\x0b" }, |
{ 0x0172, "\x00\x55\x03\x28" }, |
{ 0x0173, "\x00\x75\x03\x28" }, |
{ 0x0174, "\x00\x57\x03\x02" }, |
{ 0x0175, "\x00\x77\x03\x02" }, |
{ 0x0176, "\x00\x59\x03\x02" }, |
{ 0x0177, "\x00\x79\x03\x02" }, |
{ 0x0178, "\x00\x59\x03\x08" }, |
{ 0x0179, "\x00\x5a\x03\x01" }, |
{ 0x017a, "\x00\x7a\x03\x01" }, |
{ 0x017b, "\x00\x5a\x03\x07" }, |
{ 0x017c, "\x00\x7a\x03\x07" }, |
{ 0x017d, "\x00\x5a\x03\x0c" }, |
{ 0x017e, "\x00\x7a\x03\x0c" }, |
{ 0x01a0, "\x00\x4f\x03\x1b" }, |
{ 0x01a1, "\x00\x6f\x03\x1b" }, |
{ 0x01af, "\x00\x55\x03\x1b" }, |
{ 0x01b0, "\x00\x75\x03\x1b" }, |
{ 0x01cd, "\x00\x41\x03\x0c" }, |
{ 0x01ce, "\x00\x61\x03\x0c" }, |
{ 0x01cf, "\x00\x49\x03\x0c" }, |
{ 0x01d0, "\x00\x69\x03\x0c" }, |
{ 0x01d1, "\x00\x4f\x03\x0c" }, |
{ 0x01d2, "\x00\x6f\x03\x0c" }, |
{ 0x01d3, "\x00\x55\x03\x0c" }, |
{ 0x01d4, "\x00\x75\x03\x0c" }, |
{ 0x01d5, "\x00\xdc\x03\x04" }, |
{ 0x01d6, "\x00\xfc\x03\x04" }, |
{ 0x01d7, "\x00\xdc\x03\x01" }, |
{ 0x01d8, "\x00\xfc\x03\x01" }, |
{ 0x01d9, "\x00\xdc\x03\x0c" }, |
{ 0x01da, "\x00\xfc\x03\x0c" }, |
{ 0x01db, "\x00\xdc\x03\x00" }, |
{ 0x01dc, "\x00\xfc\x03\x00" }, |
{ 0x01de, "\x00\xc4\x03\x04" }, |
{ 0x01df, "\x00\xe4\x03\x04" }, |
{ 0x01e0, "\x02\x26\x03\x04" }, |
{ 0x01e1, "\x02\x27\x03\x04" }, |
{ 0x01e2, "\x00\xc6\x03\x04" }, |
{ 0x01e3, "\x00\xe6\x03\x04" }, |
{ 0x01e6, "\x00\x47\x03\x0c" }, |
{ 0x01e7, "\x00\x67\x03\x0c" }, |
{ 0x01e8, "\x00\x4b\x03\x0c" }, |
{ 0x01e9, "\x00\x6b\x03\x0c" }, |
{ 0x01ea, "\x00\x4f\x03\x28" }, |
{ 0x01eb, "\x00\x6f\x03\x28" }, |
{ 0x01ec, "\x01\xea\x03\x04" }, |
{ 0x01ed, "\x01\xeb\x03\x04" }, |
{ 0x01ee, "\x01\xb7\x03\x0c" }, |
{ 0x01ef, "\x02\x92\x03\x0c" }, |
{ 0x01f0, "\x00\x6a\x03\x0c" }, |
{ 0x01f4, "\x00\x47\x03\x01" }, |
{ 0x01f5, "\x00\x67\x03\x01" }, |
{ 0x01f8, "\x00\x4e\x03\x00" }, |
{ 0x01f9, "\x00\x6e\x03\x00" }, |
{ 0x01fa, "\x00\xc5\x03\x01" }, |
{ 0x01fb, "\x00\xe5\x03\x01" }, |
{ 0x01fc, "\x00\xc6\x03\x01" }, |
{ 0x01fd, "\x00\xe6\x03\x01" }, |
{ 0x01fe, "\x00\xd8\x03\x01" }, |
{ 0x01ff, "\x00\xf8\x03\x01" }, |
{ 0x0200, "\x00\x41\x03\x0f" }, |
{ 0x0201, "\x00\x61\x03\x0f" }, |
{ 0x0202, "\x00\x41\x03\x11" }, |
{ 0x0203, "\x00\x61\x03\x11" }, |
{ 0x0204, "\x00\x45\x03\x0f" }, |
{ 0x0205, "\x00\x65\x03\x0f" }, |
{ 0x0206, "\x00\x45\x03\x11" }, |
{ 0x0207, "\x00\x65\x03\x11" }, |
{ 0x0208, "\x00\x49\x03\x0f" }, |
{ 0x0209, "\x00\x69\x03\x0f" }, |
{ 0x020a, "\x00\x49\x03\x11" }, |
{ 0x020b, "\x00\x69\x03\x11" }, |
{ 0x020c, "\x00\x4f\x03\x0f" }, |
{ 0x020d, "\x00\x6f\x03\x0f" }, |
{ 0x020e, "\x00\x4f\x03\x11" }, |
{ 0x020f, "\x00\x6f\x03\x11" }, |
{ 0x0210, "\x00\x52\x03\x0f" }, |
{ 0x0211, "\x00\x72\x03\x0f" }, |
{ 0x0212, "\x00\x52\x03\x11" }, |
{ 0x0213, "\x00\x72\x03\x11" }, |
{ 0x0214, "\x00\x55\x03\x0f" }, |
{ 0x0215, "\x00\x75\x03\x0f" }, |
{ 0x0216, "\x00\x55\x03\x11" }, |
{ 0x0217, "\x00\x75\x03\x11" }, |
{ 0x0218, "\x00\x53\x03\x26" }, |
{ 0x0219, "\x00\x73\x03\x26" }, |
{ 0x021a, "\x00\x54\x03\x26" }, |
{ 0x021b, "\x00\x74\x03\x26" }, |
{ 0x021e, "\x00\x48\x03\x0c" }, |
{ 0x021f, "\x00\x68\x03\x0c" }, |
{ 0x0226, "\x00\x41\x03\x07" }, |
{ 0x0227, "\x00\x61\x03\x07" }, |
{ 0x0228, "\x00\x45\x03\x27" }, |
{ 0x0229, "\x00\x65\x03\x27" }, |
{ 0x022a, "\x00\xd6\x03\x04" }, |
{ 0x022b, "\x00\xf6\x03\x04" }, |
{ 0x022c, "\x00\xd5\x03\x04" }, |
{ 0x022d, "\x00\xf5\x03\x04" }, |
{ 0x022e, "\x00\x4f\x03\x07" }, |
{ 0x022f, "\x00\x6f\x03\x07" }, |
{ 0x0230, "\x02\x2e\x03\x04" }, |
{ 0x0231, "\x02\x2f\x03\x04" }, |
{ 0x0232, "\x00\x59\x03\x04" }, |
{ 0x0233, "\x00\x79\x03\x04" }, |
{ 0x0340, "\x03\x00" }, |
{ 0x0341, "\x03\x01" }, |
{ 0x0343, "\x03\x13" }, |
{ 0x0344, "\x03\x08\x03\x01" }, |
{ 0x0374, "\x02\xb9" }, |
{ 0x037e, "\x00\x3b" }, |
{ 0x0385, "\x00\xa8\x03\x01" }, |
{ 0x0386, "\x03\x91\x03\x01" }, |
{ 0x0387, "\x00\xb7" }, |
{ 0x0388, "\x03\x95\x03\x01" }, |
{ 0x0389, "\x03\x97\x03\x01" }, |
{ 0x038a, "\x03\x99\x03\x01" }, |
{ 0x038c, "\x03\x9f\x03\x01" }, |
{ 0x038e, "\x03\xa5\x03\x01" }, |
{ 0x038f, "\x03\xa9\x03\x01" }, |
{ 0x0390, "\x03\xca\x03\x01" }, |
{ 0x03aa, "\x03\x99\x03\x08" }, |
{ 0x03ab, "\x03\xa5\x03\x08" }, |
{ 0x03ac, "\x03\xb1\x03\x01" }, |
{ 0x03ad, "\x03\xb5\x03\x01" }, |
{ 0x03ae, "\x03\xb7\x03\x01" }, |
{ 0x03af, "\x03\xb9\x03\x01" }, |
{ 0x03b0, "\x03\xcb\x03\x01" }, |
{ 0x03ca, "\x03\xb9\x03\x08" }, |
{ 0x03cb, "\x03\xc5\x03\x08" }, |
{ 0x03cc, "\x03\xbf\x03\x01" }, |
{ 0x03cd, "\x03\xc5\x03\x01" }, |
{ 0x03ce, "\x03\xc9\x03\x01" }, |
{ 0x03d3, "\x03\xd2\x03\x01" }, |
{ 0x03d4, "\x03\xd2\x03\x08" }, |
{ 0x0400, "\x04\x15\x03\x00" }, |
{ 0x0401, "\x04\x15\x03\x08" }, |
{ 0x0403, "\x04\x13\x03\x01" }, |
{ 0x0407, "\x04\x06\x03\x08" }, |
{ 0x040c, "\x04\x1a\x03\x01" }, |
{ 0x040d, "\x04\x18\x03\x00" }, |
{ 0x040e, "\x04\x23\x03\x06" }, |
{ 0x0419, "\x04\x18\x03\x06" }, |
{ 0x0439, "\x04\x38\x03\x06" }, |
{ 0x0450, "\x04\x35\x03\x00" }, |
{ 0x0451, "\x04\x35\x03\x08" }, |
{ 0x0453, "\x04\x33\x03\x01" }, |
{ 0x0457, "\x04\x56\x03\x08" }, |
{ 0x045c, "\x04\x3a\x03\x01" }, |
{ 0x045d, "\x04\x38\x03\x00" }, |
{ 0x045e, "\x04\x43\x03\x06" }, |
{ 0x0476, "\x04\x74\x03\x0f" }, |
{ 0x0477, "\x04\x75\x03\x0f" }, |
{ 0x04c1, "\x04\x16\x03\x06" }, |
{ 0x04c2, "\x04\x36\x03\x06" }, |
{ 0x04d0, "\x04\x10\x03\x06" }, |
{ 0x04d1, "\x04\x30\x03\x06" }, |
{ 0x04d2, "\x04\x10\x03\x08" }, |
{ 0x04d3, "\x04\x30\x03\x08" }, |
{ 0x04d6, "\x04\x15\x03\x06" }, |
{ 0x04d7, "\x04\x35\x03\x06" }, |
{ 0x04da, "\x04\xd8\x03\x08" }, |
{ 0x04db, "\x04\xd9\x03\x08" }, |
{ 0x04dc, "\x04\x16\x03\x08" }, |
{ 0x04dd, "\x04\x36\x03\x08" }, |
{ 0x04de, "\x04\x17\x03\x08" }, |
{ 0x04df, "\x04\x37\x03\x08" }, |
{ 0x04e2, "\x04\x18\x03\x04" }, |
{ 0x04e3, "\x04\x38\x03\x04" }, |
{ 0x04e4, "\x04\x18\x03\x08" }, |
{ 0x04e5, "\x04\x38\x03\x08" }, |
{ 0x04e6, "\x04\x1e\x03\x08" }, |
{ 0x04e7, "\x04\x3e\x03\x08" }, |
{ 0x04ea, "\x04\xe8\x03\x08" }, |
{ 0x04eb, "\x04\xe9\x03\x08" }, |
{ 0x04ec, "\x04\x2d\x03\x08" }, |
{ 0x04ed, "\x04\x4d\x03\x08" }, |
{ 0x04ee, "\x04\x23\x03\x04" }, |
{ 0x04ef, "\x04\x43\x03\x04" }, |
{ 0x04f0, "\x04\x23\x03\x08" }, |
{ 0x04f1, "\x04\x43\x03\x08" }, |
{ 0x04f2, "\x04\x23\x03\x0b" }, |
{ 0x04f3, "\x04\x43\x03\x0b" }, |
{ 0x04f4, "\x04\x27\x03\x08" }, |
{ 0x04f5, "\x04\x47\x03\x08" }, |
{ 0x04f8, "\x04\x2b\x03\x08" }, |
{ 0x04f9, "\x04\x4b\x03\x08" }, |
{ 0x0622, "\x06\x27\x06\x53" }, |
{ 0x0623, "\x06\x27\x06\x54" }, |
{ 0x0624, "\x06\x48\x06\x54" }, |
{ 0x0625, "\x06\x27\x06\x55" }, |
{ 0x0626, "\x06\x4a\x06\x54" }, |
{ 0x06c0, "\x06\xd5\x06\x54" }, |
{ 0x06c2, "\x06\xc1\x06\x54" }, |
{ 0x06d3, "\x06\xd2\x06\x54" }, |
{ 0x0929, "\x09\x28\x09\x3c" }, |
{ 0x0931, "\x09\x30\x09\x3c" }, |
{ 0x0934, "\x09\x33\x09\x3c" }, |
{ 0x0958, "\x09\x15\x09\x3c" }, |
{ 0x0959, "\x09\x16\x09\x3c" }, |
{ 0x095a, "\x09\x17\x09\x3c" }, |
{ 0x095b, "\x09\x1c\x09\x3c" }, |
{ 0x095c, "\x09\x21\x09\x3c" }, |
{ 0x095d, "\x09\x22\x09\x3c" }, |
{ 0x095e, "\x09\x2b\x09\x3c" }, |
{ 0x095f, "\x09\x2f\x09\x3c" }, |
{ 0x09cb, "\x09\xc7\x09\xbe" }, |
{ 0x09cc, "\x09\xc7\x09\xd7" }, |
{ 0x09dc, "\x09\xa1\x09\xbc" }, |
{ 0x09dd, "\x09\xa2\x09\xbc" }, |
{ 0x09df, "\x09\xaf\x09\xbc" }, |
{ 0x0a33, "\x0a\x32\x0a\x3c" }, |
{ 0x0a36, "\x0a\x38\x0a\x3c" }, |
{ 0x0a59, "\x0a\x16\x0a\x3c" }, |
{ 0x0a5a, "\x0a\x17\x0a\x3c" }, |
{ 0x0a5b, "\x0a\x1c\x0a\x3c" }, |
{ 0x0a5e, "\x0a\x2b\x0a\x3c" }, |
{ 0x0b48, "\x0b\x47\x0b\x56" }, |
{ 0x0b4b, "\x0b\x47\x0b\x3e" }, |
{ 0x0b4c, "\x0b\x47\x0b\x57" }, |
{ 0x0b5c, "\x0b\x21\x0b\x3c" }, |
{ 0x0b5d, "\x0b\x22\x0b\x3c" }, |
{ 0x0b94, "\x0b\x92\x0b\xd7" }, |
{ 0x0bca, "\x0b\xc6\x0b\xbe" }, |
{ 0x0bcb, "\x0b\xc7\x0b\xbe" }, |
{ 0x0bcc, "\x0b\xc6\x0b\xd7" }, |
{ 0x0c48, "\x0c\x46\x0c\x56" }, |
{ 0x0cc0, "\x0c\xbf\x0c\xd5" }, |
{ 0x0cc7, "\x0c\xc6\x0c\xd5" }, |
{ 0x0cc8, "\x0c\xc6\x0c\xd6" }, |
{ 0x0cca, "\x0c\xc6\x0c\xc2" }, |
{ 0x0ccb, "\x0c\xca\x0c\xd5" }, |
{ 0x0d4a, "\x0d\x46\x0d\x3e" }, |
{ 0x0d4b, "\x0d\x47\x0d\x3e" }, |
{ 0x0d4c, "\x0d\x46\x0d\x57" }, |
{ 0x0dda, "\x0d\xd9\x0d\xca" }, |
{ 0x0ddc, "\x0d\xd9\x0d\xcf" }, |
{ 0x0ddd, "\x0d\xdc\x0d\xca" }, |
{ 0x0dde, "\x0d\xd9\x0d\xdf" }, |
{ 0x0f43, "\x0f\x42\x0f\xb7" }, |
{ 0x0f4d, "\x0f\x4c\x0f\xb7" }, |
{ 0x0f52, "\x0f\x51\x0f\xb7" }, |
{ 0x0f57, "\x0f\x56\x0f\xb7" }, |
{ 0x0f5c, "\x0f\x5b\x0f\xb7" }, |
{ 0x0f69, "\x0f\x40\x0f\xb5" }, |
{ 0x0f73, "\x0f\x71\x0f\x72" }, |
{ 0x0f75, "\x0f\x71\x0f\x74" }, |
{ 0x0f76, "\x0f\xb2\x0f\x80" }, |
{ 0x0f78, "\x0f\xb3\x0f\x80" }, |
{ 0x0f81, "\x0f\x71\x0f\x80" }, |
{ 0x0f93, "\x0f\x92\x0f\xb7" }, |
{ 0x0f9d, "\x0f\x9c\x0f\xb7" }, |
{ 0x0fa2, "\x0f\xa1\x0f\xb7" }, |
{ 0x0fa7, "\x0f\xa6\x0f\xb7" }, |
{ 0x0fac, "\x0f\xab\x0f\xb7" }, |
{ 0x0fb9, "\x0f\x90\x0f\xb5" }, |
{ 0x1026, "\x10\x25\x10\x2e" }, |
{ 0x1e00, "\x00\x41\x03\x25" }, |
{ 0x1e01, "\x00\x61\x03\x25" }, |
{ 0x1e02, "\x00\x42\x03\x07" }, |
{ 0x1e03, "\x00\x62\x03\x07" }, |
{ 0x1e04, "\x00\x42\x03\x23" }, |
{ 0x1e05, "\x00\x62\x03\x23" }, |
{ 0x1e06, "\x00\x42\x03\x31" }, |
{ 0x1e07, "\x00\x62\x03\x31" }, |
{ 0x1e08, "\x00\xc7\x03\x01" }, |
{ 0x1e09, "\x00\xe7\x03\x01" }, |
{ 0x1e0a, "\x00\x44\x03\x07" }, |
{ 0x1e0b, "\x00\x64\x03\x07" }, |
{ 0x1e0c, "\x00\x44\x03\x23" }, |
{ 0x1e0d, "\x00\x64\x03\x23" }, |
{ 0x1e0e, "\x00\x44\x03\x31" }, |
{ 0x1e0f, "\x00\x64\x03\x31" }, |
{ 0x1e10, "\x00\x44\x03\x27" }, |
{ 0x1e11, "\x00\x64\x03\x27" }, |
{ 0x1e12, "\x00\x44\x03\x2d" }, |
{ 0x1e13, "\x00\x64\x03\x2d" }, |
{ 0x1e14, "\x01\x12\x03\x00" }, |
{ 0x1e15, "\x01\x13\x03\x00" }, |
{ 0x1e16, "\x01\x12\x03\x01" }, |
{ 0x1e17, "\x01\x13\x03\x01" }, |
{ 0x1e18, "\x00\x45\x03\x2d" }, |
{ 0x1e19, "\x00\x65\x03\x2d" }, |
{ 0x1e1a, "\x00\x45\x03\x30" }, |
{ 0x1e1b, "\x00\x65\x03\x30" }, |
{ 0x1e1c, "\x02\x28\x03\x06" }, |
{ 0x1e1d, "\x02\x29\x03\x06" }, |
{ 0x1e1e, "\x00\x46\x03\x07" }, |
{ 0x1e1f, "\x00\x66\x03\x07" }, |
{ 0x1e20, "\x00\x47\x03\x04" }, |
{ 0x1e21, "\x00\x67\x03\x04" }, |
{ 0x1e22, "\x00\x48\x03\x07" }, |
{ 0x1e23, "\x00\x68\x03\x07" }, |
{ 0x1e24, "\x00\x48\x03\x23" }, |
{ 0x1e25, "\x00\x68\x03\x23" }, |
{ 0x1e26, "\x00\x48\x03\x08" }, |
{ 0x1e27, "\x00\x68\x03\x08" }, |
{ 0x1e28, "\x00\x48\x03\x27" }, |
{ 0x1e29, "\x00\x68\x03\x27" }, |
{ 0x1e2a, "\x00\x48\x03\x2e" }, |
{ 0x1e2b, "\x00\x68\x03\x2e" }, |
{ 0x1e2c, "\x00\x49\x03\x30" }, |
{ 0x1e2d, "\x00\x69\x03\x30" }, |
{ 0x1e2e, "\x00\xcf\x03\x01" }, |
{ 0x1e2f, "\x00\xef\x03\x01" }, |
{ 0x1e30, "\x00\x4b\x03\x01" }, |
{ 0x1e31, "\x00\x6b\x03\x01" }, |
{ 0x1e32, "\x00\x4b\x03\x23" }, |
{ 0x1e33, "\x00\x6b\x03\x23" }, |
{ 0x1e34, "\x00\x4b\x03\x31" }, |
{ 0x1e35, "\x00\x6b\x03\x31" }, |
{ 0x1e36, "\x00\x4c\x03\x23" }, |
{ 0x1e37, "\x00\x6c\x03\x23" }, |
{ 0x1e38, "\x1e\x36\x03\x04" }, |
{ 0x1e39, "\x1e\x37\x03\x04" }, |
{ 0x1e3a, "\x00\x4c\x03\x31" }, |
{ 0x1e3b, "\x00\x6c\x03\x31" }, |
{ 0x1e3c, "\x00\x4c\x03\x2d" }, |
{ 0x1e3d, "\x00\x6c\x03\x2d" }, |
{ 0x1e3e, "\x00\x4d\x03\x01" }, |
{ 0x1e3f, "\x00\x6d\x03\x01" }, |
{ 0x1e40, "\x00\x4d\x03\x07" }, |
{ 0x1e41, "\x00\x6d\x03\x07" }, |
{ 0x1e42, "\x00\x4d\x03\x23" }, |
{ 0x1e43, "\x00\x6d\x03\x23" }, |
{ 0x1e44, "\x00\x4e\x03\x07" }, |
{ 0x1e45, "\x00\x6e\x03\x07" }, |
{ 0x1e46, "\x00\x4e\x03\x23" }, |
{ 0x1e47, "\x00\x6e\x03\x23" }, |
{ 0x1e48, "\x00\x4e\x03\x31" }, |
{ 0x1e49, "\x00\x6e\x03\x31" }, |
{ 0x1e4a, "\x00\x4e\x03\x2d" }, |
{ 0x1e4b, "\x00\x6e\x03\x2d" }, |
{ 0x1e4c, "\x00\xd5\x03\x01" }, |
{ 0x1e4d, "\x00\xf5\x03\x01" }, |
{ 0x1e4e, "\x00\xd5\x03\x08" }, |
{ 0x1e4f, "\x00\xf5\x03\x08" }, |
{ 0x1e50, "\x01\x4c\x03\x00" }, |
{ 0x1e51, "\x01\x4d\x03\x00" }, |
{ 0x1e52, "\x01\x4c\x03\x01" }, |
{ 0x1e53, "\x01\x4d\x03\x01" }, |
{ 0x1e54, "\x00\x50\x03\x01" }, |
{ 0x1e55, "\x00\x70\x03\x01" }, |
{ 0x1e56, "\x00\x50\x03\x07" }, |
{ 0x1e57, "\x00\x70\x03\x07" }, |
{ 0x1e58, "\x00\x52\x03\x07" }, |
{ 0x1e59, "\x00\x72\x03\x07" }, |
{ 0x1e5a, "\x00\x52\x03\x23" }, |
{ 0x1e5b, "\x00\x72\x03\x23" }, |
{ 0x1e5c, "\x1e\x5a\x03\x04" }, |
{ 0x1e5d, "\x1e\x5b\x03\x04" }, |
{ 0x1e5e, "\x00\x52\x03\x31" }, |
{ 0x1e5f, "\x00\x72\x03\x31" }, |
{ 0x1e60, "\x00\x53\x03\x07" }, |
{ 0x1e61, "\x00\x73\x03\x07" }, |
{ 0x1e62, "\x00\x53\x03\x23" }, |
{ 0x1e63, "\x00\x73\x03\x23" }, |
{ 0x1e64, "\x01\x5a\x03\x07" }, |
{ 0x1e65, "\x01\x5b\x03\x07" }, |
{ 0x1e66, "\x01\x60\x03\x07" }, |
{ 0x1e67, "\x01\x61\x03\x07" }, |
{ 0x1e68, "\x1e\x62\x03\x07" }, |
{ 0x1e69, "\x1e\x63\x03\x07" }, |
{ 0x1e6a, "\x00\x54\x03\x07" }, |
{ 0x1e6b, "\x00\x74\x03\x07" }, |
{ 0x1e6c, "\x00\x54\x03\x23" }, |
{ 0x1e6d, "\x00\x74\x03\x23" }, |
{ 0x1e6e, "\x00\x54\x03\x31" }, |
{ 0x1e6f, "\x00\x74\x03\x31" }, |
{ 0x1e70, "\x00\x54\x03\x2d" }, |
{ 0x1e71, "\x00\x74\x03\x2d" }, |
{ 0x1e72, "\x00\x55\x03\x24" }, |
{ 0x1e73, "\x00\x75\x03\x24" }, |
{ 0x1e74, "\x00\x55\x03\x30" }, |
{ 0x1e75, "\x00\x75\x03\x30" }, |
{ 0x1e76, "\x00\x55\x03\x2d" }, |
{ 0x1e77, "\x00\x75\x03\x2d" }, |
{ 0x1e78, "\x01\x68\x03\x01" }, |
{ 0x1e79, "\x01\x69\x03\x01" }, |
{ 0x1e7a, "\x01\x6a\x03\x08" }, |
{ 0x1e7b, "\x01\x6b\x03\x08" }, |
{ 0x1e7c, "\x00\x56\x03\x03" }, |
{ 0x1e7d, "\x00\x76\x03\x03" }, |
{ 0x1e7e, "\x00\x56\x03\x23" }, |
{ 0x1e7f, "\x00\x76\x03\x23" }, |
{ 0x1e80, "\x00\x57\x03\x00" }, |
{ 0x1e81, "\x00\x77\x03\x00" }, |
{ 0x1e82, "\x00\x57\x03\x01" }, |
{ 0x1e83, "\x00\x77\x03\x01" }, |
{ 0x1e84, "\x00\x57\x03\x08" }, |
{ 0x1e85, "\x00\x77\x03\x08" }, |
{ 0x1e86, "\x00\x57\x03\x07" }, |
{ 0x1e87, "\x00\x77\x03\x07" }, |
{ 0x1e88, "\x00\x57\x03\x23" }, |
{ 0x1e89, "\x00\x77\x03\x23" }, |
{ 0x1e8a, "\x00\x58\x03\x07" }, |
{ 0x1e8b, "\x00\x78\x03\x07" }, |
{ 0x1e8c, "\x00\x58\x03\x08" }, |
{ 0x1e8d, "\x00\x78\x03\x08" }, |
{ 0x1e8e, "\x00\x59\x03\x07" }, |
{ 0x1e8f, "\x00\x79\x03\x07" }, |
{ 0x1e90, "\x00\x5a\x03\x02" }, |
{ 0x1e91, "\x00\x7a\x03\x02" }, |
{ 0x1e92, "\x00\x5a\x03\x23" }, |
{ 0x1e93, "\x00\x7a\x03\x23" }, |
{ 0x1e94, "\x00\x5a\x03\x31" }, |
{ 0x1e95, "\x00\x7a\x03\x31" }, |
{ 0x1e96, "\x00\x68\x03\x31" }, |
{ 0x1e97, "\x00\x74\x03\x08" }, |
{ 0x1e98, "\x00\x77\x03\x0a" }, |
{ 0x1e99, "\x00\x79\x03\x0a" }, |
{ 0x1e9b, "\x01\x7f\x03\x07" }, |
{ 0x1ea0, "\x00\x41\x03\x23" }, |
{ 0x1ea1, "\x00\x61\x03\x23" }, |
{ 0x1ea2, "\x00\x41\x03\x09" }, |
{ 0x1ea3, "\x00\x61\x03\x09" }, |
{ 0x1ea4, "\x00\xc2\x03\x01" }, |
{ 0x1ea5, "\x00\xe2\x03\x01" }, |
{ 0x1ea6, "\x00\xc2\x03\x00" }, |
{ 0x1ea7, "\x00\xe2\x03\x00" }, |
{ 0x1ea8, "\x00\xc2\x03\x09" }, |
{ 0x1ea9, "\x00\xe2\x03\x09" }, |
{ 0x1eaa, "\x00\xc2\x03\x03" }, |
{ 0x1eab, "\x00\xe2\x03\x03" }, |
{ 0x1eac, "\x1e\xa0\x03\x02" }, |
{ 0x1ead, "\x1e\xa1\x03\x02" }, |
{ 0x1eae, "\x01\x02\x03\x01" }, |
{ 0x1eaf, "\x01\x03\x03\x01" }, |
{ 0x1eb0, "\x01\x02\x03\x00" }, |
{ 0x1eb1, "\x01\x03\x03\x00" }, |
{ 0x1eb2, "\x01\x02\x03\x09" }, |
{ 0x1eb3, "\x01\x03\x03\x09" }, |
{ 0x1eb4, "\x01\x02\x03\x03" }, |
{ 0x1eb5, "\x01\x03\x03\x03" }, |
{ 0x1eb6, "\x1e\xa0\x03\x06" }, |
{ 0x1eb7, "\x1e\xa1\x03\x06" }, |
{ 0x1eb8, "\x00\x45\x03\x23" }, |
{ 0x1eb9, "\x00\x65\x03\x23" }, |
{ 0x1eba, "\x00\x45\x03\x09" }, |
{ 0x1ebb, "\x00\x65\x03\x09" }, |
{ 0x1ebc, "\x00\x45\x03\x03" }, |
{ 0x1ebd, "\x00\x65\x03\x03" }, |
{ 0x1ebe, "\x00\xca\x03\x01" }, |
{ 0x1ebf, "\x00\xea\x03\x01" }, |
{ 0x1ec0, "\x00\xca\x03\x00" }, |
{ 0x1ec1, "\x00\xea\x03\x00" }, |
{ 0x1ec2, "\x00\xca\x03\x09" }, |
{ 0x1ec3, "\x00\xea\x03\x09" }, |
{ 0x1ec4, "\x00\xca\x03\x03" }, |
{ 0x1ec5, "\x00\xea\x03\x03" }, |
{ 0x1ec6, "\x1e\xb8\x03\x02" }, |
{ 0x1ec7, "\x1e\xb9\x03\x02" }, |
{ 0x1ec8, "\x00\x49\x03\x09" }, |
{ 0x1ec9, "\x00\x69\x03\x09" }, |
{ 0x1eca, "\x00\x49\x03\x23" }, |
{ 0x1ecb, "\x00\x69\x03\x23" }, |
{ 0x1ecc, "\x00\x4f\x03\x23" }, |
{ 0x1ecd, "\x00\x6f\x03\x23" }, |
{ 0x1ece, "\x00\x4f\x03\x09" }, |
{ 0x1ecf, "\x00\x6f\x03\x09" }, |
{ 0x1ed0, "\x00\xd4\x03\x01" }, |
{ 0x1ed1, "\x00\xf4\x03\x01" }, |
{ 0x1ed2, "\x00\xd4\x03\x00" }, |
{ 0x1ed3, "\x00\xf4\x03\x00" }, |
{ 0x1ed4, "\x00\xd4\x03\x09" }, |
{ 0x1ed5, "\x00\xf4\x03\x09" }, |
{ 0x1ed6, "\x00\xd4\x03\x03" }, |
{ 0x1ed7, "\x00\xf4\x03\x03" }, |
{ 0x1ed8, "\x1e\xcc\x03\x02" }, |
{ 0x1ed9, "\x1e\xcd\x03\x02" }, |
{ 0x1eda, "\x01\xa0\x03\x01" }, |
{ 0x1edb, "\x01\xa1\x03\x01" }, |
{ 0x1edc, "\x01\xa0\x03\x00" }, |
{ 0x1edd, "\x01\xa1\x03\x00" }, |
{ 0x1ede, "\x01\xa0\x03\x09" }, |
{ 0x1edf, "\x01\xa1\x03\x09" }, |
{ 0x1ee0, "\x01\xa0\x03\x03" }, |
{ 0x1ee1, "\x01\xa1\x03\x03" }, |
{ 0x1ee2, "\x01\xa0\x03\x23" }, |
{ 0x1ee3, "\x01\xa1\x03\x23" }, |
{ 0x1ee4, "\x00\x55\x03\x23" }, |
{ 0x1ee5, "\x00\x75\x03\x23" }, |
{ 0x1ee6, "\x00\x55\x03\x09" }, |
{ 0x1ee7, "\x00\x75\x03\x09" }, |
{ 0x1ee8, "\x01\xaf\x03\x01" }, |
{ 0x1ee9, "\x01\xb0\x03\x01" }, |
{ 0x1eea, "\x01\xaf\x03\x00" }, |
{ 0x1eeb, "\x01\xb0\x03\x00" }, |
{ 0x1eec, "\x01\xaf\x03\x09" }, |
{ 0x1eed, "\x01\xb0\x03\x09" }, |
{ 0x1eee, "\x01\xaf\x03\x03" }, |
{ 0x1eef, "\x01\xb0\x03\x03" }, |
{ 0x1ef0, "\x01\xaf\x03\x23" }, |
{ 0x1ef1, "\x01\xb0\x03\x23" }, |
{ 0x1ef2, "\x00\x59\x03\x00" }, |
{ 0x1ef3, "\x00\x79\x03\x00" }, |
{ 0x1ef4, "\x00\x59\x03\x23" }, |
{ 0x1ef5, "\x00\x79\x03\x23" }, |
{ 0x1ef6, "\x00\x59\x03\x09" }, |
{ 0x1ef7, "\x00\x79\x03\x09" }, |
{ 0x1ef8, "\x00\x59\x03\x03" }, |
{ 0x1ef9, "\x00\x79\x03\x03" }, |
{ 0x1f00, "\x03\xb1\x03\x13" }, |
{ 0x1f01, "\x03\xb1\x03\x14" }, |
{ 0x1f02, "\x1f\x00\x03\x00" }, |
{ 0x1f03, "\x1f\x01\x03\x00" }, |
{ 0x1f04, "\x1f\x00\x03\x01" }, |
{ 0x1f05, "\x1f\x01\x03\x01" }, |
{ 0x1f06, "\x1f\x00\x03\x42" }, |
{ 0x1f07, "\x1f\x01\x03\x42" }, |
{ 0x1f08, "\x03\x91\x03\x13" }, |
{ 0x1f09, "\x03\x91\x03\x14" }, |
{ 0x1f0a, "\x1f\x08\x03\x00" }, |
{ 0x1f0b, "\x1f\x09\x03\x00" }, |
{ 0x1f0c, "\x1f\x08\x03\x01" }, |
{ 0x1f0d, "\x1f\x09\x03\x01" }, |
{ 0x1f0e, "\x1f\x08\x03\x42" }, |
{ 0x1f0f, "\x1f\x09\x03\x42" }, |
{ 0x1f10, "\x03\xb5\x03\x13" }, |
{ 0x1f11, "\x03\xb5\x03\x14" }, |
{ 0x1f12, "\x1f\x10\x03\x00" }, |
{ 0x1f13, "\x1f\x11\x03\x00" }, |
{ 0x1f14, "\x1f\x10\x03\x01" }, |
{ 0x1f15, "\x1f\x11\x03\x01" }, |
{ 0x1f18, "\x03\x95\x03\x13" }, |
{ 0x1f19, "\x03\x95\x03\x14" }, |
{ 0x1f1a, "\x1f\x18\x03\x00" }, |
{ 0x1f1b, "\x1f\x19\x03\x00" }, |
{ 0x1f1c, "\x1f\x18\x03\x01" }, |
{ 0x1f1d, "\x1f\x19\x03\x01" }, |
{ 0x1f20, "\x03\xb7\x03\x13" }, |
{ 0x1f21, "\x03\xb7\x03\x14" }, |
{ 0x1f22, "\x1f\x20\x03\x00" }, |
{ 0x1f23, "\x1f\x21\x03\x00" }, |
{ 0x1f24, "\x1f\x20\x03\x01" }, |
{ 0x1f25, "\x1f\x21\x03\x01" }, |
{ 0x1f26, "\x1f\x20\x03\x42" }, |
{ 0x1f27, "\x1f\x21\x03\x42" }, |
{ 0x1f28, "\x03\x97\x03\x13" }, |
{ 0x1f29, "\x03\x97\x03\x14" }, |
{ 0x1f2a, "\x1f\x28\x03\x00" }, |
{ 0x1f2b, "\x1f\x29\x03\x00" }, |
{ 0x1f2c, "\x1f\x28\x03\x01" }, |
{ 0x1f2d, "\x1f\x29\x03\x01" }, |
{ 0x1f2e, "\x1f\x28\x03\x42" }, |
{ 0x1f2f, "\x1f\x29\x03\x42" }, |
{ 0x1f30, "\x03\xb9\x03\x13" }, |
{ 0x1f31, "\x03\xb9\x03\x14" }, |
{ 0x1f32, "\x1f\x30\x03\x00" }, |
{ 0x1f33, "\x1f\x31\x03\x00" }, |
{ 0x1f34, "\x1f\x30\x03\x01" }, |
{ 0x1f35, "\x1f\x31\x03\x01" }, |
{ 0x1f36, "\x1f\x30\x03\x42" }, |
{ 0x1f37, "\x1f\x31\x03\x42" }, |
{ 0x1f38, "\x03\x99\x03\x13" }, |
{ 0x1f39, "\x03\x99\x03\x14" }, |
{ 0x1f3a, "\x1f\x38\x03\x00" }, |
{ 0x1f3b, "\x1f\x39\x03\x00" }, |
{ 0x1f3c, "\x1f\x38\x03\x01" }, |
{ 0x1f3d, "\x1f\x39\x03\x01" }, |
{ 0x1f3e, "\x1f\x38\x03\x42" }, |
{ 0x1f3f, "\x1f\x39\x03\x42" }, |
{ 0x1f40, "\x03\xbf\x03\x13" }, |
{ 0x1f41, "\x03\xbf\x03\x14" }, |
{ 0x1f42, "\x1f\x40\x03\x00" }, |
{ 0x1f43, "\x1f\x41\x03\x00" }, |
{ 0x1f44, "\x1f\x40\x03\x01" }, |
{ 0x1f45, "\x1f\x41\x03\x01" }, |
{ 0x1f48, "\x03\x9f\x03\x13" }, |
{ 0x1f49, "\x03\x9f\x03\x14" }, |
{ 0x1f4a, "\x1f\x48\x03\x00" }, |
{ 0x1f4b, "\x1f\x49\x03\x00" }, |
{ 0x1f4c, "\x1f\x48\x03\x01" }, |
{ 0x1f4d, "\x1f\x49\x03\x01" }, |
{ 0x1f50, "\x03\xc5\x03\x13" }, |
{ 0x1f51, "\x03\xc5\x03\x14" }, |
{ 0x1f52, "\x1f\x50\x03\x00" }, |
{ 0x1f53, "\x1f\x51\x03\x00" }, |
{ 0x1f54, "\x1f\x50\x03\x01" }, |
{ 0x1f55, "\x1f\x51\x03\x01" }, |
{ 0x1f56, "\x1f\x50\x03\x42" }, |
{ 0x1f57, "\x1f\x51\x03\x42" }, |
{ 0x1f59, "\x03\xa5\x03\x14" }, |
{ 0x1f5b, "\x1f\x59\x03\x00" }, |
{ 0x1f5d, "\x1f\x59\x03\x01" }, |
{ 0x1f5f, "\x1f\x59\x03\x42" }, |
{ 0x1f60, "\x03\xc9\x03\x13" }, |
{ 0x1f61, "\x03\xc9\x03\x14" }, |
{ 0x1f62, "\x1f\x60\x03\x00" }, |
{ 0x1f63, "\x1f\x61\x03\x00" }, |
{ 0x1f64, "\x1f\x60\x03\x01" }, |
{ 0x1f65, "\x1f\x61\x03\x01" }, |
{ 0x1f66, "\x1f\x60\x03\x42" }, |
{ 0x1f67, "\x1f\x61\x03\x42" }, |
{ 0x1f68, "\x03\xa9\x03\x13" }, |
{ 0x1f69, "\x03\xa9\x03\x14" }, |
{ 0x1f6a, "\x1f\x68\x03\x00" }, |
{ 0x1f6b, "\x1f\x69\x03\x00" }, |
{ 0x1f6c, "\x1f\x68\x03\x01" }, |
{ 0x1f6d, "\x1f\x69\x03\x01" }, |
{ 0x1f6e, "\x1f\x68\x03\x42" }, |
{ 0x1f6f, "\x1f\x69\x03\x42" }, |
{ 0x1f70, "\x03\xb1\x03\x00" }, |
{ 0x1f71, "\x03\xac" }, |
{ 0x1f72, "\x03\xb5\x03\x00" }, |
{ 0x1f73, "\x03\xad" }, |
{ 0x1f74, "\x03\xb7\x03\x00" }, |
{ 0x1f75, "\x03\xae" }, |
{ 0x1f76, "\x03\xb9\x03\x00" }, |
{ 0x1f77, "\x03\xaf" }, |
{ 0x1f78, "\x03\xbf\x03\x00" }, |
{ 0x1f79, "\x03\xcc" }, |
{ 0x1f7a, "\x03\xc5\x03\x00" }, |
{ 0x1f7b, "\x03\xcd" }, |
{ 0x1f7c, "\x03\xc9\x03\x00" }, |
{ 0x1f7d, "\x03\xce" }, |
{ 0x1f80, "\x1f\x00\x03\x45" }, |
{ 0x1f81, "\x1f\x01\x03\x45" }, |
{ 0x1f82, "\x1f\x02\x03\x45" }, |
{ 0x1f83, "\x1f\x03\x03\x45" }, |
{ 0x1f84, "\x1f\x04\x03\x45" }, |
{ 0x1f85, "\x1f\x05\x03\x45" }, |
{ 0x1f86, "\x1f\x06\x03\x45" }, |
{ 0x1f87, "\x1f\x07\x03\x45" }, |
{ 0x1f88, "\x1f\x08\x03\x45" }, |
{ 0x1f89, "\x1f\x09\x03\x45" }, |
{ 0x1f8a, "\x1f\x0a\x03\x45" }, |
{ 0x1f8b, "\x1f\x0b\x03\x45" }, |
{ 0x1f8c, "\x1f\x0c\x03\x45" }, |
{ 0x1f8d, "\x1f\x0d\x03\x45" }, |
{ 0x1f8e, "\x1f\x0e\x03\x45" }, |
{ 0x1f8f, "\x1f\x0f\x03\x45" }, |
{ 0x1f90, "\x1f\x20\x03\x45" }, |
{ 0x1f91, "\x1f\x21\x03\x45" }, |
{ 0x1f92, "\x1f\x22\x03\x45" }, |
{ 0x1f93, "\x1f\x23\x03\x45" }, |
{ 0x1f94, "\x1f\x24\x03\x45" }, |
{ 0x1f95, "\x1f\x25\x03\x45" }, |
{ 0x1f96, "\x1f\x26\x03\x45" }, |
{ 0x1f97, "\x1f\x27\x03\x45" }, |
{ 0x1f98, "\x1f\x28\x03\x45" }, |
{ 0x1f99, "\x1f\x29\x03\x45" }, |
{ 0x1f9a, "\x1f\x2a\x03\x45" }, |
{ 0x1f9b, "\x1f\x2b\x03\x45" }, |
{ 0x1f9c, "\x1f\x2c\x03\x45" }, |
{ 0x1f9d, "\x1f\x2d\x03\x45" }, |
{ 0x1f9e, "\x1f\x2e\x03\x45" }, |
{ 0x1f9f, "\x1f\x2f\x03\x45" }, |
{ 0x1fa0, "\x1f\x60\x03\x45" }, |
{ 0x1fa1, "\x1f\x61\x03\x45" }, |
{ 0x1fa2, "\x1f\x62\x03\x45" }, |
{ 0x1fa3, "\x1f\x63\x03\x45" }, |
{ 0x1fa4, "\x1f\x64\x03\x45" }, |
{ 0x1fa5, "\x1f\x65\x03\x45" }, |
{ 0x1fa6, "\x1f\x66\x03\x45" }, |
{ 0x1fa7, "\x1f\x67\x03\x45" }, |
{ 0x1fa8, "\x1f\x68\x03\x45" }, |
{ 0x1fa9, "\x1f\x69\x03\x45" }, |
{ 0x1faa, "\x1f\x6a\x03\x45" }, |
{ 0x1fab, "\x1f\x6b\x03\x45" }, |
{ 0x1fac, "\x1f\x6c\x03\x45" }, |
{ 0x1fad, "\x1f\x6d\x03\x45" }, |
{ 0x1fae, "\x1f\x6e\x03\x45" }, |
{ 0x1faf, "\x1f\x6f\x03\x45" }, |
{ 0x1fb0, "\x03\xb1\x03\x06" }, |
{ 0x1fb1, "\x03\xb1\x03\x04" }, |
{ 0x1fb2, "\x1f\x70\x03\x45" }, |
{ 0x1fb3, "\x03\xb1\x03\x45" }, |
{ 0x1fb4, "\x03\xac\x03\x45" }, |
{ 0x1fb6, "\x03\xb1\x03\x42" }, |
{ 0x1fb7, "\x1f\xb6\x03\x45" }, |
{ 0x1fb8, "\x03\x91\x03\x06" }, |
{ 0x1fb9, "\x03\x91\x03\x04" }, |
{ 0x1fba, "\x03\x91\x03\x00" }, |
{ 0x1fbb, "\x03\x86" }, |
{ 0x1fbc, "\x03\x91\x03\x45" }, |
{ 0x1fbe, "\x03\xb9" }, |
{ 0x1fc1, "\x00\xa8\x03\x42" }, |
{ 0x1fc2, "\x1f\x74\x03\x45" }, |
{ 0x1fc3, "\x03\xb7\x03\x45" }, |
{ 0x1fc4, "\x03\xae\x03\x45" }, |
{ 0x1fc6, "\x03\xb7\x03\x42" }, |
{ 0x1fc7, "\x1f\xc6\x03\x45" }, |
{ 0x1fc8, "\x03\x95\x03\x00" }, |
{ 0x1fc9, "\x03\x88" }, |
{ 0x1fca, "\x03\x97\x03\x00" }, |
{ 0x1fcb, "\x03\x89" }, |
{ 0x1fcc, "\x03\x97\x03\x45" }, |
{ 0x1fcd, "\x1f\xbf\x03\x00" }, |
{ 0x1fce, "\x1f\xbf\x03\x01" }, |
{ 0x1fcf, "\x1f\xbf\x03\x42" }, |
{ 0x1fd0, "\x03\xb9\x03\x06" }, |
{ 0x1fd1, "\x03\xb9\x03\x04" }, |
{ 0x1fd2, "\x03\xca\x03\x00" }, |
{ 0x1fd3, "\x03\x90" }, |
{ 0x1fd6, "\x03\xb9\x03\x42" }, |
{ 0x1fd7, "\x03\xca\x03\x42" }, |
{ 0x1fd8, "\x03\x99\x03\x06" }, |
{ 0x1fd9, "\x03\x99\x03\x04" }, |
{ 0x1fda, "\x03\x99\x03\x00" }, |
{ 0x1fdb, "\x03\x8a" }, |
{ 0x1fdd, "\x1f\xfe\x03\x00" }, |
{ 0x1fde, "\x1f\xfe\x03\x01" }, |
{ 0x1fdf, "\x1f\xfe\x03\x42" }, |
{ 0x1fe0, "\x03\xc5\x03\x06" }, |
{ 0x1fe1, "\x03\xc5\x03\x04" }, |
{ 0x1fe2, "\x03\xcb\x03\x00" }, |
{ 0x1fe3, "\x03\xb0" }, |
{ 0x1fe4, "\x03\xc1\x03\x13" }, |
{ 0x1fe5, "\x03\xc1\x03\x14" }, |
{ 0x1fe6, "\x03\xc5\x03\x42" }, |
{ 0x1fe7, "\x03\xcb\x03\x42" }, |
{ 0x1fe8, "\x03\xa5\x03\x06" }, |
{ 0x1fe9, "\x03\xa5\x03\x04" }, |
{ 0x1fea, "\x03\xa5\x03\x00" }, |
{ 0x1feb, "\x03\x8e" }, |
{ 0x1fec, "\x03\xa1\x03\x14" }, |
{ 0x1fed, "\x00\xa8\x03\x00" }, |
{ 0x1fee, "\x03\x85" }, |
{ 0x1fef, "\x00\x60" }, |
{ 0x1ff2, "\x1f\x7c\x03\x45" }, |
{ 0x1ff3, "\x03\xc9\x03\x45" }, |
{ 0x1ff4, "\x03\xce\x03\x45" }, |
{ 0x1ff6, "\x03\xc9\x03\x42" }, |
{ 0x1ff7, "\x1f\xf6\x03\x45" }, |
{ 0x1ff8, "\x03\x9f\x03\x00" }, |
{ 0x1ff9, "\x03\x8c" }, |
{ 0x1ffa, "\x03\xa9\x03\x00" }, |
{ 0x1ffb, "\x03\x8f" }, |
{ 0x1ffc, "\x03\xa9\x03\x45" }, |
{ 0x1ffd, "\x00\xb4" }, |
{ 0x2000, "\x20\x02" }, |
{ 0x2001, "\x20\x03" }, |
{ 0x2126, "\x03\xa9" }, |
{ 0x212a, "\x00\x4b" }, |
{ 0x212b, "\x00\xc5" }, |
{ 0x219a, "\x21\x90\x03\x38" }, |
{ 0x219b, "\x21\x92\x03\x38" }, |
{ 0x21ae, "\x21\x94\x03\x38" }, |
{ 0x21cd, "\x21\xd0\x03\x38" }, |
{ 0x21ce, "\x21\xd4\x03\x38" }, |
{ 0x21cf, "\x21\xd2\x03\x38" }, |
{ 0x2204, "\x22\x03\x03\x38" }, |
{ 0x2209, "\x22\x08\x03\x38" }, |
{ 0x220c, "\x22\x0b\x03\x38" }, |
{ 0x2224, "\x22\x23\x03\x38" }, |
{ 0x2226, "\x22\x25\x03\x38" }, |
{ 0x2241, "\x22\x3c\x03\x38" }, |
{ 0x2244, "\x22\x43\x03\x38" }, |
{ 0x2247, "\x22\x45\x03\x38" }, |
{ 0x2249, "\x22\x48\x03\x38" }, |
{ 0x2260, "\x00\x3d\x03\x38" }, |
{ 0x2262, "\x22\x61\x03\x38" }, |
{ 0x226d, "\x22\x4d\x03\x38" }, |
{ 0x226e, "\x00\x3c\x03\x38" }, |
{ 0x226f, "\x00\x3e\x03\x38" }, |
{ 0x2270, "\x22\x64\x03\x38" }, |
{ 0x2271, "\x22\x65\x03\x38" }, |
{ 0x2274, "\x22\x72\x03\x38" }, |
{ 0x2275, "\x22\x73\x03\x38" }, |
{ 0x2278, "\x22\x76\x03\x38" }, |
{ 0x2279, "\x22\x77\x03\x38" }, |
{ 0x2280, "\x22\x7a\x03\x38" }, |
{ 0x2281, "\x22\x7b\x03\x38" }, |
{ 0x2284, "\x22\x82\x03\x38" }, |
{ 0x2285, "\x22\x83\x03\x38" }, |
{ 0x2288, "\x22\x86\x03\x38" }, |
{ 0x2289, "\x22\x87\x03\x38" }, |
{ 0x22ac, "\x22\xa2\x03\x38" }, |
{ 0x22ad, "\x22\xa8\x03\x38" }, |
{ 0x22ae, "\x22\xa9\x03\x38" }, |
{ 0x22af, "\x22\xab\x03\x38" }, |
{ 0x22e0, "\x22\x7c\x03\x38" }, |
{ 0x22e1, "\x22\x7d\x03\x38" }, |
{ 0x22e2, "\x22\x91\x03\x38" }, |
{ 0x22e3, "\x22\x92\x03\x38" }, |
{ 0x22ea, "\x22\xb2\x03\x38" }, |
{ 0x22eb, "\x22\xb3\x03\x38" }, |
{ 0x22ec, "\x22\xb4\x03\x38" }, |
{ 0x22ed, "\x22\xb5\x03\x38" }, |
{ 0x2329, "\x30\x08" }, |
{ 0x232a, "\x30\x09" }, |
{ 0x304c, "\x30\x4b\x30\x99" }, |
{ 0x304e, "\x30\x4d\x30\x99" }, |
{ 0x3050, "\x30\x4f\x30\x99" }, |
{ 0x3052, "\x30\x51\x30\x99" }, |
{ 0x3054, "\x30\x53\x30\x99" }, |
{ 0x3056, "\x30\x55\x30\x99" }, |
{ 0x3058, "\x30\x57\x30\x99" }, |
{ 0x305a, "\x30\x59\x30\x99" }, |
{ 0x305c, "\x30\x5b\x30\x99" }, |
{ 0x305e, "\x30\x5d\x30\x99" }, |
{ 0x3060, "\x30\x5f\x30\x99" }, |
{ 0x3062, "\x30\x61\x30\x99" }, |
{ 0x3065, "\x30\x64\x30\x99" }, |
{ 0x3067, "\x30\x66\x30\x99" }, |
{ 0x3069, "\x30\x68\x30\x99" }, |
{ 0x3070, "\x30\x6f\x30\x99" }, |
{ 0x3071, "\x30\x6f\x30\x9a" }, |
{ 0x3073, "\x30\x72\x30\x99" }, |
{ 0x3074, "\x30\x72\x30\x9a" }, |
{ 0x3076, "\x30\x75\x30\x99" }, |
{ 0x3077, "\x30\x75\x30\x9a" }, |
{ 0x3079, "\x30\x78\x30\x99" }, |
{ 0x307a, "\x30\x78\x30\x9a" }, |
{ 0x307c, "\x30\x7b\x30\x99" }, |
{ 0x307d, "\x30\x7b\x30\x9a" }, |
{ 0x3094, "\x30\x46\x30\x99" }, |
{ 0x309e, "\x30\x9d\x30\x99" }, |
{ 0x30ac, "\x30\xab\x30\x99" }, |
{ 0x30ae, "\x30\xad\x30\x99" }, |
{ 0x30b0, "\x30\xaf\x30\x99" }, |
{ 0x30b2, "\x30\xb1\x30\x99" }, |
{ 0x30b4, "\x30\xb3\x30\x99" }, |
{ 0x30b6, "\x30\xb5\x30\x99" }, |
{ 0x30b8, "\x30\xb7\x30\x99" }, |
{ 0x30ba, "\x30\xb9\x30\x99" }, |
{ 0x30bc, "\x30\xbb\x30\x99" }, |
{ 0x30be, "\x30\xbd\x30\x99" }, |
{ 0x30c0, "\x30\xbf\x30\x99" }, |
{ 0x30c2, "\x30\xc1\x30\x99" }, |
{ 0x30c5, "\x30\xc4\x30\x99" }, |
{ 0x30c7, "\x30\xc6\x30\x99" }, |
{ 0x30c9, "\x30\xc8\x30\x99" }, |
{ 0x30d0, "\x30\xcf\x30\x99" }, |
{ 0x30d1, "\x30\xcf\x30\x9a" }, |
{ 0x30d3, "\x30\xd2\x30\x99" }, |
{ 0x30d4, "\x30\xd2\x30\x9a" }, |
{ 0x30d6, "\x30\xd5\x30\x99" }, |
{ 0x30d7, "\x30\xd5\x30\x9a" }, |
{ 0x30d9, "\x30\xd8\x30\x99" }, |
{ 0x30da, "\x30\xd8\x30\x9a" }, |
{ 0x30dc, "\x30\xdb\x30\x99" }, |
{ 0x30dd, "\x30\xdb\x30\x9a" }, |
{ 0x30f4, "\x30\xa6\x30\x99" }, |
{ 0x30f7, "\x30\xef\x30\x99" }, |
{ 0x30f8, "\x30\xf0\x30\x99" }, |
{ 0x30f9, "\x30\xf1\x30\x99" }, |
{ 0x30fa, "\x30\xf2\x30\x99" }, |
{ 0x30fe, "\x30\xfd\x30\x99" }, |
{ 0xf900, "\x8c\x48" }, |
{ 0xf901, "\x66\xf4" }, |
{ 0xf902, "\x8e\xca" }, |
{ 0xf903, "\x8c\xc8" }, |
{ 0xf904, "\x6e\xd1" }, |
{ 0xf905, "\x4e\x32" }, |
{ 0xf906, "\x53\xe5" }, |
{ 0xf907, "\x9f\x9c" }, |
{ 0xf908, "\x9f\x9c" }, |
{ 0xf909, "\x59\x51" }, |
{ 0xf90a, "\x91\xd1" }, |
{ 0xf90b, "\x55\x87" }, |
{ 0xf90c, "\x59\x48" }, |
{ 0xf90d, "\x61\xf6" }, |
{ 0xf90e, "\x76\x69" }, |
{ 0xf90f, "\x7f\x85" }, |
{ 0xf910, "\x86\x3f" }, |
{ 0xf911, "\x87\xba" }, |
{ 0xf912, "\x88\xf8" }, |
{ 0xf913, "\x90\x8f" }, |
{ 0xf914, "\x6a\x02" }, |
{ 0xf915, "\x6d\x1b" }, |
{ 0xf916, "\x70\xd9" }, |
{ 0xf917, "\x73\xde" }, |
{ 0xf918, "\x84\x3d" }, |
{ 0xf919, "\x91\x6a" }, |
{ 0xf91a, "\x99\xf1" }, |
{ 0xf91b, "\x4e\x82" }, |
{ 0xf91c, "\x53\x75" }, |
{ 0xf91d, "\x6b\x04" }, |
{ 0xf91e, "\x72\x1b" }, |
{ 0xf91f, "\x86\x2d" }, |
{ 0xf920, "\x9e\x1e" }, |
{ 0xf921, "\x5d\x50" }, |
{ 0xf922, "\x6f\xeb" }, |
{ 0xf923, "\x85\xcd" }, |
{ 0xf924, "\x89\x64" }, |
{ 0xf925, "\x62\xc9" }, |
{ 0xf926, "\x81\xd8" }, |
{ 0xf927, "\x88\x1f" }, |
{ 0xf928, "\x5e\xca" }, |
{ 0xf929, "\x67\x17" }, |
{ 0xf92a, "\x6d\x6a" }, |
{ 0xf92b, "\x72\xfc" }, |
{ 0xf92c, "\x90\xce" }, |
{ 0xf92d, "\x4f\x86" }, |
{ 0xf92e, "\x51\xb7" }, |
{ 0xf92f, "\x52\xde" }, |
{ 0xf930, "\x64\xc4" }, |
{ 0xf931, "\x6a\xd3" }, |
{ 0xf932, "\x72\x10" }, |
{ 0xf933, "\x76\xe7" }, |
{ 0xf934, "\x80\x01" }, |
{ 0xf935, "\x86\x06" }, |
{ 0xf936, "\x86\x5c" }, |
{ 0xf937, "\x8d\xef" }, |
{ 0xf938, "\x97\x32" }, |
{ 0xf939, "\x9b\x6f" }, |
{ 0xf93a, "\x9d\xfa" }, |
{ 0xf93b, "\x78\x8c" }, |
{ 0xf93c, "\x79\x7f" }, |
{ 0xf93d, "\x7d\xa0" }, |
{ 0xf93e, "\x83\xc9" }, |
{ 0xf93f, "\x93\x04" }, |
{ 0xf940, "\x9e\x7f" }, |
{ 0xf941, "\x8a\xd6" }, |
{ 0xf942, "\x58\xdf" }, |
{ 0xf943, "\x5f\x04" }, |
{ 0xf944, "\x7c\x60" }, |
{ 0xf945, "\x80\x7e" }, |
{ 0xf946, "\x72\x62" }, |
{ 0xf947, "\x78\xca" }, |
{ 0xf948, "\x8c\xc2" }, |
{ 0xf949, "\x96\xf7" }, |
{ 0xf94a, "\x58\xd8" }, |
{ 0xf94b, "\x5c\x62" }, |
{ 0xf94c, "\x6a\x13" }, |
{ 0xf94d, "\x6d\xda" }, |
{ 0xf94e, "\x6f\x0f" }, |
{ 0xf94f, "\x7d\x2f" }, |
{ 0xf950, "\x7e\x37" }, |
{ 0xf951, "\x96\xfb" }, |
{ 0xf952, "\x52\xd2" }, |
{ 0xf953, "\x80\x8b" }, |
{ 0xf954, "\x51\xdc" }, |
{ 0xf955, "\x51\xcc" }, |
{ 0xf956, "\x7a\x1c" }, |
{ 0xf957, "\x7d\xbe" }, |
{ 0xf958, "\x83\xf1" }, |
{ 0xf959, "\x96\x75" }, |
{ 0xf95a, "\x8b\x80" }, |
{ 0xf95b, "\x62\xcf" }, |
{ 0xf95c, "\x6a\x02" }, |
{ 0xf95d, "\x8a\xfe" }, |
{ 0xf95e, "\x4e\x39" }, |
{ 0xf95f, "\x5b\xe7" }, |
{ 0xf960, "\x60\x12" }, |
{ 0xf961, "\x73\x87" }, |
{ 0xf962, "\x75\x70" }, |
{ 0xf963, "\x53\x17" }, |
{ 0xf964, "\x78\xfb" }, |
{ 0xf965, "\x4f\xbf" }, |
{ 0xf966, "\x5f\xa9" }, |
{ 0xf967, "\x4e\x0d" }, |
{ 0xf968, "\x6c\xcc" }, |
{ 0xf969, "\x65\x78" }, |
{ 0xf96a, "\x7d\x22" }, |
{ 0xf96b, "\x53\xc3" }, |
{ 0xf96c, "\x58\x5e" }, |
{ 0xf96d, "\x77\x01" }, |
{ 0xf96e, "\x84\x49" }, |
{ 0xf96f, "\x8a\xaa" }, |
{ 0xf970, "\x6b\xba" }, |
{ 0xf971, "\x8f\xb0" }, |
{ 0xf972, "\x6c\x88" }, |
{ 0xf973, "\x62\xfe" }, |
{ 0xf974, "\x82\xe5" }, |
{ 0xf975, "\x63\xa0" }, |
{ 0xf976, "\x75\x65" }, |
{ 0xf977, "\x4e\xae" }, |
{ 0xf978, "\x51\x69" }, |
{ 0xf979, "\x51\xc9" }, |
{ 0xf97a, "\x68\x81" }, |
{ 0xf97b, "\x7c\xe7" }, |
{ 0xf97c, "\x82\x6f" }, |
{ 0xf97d, "\x8a\xd2" }, |
{ 0xf97e, "\x91\xcf" }, |
{ 0xf97f, "\x52\xf5" }, |
{ 0xf980, "\x54\x42" }, |
{ 0xf981, "\x59\x73" }, |
{ 0xf982, "\x5e\xec" }, |
{ 0xf983, "\x65\xc5" }, |
{ 0xf984, "\x6f\xfe" }, |
{ 0xf985, "\x79\x2a" }, |
{ 0xf986, "\x95\xad" }, |
{ 0xf987, "\x9a\x6a" }, |
{ 0xf988, "\x9e\x97" }, |
{ 0xf989, "\x9e\xce" }, |
{ 0xf98a, "\x52\x9b" }, |
{ 0xf98b, "\x66\xc6" }, |
{ 0xf98c, "\x6b\x77" }, |
{ 0xf98d, "\x8f\x62" }, |
{ 0xf98e, "\x5e\x74" }, |
{ 0xf98f, "\x61\x90" }, |
{ 0xf990, "\x62\x00" }, |
{ 0xf991, "\x64\x9a" }, |
{ 0xf992, "\x6f\x23" }, |
{ 0xf993, "\x71\x49" }, |
{ 0xf994, "\x74\x89" }, |
{ 0xf995, "\x79\xca" }, |
{ 0xf996, "\x7d\xf4" }, |
{ 0xf997, "\x80\x6f" }, |
{ 0xf998, "\x8f\x26" }, |
{ 0xf999, "\x84\xee" }, |
{ 0xf99a, "\x90\x23" }, |
{ 0xf99b, "\x93\x4a" }, |
{ 0xf99c, "\x52\x17" }, |
{ 0xf99d, "\x52\xa3" }, |
{ 0xf99e, "\x54\xbd" }, |
{ 0xf99f, "\x70\xc8" }, |
{ 0xf9a0, "\x88\xc2" }, |
{ 0xf9a1, "\x8a\xaa" }, |
{ 0xf9a2, "\x5e\xc9" }, |
{ 0xf9a3, "\x5f\xf5" }, |
{ 0xf9a4, "\x63\x7b" }, |
{ 0xf9a5, "\x6b\xae" }, |
{ 0xf9a6, "\x7c\x3e" }, |
{ 0xf9a7, "\x73\x75" }, |
{ 0xf9a8, "\x4e\xe4" }, |
{ 0xf9a9, "\x56\xf9" }, |
{ 0xf9aa, "\x5b\xe7" }, |
{ 0xf9ab, "\x5d\xba" }, |
{ 0xf9ac, "\x60\x1c" }, |
{ 0xf9ad, "\x73\xb2" }, |
{ 0xf9ae, "\x74\x69" }, |
{ 0xf9af, "\x7f\x9a" }, |
{ 0xf9b0, "\x80\x46" }, |
{ 0xf9b1, "\x92\x34" }, |
{ 0xf9b2, "\x96\xf6" }, |
{ 0xf9b3, "\x97\x48" }, |
{ 0xf9b4, "\x98\x18" }, |
{ 0xf9b5, "\x4f\x8b" }, |
{ 0xf9b6, "\x79\xae" }, |
{ 0xf9b7, "\x91\xb4" }, |
{ 0xf9b8, "\x96\xb8" }, |
{ 0xf9b9, "\x60\xe1" }, |
{ 0xf9ba, "\x4e\x86" }, |
{ 0xf9bb, "\x50\xda" }, |
{ 0xf9bc, "\x5b\xee" }, |
{ 0xf9bd, "\x5c\x3f" }, |
{ 0xf9be, "\x65\x99" }, |
{ 0xf9bf, "\x6a\x02" }, |
{ 0xf9c0, "\x71\xce" }, |
{ 0xf9c1, "\x76\x42" }, |
{ 0xf9c2, "\x84\xfc" }, |
{ 0xf9c3, "\x90\x7c" }, |
{ 0xf9c4, "\x9f\x8d" }, |
{ 0xf9c5, "\x66\x88" }, |
{ 0xf9c6, "\x96\x2e" }, |
{ 0xf9c7, "\x52\x89" }, |
{ 0xf9c8, "\x67\x7b" }, |
{ 0xf9c9, "\x67\xf3" }, |
{ 0xf9ca, "\x6d\x41" }, |
{ 0xf9cb, "\x6e\x9c" }, |
{ 0xf9cc, "\x74\x09" }, |
{ 0xf9cd, "\x75\x59" }, |
{ 0xf9ce, "\x78\x6b" }, |
{ 0xf9cf, "\x7d\x10" }, |
{ 0xf9d0, "\x98\x5e" }, |
{ 0xf9d1, "\x51\x6d" }, |
{ 0xf9d2, "\x62\x2e" }, |
{ 0xf9d3, "\x96\x78" }, |
{ 0xf9d4, "\x50\x2b" }, |
{ 0xf9d5, "\x5d\x19" }, |
{ 0xf9d6, "\x6d\xea" }, |
{ 0xf9d7, "\x8f\x2a" }, |
{ 0xf9d8, "\x5f\x8b" }, |
{ 0xf9d9, "\x61\x44" }, |
{ 0xf9da, "\x68\x17" }, |
{ 0xf9db, "\x73\x87" }, |
{ 0xf9dc, "\x96\x86" }, |
{ 0xf9dd, "\x52\x29" }, |
{ 0xf9de, "\x54\x0f" }, |
{ 0xf9df, "\x5c\x65" }, |
{ 0xf9e0, "\x66\x13" }, |
{ 0xf9e1, "\x67\x4e" }, |
{ 0xf9e2, "\x68\xa8" }, |
{ 0xf9e3, "\x6c\xe5" }, |
{ 0xf9e4, "\x74\x06" }, |
{ 0xf9e5, "\x75\xe2" }, |
{ 0xf9e6, "\x7f\x79" }, |
{ 0xf9e7, "\x88\xcf" }, |
{ 0xf9e8, "\x88\xe1" }, |
{ 0xf9e9, "\x91\xcc" }, |
{ 0xf9ea, "\x96\xe2" }, |
{ 0xf9eb, "\x53\x3f" }, |
{ 0xf9ec, "\x6e\xba" }, |
{ 0xf9ed, "\x54\x1d" }, |
{ 0xf9ee, "\x71\xd0" }, |
{ 0xf9ef, "\x74\x98" }, |
{ 0xf9f0, "\x85\xfa" }, |
{ 0xf9f1, "\x96\xa3" }, |
{ 0xf9f2, "\x9c\x57" }, |
{ 0xf9f3, "\x9e\x9f" }, |
{ 0xf9f4, "\x67\x97" }, |
{ 0xf9f5, "\x6d\xcb" }, |
{ 0xf9f6, "\x81\xe8" }, |
{ 0xf9f7, "\x7a\xcb" }, |
{ 0xf9f8, "\x7b\x20" }, |
{ 0xf9f9, "\x7c\x92" }, |
{ 0xf9fa, "\x72\xc0" }, |
{ 0xf9fb, "\x70\x99" }, |
{ 0xf9fc, "\x8b\x58" }, |
{ 0xf9fd, "\x4e\xc0" }, |
{ 0xf9fe, "\x83\x36" }, |
{ 0xf9ff, "\x52\x3a" }, |
{ 0xfa00, "\x52\x07" }, |
{ 0xfa01, "\x5e\xa6" }, |
{ 0xfa02, "\x62\xd3" }, |
{ 0xfa03, "\x7c\xd6" }, |
{ 0xfa04, "\x5b\x85" }, |
{ 0xfa05, "\x6d\x1e" }, |
{ 0xfa06, "\x66\xb4" }, |
{ 0xfa07, "\x8f\x3b" }, |
{ 0xfa08, "\x88\x4c" }, |
{ 0xfa09, "\x96\x4d" }, |
{ 0xfa0a, "\x89\x8b" }, |
{ 0xfa0b, "\x5e\xd3" }, |
{ 0xfa0c, "\x51\x40" }, |
{ 0xfa0d, "\x55\xc0" }, |
{ 0xfa10, "\x58\x5a" }, |
{ 0xfa12, "\x66\x74" }, |
{ 0xfa15, "\x51\xde" }, |
{ 0xfa16, "\x73\x2a" }, |
{ 0xfa17, "\x76\xca" }, |
{ 0xfa18, "\x79\x3c" }, |
{ 0xfa19, "\x79\x5e" }, |
{ 0xfa1a, "\x79\x65" }, |
{ 0xfa1b, "\x79\x8f" }, |
{ 0xfa1c, "\x97\x56" }, |
{ 0xfa1d, "\x7c\xbe" }, |
{ 0xfa1e, "\x7f\xbd" }, |
{ 0xfa20, "\x86\x12" }, |
{ 0xfa22, "\x8a\xf8" }, |
{ 0xfa25, "\x90\x38" }, |
{ 0xfa26, "\x90\xfd" }, |
{ 0xfa2a, "\x98\xef" }, |
{ 0xfa2b, "\x98\xfc" }, |
{ 0xfa2c, "\x99\x28" }, |
{ 0xfa2d, "\x9d\xb4" }, |
{ 0xfb1d, "\x05\xd9\x05\xb4" }, |
{ 0xfb1f, "\x05\xf2\x05\xb7" }, |
{ 0xfb2a, "\x05\xe9\x05\xc1" }, |
{ 0xfb2b, "\x05\xe9\x05\xc2" }, |
{ 0xfb2c, "\xfb\x49\x05\xc1" }, |
{ 0xfb2d, "\xfb\x49\x05\xc2" }, |
{ 0xfb2e, "\x05\xd0\x05\xb7" }, |
{ 0xfb2f, "\x05\xd0\x05\xb8" }, |
{ 0xfb30, "\x05\xd0\x05\xbc" }, |
{ 0xfb31, "\x05\xd1\x05\xbc" }, |
{ 0xfb32, "\x05\xd2\x05\xbc" }, |
{ 0xfb33, "\x05\xd3\x05\xbc" }, |
{ 0xfb34, "\x05\xd4\x05\xbc" }, |
{ 0xfb35, "\x05\xd5\x05\xbc" }, |
{ 0xfb36, "\x05\xd6\x05\xbc" }, |
{ 0xfb38, "\x05\xd8\x05\xbc" }, |
{ 0xfb39, "\x05\xd9\x05\xbc" }, |
{ 0xfb3a, "\x05\xda\x05\xbc" }, |
{ 0xfb3b, "\x05\xdb\x05\xbc" }, |
{ 0xfb3c, "\x05\xdc\x05\xbc" }, |
{ 0xfb3e, "\x05\xde\x05\xbc" }, |
{ 0xfb40, "\x05\xe0\x05\xbc" }, |
{ 0xfb41, "\x05\xe1\x05\xbc" }, |
{ 0xfb43, "\x05\xe3\x05\xbc" }, |
{ 0xfb44, "\x05\xe4\x05\xbc" }, |
{ 0xfb46, "\x05\xe6\x05\xbc" }, |
{ 0xfb47, "\x05\xe7\x05\xbc" }, |
{ 0xfb48, "\x05\xe8\x05\xbc" }, |
{ 0xfb49, "\x05\xe9\x05\xbc" }, |
{ 0xfb4a, "\x05\xea\x05\xbc" }, |
{ 0xfb4b, "\x05\xd5\x05\xb9" }, |
{ 0xfb4c, "\x05\xd1\x05\xbf" }, |
{ 0xfb4d, "\x05\xdb\x05\xbf" }, |
{ 0xfb4e, "\x05\xe4\x05\xbf" } |
}; |
|
static const decomp_entry full_decomposition[] = |
{ |
{ 0x00a0, "\x00\x20" }, |
{ 0x00a8, "\x00\x20\x03\x08" }, |
{ 0x00aa, "\x00\x61" }, |
{ 0x00af, "\x00\x20\x03\x04" }, |
{ 0x00b2, "\x00\x32" }, |
{ 0x00b3, "\x00\x33" }, |
{ 0x00b4, "\x00\x20\x03\x01" }, |
{ 0x00b5, "\x03\xbc" }, |
{ 0x00b8, "\x00\x20\x03\x27" }, |
{ 0x00b9, "\x00\x31" }, |
{ 0x00ba, "\x00\x6f" }, |
{ 0x00bc, "\x00\x31\x20\x44\x00\x34" }, |
{ 0x00bd, "\x00\x31\x20\x44\x00\x32" }, |
{ 0x00be, "\x00\x33\x20\x44\x00\x34" }, |
{ 0x0132, "\x00\x49\x00\x4a" }, |
{ 0x0133, "\x00\x69\x00\x6a" }, |
{ 0x013f, "\x00\x4c\x00\xb7" }, |
{ 0x0140, "\x00\x6c\x00\xb7" }, |
{ 0x0149, "\x02\xbc\x00\x6e" }, |
{ 0x017f, "\x00\x73" }, |
{ 0x01c4, "\x00\x44\x01\x7d" }, |
{ 0x01c5, "\x00\x44\x01\x7e" }, |
{ 0x01c6, "\x00\x64\x01\x7e" }, |
{ 0x01c7, "\x00\x4c\x00\x4a" }, |
{ 0x01c8, "\x00\x4c\x00\x6a" }, |
{ 0x01c9, "\x00\x6c\x00\x6a" }, |
{ 0x01ca, "\x00\x4e\x00\x4a" }, |
{ 0x01cb, "\x00\x4e\x00\x6a" }, |
{ 0x01cc, "\x00\x6e\x00\x6a" }, |
{ 0x01f1, "\x00\x44\x00\x5a" }, |
{ 0x01f2, "\x00\x44\x00\x7a" }, |
{ 0x01f3, "\x00\x64\x00\x7a" }, |
{ 0x02b0, "\x00\x68" }, |
{ 0x02b1, "\x02\x66" }, |
{ 0x02b2, "\x00\x6a" }, |
{ 0x02b3, "\x00\x72" }, |
{ 0x02b4, "\x02\x79" }, |
{ 0x02b5, "\x02\x7b" }, |
{ 0x02b6, "\x02\x81" }, |
{ 0x02b7, "\x00\x77" }, |
{ 0x02b8, "\x00\x79" }, |
{ 0x02d8, "\x00\x20\x03\x06" }, |
{ 0x02d9, "\x00\x20\x03\x07" }, |
{ 0x02da, "\x00\x20\x03\x0a" }, |
{ 0x02db, "\x00\x20\x03\x28" }, |
{ 0x02dc, "\x00\x20\x03\x03" }, |
{ 0x02dd, "\x00\x20\x03\x0b" }, |
{ 0x02e0, "\x02\x63" }, |
{ 0x02e1, "\x00\x6c" }, |
{ 0x02e2, "\x00\x73" }, |
{ 0x02e3, "\x00\x78" }, |
{ 0x02e4, "\x02\x95" }, |
{ 0x037a, "\x00\x20\x03\x45" }, |
{ 0x0384, "\x00\x20\x03\x01" }, |
{ 0x03d0, "\x03\xb2" }, |
{ 0x03d1, "\x03\xb8" }, |
{ 0x03d2, "\x03\xa5" }, |
{ 0x03d5, "\x03\xc6" }, |
{ 0x03d6, "\x03\xc0" }, |
{ 0x03f0, "\x03\xba" }, |
{ 0x03f1, "\x03\xc1" }, |
{ 0x03f2, "\x03\xc2" }, |
{ 0x0587, "\x05\x65\x05\x82" }, |
{ 0x0675, "\x06\x27\x06\x74" }, |
{ 0x0676, "\x06\x48\x06\x74" }, |
{ 0x0677, "\x06\xc7\x06\x74" }, |
{ 0x0678, "\x06\x4a\x06\x74" }, |
{ 0x0e33, "\x0e\x4d\x0e\x32" }, |
{ 0x0eb3, "\x0e\xcd\x0e\xb2" }, |
{ 0x0edc, "\x0e\xab\x0e\x99" }, |
{ 0x0edd, "\x0e\xab\x0e\xa1" }, |
{ 0x0f0c, "\x0f\x0b" }, |
{ 0x0f77, "\x0f\xb2\x0f\x81" }, |
{ 0x0f79, "\x0f\xb3\x0f\x81" }, |
{ 0x1e9a, "\x00\x61\x02\xbe" }, |
{ 0x1fbd, "\x00\x20\x03\x13" }, |
{ 0x1fbf, "\x00\x20\x03\x13" }, |
{ 0x1fc0, "\x00\x20\x03\x42" }, |
{ 0x1ffe, "\x00\x20\x03\x14" }, |
{ 0x2002, "\x00\x20" }, |
{ 0x2003, "\x00\x20" }, |
{ 0x2004, "\x00\x20" }, |
{ 0x2005, "\x00\x20" }, |
{ 0x2006, "\x00\x20" }, |
{ 0x2007, "\x00\x20" }, |
{ 0x2008, "\x00\x20" }, |
{ 0x2009, "\x00\x20" }, |
{ 0x200a, "\x00\x20" }, |
{ 0x2011, "\x20\x10" }, |
{ 0x2017, "\x00\x20\x03\x33" }, |
{ 0x2024, "\x00\x2e" }, |
{ 0x2025, "\x00\x2e\x00\x2e" }, |
{ 0x2026, "\x00\x2e\x00\x2e\x00\x2e" }, |
{ 0x202f, "\x00\x20" }, |
{ 0x2033, "\x20\x32\x20\x32" }, |
{ 0x2034, "\x20\x32\x20\x32\x20\x32" }, |
{ 0x2036, "\x20\x35\x20\x35" }, |
{ 0x2037, "\x20\x35\x20\x35\x20\x35" }, |
{ 0x203c, "\x00\x21\x00\x21" }, |
{ 0x203e, "\x00\x20\x03\x05" }, |
{ 0x2048, "\x00\x3f\x00\x21" }, |
{ 0x2049, "\x00\x21\x00\x3f" }, |
{ 0x2070, "\x00\x30" }, |
{ 0x2074, "\x00\x34" }, |
{ 0x2075, "\x00\x35" }, |
{ 0x2076, "\x00\x36" }, |
{ 0x2077, "\x00\x37" }, |
{ 0x2078, "\x00\x38" }, |
{ 0x2079, "\x00\x39" }, |
{ 0x207a, "\x00\x2b" }, |
{ 0x207b, "\x22\x12" }, |
{ 0x207c, "\x00\x3d" }, |
{ 0x207d, "\x00\x28" }, |
{ 0x207e, "\x00\x29" }, |
{ 0x207f, "\x00\x6e" }, |
{ 0x2080, "\x00\x30" }, |
{ 0x2081, "\x00\x31" }, |
{ 0x2082, "\x00\x32" }, |
{ 0x2083, "\x00\x33" }, |
{ 0x2084, "\x00\x34" }, |
{ 0x2085, "\x00\x35" }, |
{ 0x2086, "\x00\x36" }, |
{ 0x2087, "\x00\x37" }, |
{ 0x2088, "\x00\x38" }, |
{ 0x2089, "\x00\x39" }, |
{ 0x208a, "\x00\x2b" }, |
{ 0x208b, "\x22\x12" }, |
{ 0x208c, "\x00\x3d" }, |
{ 0x208d, "\x00\x28" }, |
{ 0x208e, "\x00\x29" }, |
{ 0x20a8, "\x00\x52\x00\x73" }, |
{ 0x2100, "\x00\x61\x00\x2f\x00\x63" }, |
{ 0x2101, "\x00\x61\x00\x2f\x00\x73" }, |
{ 0x2102, "\x00\x43" }, |
{ 0x2103, "\x00\xb0\x00\x43" }, |
{ 0x2105, "\x00\x63\x00\x2f\x00\x6f" }, |
{ 0x2106, "\x00\x63\x00\x2f\x00\x75" }, |
{ 0x2107, "\x01\x90" }, |
{ 0x2109, "\x00\xb0\x00\x46" }, |
{ 0x210a, "\x00\x67" }, |
{ 0x210b, "\x00\x48" }, |
{ 0x210c, "\x00\x48" }, |
{ 0x210d, "\x00\x48" }, |
{ 0x210e, "\x00\x68" }, |
{ 0x210f, "\x01\x27" }, |
{ 0x2110, "\x00\x49" }, |
{ 0x2111, "\x00\x49" }, |
{ 0x2112, "\x00\x4c" }, |
{ 0x2113, "\x00\x6c" }, |
{ 0x2115, "\x00\x4e" }, |
{ 0x2116, "\x00\x4e\x00\x6f" }, |
{ 0x2119, "\x00\x50" }, |
{ 0x211a, "\x00\x51" }, |
{ 0x211b, "\x00\x52" }, |
{ 0x211c, "\x00\x52" }, |
{ 0x211d, "\x00\x52" }, |
{ 0x2120, "\x00\x53\x00\x4d" }, |
{ 0x2121, "\x00\x54\x00\x45\x00\x4c" }, |
{ 0x2122, "\x00\x54\x00\x4d" }, |
{ 0x2124, "\x00\x5a" }, |
{ 0x2128, "\x00\x5a" }, |
{ 0x212c, "\x00\x42" }, |
{ 0x212d, "\x00\x43" }, |
{ 0x212f, "\x00\x65" }, |
{ 0x2130, "\x00\x45" }, |
{ 0x2131, "\x00\x46" }, |
{ 0x2133, "\x00\x4d" }, |
{ 0x2134, "\x00\x6f" }, |
{ 0x2135, "\x05\xd0" }, |
{ 0x2136, "\x05\xd1" }, |
{ 0x2137, "\x05\xd2" }, |
{ 0x2138, "\x05\xd3" }, |
{ 0x2139, "\x00\x69" }, |
{ 0x2153, "\x00\x31\x20\x44\x00\x33" }, |
{ 0x2154, "\x00\x32\x20\x44\x00\x33" }, |
{ 0x2155, "\x00\x31\x20\x44\x00\x35" }, |
{ 0x2156, "\x00\x32\x20\x44\x00\x35" }, |
{ 0x2157, "\x00\x33\x20\x44\x00\x35" }, |
{ 0x2158, "\x00\x34\x20\x44\x00\x35" }, |
{ 0x2159, "\x00\x31\x20\x44\x00\x36" }, |
{ 0x215a, "\x00\x35\x20\x44\x00\x36" }, |
{ 0x215b, "\x00\x31\x20\x44\x00\x38" }, |
{ 0x215c, "\x00\x33\x20\x44\x00\x38" }, |
{ 0x215d, "\x00\x35\x20\x44\x00\x38" }, |
{ 0x215e, "\x00\x37\x20\x44\x00\x38" }, |
{ 0x215f, "\x00\x31\x20\x44" }, |
{ 0x2160, "\x00\x49" }, |
{ 0x2161, "\x00\x49\x00\x49" }, |
{ 0x2162, "\x00\x49\x00\x49\x00\x49" }, |
{ 0x2163, "\x00\x49\x00\x56" }, |
{ 0x2164, "\x00\x56" }, |
{ 0x2165, "\x00\x56\x00\x49" }, |
{ 0x2166, "\x00\x56\x00\x49\x00\x49" }, |
{ 0x2167, "\x00\x56\x00\x49\x00\x49\x00\x49" }, |
{ 0x2168, "\x00\x49\x00\x58" }, |
{ 0x2169, "\x00\x58" }, |
{ 0x216a, "\x00\x58\x00\x49" }, |
{ 0x216b, "\x00\x58\x00\x49\x00\x49" }, |
{ 0x216c, "\x00\x4c" }, |
{ 0x216d, "\x00\x43" }, |
{ 0x216e, "\x00\x44" }, |
{ 0x216f, "\x00\x4d" }, |
{ 0x2170, "\x00\x69" }, |
{ 0x2171, "\x00\x69\x00\x69" }, |
{ 0x2172, "\x00\x69\x00\x69\x00\x69" }, |
{ 0x2173, "\x00\x69\x00\x76" }, |
{ 0x2174, "\x00\x76" }, |
{ 0x2175, "\x00\x76\x00\x69" }, |
{ 0x2176, "\x00\x76\x00\x69\x00\x69" }, |
{ 0x2177, "\x00\x76\x00\x69\x00\x69\x00\x69" }, |
{ 0x2178, "\x00\x69\x00\x78" }, |
{ 0x2179, "\x00\x78" }, |
{ 0x217a, "\x00\x78\x00\x69" }, |
{ 0x217b, "\x00\x78\x00\x69\x00\x69" }, |
{ 0x217c, "\x00\x6c" }, |
{ 0x217d, "\x00\x63" }, |
{ 0x217e, "\x00\x64" }, |
{ 0x217f, "\x00\x6d" }, |
{ 0x222c, "\x22\x2b\x22\x2b" }, |
{ 0x222d, "\x22\x2b\x22\x2b\x22\x2b" }, |
{ 0x222f, "\x22\x2e\x22\x2e" }, |
{ 0x2230, "\x22\x2e\x22\x2e\x22\x2e" }, |
{ 0x2460, "\x00\x31" }, |
{ 0x2461, "\x00\x32" }, |
{ 0x2462, "\x00\x33" }, |
{ 0x2463, "\x00\x34" }, |
{ 0x2464, "\x00\x35" }, |
{ 0x2465, "\x00\x36" }, |
{ 0x2466, "\x00\x37" }, |
{ 0x2467, "\x00\x38" }, |
{ 0x2468, "\x00\x39" }, |
{ 0x2469, "\x00\x31\x00\x30" }, |
{ 0x246a, "\x00\x31\x00\x31" }, |
{ 0x246b, "\x00\x31\x00\x32" }, |
{ 0x246c, "\x00\x31\x00\x33" }, |
{ 0x246d, "\x00\x31\x00\x34" }, |
{ 0x246e, "\x00\x31\x00\x35" }, |
{ 0x246f, "\x00\x31\x00\x36" }, |
{ 0x2470, "\x00\x31\x00\x37" }, |
{ 0x2471, "\x00\x31\x00\x38" }, |
{ 0x2472, "\x00\x31\x00\x39" }, |
{ 0x2473, "\x00\x32\x00\x30" }, |
{ 0x2474, "\x00\x28\x00\x31\x00\x29" }, |
{ 0x2475, "\x00\x28\x00\x32\x00\x29" }, |
{ 0x2476, "\x00\x28\x00\x33\x00\x29" }, |
{ 0x2477, "\x00\x28\x00\x34\x00\x29" }, |
{ 0x2478, "\x00\x28\x00\x35\x00\x29" }, |
{ 0x2479, "\x00\x28\x00\x36\x00\x29" }, |
{ 0x247a, "\x00\x28\x00\x37\x00\x29" }, |
{ 0x247b, "\x00\x28\x00\x38\x00\x29" }, |
{ 0x247c, "\x00\x28\x00\x39\x00\x29" }, |
{ 0x247d, "\x00\x28\x00\x31\x00\x30\x00\x29" }, |
{ 0x247e, "\x00\x28\x00\x31\x00\x31\x00\x29" }, |
{ 0x247f, "\x00\x28\x00\x31\x00\x32\x00\x29" }, |
{ 0x2480, "\x00\x28\x00\x31\x00\x33\x00\x29" }, |
{ 0x2481, "\x00\x28\x00\x31\x00\x34\x00\x29" }, |
{ 0x2482, "\x00\x28\x00\x31\x00\x35\x00\x29" }, |
{ 0x2483, "\x00\x28\x00\x31\x00\x36\x00\x29" }, |
{ 0x2484, "\x00\x28\x00\x31\x00\x37\x00\x29" }, |
{ 0x2485, "\x00\x28\x00\x31\x00\x38\x00\x29" }, |
{ 0x2486, "\x00\x28\x00\x31\x00\x39\x00\x29" }, |
{ 0x2487, "\x00\x28\x00\x32\x00\x30\x00\x29" }, |
{ 0x2488, "\x00\x31\x00\x2e" }, |
{ 0x2489, "\x00\x32\x00\x2e" }, |
{ 0x248a, "\x00\x33\x00\x2e" }, |
{ 0x248b, "\x00\x34\x00\x2e" }, |
{ 0x248c, "\x00\x35\x00\x2e" }, |
{ 0x248d, "\x00\x36\x00\x2e" }, |
{ 0x248e, "\x00\x37\x00\x2e" }, |
{ 0x248f, "\x00\x38\x00\x2e" }, |
{ 0x2490, "\x00\x39\x00\x2e" }, |
{ 0x2491, "\x00\x31\x00\x30\x00\x2e" }, |
{ 0x2492, "\x00\x31\x00\x31\x00\x2e" }, |
{ 0x2493, "\x00\x31\x00\x32\x00\x2e" }, |
{ 0x2494, "\x00\x31\x00\x33\x00\x2e" }, |
{ 0x2495, "\x00\x31\x00\x34\x00\x2e" }, |
{ 0x2496, "\x00\x31\x00\x35\x00\x2e" }, |
{ 0x2497, "\x00\x31\x00\x36\x00\x2e" }, |
{ 0x2498, "\x00\x31\x00\x37\x00\x2e" }, |
{ 0x2499, "\x00\x31\x00\x38\x00\x2e" }, |
{ 0x249a, "\x00\x31\x00\x39\x00\x2e" }, |
{ 0x249b, "\x00\x32\x00\x30\x00\x2e" }, |
{ 0x249c, "\x00\x28\x00\x61\x00\x29" }, |
{ 0x249d, "\x00\x28\x00\x62\x00\x29" }, |
{ 0x249e, "\x00\x28\x00\x63\x00\x29" }, |
{ 0x249f, "\x00\x28\x00\x64\x00\x29" }, |
{ 0x24a0, "\x00\x28\x00\x65\x00\x29" }, |
{ 0x24a1, "\x00\x28\x00\x66\x00\x29" }, |
{ 0x24a2, "\x00\x28\x00\x67\x00\x29" }, |
{ 0x24a3, "\x00\x28\x00\x68\x00\x29" }, |
{ 0x24a4, "\x00\x28\x00\x69\x00\x29" }, |
{ 0x24a5, "\x00\x28\x00\x6a\x00\x29" }, |
{ 0x24a6, "\x00\x28\x00\x6b\x00\x29" }, |
{ 0x24a7, "\x00\x28\x00\x6c\x00\x29" }, |
{ 0x24a8, "\x00\x28\x00\x6d\x00\x29" }, |
{ 0x24a9, "\x00\x28\x00\x6e\x00\x29" }, |
{ 0x24aa, "\x00\x28\x00\x6f\x00\x29" }, |
{ 0x24ab, "\x00\x28\x00\x70\x00\x29" }, |
{ 0x24ac, "\x00\x28\x00\x71\x00\x29" }, |
{ 0x24ad, "\x00\x28\x00\x72\x00\x29" }, |
{ 0x24ae, "\x00\x28\x00\x73\x00\x29" }, |
{ 0x24af, "\x00\x28\x00\x74\x00\x29" }, |
{ 0x24b0, "\x00\x28\x00\x75\x00\x29" }, |
{ 0x24b1, "\x00\x28\x00\x76\x00\x29" }, |
{ 0x24b2, "\x00\x28\x00\x77\x00\x29" }, |
{ 0x24b3, "\x00\x28\x00\x78\x00\x29" }, |
{ 0x24b4, "\x00\x28\x00\x79\x00\x29" }, |
{ 0x24b5, "\x00\x28\x00\x7a\x00\x29" }, |
{ 0x24b6, "\x00\x41" }, |
{ 0x24b7, "\x00\x42" }, |
{ 0x24b8, "\x00\x43" }, |
{ 0x24b9, "\x00\x44" }, |
{ 0x24ba, "\x00\x45" }, |
{ 0x24bb, "\x00\x46" }, |
{ 0x24bc, "\x00\x47" }, |
{ 0x24bd, "\x00\x48" }, |
{ 0x24be, "\x00\x49" }, |
{ 0x24bf, "\x00\x4a" }, |
{ 0x24c0, "\x00\x4b" }, |
{ 0x24c1, "\x00\x4c" }, |
{ 0x24c2, "\x00\x4d" }, |
{ 0x24c3, "\x00\x4e" }, |
{ 0x24c4, "\x00\x4f" }, |
{ 0x24c5, "\x00\x50" }, |
{ 0x24c6, "\x00\x51" }, |
{ 0x24c7, "\x00\x52" }, |
{ 0x24c8, "\x00\x53" }, |
{ 0x24c9, "\x00\x54" }, |
{ 0x24ca, "\x00\x55" }, |
{ 0x24cb, "\x00\x56" }, |
{ 0x24cc, "\x00\x57" }, |
{ 0x24cd, "\x00\x58" }, |
{ 0x24ce, "\x00\x59" }, |
{ 0x24cf, "\x00\x5a" }, |
{ 0x24d0, "\x00\x61" }, |
{ 0x24d1, "\x00\x62" }, |
{ 0x24d2, "\x00\x63" }, |
{ 0x24d3, "\x00\x64" }, |
{ 0x24d4, "\x00\x65" }, |
{ 0x24d5, "\x00\x66" }, |
{ 0x24d6, "\x00\x67" }, |
{ 0x24d7, "\x00\x68" }, |
{ 0x24d8, "\x00\x69" }, |
{ 0x24d9, "\x00\x6a" }, |
{ 0x24da, "\x00\x6b" }, |
{ 0x24db, "\x00\x6c" }, |
{ 0x24dc, "\x00\x6d" }, |
{ 0x24dd, "\x00\x6e" }, |
{ 0x24de, "\x00\x6f" }, |
{ 0x24df, "\x00\x70" }, |
{ 0x24e0, "\x00\x71" }, |
{ 0x24e1, "\x00\x72" }, |
{ 0x24e2, "\x00\x73" }, |
{ 0x24e3, "\x00\x74" }, |
{ 0x24e4, "\x00\x75" }, |
{ 0x24e5, "\x00\x76" }, |
{ 0x24e6, "\x00\x77" }, |
{ 0x24e7, "\x00\x78" }, |
{ 0x24e8, "\x00\x79" }, |
{ 0x24e9, "\x00\x7a" }, |
{ 0x24ea, "\x00\x30" }, |
{ 0x2e9f, "\x6b\xcd" }, |
{ 0x2ef3, "\x9f\x9f" }, |
{ 0x2f00, "\x4e\x00" }, |
{ 0x2f01, "\x4e\x28" }, |
{ 0x2f02, "\x4e\x36" }, |
{ 0x2f03, "\x4e\x3f" }, |
{ 0x2f04, "\x4e\x59" }, |
{ 0x2f05, "\x4e\x85" }, |
{ 0x2f06, "\x4e\x8c" }, |
{ 0x2f07, "\x4e\xa0" }, |
{ 0x2f08, "\x4e\xba" }, |
{ 0x2f09, "\x51\x3f" }, |
{ 0x2f0a, "\x51\x65" }, |
{ 0x2f0b, "\x51\x6b" }, |
{ 0x2f0c, "\x51\x82" }, |
{ 0x2f0d, "\x51\x96" }, |
{ 0x2f0e, "\x51\xab" }, |
{ 0x2f0f, "\x51\xe0" }, |
{ 0x2f10, "\x51\xf5" }, |
{ 0x2f11, "\x52\x00" }, |
{ 0x2f12, "\x52\x9b" }, |
{ 0x2f13, "\x52\xf9" }, |
{ 0x2f14, "\x53\x15" }, |
{ 0x2f15, "\x53\x1a" }, |
{ 0x2f16, "\x53\x38" }, |
{ 0x2f17, "\x53\x41" }, |
{ 0x2f18, "\x53\x5c" }, |
{ 0x2f19, "\x53\x69" }, |
{ 0x2f1a, "\x53\x82" }, |
{ 0x2f1b, "\x53\xb6" }, |
{ 0x2f1c, "\x53\xc8" }, |
{ 0x2f1d, "\x53\xe3" }, |
{ 0x2f1e, "\x56\xd7" }, |
{ 0x2f1f, "\x57\x1f" }, |
{ 0x2f20, "\x58\xeb" }, |
{ 0x2f21, "\x59\x02" }, |
{ 0x2f22, "\x59\x0a" }, |
{ 0x2f23, "\x59\x15" }, |
{ 0x2f24, "\x59\x27" }, |
{ 0x2f25, "\x59\x73" }, |
{ 0x2f26, "\x5b\x50" }, |
{ 0x2f27, "\x5b\x80" }, |
{ 0x2f28, "\x5b\xf8" }, |
{ 0x2f29, "\x5c\x0f" }, |
{ 0x2f2a, "\x5c\x22" }, |
{ 0x2f2b, "\x5c\x38" }, |
{ 0x2f2c, "\x5c\x6e" }, |
{ 0x2f2d, "\x5c\x71" }, |
{ 0x2f2e, "\x5d\xdb" }, |
{ 0x2f2f, "\x5d\xe5" }, |
{ 0x2f30, "\x5d\xf1" }, |
{ 0x2f31, "\x5d\xfe" }, |
{ 0x2f32, "\x5e\x72" }, |
{ 0x2f33, "\x5e\x7a" }, |
{ 0x2f34, "\x5e\x7f" }, |
{ 0x2f35, "\x5e\xf4" }, |
{ 0x2f36, "\x5e\xfe" }, |
{ 0x2f37, "\x5f\x0b" }, |
{ 0x2f38, "\x5f\x13" }, |
{ 0x2f39, "\x5f\x50" }, |
{ 0x2f3a, "\x5f\x61" }, |
{ 0x2f3b, "\x5f\x73" }, |
{ 0x2f3c, "\x5f\xc3" }, |
{ 0x2f3d, "\x62\x08" }, |
{ 0x2f3e, "\x62\x36" }, |
{ 0x2f3f, "\x62\x4b" }, |
{ 0x2f40, "\x65\x2f" }, |
{ 0x2f41, "\x65\x34" }, |
{ 0x2f42, "\x65\x87" }, |
{ 0x2f43, "\x65\x97" }, |
{ 0x2f44, "\x65\xa4" }, |
{ 0x2f45, "\x65\xb9" }, |
{ 0x2f46, "\x65\xe0" }, |
{ 0x2f47, "\x65\xe5" }, |
{ 0x2f48, "\x66\xf0" }, |
{ 0x2f49, "\x67\x08" }, |
{ 0x2f4a, "\x67\x28" }, |
{ 0x2f4b, "\x6b\x20" }, |
{ 0x2f4c, "\x6b\x62" }, |
{ 0x2f4d, "\x6b\x79" }, |
{ 0x2f4e, "\x6b\xb3" }, |
{ 0x2f4f, "\x6b\xcb" }, |
{ 0x2f50, "\x6b\xd4" }, |
{ 0x2f51, "\x6b\xdb" }, |
{ 0x2f52, "\x6c\x0f" }, |
{ 0x2f53, "\x6c\x14" }, |
{ 0x2f54, "\x6c\x34" }, |
{ 0x2f55, "\x70\x6b" }, |
{ 0x2f56, "\x72\x2a" }, |
{ 0x2f57, "\x72\x36" }, |
{ 0x2f58, "\x72\x3b" }, |
{ 0x2f59, "\x72\x3f" }, |
{ 0x2f5a, "\x72\x47" }, |
{ 0x2f5b, "\x72\x59" }, |
{ 0x2f5c, "\x72\x5b" }, |
{ 0x2f5d, "\x72\xac" }, |
{ 0x2f5e, "\x73\x84" }, |
{ 0x2f5f, "\x73\x89" }, |
{ 0x2f60, "\x74\xdc" }, |
{ 0x2f61, "\x74\xe6" }, |
{ 0x2f62, "\x75\x18" }, |
{ 0x2f63, "\x75\x1f" }, |
{ 0x2f64, "\x75\x28" }, |
{ 0x2f65, "\x75\x30" }, |
{ 0x2f66, "\x75\x8b" }, |
{ 0x2f67, "\x75\x92" }, |
{ 0x2f68, "\x76\x76" }, |
{ 0x2f69, "\x76\x7d" }, |
{ 0x2f6a, "\x76\xae" }, |
{ 0x2f6b, "\x76\xbf" }, |
{ 0x2f6c, "\x76\xee" }, |
{ 0x2f6d, "\x77\xdb" }, |
{ 0x2f6e, "\x77\xe2" }, |
{ 0x2f6f, "\x77\xf3" }, |
{ 0x2f70, "\x79\x3a" }, |
{ 0x2f71, "\x79\xb8" }, |
{ 0x2f72, "\x79\xbe" }, |
{ 0x2f73, "\x7a\x74" }, |
{ 0x2f74, "\x7a\xcb" }, |
{ 0x2f75, "\x7a\xf9" }, |
{ 0x2f76, "\x7c\x73" }, |
{ 0x2f77, "\x7c\xf8" }, |
{ 0x2f78, "\x7f\x36" }, |
{ 0x2f79, "\x7f\x51" }, |
{ 0x2f7a, "\x7f\x8a" }, |
{ 0x2f7b, "\x7f\xbd" }, |
{ 0x2f7c, "\x80\x01" }, |
{ 0x2f7d, "\x80\x0c" }, |
{ 0x2f7e, "\x80\x12" }, |
{ 0x2f7f, "\x80\x33" }, |
{ 0x2f80, "\x80\x7f" }, |
{ 0x2f81, "\x80\x89" }, |
{ 0x2f82, "\x81\xe3" }, |
{ 0x2f83, "\x81\xea" }, |
{ 0x2f84, "\x81\xf3" }, |
{ 0x2f85, "\x81\xfc" }, |
{ 0x2f86, "\x82\x0c" }, |
{ 0x2f87, "\x82\x1b" }, |
{ 0x2f88, "\x82\x1f" }, |
{ 0x2f89, "\x82\x6e" }, |
{ 0x2f8a, "\x82\x72" }, |
{ 0x2f8b, "\x82\x78" }, |
{ 0x2f8c, "\x86\x4d" }, |
{ 0x2f8d, "\x86\x6b" }, |
{ 0x2f8e, "\x88\x40" }, |
{ 0x2f8f, "\x88\x4c" }, |
{ 0x2f90, "\x88\x63" }, |
{ 0x2f91, "\x89\x7e" }, |
{ 0x2f92, "\x89\x8b" }, |
{ 0x2f93, "\x89\xd2" }, |
{ 0x2f94, "\x8a\x00" }, |
{ 0x2f95, "\x8c\x37" }, |
{ 0x2f96, "\x8c\x46" }, |
{ 0x2f97, "\x8c\x55" }, |
{ 0x2f98, "\x8c\x78" }, |
{ 0x2f99, "\x8c\x9d" }, |
{ 0x2f9a, "\x8d\x64" }, |
{ 0x2f9b, "\x8d\x70" }, |
{ 0x2f9c, "\x8d\xb3" }, |
{ 0x2f9d, "\x8e\xab" }, |
{ 0x2f9e, "\x8e\xca" }, |
{ 0x2f9f, "\x8f\x9b" }, |
{ 0x2fa0, "\x8f\xb0" }, |
{ 0x2fa1, "\x8f\xb5" }, |
{ 0x2fa2, "\x90\x91" }, |
{ 0x2fa3, "\x91\x49" }, |
{ 0x2fa4, "\x91\xc6" }, |
{ 0x2fa5, "\x91\xcc" }, |
{ 0x2fa6, "\x91\xd1" }, |
{ 0x2fa7, "\x95\x77" }, |
{ 0x2fa8, "\x95\x80" }, |
{ 0x2fa9, "\x96\x1c" }, |
{ 0x2faa, "\x96\xb6" }, |
{ 0x2fab, "\x96\xb9" }, |
{ 0x2fac, "\x96\xe8" }, |
{ 0x2fad, "\x97\x51" }, |
{ 0x2fae, "\x97\x5e" }, |
{ 0x2faf, "\x97\x62" }, |
{ 0x2fb0, "\x97\x69" }, |
{ 0x2fb1, "\x97\xcb" }, |
{ 0x2fb2, "\x97\xed" }, |
{ 0x2fb3, "\x97\xf3" }, |
{ 0x2fb4, "\x98\x01" }, |
{ 0x2fb5, "\x98\xa8" }, |
{ 0x2fb6, "\x98\xdb" }, |
{ 0x2fb7, "\x98\xdf" }, |
{ 0x2fb8, "\x99\x96" }, |
{ 0x2fb9, "\x99\x99" }, |
{ 0x2fba, "\x99\xac" }, |
{ 0x2fbb, "\x9a\xa8" }, |
{ 0x2fbc, "\x9a\xd8" }, |
{ 0x2fbd, "\x9a\xdf" }, |
{ 0x2fbe, "\x9b\x25" }, |
{ 0x2fbf, "\x9b\x2f" }, |
{ 0x2fc0, "\x9b\x32" }, |
{ 0x2fc1, "\x9b\x3c" }, |
{ 0x2fc2, "\x9b\x5a" }, |
{ 0x2fc3, "\x9c\xe5" }, |
{ 0x2fc4, "\x9e\x75" }, |
{ 0x2fc5, "\x9e\x7f" }, |
{ 0x2fc6, "\x9e\xa5" }, |
{ 0x2fc7, "\x9e\xbb" }, |
{ 0x2fc8, "\x9e\xc3" }, |
{ 0x2fc9, "\x9e\xcd" }, |
{ 0x2fca, "\x9e\xd1" }, |
{ 0x2fcb, "\x9e\xf9" }, |
{ 0x2fcc, "\x9e\xfd" }, |
{ 0x2fcd, "\x9f\x0e" }, |
{ 0x2fce, "\x9f\x13" }, |
{ 0x2fcf, "\x9f\x20" }, |
{ 0x2fd0, "\x9f\x3b" }, |
{ 0x2fd1, "\x9f\x4a" }, |
{ 0x2fd2, "\x9f\x52" }, |
{ 0x2fd3, "\x9f\x8d" }, |
{ 0x2fd4, "\x9f\x9c" }, |
{ 0x2fd5, "\x9f\xa0" }, |
{ 0x3000, "\x00\x20" }, |
{ 0x3036, "\x30\x12" }, |
{ 0x3038, "\x53\x41" }, |
{ 0x3039, "\x53\x44" }, |
{ 0x303a, "\x53\x45" }, |
{ 0x309b, "\x00\x20\x30\x99" }, |
{ 0x309c, "\x00\x20\x30\x9a" }, |
{ 0x3131, "\x11\x00" }, |
{ 0x3132, "\x11\x01" }, |
{ 0x3133, "\x11\xaa" }, |
{ 0x3134, "\x11\x02" }, |
{ 0x3135, "\x11\xac" }, |
{ 0x3136, "\x11\xad" }, |
{ 0x3137, "\x11\x03" }, |
{ 0x3138, "\x11\x04" }, |
{ 0x3139, "\x11\x05" }, |
{ 0x313a, "\x11\xb0" }, |
{ 0x313b, "\x11\xb1" }, |
{ 0x313c, "\x11\xb2" }, |
{ 0x313d, "\x11\xb3" }, |
{ 0x313e, "\x11\xb4" }, |
{ 0x313f, "\x11\xb5" }, |
{ 0x3140, "\x11\x1a" }, |
{ 0x3141, "\x11\x06" }, |
{ 0x3142, "\x11\x07" }, |
{ 0x3143, "\x11\x08" }, |
{ 0x3144, "\x11\x21" }, |
{ 0x3145, "\x11\x09" }, |
{ 0x3146, "\x11\x0a" }, |
{ 0x3147, "\x11\x0b" }, |
{ 0x3148, "\x11\x0c" }, |
{ 0x3149, "\x11\x0d" }, |
{ 0x314a, "\x11\x0e" }, |
{ 0x314b, "\x11\x0f" }, |
{ 0x314c, "\x11\x10" }, |
{ 0x314d, "\x11\x11" }, |
{ 0x314e, "\x11\x12" }, |
{ 0x314f, "\x11\x61" }, |
{ 0x3150, "\x11\x62" }, |
{ 0x3151, "\x11\x63" }, |
{ 0x3152, "\x11\x64" }, |
{ 0x3153, "\x11\x65" }, |
{ 0x3154, "\x11\x66" }, |
{ 0x3155, "\x11\x67" }, |
{ 0x3156, "\x11\x68" }, |
{ 0x3157, "\x11\x69" }, |
{ 0x3158, "\x11\x6a" }, |
{ 0x3159, "\x11\x6b" }, |
{ 0x315a, "\x11\x6c" }, |
{ 0x315b, "\x11\x6d" }, |
{ 0x315c, "\x11\x6e" }, |
{ 0x315d, "\x11\x6f" }, |
{ 0x315e, "\x11\x70" }, |
{ 0x315f, "\x11\x71" }, |
{ 0x3160, "\x11\x72" }, |
{ 0x3161, "\x11\x73" }, |
{ 0x3162, "\x11\x74" }, |
{ 0x3163, "\x11\x75" }, |
{ 0x3164, "\x11\x60" }, |
{ 0x3165, "\x11\x14" }, |
{ 0x3166, "\x11\x15" }, |
{ 0x3167, "\x11\xc7" }, |
{ 0x3168, "\x11\xc8" }, |
{ 0x3169, "\x11\xcc" }, |
{ 0x316a, "\x11\xce" }, |
{ 0x316b, "\x11\xd3" }, |
{ 0x316c, "\x11\xd7" }, |
{ 0x316d, "\x11\xd9" }, |
{ 0x316e, "\x11\x1c" }, |
{ 0x316f, "\x11\xdd" }, |
{ 0x3170, "\x11\xdf" }, |
{ 0x3171, "\x11\x1d" }, |
{ 0x3172, "\x11\x1e" }, |
{ 0x3173, "\x11\x20" }, |
{ 0x3174, "\x11\x22" }, |
{ 0x3175, "\x11\x23" }, |
{ 0x3176, "\x11\x27" }, |
{ 0x3177, "\x11\x29" }, |
{ 0x3178, "\x11\x2b" }, |
{ 0x3179, "\x11\x2c" }, |
{ 0x317a, "\x11\x2d" }, |
{ 0x317b, "\x11\x2e" }, |
{ 0x317c, "\x11\x2f" }, |
{ 0x317d, "\x11\x32" }, |
{ 0x317e, "\x11\x36" }, |
{ 0x317f, "\x11\x40" }, |
{ 0x3180, "\x11\x47" }, |
{ 0x3181, "\x11\x4c" }, |
{ 0x3182, "\x11\xf1" }, |
{ 0x3183, "\x11\xf2" }, |
{ 0x3184, "\x11\x57" }, |
{ 0x3185, "\x11\x58" }, |
{ 0x3186, "\x11\x59" }, |
{ 0x3187, "\x11\x84" }, |
{ 0x3188, "\x11\x85" }, |
{ 0x3189, "\x11\x88" }, |
{ 0x318a, "\x11\x91" }, |
{ 0x318b, "\x11\x92" }, |
{ 0x318c, "\x11\x94" }, |
{ 0x318d, "\x11\x9e" }, |
{ 0x318e, "\x11\xa1" }, |
{ 0x3192, "\x4e\x00" }, |
{ 0x3193, "\x4e\x8c" }, |
{ 0x3194, "\x4e\x09" }, |
{ 0x3195, "\x56\xdb" }, |
{ 0x3196, "\x4e\x0a" }, |
{ 0x3197, "\x4e\x2d" }, |
{ 0x3198, "\x4e\x0b" }, |
{ 0x3199, "\x75\x32" }, |
{ 0x319a, "\x4e\x59" }, |
{ 0x319b, "\x4e\x19" }, |
{ 0x319c, "\x4e\x01" }, |
{ 0x319d, "\x59\x29" }, |
{ 0x319e, "\x57\x30" }, |
{ 0x319f, "\x4e\xba" }, |
{ 0x3200, "\x00\x28\x11\x00\x00\x29" }, |
{ 0x3201, "\x00\x28\x11\x02\x00\x29" }, |
{ 0x3202, "\x00\x28\x11\x03\x00\x29" }, |
{ 0x3203, "\x00\x28\x11\x05\x00\x29" }, |
{ 0x3204, "\x00\x28\x11\x06\x00\x29" }, |
{ 0x3205, "\x00\x28\x11\x07\x00\x29" }, |
{ 0x3206, "\x00\x28\x11\x09\x00\x29" }, |
{ 0x3207, "\x00\x28\x11\x0b\x00\x29" }, |
{ 0x3208, "\x00\x28\x11\x0c\x00\x29" }, |
{ 0x3209, "\x00\x28\x11\x0e\x00\x29" }, |
{ 0x320a, "\x00\x28\x11\x0f\x00\x29" }, |
{ 0x320b, "\x00\x28\x11\x10\x00\x29" }, |
{ 0x320c, "\x00\x28\x11\x11\x00\x29" }, |
{ 0x320d, "\x00\x28\x11\x12\x00\x29" }, |
{ 0x320e, "\x00\x28\x11\x00\x11\x61\x00\x29" }, |
{ 0x320f, "\x00\x28\x11\x02\x11\x61\x00\x29" }, |
{ 0x3210, "\x00\x28\x11\x03\x11\x61\x00\x29" }, |
{ 0x3211, "\x00\x28\x11\x05\x11\x61\x00\x29" }, |
{ 0x3212, "\x00\x28\x11\x06\x11\x61\x00\x29" }, |
{ 0x3213, "\x00\x28\x11\x07\x11\x61\x00\x29" }, |
{ 0x3214, "\x00\x28\x11\x09\x11\x61\x00\x29" }, |
{ 0x3215, "\x00\x28\x11\x0b\x11\x61\x00\x29" }, |
{ 0x3216, "\x00\x28\x11\x0c\x11\x61\x00\x29" }, |
{ 0x3217, "\x00\x28\x11\x0e\x11\x61\x00\x29" }, |
{ 0x3218, "\x00\x28\x11\x0f\x11\x61\x00\x29" }, |
{ 0x3219, "\x00\x28\x11\x10\x11\x61\x00\x29" }, |
{ 0x321a, "\x00\x28\x11\x11\x11\x61\x00\x29" }, |
{ 0x321b, "\x00\x28\x11\x12\x11\x61\x00\x29" }, |
{ 0x321c, "\x00\x28\x11\x0c\x11\x6e\x00\x29" }, |
{ 0x3220, "\x00\x28\x4e\x00\x00\x29" }, |
{ 0x3221, "\x00\x28\x4e\x8c\x00\x29" }, |
{ 0x3222, "\x00\x28\x4e\x09\x00\x29" }, |
{ 0x3223, "\x00\x28\x56\xdb\x00\x29" }, |
{ 0x3224, "\x00\x28\x4e\x94\x00\x29" }, |
{ 0x3225, "\x00\x28\x51\x6d\x00\x29" }, |
{ 0x3226, "\x00\x28\x4e\x03\x00\x29" }, |
{ 0x3227, "\x00\x28\x51\x6b\x00\x29" }, |
{ 0x3228, "\x00\x28\x4e\x5d\x00\x29" }, |
{ 0x3229, "\x00\x28\x53\x41\x00\x29" }, |
{ 0x322a, "\x00\x28\x67\x08\x00\x29" }, |
{ 0x322b, "\x00\x28\x70\x6b\x00\x29" }, |
{ 0x322c, "\x00\x28\x6c\x34\x00\x29" }, |
{ 0x322d, "\x00\x28\x67\x28\x00\x29" }, |
{ 0x322e, "\x00\x28\x91\xd1\x00\x29" }, |
{ 0x322f, "\x00\x28\x57\x1f\x00\x29" }, |
{ 0x3230, "\x00\x28\x65\xe5\x00\x29" }, |
{ 0x3231, "\x00\x28\x68\x2a\x00\x29" }, |
{ 0x3232, "\x00\x28\x67\x09\x00\x29" }, |
{ 0x3233, "\x00\x28\x79\x3e\x00\x29" }, |
{ 0x3234, "\x00\x28\x54\x0d\x00\x29" }, |
{ 0x3235, "\x00\x28\x72\x79\x00\x29" }, |
{ 0x3236, "\x00\x28\x8c\xa1\x00\x29" }, |
{ 0x3237, "\x00\x28\x79\x5d\x00\x29" }, |
{ 0x3238, "\x00\x28\x52\xb4\x00\x29" }, |
{ 0x3239, "\x00\x28\x4e\xe3\x00\x29" }, |
{ 0x323a, "\x00\x28\x54\x7c\x00\x29" }, |
{ 0x323b, "\x00\x28\x5b\x66\x00\x29" }, |
{ 0x323c, "\x00\x28\x76\xe3\x00\x29" }, |
{ 0x323d, "\x00\x28\x4f\x01\x00\x29" }, |
{ 0x323e, "\x00\x28\x8c\xc7\x00\x29" }, |
{ 0x323f, "\x00\x28\x53\x54\x00\x29" }, |
{ 0x3240, "\x00\x28\x79\x6d\x00\x29" }, |
{ 0x3241, "\x00\x28\x4f\x11\x00\x29" }, |
{ 0x3242, "\x00\x28\x81\xea\x00\x29" }, |
{ 0x3243, "\x00\x28\x81\xf3\x00\x29" }, |
{ 0x3260, "\x11\x00" }, |
{ 0x3261, "\x11\x02" }, |
{ 0x3262, "\x11\x03" }, |
{ 0x3263, "\x11\x05" }, |
{ 0x3264, "\x11\x06" }, |
{ 0x3265, "\x11\x07" }, |
{ 0x3266, "\x11\x09" }, |
{ 0x3267, "\x11\x0b" }, |
{ 0x3268, "\x11\x0c" }, |
{ 0x3269, "\x11\x0e" }, |
{ 0x326a, "\x11\x0f" }, |
{ 0x326b, "\x11\x10" }, |
{ 0x326c, "\x11\x11" }, |
{ 0x326d, "\x11\x12" }, |
{ 0x326e, "\x11\x00\x11\x61" }, |
{ 0x326f, "\x11\x02\x11\x61" }, |
{ 0x3270, "\x11\x03\x11\x61" }, |
{ 0x3271, "\x11\x05\x11\x61" }, |
{ 0x3272, "\x11\x06\x11\x61" }, |
{ 0x3273, "\x11\x07\x11\x61" }, |
{ 0x3274, "\x11\x09\x11\x61" }, |
{ 0x3275, "\x11\x0b\x11\x61" }, |
{ 0x3276, "\x11\x0c\x11\x61" }, |
{ 0x3277, "\x11\x0e\x11\x61" }, |
{ 0x3278, "\x11\x0f\x11\x61" }, |
{ 0x3279, "\x11\x10\x11\x61" }, |
{ 0x327a, "\x11\x11\x11\x61" }, |
{ 0x327b, "\x11\x12\x11\x61" }, |
{ 0x3280, "\x4e\x00" }, |
{ 0x3281, "\x4e\x8c" }, |
{ 0x3282, "\x4e\x09" }, |
{ 0x3283, "\x56\xdb" }, |
{ 0x3284, "\x4e\x94" }, |
{ 0x3285, "\x51\x6d" }, |
{ 0x3286, "\x4e\x03" }, |
{ 0x3287, "\x51\x6b" }, |
{ 0x3288, "\x4e\x5d" }, |
{ 0x3289, "\x53\x41" }, |
{ 0x328a, "\x67\x08" }, |
{ 0x328b, "\x70\x6b" }, |
{ 0x328c, "\x6c\x34" }, |
{ 0x328d, "\x67\x28" }, |
{ 0x328e, "\x91\xd1" }, |
{ 0x328f, "\x57\x1f" }, |
{ 0x3290, "\x65\xe5" }, |
{ 0x3291, "\x68\x2a" }, |
{ 0x3292, "\x67\x09" }, |
{ 0x3293, "\x79\x3e" }, |
{ 0x3294, "\x54\x0d" }, |
{ 0x3295, "\x72\x79" }, |
{ 0x3296, "\x8c\xa1" }, |
{ 0x3297, "\x79\x5d" }, |
{ 0x3298, "\x52\xb4" }, |
{ 0x3299, "\x79\xd8" }, |
{ 0x329a, "\x75\x37" }, |
{ 0x329b, "\x59\x73" }, |
{ 0x329c, "\x90\x69" }, |
{ 0x329d, "\x51\x2a" }, |
{ 0x329e, "\x53\x70" }, |
{ 0x329f, "\x6c\xe8" }, |
{ 0x32a0, "\x98\x05" }, |
{ 0x32a1, "\x4f\x11" }, |
{ 0x32a2, "\x51\x99" }, |
{ 0x32a3, "\x6b\x63" }, |
{ 0x32a4, "\x4e\x0a" }, |
{ 0x32a5, "\x4e\x2d" }, |
{ 0x32a6, "\x4e\x0b" }, |
{ 0x32a7, "\x5d\xe6" }, |
{ 0x32a8, "\x53\xf3" }, |
{ 0x32a9, "\x53\x3b" }, |
{ 0x32aa, "\x5b\x97" }, |
{ 0x32ab, "\x5b\x66" }, |
{ 0x32ac, "\x76\xe3" }, |
{ 0x32ad, "\x4f\x01" }, |
{ 0x32ae, "\x8c\xc7" }, |
{ 0x32af, "\x53\x54" }, |
{ 0x32b0, "\x59\x1c" }, |
{ 0x32c0, "\x00\x31\x67\x08" }, |
{ 0x32c1, "\x00\x32\x67\x08" }, |
{ 0x32c2, "\x00\x33\x67\x08" }, |
{ 0x32c3, "\x00\x34\x67\x08" }, |
{ 0x32c4, "\x00\x35\x67\x08" }, |
{ 0x32c5, "\x00\x36\x67\x08" }, |
{ 0x32c6, "\x00\x37\x67\x08" }, |
{ 0x32c7, "\x00\x38\x67\x08" }, |
{ 0x32c8, "\x00\x39\x67\x08" }, |
{ 0x32c9, "\x00\x31\x00\x30\x67\x08" }, |
{ 0x32ca, "\x00\x31\x00\x31\x67\x08" }, |
{ 0x32cb, "\x00\x31\x00\x32\x67\x08" }, |
{ 0x32d0, "\x30\xa2" }, |
{ 0x32d1, "\x30\xa4" }, |
{ 0x32d2, "\x30\xa6" }, |
{ 0x32d3, "\x30\xa8" }, |
{ 0x32d4, "\x30\xaa" }, |
{ 0x32d5, "\x30\xab" }, |
{ 0x32d6, "\x30\xad" }, |
{ 0x32d7, "\x30\xaf" }, |
{ 0x32d8, "\x30\xb1" }, |
{ 0x32d9, "\x30\xb3" }, |
{ 0x32da, "\x30\xb5" }, |
{ 0x32db, "\x30\xb7" }, |
{ 0x32dc, "\x30\xb9" }, |
{ 0x32dd, "\x30\xbb" }, |
{ 0x32de, "\x30\xbd" }, |
{ 0x32df, "\x30\xbf" }, |
{ 0x32e0, "\x30\xc1" }, |
{ 0x32e1, "\x30\xc4" }, |
{ 0x32e2, "\x30\xc6" }, |
{ 0x32e3, "\x30\xc8" }, |
{ 0x32e4, "\x30\xca" }, |
{ 0x32e5, "\x30\xcb" }, |
{ 0x32e6, "\x30\xcc" }, |
{ 0x32e7, "\x30\xcd" }, |
{ 0x32e8, "\x30\xce" }, |
{ 0x32e9, "\x30\xcf" }, |
{ 0x32ea, "\x30\xd2" }, |
{ 0x32eb, "\x30\xd5" }, |
{ 0x32ec, "\x30\xd8" }, |
{ 0x32ed, "\x30\xdb" }, |
{ 0x32ee, "\x30\xde" }, |
{ 0x32ef, "\x30\xdf" }, |
{ 0x32f0, "\x30\xe0" }, |
{ 0x32f1, "\x30\xe1" }, |
{ 0x32f2, "\x30\xe2" }, |
{ 0x32f3, "\x30\xe4" }, |
{ 0x32f4, "\x30\xe6" }, |
{ 0x32f5, "\x30\xe8" }, |
{ 0x32f6, "\x30\xe9" }, |
{ 0x32f7, "\x30\xea" }, |
{ 0x32f8, "\x30\xeb" }, |
{ 0x32f9, "\x30\xec" }, |
{ 0x32fa, "\x30\xed" }, |
{ 0x32fb, "\x30\xef" }, |
{ 0x32fc, "\x30\xf0" }, |
{ 0x32fd, "\x30\xf1" }, |
{ 0x32fe, "\x30\xf2" }, |
{ 0x3300, "\x30\xa2\x30\xd1\x30\xfc\x30\xc8" }, |
{ 0x3301, "\x30\xa2\x30\xeb\x30\xd5\x30\xa1" }, |
{ 0x3302, "\x30\xa2\x30\xf3\x30\xda\x30\xa2" }, |
{ 0x3303, "\x30\xa2\x30\xfc\x30\xeb" }, |
{ 0x3304, "\x30\xa4\x30\xcb\x30\xf3\x30\xb0" }, |
{ 0x3305, "\x30\xa4\x30\xf3\x30\xc1" }, |
{ 0x3306, "\x30\xa6\x30\xa9\x30\xf3" }, |
{ 0x3307, "\x30\xa8\x30\xb9\x30\xaf\x30\xfc\x30\xc9" }, |
{ 0x3308, "\x30\xa8\x30\xfc\x30\xab\x30\xfc" }, |
{ 0x3309, "\x30\xaa\x30\xf3\x30\xb9" }, |
{ 0x330a, "\x30\xaa\x30\xfc\x30\xe0" }, |
{ 0x330b, "\x30\xab\x30\xa4\x30\xea" }, |
{ 0x330c, "\x30\xab\x30\xe9\x30\xc3\x30\xc8" }, |
{ 0x330d, "\x30\xab\x30\xed\x30\xea\x30\xfc" }, |
{ 0x330e, "\x30\xac\x30\xed\x30\xf3" }, |
{ 0x330f, "\x30\xac\x30\xf3\x30\xde" }, |
{ 0x3310, "\x30\xae\x30\xac" }, |
{ 0x3311, "\x30\xae\x30\xcb\x30\xfc" }, |
{ 0x3312, "\x30\xad\x30\xe5\x30\xea\x30\xfc" }, |
{ 0x3313, "\x30\xae\x30\xeb\x30\xc0\x30\xfc" }, |
{ 0x3314, "\x30\xad\x30\xed" }, |
{ 0x3315, "\x30\xad\x30\xed\x30\xb0\x30\xe9\x30\xe0" }, |
{ 0x3316, "\x30\xad\x30\xed\x30\xe1\x30\xfc\x30\xc8\x30\xeb" }, |
{ 0x3317, "\x30\xad\x30\xed\x30\xef\x30\xc3\x30\xc8" }, |
{ 0x3318, "\x30\xb0\x30\xe9\x30\xe0" }, |
{ 0x3319, "\x30\xb0\x30\xe9\x30\xe0\x30\xc8\x30\xf3" }, |
{ 0x331a, "\x30\xaf\x30\xeb\x30\xbc\x30\xa4\x30\xed" }, |
{ 0x331b, "\x30\xaf\x30\xed\x30\xfc\x30\xcd" }, |
{ 0x331c, "\x30\xb1\x30\xfc\x30\xb9" }, |
{ 0x331d, "\x30\xb3\x30\xeb\x30\xca" }, |
{ 0x331e, "\x30\xb3\x30\xfc\x30\xdd" }, |
{ 0x331f, "\x30\xb5\x30\xa4\x30\xaf\x30\xeb" }, |
{ 0x3320, "\x30\xb5\x30\xf3\x30\xc1\x30\xfc\x30\xe0" }, |
{ 0x3321, "\x30\xb7\x30\xea\x30\xf3\x30\xb0" }, |
{ 0x3322, "\x30\xbb\x30\xf3\x30\xc1" }, |
{ 0x3323, "\x30\xbb\x30\xf3\x30\xc8" }, |
{ 0x3324, "\x30\xc0\x30\xfc\x30\xb9" }, |
{ 0x3325, "\x30\xc7\x30\xb7" }, |
{ 0x3326, "\x30\xc9\x30\xeb" }, |
{ 0x3327, "\x30\xc8\x30\xf3" }, |
{ 0x3328, "\x30\xca\x30\xce" }, |
{ 0x3329, "\x30\xce\x30\xc3\x30\xc8" }, |
{ 0x332a, "\x30\xcf\x30\xa4\x30\xc4" }, |
{ 0x332b, "\x30\xd1\x30\xfc\x30\xbb\x30\xf3\x30\xc8" }, |
{ 0x332c, "\x30\xd1\x30\xfc\x30\xc4" }, |
{ 0x332d, "\x30\xd0\x30\xfc\x30\xec\x30\xeb" }, |
{ 0x332e, "\x30\xd4\x30\xa2\x30\xb9\x30\xc8\x30\xeb" }, |
{ 0x332f, "\x30\xd4\x30\xaf\x30\xeb" }, |
{ 0x3330, "\x30\xd4\x30\xb3" }, |
{ 0x3331, "\x30\xd3\x30\xeb" }, |
{ 0x3332, "\x30\xd5\x30\xa1\x30\xe9\x30\xc3\x30\xc9" }, |
{ 0x3333, "\x30\xd5\x30\xa3\x30\xfc\x30\xc8" }, |
{ 0x3334, "\x30\xd6\x30\xc3\x30\xb7\x30\xa7\x30\xeb" }, |
{ 0x3335, "\x30\xd5\x30\xe9\x30\xf3" }, |
{ 0x3336, "\x30\xd8\x30\xaf\x30\xbf\x30\xfc\x30\xeb" }, |
{ 0x3337, "\x30\xda\x30\xbd" }, |
{ 0x3338, "\x30\xda\x30\xcb\x30\xd2" }, |
{ 0x3339, "\x30\xd8\x30\xeb\x30\xc4" }, |
{ 0x333a, "\x30\xda\x30\xf3\x30\xb9" }, |
{ 0x333b, "\x30\xda\x30\xfc\x30\xb8" }, |
{ 0x333c, "\x30\xd9\x30\xfc\x30\xbf" }, |
{ 0x333d, "\x30\xdd\x30\xa4\x30\xf3\x30\xc8" }, |
{ 0x333e, "\x30\xdc\x30\xeb\x30\xc8" }, |
{ 0x333f, "\x30\xdb\x30\xf3" }, |
{ 0x3340, "\x30\xdd\x30\xf3\x30\xc9" }, |
{ 0x3341, "\x30\xdb\x30\xfc\x30\xeb" }, |
{ 0x3342, "\x30\xdb\x30\xfc\x30\xf3" }, |
{ 0x3343, "\x30\xde\x30\xa4\x30\xaf\x30\xed" }, |
{ 0x3344, "\x30\xde\x30\xa4\x30\xeb" }, |
{ 0x3345, "\x30\xde\x30\xc3\x30\xcf" }, |
{ 0x3346, "\x30\xde\x30\xeb\x30\xaf" }, |
{ 0x3347, "\x30\xde\x30\xf3\x30\xb7\x30\xe7\x30\xf3" }, |
{ 0x3348, "\x30\xdf\x30\xaf\x30\xed\x30\xf3" }, |
{ 0x3349, "\x30\xdf\x30\xea" }, |
{ 0x334a, "\x30\xdf\x30\xea\x30\xd0\x30\xfc\x30\xeb" }, |
{ 0x334b, "\x30\xe1\x30\xac" }, |
{ 0x334c, "\x30\xe1\x30\xac\x30\xc8\x30\xf3" }, |
{ 0x334d, "\x30\xe1\x30\xfc\x30\xc8\x30\xeb" }, |
{ 0x334e, "\x30\xe4\x30\xfc\x30\xc9" }, |
{ 0x334f, "\x30\xe4\x30\xfc\x30\xeb" }, |
{ 0x3350, "\x30\xe6\x30\xa2\x30\xf3" }, |
{ 0x3351, "\x30\xea\x30\xc3\x30\xc8\x30\xeb" }, |
{ 0x3352, "\x30\xea\x30\xe9" }, |
{ 0x3353, "\x30\xeb\x30\xd4\x30\xfc" }, |
{ 0x3354, "\x30\xeb\x30\xfc\x30\xd6\x30\xeb" }, |
{ 0x3355, "\x30\xec\x30\xe0" }, |
{ 0x3356, "\x30\xec\x30\xf3\x30\xc8\x30\xb2\x30\xf3" }, |
{ 0x3357, "\x30\xef\x30\xc3\x30\xc8" }, |
{ 0x3358, "\x00\x30\x70\xb9" }, |
{ 0x3359, "\x00\x31\x70\xb9" }, |
{ 0x335a, "\x00\x32\x70\xb9" }, |
{ 0x335b, "\x00\x33\x70\xb9" }, |
{ 0x335c, "\x00\x34\x70\xb9" }, |
{ 0x335d, "\x00\x35\x70\xb9" }, |
{ 0x335e, "\x00\x36\x70\xb9" }, |
{ 0x335f, "\x00\x37\x70\xb9" }, |
{ 0x3360, "\x00\x38\x70\xb9" }, |
{ 0x3361, "\x00\x39\x70\xb9" }, |
{ 0x3362, "\x00\x31\x00\x30\x70\xb9" }, |
{ 0x3363, "\x00\x31\x00\x31\x70\xb9" }, |
{ 0x3364, "\x00\x31\x00\x32\x70\xb9" }, |
{ 0x3365, "\x00\x31\x00\x33\x70\xb9" }, |
{ 0x3366, "\x00\x31\x00\x34\x70\xb9" }, |
{ 0x3367, "\x00\x31\x00\x35\x70\xb9" }, |
{ 0x3368, "\x00\x31\x00\x36\x70\xb9" }, |
{ 0x3369, "\x00\x31\x00\x37\x70\xb9" }, |
{ 0x336a, "\x00\x31\x00\x38\x70\xb9" }, |
{ 0x336b, "\x00\x31\x00\x39\x70\xb9" }, |
{ 0x336c, "\x00\x32\x00\x30\x70\xb9" }, |
{ 0x336d, "\x00\x32\x00\x31\x70\xb9" }, |
{ 0x336e, "\x00\x32\x00\x32\x70\xb9" }, |
{ 0x336f, "\x00\x32\x00\x33\x70\xb9" }, |
{ 0x3370, "\x00\x32\x00\x34\x70\xb9" }, |
{ 0x3371, "\x00\x68\x00\x50\x00\x61" }, |
{ 0x3372, "\x00\x64\x00\x61" }, |
{ 0x3373, "\x00\x41\x00\x55" }, |
{ 0x3374, "\x00\x62\x00\x61\x00\x72" }, |
{ 0x3375, "\x00\x6f\x00\x56" }, |
{ 0x3376, "\x00\x70\x00\x63" }, |
{ 0x337b, "\x5e\x73\x62\x10" }, |
{ 0x337c, "\x66\x2d\x54\x8c" }, |
{ 0x337d, "\x59\x27\x6b\x63" }, |
{ 0x337e, "\x66\x0e\x6c\xbb" }, |
{ 0x337f, "\x68\x2a\x5f\x0f\x4f\x1a\x79\x3e" }, |
{ 0x3380, "\x00\x70\x00\x41" }, |
{ 0x3381, "\x00\x6e\x00\x41" }, |
{ 0x3382, "\x03\xbc\x00\x41" }, |
{ 0x3383, "\x00\x6d\x00\x41" }, |
{ 0x3384, "\x00\x6b\x00\x41" }, |
{ 0x3385, "\x00\x4b\x00\x42" }, |
{ 0x3386, "\x00\x4d\x00\x42" }, |
{ 0x3387, "\x00\x47\x00\x42" }, |
{ 0x3388, "\x00\x63\x00\x61\x00\x6c" }, |
{ 0x3389, "\x00\x6b\x00\x63\x00\x61\x00\x6c" }, |
{ 0x338a, "\x00\x70\x00\x46" }, |
{ 0x338b, "\x00\x6e\x00\x46" }, |
{ 0x338c, "\x03\xbc\x00\x46" }, |
{ 0x338d, "\x03\xbc\x00\x67" }, |
{ 0x338e, "\x00\x6d\x00\x67" }, |
{ 0x338f, "\x00\x6b\x00\x67" }, |
{ 0x3390, "\x00\x48\x00\x7a" }, |
{ 0x3391, "\x00\x6b\x00\x48\x00\x7a" }, |
{ 0x3392, "\x00\x4d\x00\x48\x00\x7a" }, |
{ 0x3393, "\x00\x47\x00\x48\x00\x7a" }, |
{ 0x3394, "\x00\x54\x00\x48\x00\x7a" }, |
{ 0x3395, "\x03\xbc\x21\x13" }, |
{ 0x3396, "\x00\x6d\x21\x13" }, |
{ 0x3397, "\x00\x64\x21\x13" }, |
{ 0x3398, "\x00\x6b\x21\x13" }, |
{ 0x3399, "\x00\x66\x00\x6d" }, |
{ 0x339a, "\x00\x6e\x00\x6d" }, |
{ 0x339b, "\x03\xbc\x00\x6d" }, |
{ 0x339c, "\x00\x6d\x00\x6d" }, |
{ 0x339d, "\x00\x63\x00\x6d" }, |
{ 0x339e, "\x00\x6b\x00\x6d" }, |
{ 0x339f, "\x00\x6d\x00\x6d\x00\xb2" }, |
{ 0x33a0, "\x00\x63\x00\x6d\x00\xb2" }, |
{ 0x33a1, "\x00\x6d\x00\xb2" }, |
{ 0x33a2, "\x00\x6b\x00\x6d\x00\xb2" }, |
{ 0x33a3, "\x00\x6d\x00\x6d\x00\xb3" }, |
{ 0x33a4, "\x00\x63\x00\x6d\x00\xb3" }, |
{ 0x33a5, "\x00\x6d\x00\xb3" }, |
{ 0x33a6, "\x00\x6b\x00\x6d\x00\xb3" }, |
{ 0x33a7, "\x00\x6d\x22\x15\x00\x73" }, |
{ 0x33a8, "\x00\x6d\x22\x15\x00\x73\x00\xb2" }, |
{ 0x33a9, "\x00\x50\x00\x61" }, |
{ 0x33aa, "\x00\x6b\x00\x50\x00\x61" }, |
{ 0x33ab, "\x00\x4d\x00\x50\x00\x61" }, |
{ 0x33ac, "\x00\x47\x00\x50\x00\x61" }, |
{ 0x33ad, "\x00\x72\x00\x61\x00\x64" }, |
{ 0x33ae, "\x00\x72\x00\x61\x00\x64\x22\x15\x00\x73" }, |
{ 0x33af, "\x00\x72\x00\x61\x00\x64\x22\x15\x00\x73\x00\xb2" }, |
{ 0x33b0, "\x00\x70\x00\x73" }, |
{ 0x33b1, "\x00\x6e\x00\x73" }, |
{ 0x33b2, "\x03\xbc\x00\x73" }, |
{ 0x33b3, "\x00\x6d\x00\x73" }, |
{ 0x33b4, "\x00\x70\x00\x56" }, |
{ 0x33b5, "\x00\x6e\x00\x56" }, |
{ 0x33b6, "\x03\xbc\x00\x56" }, |
{ 0x33b7, "\x00\x6d\x00\x56" }, |
{ 0x33b8, "\x00\x6b\x00\x56" }, |
{ 0x33b9, "\x00\x4d\x00\x56" }, |
{ 0x33ba, "\x00\x70\x00\x57" }, |
{ 0x33bb, "\x00\x6e\x00\x57" }, |
{ 0x33bc, "\x03\xbc\x00\x57" }, |
{ 0x33bd, "\x00\x6d\x00\x57" }, |
{ 0x33be, "\x00\x6b\x00\x57" }, |
{ 0x33bf, "\x00\x4d\x00\x57" }, |
{ 0x33c0, "\x00\x6b\x03\xa9" }, |
{ 0x33c1, "\x00\x4d\x03\xa9" }, |
{ 0x33c2, "\x00\x61\x00\x2e\x00\x6d\x00\x2e" }, |
{ 0x33c3, "\x00\x42\x00\x71" }, |
{ 0x33c4, "\x00\x63\x00\x63" }, |
{ 0x33c5, "\x00\x63\x00\x64" }, |
{ 0x33c6, "\x00\x43\x22\x15\x00\x6b\x00\x67" }, |
{ 0x33c7, "\x00\x43\x00\x6f\x00\x2e" }, |
{ 0x33c8, "\x00\x64\x00\x42" }, |
{ 0x33c9, "\x00\x47\x00\x79" }, |
{ 0x33ca, "\x00\x68\x00\x61" }, |
{ 0x33cb, "\x00\x48\x00\x50" }, |
{ 0x33cc, "\x00\x69\x00\x6e" }, |
{ 0x33cd, "\x00\x4b\x00\x4b" }, |
{ 0x33ce, "\x00\x4b\x00\x4d" }, |
{ 0x33cf, "\x00\x6b\x00\x74" }, |
{ 0x33d0, "\x00\x6c\x00\x6d" }, |
{ 0x33d1, "\x00\x6c\x00\x6e" }, |
{ 0x33d2, "\x00\x6c\x00\x6f\x00\x67" }, |
{ 0x33d3, "\x00\x6c\x00\x78" }, |
{ 0x33d4, "\x00\x6d\x00\x62" }, |
{ 0x33d5, "\x00\x6d\x00\x69\x00\x6c" }, |
{ 0x33d6, "\x00\x6d\x00\x6f\x00\x6c" }, |
{ 0x33d7, "\x00\x50\x00\x48" }, |
{ 0x33d8, "\x00\x70\x00\x2e\x00\x6d\x00\x2e" }, |
{ 0x33d9, "\x00\x50\x00\x50\x00\x4d" }, |
{ 0x33da, "\x00\x50\x00\x52" }, |
{ 0x33db, "\x00\x73\x00\x72" }, |
{ 0x33dc, "\x00\x53\x00\x76" }, |
{ 0x33dd, "\x00\x57\x00\x62" }, |
{ 0x33e0, "\x00\x31\x65\xe5" }, |
{ 0x33e1, "\x00\x32\x65\xe5" }, |
{ 0x33e2, "\x00\x33\x65\xe5" }, |
{ 0x33e3, "\x00\x34\x65\xe5" }, |
{ 0x33e4, "\x00\x35\x65\xe5" }, |
{ 0x33e5, "\x00\x36\x65\xe5" }, |
{ 0x33e6, "\x00\x37\x65\xe5" }, |
{ 0x33e7, "\x00\x38\x65\xe5" }, |
{ 0x33e8, "\x00\x39\x65\xe5" }, |
{ 0x33e9, "\x00\x31\x00\x30\x65\xe5" }, |
{ 0x33ea, "\x00\x31\x00\x31\x65\xe5" }, |
{ 0x33eb, "\x00\x31\x00\x32\x65\xe5" }, |
{ 0x33ec, "\x00\x31\x00\x33\x65\xe5" }, |
{ 0x33ed, "\x00\x31\x00\x34\x65\xe5" }, |
{ 0x33ee, "\x00\x31\x00\x35\x65\xe5" }, |
{ 0x33ef, "\x00\x31\x00\x36\x65\xe5" }, |
{ 0x33f0, "\x00\x31\x00\x37\x65\xe5" }, |
{ 0x33f1, "\x00\x31\x00\x38\x65\xe5" }, |
{ 0x33f2, "\x00\x31\x00\x39\x65\xe5" }, |
{ 0x33f3, "\x00\x32\x00\x30\x65\xe5" }, |
{ 0x33f4, "\x00\x32\x00\x31\x65\xe5" }, |
{ 0x33f5, "\x00\x32\x00\x32\x65\xe5" }, |
{ 0x33f6, "\x00\x32\x00\x33\x65\xe5" }, |
{ 0x33f7, "\x00\x32\x00\x34\x65\xe5" }, |
{ 0x33f8, "\x00\x32\x00\x35\x65\xe5" }, |
{ 0x33f9, "\x00\x32\x00\x36\x65\xe5" }, |
{ 0x33fa, "\x00\x32\x00\x37\x65\xe5" }, |
{ 0x33fb, "\x00\x32\x00\x38\x65\xe5" }, |
{ 0x33fc, "\x00\x32\x00\x39\x65\xe5" }, |
{ 0x33fd, "\x00\x33\x00\x30\x65\xe5" }, |
{ 0x33fe, "\x00\x33\x00\x31\x65\xe5" }, |
{ 0xfb00, "\x00\x66\x00\x66" }, |
{ 0xfb01, "\x00\x66\x00\x69" }, |
{ 0xfb02, "\x00\x66\x00\x6c" }, |
{ 0xfb03, "\x00\x66\x00\x66\x00\x69" }, |
{ 0xfb04, "\x00\x66\x00\x66\x00\x6c" }, |
{ 0xfb05, "\x01\x7f\x00\x74" }, |
{ 0xfb06, "\x00\x73\x00\x74" }, |
{ 0xfb13, "\x05\x74\x05\x76" }, |
{ 0xfb14, "\x05\x74\x05\x65" }, |
{ 0xfb15, "\x05\x74\x05\x6b" }, |
{ 0xfb16, "\x05\x7e\x05\x76" }, |
{ 0xfb17, "\x05\x74\x05\x6d" }, |
{ 0xfb20, "\x05\xe2" }, |
{ 0xfb21, "\x05\xd0" }, |
{ 0xfb22, "\x05\xd3" }, |
{ 0xfb23, "\x05\xd4" }, |
{ 0xfb24, "\x05\xdb" }, |
{ 0xfb25, "\x05\xdc" }, |
{ 0xfb26, "\x05\xdd" }, |
{ 0xfb27, "\x05\xe8" }, |
{ 0xfb28, "\x05\xea" }, |
{ 0xfb29, "\x00\x2b" }, |
{ 0xfb4f, "\x05\xd0\x05\xdc" }, |
{ 0xfb50, "\x06\x71" }, |
{ 0xfb51, "\x06\x71" }, |
{ 0xfb52, "\x06\x7b" }, |
{ 0xfb53, "\x06\x7b" }, |
{ 0xfb54, "\x06\x7b" }, |
{ 0xfb55, "\x06\x7b" }, |
{ 0xfb56, "\x06\x7e" }, |
{ 0xfb57, "\x06\x7e" }, |
{ 0xfb58, "\x06\x7e" }, |
{ 0xfb59, "\x06\x7e" }, |
{ 0xfb5a, "\x06\x80" }, |
{ 0xfb5b, "\x06\x80" }, |
{ 0xfb5c, "\x06\x80" }, |
{ 0xfb5d, "\x06\x80" }, |
{ 0xfb5e, "\x06\x7a" }, |
{ 0xfb5f, "\x06\x7a" }, |
{ 0xfb60, "\x06\x7a" }, |
{ 0xfb61, "\x06\x7a" }, |
{ 0xfb62, "\x06\x7f" }, |
{ 0xfb63, "\x06\x7f" }, |
{ 0xfb64, "\x06\x7f" }, |
{ 0xfb65, "\x06\x7f" }, |
{ 0xfb66, "\x06\x79" }, |
{ 0xfb67, "\x06\x79" }, |
{ 0xfb68, "\x06\x79" }, |
{ 0xfb69, "\x06\x79" }, |
{ 0xfb6a, "\x06\xa4" }, |
{ 0xfb6b, "\x06\xa4" }, |
{ 0xfb6c, "\x06\xa4" }, |
{ 0xfb6d, "\x06\xa4" }, |
{ 0xfb6e, "\x06\xa6" }, |
{ 0xfb6f, "\x06\xa6" }, |
{ 0xfb70, "\x06\xa6" }, |
{ 0xfb71, "\x06\xa6" }, |
{ 0xfb72, "\x06\x84" }, |
{ 0xfb73, "\x06\x84" }, |
{ 0xfb74, "\x06\x84" }, |
{ 0xfb75, "\x06\x84" }, |
{ 0xfb76, "\x06\x83" }, |
{ 0xfb77, "\x06\x83" }, |
{ 0xfb78, "\x06\x83" }, |
{ 0xfb79, "\x06\x83" }, |
{ 0xfb7a, "\x06\x86" }, |
{ 0xfb7b, "\x06\x86" }, |
{ 0xfb7c, "\x06\x86" }, |
{ 0xfb7d, "\x06\x86" }, |
{ 0xfb7e, "\x06\x87" }, |
{ 0xfb7f, "\x06\x87" }, |
{ 0xfb80, "\x06\x87" }, |
{ 0xfb81, "\x06\x87" }, |
{ 0xfb82, "\x06\x8d" }, |
{ 0xfb83, "\x06\x8d" }, |
{ 0xfb84, "\x06\x8c" }, |
{ 0xfb85, "\x06\x8c" }, |
{ 0xfb86, "\x06\x8e" }, |
{ 0xfb87, "\x06\x8e" }, |
{ 0xfb88, "\x06\x88" }, |
{ 0xfb89, "\x06\x88" }, |
{ 0xfb8a, "\x06\x98" }, |
{ 0xfb8b, "\x06\x98" }, |
{ 0xfb8c, "\x06\x91" }, |
{ 0xfb8d, "\x06\x91" }, |
{ 0xfb8e, "\x06\xa9" }, |
{ 0xfb8f, "\x06\xa9" }, |
{ 0xfb90, "\x06\xa9" }, |
{ 0xfb91, "\x06\xa9" }, |
{ 0xfb92, "\x06\xaf" }, |
{ 0xfb93, "\x06\xaf" }, |
{ 0xfb94, "\x06\xaf" }, |
{ 0xfb95, "\x06\xaf" }, |
{ 0xfb96, "\x06\xb3" }, |
{ 0xfb97, "\x06\xb3" }, |
{ 0xfb98, "\x06\xb3" }, |
{ 0xfb99, "\x06\xb3" }, |
{ 0xfb9a, "\x06\xb1" }, |
{ 0xfb9b, "\x06\xb1" }, |
{ 0xfb9c, "\x06\xb1" }, |
{ 0xfb9d, "\x06\xb1" }, |
{ 0xfb9e, "\x06\xba" }, |
{ 0xfb9f, "\x06\xba" }, |
{ 0xfba0, "\x06\xbb" }, |
{ 0xfba1, "\x06\xbb" }, |
{ 0xfba2, "\x06\xbb" }, |
{ 0xfba3, "\x06\xbb" }, |
{ 0xfba4, "\x06\xc0" }, |
{ 0xfba5, "\x06\xc0" }, |
{ 0xfba6, "\x06\xc1" }, |
{ 0xfba7, "\x06\xc1" }, |
{ 0xfba8, "\x06\xc1" }, |
{ 0xfba9, "\x06\xc1" }, |
{ 0xfbaa, "\x06\xbe" }, |
{ 0xfbab, "\x06\xbe" }, |
{ 0xfbac, "\x06\xbe" }, |
{ 0xfbad, "\x06\xbe" }, |
{ 0xfbae, "\x06\xd2" }, |
{ 0xfbaf, "\x06\xd2" }, |
{ 0xfbb0, "\x06\xd3" }, |
{ 0xfbb1, "\x06\xd3" }, |
{ 0xfbd3, "\x06\xad" }, |
{ 0xfbd4, "\x06\xad" }, |
{ 0xfbd5, "\x06\xad" }, |
{ 0xfbd6, "\x06\xad" }, |
{ 0xfbd7, "\x06\xc7" }, |
{ 0xfbd8, "\x06\xc7" }, |
{ 0xfbd9, "\x06\xc6" }, |
{ 0xfbda, "\x06\xc6" }, |
{ 0xfbdb, "\x06\xc8" }, |
{ 0xfbdc, "\x06\xc8" }, |
{ 0xfbdd, "\x06\x77" }, |
{ 0xfbde, "\x06\xcb" }, |
{ 0xfbdf, "\x06\xcb" }, |
{ 0xfbe0, "\x06\xc5" }, |
{ 0xfbe1, "\x06\xc5" }, |
{ 0xfbe2, "\x06\xc9" }, |
{ 0xfbe3, "\x06\xc9" }, |
{ 0xfbe4, "\x06\xd0" }, |
{ 0xfbe5, "\x06\xd0" }, |
{ 0xfbe6, "\x06\xd0" }, |
{ 0xfbe7, "\x06\xd0" }, |
{ 0xfbe8, "\x06\x49" }, |
{ 0xfbe9, "\x06\x49" }, |
{ 0xfbea, "\x06\x26\x06\x27" }, |
{ 0xfbeb, "\x06\x26\x06\x27" }, |
{ 0xfbec, "\x06\x26\x06\xd5" }, |
{ 0xfbed, "\x06\x26\x06\xd5" }, |
{ 0xfbee, "\x06\x26\x06\x48" }, |
{ 0xfbef, "\x06\x26\x06\x48" }, |
{ 0xfbf0, "\x06\x26\x06\xc7" }, |
{ 0xfbf1, "\x06\x26\x06\xc7" }, |
{ 0xfbf2, "\x06\x26\x06\xc6" }, |
{ 0xfbf3, "\x06\x26\x06\xc6" }, |
{ 0xfbf4, "\x06\x26\x06\xc8" }, |
{ 0xfbf5, "\x06\x26\x06\xc8" }, |
{ 0xfbf6, "\x06\x26\x06\xd0" }, |
{ 0xfbf7, "\x06\x26\x06\xd0" }, |
{ 0xfbf8, "\x06\x26\x06\xd0" }, |
{ 0xfbf9, "\x06\x26\x06\x49" }, |
{ 0xfbfa, "\x06\x26\x06\x49" }, |
{ 0xfbfb, "\x06\x26\x06\x49" }, |
{ 0xfbfc, "\x06\xcc" }, |
{ 0xfbfd, "\x06\xcc" }, |
{ 0xfbfe, "\x06\xcc" }, |
{ 0xfbff, "\x06\xcc" }, |
{ 0xfc00, "\x06\x26\x06\x2c" }, |
{ 0xfc01, "\x06\x26\x06\x2d" }, |
{ 0xfc02, "\x06\x26\x06\x45" }, |
{ 0xfc03, "\x06\x26\x06\x49" }, |
{ 0xfc04, "\x06\x26\x06\x4a" }, |
{ 0xfc05, "\x06\x28\x06\x2c" }, |
{ 0xfc06, "\x06\x28\x06\x2d" }, |
{ 0xfc07, "\x06\x28\x06\x2e" }, |
{ 0xfc08, "\x06\x28\x06\x45" }, |
{ 0xfc09, "\x06\x28\x06\x49" }, |
{ 0xfc0a, "\x06\x28\x06\x4a" }, |
{ 0xfc0b, "\x06\x2a\x06\x2c" }, |
{ 0xfc0c, "\x06\x2a\x06\x2d" }, |
{ 0xfc0d, "\x06\x2a\x06\x2e" }, |
{ 0xfc0e, "\x06\x2a\x06\x45" }, |
{ 0xfc0f, "\x06\x2a\x06\x49" }, |
{ 0xfc10, "\x06\x2a\x06\x4a" }, |
{ 0xfc11, "\x06\x2b\x06\x2c" }, |
{ 0xfc12, "\x06\x2b\x06\x45" }, |
{ 0xfc13, "\x06\x2b\x06\x49" }, |
{ 0xfc14, "\x06\x2b\x06\x4a" }, |
{ 0xfc15, "\x06\x2c\x06\x2d" }, |
{ 0xfc16, "\x06\x2c\x06\x45" }, |
{ 0xfc17, "\x06\x2d\x06\x2c" }, |
{ 0xfc18, "\x06\x2d\x06\x45" }, |
{ 0xfc19, "\x06\x2e\x06\x2c" }, |
{ 0xfc1a, "\x06\x2e\x06\x2d" }, |
{ 0xfc1b, "\x06\x2e\x06\x45" }, |
{ 0xfc1c, "\x06\x33\x06\x2c" }, |
{ 0xfc1d, "\x06\x33\x06\x2d" }, |
{ 0xfc1e, "\x06\x33\x06\x2e" }, |
{ 0xfc1f, "\x06\x33\x06\x45" }, |
{ 0xfc20, "\x06\x35\x06\x2d" }, |
{ 0xfc21, "\x06\x35\x06\x45" }, |
{ 0xfc22, "\x06\x36\x06\x2c" }, |
{ 0xfc23, "\x06\x36\x06\x2d" }, |
{ 0xfc24, "\x06\x36\x06\x2e" }, |
{ 0xfc25, "\x06\x36\x06\x45" }, |
{ 0xfc26, "\x06\x37\x06\x2d" }, |
{ 0xfc27, "\x06\x37\x06\x45" }, |
{ 0xfc28, "\x06\x38\x06\x45" }, |
{ 0xfc29, "\x06\x39\x06\x2c" }, |
{ 0xfc2a, "\x06\x39\x06\x45" }, |
{ 0xfc2b, "\x06\x3a\x06\x2c" }, |
{ 0xfc2c, "\x06\x3a\x06\x45" }, |
{ 0xfc2d, "\x06\x41\x06\x2c" }, |
{ 0xfc2e, "\x06\x41\x06\x2d" }, |
{ 0xfc2f, "\x06\x41\x06\x2e" }, |
{ 0xfc30, "\x06\x41\x06\x45" }, |
{ 0xfc31, "\x06\x41\x06\x49" }, |
{ 0xfc32, "\x06\x41\x06\x4a" }, |
{ 0xfc33, "\x06\x42\x06\x2d" }, |
{ 0xfc34, "\x06\x42\x06\x45" }, |
{ 0xfc35, "\x06\x42\x06\x49" }, |
{ 0xfc36, "\x06\x42\x06\x4a" }, |
{ 0xfc37, "\x06\x43\x06\x27" }, |
{ 0xfc38, "\x06\x43\x06\x2c" }, |
{ 0xfc39, "\x06\x43\x06\x2d" }, |
{ 0xfc3a, "\x06\x43\x06\x2e" }, |
{ 0xfc3b, "\x06\x43\x06\x44" }, |
{ 0xfc3c, "\x06\x43\x06\x45" }, |
{ 0xfc3d, "\x06\x43\x06\x49" }, |
{ 0xfc3e, "\x06\x43\x06\x4a" }, |
{ 0xfc3f, "\x06\x44\x06\x2c" }, |
{ 0xfc40, "\x06\x44\x06\x2d" }, |
{ 0xfc41, "\x06\x44\x06\x2e" }, |
{ 0xfc42, "\x06\x44\x06\x45" }, |
{ 0xfc43, "\x06\x44\x06\x49" }, |
{ 0xfc44, "\x06\x44\x06\x4a" }, |
{ 0xfc45, "\x06\x45\x06\x2c" }, |
{ 0xfc46, "\x06\x45\x06\x2d" }, |
{ 0xfc47, "\x06\x45\x06\x2e" }, |
{ 0xfc48, "\x06\x45\x06\x45" }, |
{ 0xfc49, "\x06\x45\x06\x49" }, |
{ 0xfc4a, "\x06\x45\x06\x4a" }, |
{ 0xfc4b, "\x06\x46\x06\x2c" }, |
{ 0xfc4c, "\x06\x46\x06\x2d" }, |
{ 0xfc4d, "\x06\x46\x06\x2e" }, |
{ 0xfc4e, "\x06\x46\x06\x45" }, |
{ 0xfc4f, "\x06\x46\x06\x49" }, |
{ 0xfc50, "\x06\x46\x06\x4a" }, |
{ 0xfc51, "\x06\x47\x06\x2c" }, |
{ 0xfc52, "\x06\x47\x06\x45" }, |
{ 0xfc53, "\x06\x47\x06\x49" }, |
{ 0xfc54, "\x06\x47\x06\x4a" }, |
{ 0xfc55, "\x06\x4a\x06\x2c" }, |
{ 0xfc56, "\x06\x4a\x06\x2d" }, |
{ 0xfc57, "\x06\x4a\x06\x2e" }, |
{ 0xfc58, "\x06\x4a\x06\x45" }, |
{ 0xfc59, "\x06\x4a\x06\x49" }, |
{ 0xfc5a, "\x06\x4a\x06\x4a" }, |
{ 0xfc5b, "\x06\x30\x06\x70" }, |
{ 0xfc5c, "\x06\x31\x06\x70" }, |
{ 0xfc5d, "\x06\x49\x06\x70" }, |
{ 0xfc5e, "\x00\x20\x06\x4c\x06\x51" }, |
{ 0xfc5f, "\x00\x20\x06\x4d\x06\x51" }, |
{ 0xfc60, "\x00\x20\x06\x4e\x06\x51" }, |
{ 0xfc61, "\x00\x20\x06\x4f\x06\x51" }, |
{ 0xfc62, "\x00\x20\x06\x50\x06\x51" }, |
{ 0xfc63, "\x00\x20\x06\x51\x06\x70" }, |
{ 0xfc64, "\x06\x26\x06\x31" }, |
{ 0xfc65, "\x06\x26\x06\x32" }, |
{ 0xfc66, "\x06\x26\x06\x45" }, |
{ 0xfc67, "\x06\x26\x06\x46" }, |
{ 0xfc68, "\x06\x26\x06\x49" }, |
{ 0xfc69, "\x06\x26\x06\x4a" }, |
{ 0xfc6a, "\x06\x28\x06\x31" }, |
{ 0xfc6b, "\x06\x28\x06\x32" }, |
{ 0xfc6c, "\x06\x28\x06\x45" }, |
{ 0xfc6d, "\x06\x28\x06\x46" }, |
{ 0xfc6e, "\x06\x28\x06\x49" }, |
{ 0xfc6f, "\x06\x28\x06\x4a" }, |
{ 0xfc70, "\x06\x2a\x06\x31" }, |
{ 0xfc71, "\x06\x2a\x06\x32" }, |
{ 0xfc72, "\x06\x2a\x06\x45" }, |
{ 0xfc73, "\x06\x2a\x06\x46" }, |
{ 0xfc74, "\x06\x2a\x06\x49" }, |
{ 0xfc75, "\x06\x2a\x06\x4a" }, |
{ 0xfc76, "\x06\x2b\x06\x31" }, |
{ 0xfc77, "\x06\x2b\x06\x32" }, |
{ 0xfc78, "\x06\x2b\x06\x45" }, |
{ 0xfc79, "\x06\x2b\x06\x46" }, |
{ 0xfc7a, "\x06\x2b\x06\x49" }, |
{ 0xfc7b, "\x06\x2b\x06\x4a" }, |
{ 0xfc7c, "\x06\x41\x06\x49" }, |
{ 0xfc7d, "\x06\x41\x06\x4a" }, |
{ 0xfc7e, "\x06\x42\x06\x49" }, |
{ 0xfc7f, "\x06\x42\x06\x4a" }, |
{ 0xfc80, "\x06\x43\x06\x27" }, |
{ 0xfc81, "\x06\x43\x06\x44" }, |
{ 0xfc82, "\x06\x43\x06\x45" }, |
{ 0xfc83, "\x06\x43\x06\x49" }, |
{ 0xfc84, "\x06\x43\x06\x4a" }, |
{ 0xfc85, "\x06\x44\x06\x45" }, |
{ 0xfc86, "\x06\x44\x06\x49" }, |
{ 0xfc87, "\x06\x44\x06\x4a" }, |
{ 0xfc88, "\x06\x45\x06\x27" }, |
{ 0xfc89, "\x06\x45\x06\x45" }, |
{ 0xfc8a, "\x06\x46\x06\x31" }, |
{ 0xfc8b, "\x06\x46\x06\x32" }, |
{ 0xfc8c, "\x06\x46\x06\x45" }, |
{ 0xfc8d, "\x06\x46\x06\x46" }, |
{ 0xfc8e, "\x06\x46\x06\x49" }, |
{ 0xfc8f, "\x06\x46\x06\x4a" }, |
{ 0xfc90, "\x06\x49\x06\x70" }, |
{ 0xfc91, "\x06\x4a\x06\x31" }, |
{ 0xfc92, "\x06\x4a\x06\x32" }, |
{ 0xfc93, "\x06\x4a\x06\x45" }, |
{ 0xfc94, "\x06\x4a\x06\x46" }, |
{ 0xfc95, "\x06\x4a\x06\x49" }, |
{ 0xfc96, "\x06\x4a\x06\x4a" }, |
{ 0xfc97, "\x06\x26\x06\x2c" }, |
{ 0xfc98, "\x06\x26\x06\x2d" }, |
{ 0xfc99, "\x06\x26\x06\x2e" }, |
{ 0xfc9a, "\x06\x26\x06\x45" }, |
{ 0xfc9b, "\x06\x26\x06\x47" }, |
{ 0xfc9c, "\x06\x28\x06\x2c" }, |
{ 0xfc9d, "\x06\x28\x06\x2d" }, |
{ 0xfc9e, "\x06\x28\x06\x2e" }, |
{ 0xfc9f, "\x06\x28\x06\x45" }, |
{ 0xfca0, "\x06\x28\x06\x47" }, |
{ 0xfca1, "\x06\x2a\x06\x2c" }, |
{ 0xfca2, "\x06\x2a\x06\x2d" }, |
{ 0xfca3, "\x06\x2a\x06\x2e" }, |
{ 0xfca4, "\x06\x2a\x06\x45" }, |
{ 0xfca5, "\x06\x2a\x06\x47" }, |
{ 0xfca6, "\x06\x2b\x06\x45" }, |
{ 0xfca7, "\x06\x2c\x06\x2d" }, |
{ 0xfca8, "\x06\x2c\x06\x45" }, |
{ 0xfca9, "\x06\x2d\x06\x2c" }, |
{ 0xfcaa, "\x06\x2d\x06\x45" }, |
{ 0xfcab, "\x06\x2e\x06\x2c" }, |
{ 0xfcac, "\x06\x2e\x06\x45" }, |
{ 0xfcad, "\x06\x33\x06\x2c" }, |
{ 0xfcae, "\x06\x33\x06\x2d" }, |
{ 0xfcaf, "\x06\x33\x06\x2e" }, |
{ 0xfcb0, "\x06\x33\x06\x45" }, |
{ 0xfcb1, "\x06\x35\x06\x2d" }, |
{ 0xfcb2, "\x06\x35\x06\x2e" }, |
{ 0xfcb3, "\x06\x35\x06\x45" }, |
{ 0xfcb4, "\x06\x36\x06\x2c" }, |
{ 0xfcb5, "\x06\x36\x06\x2d" }, |
{ 0xfcb6, "\x06\x36\x06\x2e" }, |
{ 0xfcb7, "\x06\x36\x06\x45" }, |
{ 0xfcb8, "\x06\x37\x06\x2d" }, |
{ 0xfcb9, "\x06\x38\x06\x45" }, |
{ 0xfcba, "\x06\x39\x06\x2c" }, |
{ 0xfcbb, "\x06\x39\x06\x45" }, |
{ 0xfcbc, "\x06\x3a\x06\x2c" }, |
{ 0xfcbd, "\x06\x3a\x06\x45" }, |
{ 0xfcbe, "\x06\x41\x06\x2c" }, |
{ 0xfcbf, "\x06\x41\x06\x2d" }, |
{ 0xfcc0, "\x06\x41\x06\x2e" }, |
{ 0xfcc1, "\x06\x41\x06\x45" }, |
{ 0xfcc2, "\x06\x42\x06\x2d" }, |
{ 0xfcc3, "\x06\x42\x06\x45" }, |
{ 0xfcc4, "\x06\x43\x06\x2c" }, |
{ 0xfcc5, "\x06\x43\x06\x2d" }, |
{ 0xfcc6, "\x06\x43\x06\x2e" }, |
{ 0xfcc7, "\x06\x43\x06\x44" }, |
{ 0xfcc8, "\x06\x43\x06\x45" }, |
{ 0xfcc9, "\x06\x44\x06\x2c" }, |
{ 0xfcca, "\x06\x44\x06\x2d" }, |
{ 0xfccb, "\x06\x44\x06\x2e" }, |
{ 0xfccc, "\x06\x44\x06\x45" }, |
{ 0xfccd, "\x06\x44\x06\x47" }, |
{ 0xfcce, "\x06\x45\x06\x2c" }, |
{ 0xfccf, "\x06\x45\x06\x2d" }, |
{ 0xfcd0, "\x06\x45\x06\x2e" }, |
{ 0xfcd1, "\x06\x45\x06\x45" }, |
{ 0xfcd2, "\x06\x46\x06\x2c" }, |
{ 0xfcd3, "\x06\x46\x06\x2d" }, |
{ 0xfcd4, "\x06\x46\x06\x2e" }, |
{ 0xfcd5, "\x06\x46\x06\x45" }, |
{ 0xfcd6, "\x06\x46\x06\x47" }, |
{ 0xfcd7, "\x06\x47\x06\x2c" }, |
{ 0xfcd8, "\x06\x47\x06\x45" }, |
{ 0xfcd9, "\x06\x47\x06\x70" }, |
{ 0xfcda, "\x06\x4a\x06\x2c" }, |
{ 0xfcdb, "\x06\x4a\x06\x2d" }, |
{ 0xfcdc, "\x06\x4a\x06\x2e" }, |
{ 0xfcdd, "\x06\x4a\x06\x45" }, |
{ 0xfcde, "\x06\x4a\x06\x47" }, |
{ 0xfcdf, "\x06\x26\x06\x45" }, |
{ 0xfce0, "\x06\x26\x06\x47" }, |
{ 0xfce1, "\x06\x28\x06\x45" }, |
{ 0xfce2, "\x06\x28\x06\x47" }, |
{ 0xfce3, "\x06\x2a\x06\x45" }, |
{ 0xfce4, "\x06\x2a\x06\x47" }, |
{ 0xfce5, "\x06\x2b\x06\x45" }, |
{ 0xfce6, "\x06\x2b\x06\x47" }, |
{ 0xfce7, "\x06\x33\x06\x45" }, |
{ 0xfce8, "\x06\x33\x06\x47" }, |
{ 0xfce9, "\x06\x34\x06\x45" }, |
{ 0xfcea, "\x06\x34\x06\x47" }, |
{ 0xfceb, "\x06\x43\x06\x44" }, |
{ 0xfcec, "\x06\x43\x06\x45" }, |
{ 0xfced, "\x06\x44\x06\x45" }, |
{ 0xfcee, "\x06\x46\x06\x45" }, |
{ 0xfcef, "\x06\x46\x06\x47" }, |
{ 0xfcf0, "\x06\x4a\x06\x45" }, |
{ 0xfcf1, "\x06\x4a\x06\x47" }, |
{ 0xfcf2, "\x06\x40\x06\x4e\x06\x51" }, |
{ 0xfcf3, "\x06\x40\x06\x4f\x06\x51" }, |
{ 0xfcf4, "\x06\x40\x06\x50\x06\x51" }, |
{ 0xfcf5, "\x06\x37\x06\x49" }, |
{ 0xfcf6, "\x06\x37\x06\x4a" }, |
{ 0xfcf7, "\x06\x39\x06\x49" }, |
{ 0xfcf8, "\x06\x39\x06\x4a" }, |
{ 0xfcf9, "\x06\x3a\x06\x49" }, |
{ 0xfcfa, "\x06\x3a\x06\x4a" }, |
{ 0xfcfb, "\x06\x33\x06\x49" }, |
{ 0xfcfc, "\x06\x33\x06\x4a" }, |
{ 0xfcfd, "\x06\x34\x06\x49" }, |
{ 0xfcfe, "\x06\x34\x06\x4a" }, |
{ 0xfcff, "\x06\x2d\x06\x49" }, |
{ 0xfd00, "\x06\x2d\x06\x4a" }, |
{ 0xfd01, "\x06\x2c\x06\x49" }, |
{ 0xfd02, "\x06\x2c\x06\x4a" }, |
{ 0xfd03, "\x06\x2e\x06\x49" }, |
{ 0xfd04, "\x06\x2e\x06\x4a" }, |
{ 0xfd05, "\x06\x35\x06\x49" }, |
{ 0xfd06, "\x06\x35\x06\x4a" }, |
{ 0xfd07, "\x06\x36\x06\x49" }, |
{ 0xfd08, "\x06\x36\x06\x4a" }, |
{ 0xfd09, "\x06\x34\x06\x2c" }, |
{ 0xfd0a, "\x06\x34\x06\x2d" }, |
{ 0xfd0b, "\x06\x34\x06\x2e" }, |
{ 0xfd0c, "\x06\x34\x06\x45" }, |
{ 0xfd0d, "\x06\x34\x06\x31" }, |
{ 0xfd0e, "\x06\x33\x06\x31" }, |
{ 0xfd0f, "\x06\x35\x06\x31" }, |
{ 0xfd10, "\x06\x36\x06\x31" }, |
{ 0xfd11, "\x06\x37\x06\x49" }, |
{ 0xfd12, "\x06\x37\x06\x4a" }, |
{ 0xfd13, "\x06\x39\x06\x49" }, |
{ 0xfd14, "\x06\x39\x06\x4a" }, |
{ 0xfd15, "\x06\x3a\x06\x49" }, |
{ 0xfd16, "\x06\x3a\x06\x4a" }, |
{ 0xfd17, "\x06\x33\x06\x49" }, |
{ 0xfd18, "\x06\x33\x06\x4a" }, |
{ 0xfd19, "\x06\x34\x06\x49" }, |
{ 0xfd1a, "\x06\x34\x06\x4a" }, |
{ 0xfd1b, "\x06\x2d\x06\x49" }, |
{ 0xfd1c, "\x06\x2d\x06\x4a" }, |
{ 0xfd1d, "\x06\x2c\x06\x49" }, |
{ 0xfd1e, "\x06\x2c\x06\x4a" }, |
{ 0xfd1f, "\x06\x2e\x06\x49" }, |
{ 0xfd20, "\x06\x2e\x06\x4a" }, |
{ 0xfd21, "\x06\x35\x06\x49" }, |
{ 0xfd22, "\x06\x35\x06\x4a" }, |
{ 0xfd23, "\x06\x36\x06\x49" }, |
{ 0xfd24, "\x06\x36\x06\x4a" }, |
{ 0xfd25, "\x06\x34\x06\x2c" }, |
{ 0xfd26, "\x06\x34\x06\x2d" }, |
{ 0xfd27, "\x06\x34\x06\x2e" }, |
{ 0xfd28, "\x06\x34\x06\x45" }, |
{ 0xfd29, "\x06\x34\x06\x31" }, |
{ 0xfd2a, "\x06\x33\x06\x31" }, |
{ 0xfd2b, "\x06\x35\x06\x31" }, |
{ 0xfd2c, "\x06\x36\x06\x31" }, |
{ 0xfd2d, "\x06\x34\x06\x2c" }, |
{ 0xfd2e, "\x06\x34\x06\x2d" }, |
{ 0xfd2f, "\x06\x34\x06\x2e" }, |
{ 0xfd30, "\x06\x34\x06\x45" }, |
{ 0xfd31, "\x06\x33\x06\x47" }, |
{ 0xfd32, "\x06\x34\x06\x47" }, |
{ 0xfd33, "\x06\x37\x06\x45" }, |
{ 0xfd34, "\x06\x33\x06\x2c" }, |
{ 0xfd35, "\x06\x33\x06\x2d" }, |
{ 0xfd36, "\x06\x33\x06\x2e" }, |
{ 0xfd37, "\x06\x34\x06\x2c" }, |
{ 0xfd38, "\x06\x34\x06\x2d" }, |
{ 0xfd39, "\x06\x34\x06\x2e" }, |
{ 0xfd3a, "\x06\x37\x06\x45" }, |
{ 0xfd3b, "\x06\x38\x06\x45" }, |
{ 0xfd3c, "\x06\x27\x06\x4b" }, |
{ 0xfd3d, "\x06\x27\x06\x4b" }, |
{ 0xfd50, "\x06\x2a\x06\x2c\x06\x45" }, |
{ 0xfd51, "\x06\x2a\x06\x2d\x06\x2c" }, |
{ 0xfd52, "\x06\x2a\x06\x2d\x06\x2c" }, |
{ 0xfd53, "\x06\x2a\x06\x2d\x06\x45" }, |
{ 0xfd54, "\x06\x2a\x06\x2e\x06\x45" }, |
{ 0xfd55, "\x06\x2a\x06\x45\x06\x2c" }, |
{ 0xfd56, "\x06\x2a\x06\x45\x06\x2d" }, |
{ 0xfd57, "\x06\x2a\x06\x45\x06\x2e" }, |
{ 0xfd58, "\x06\x2c\x06\x45\x06\x2d" }, |
{ 0xfd59, "\x06\x2c\x06\x45\x06\x2d" }, |
{ 0xfd5a, "\x06\x2d\x06\x45\x06\x4a" }, |
{ 0xfd5b, "\x06\x2d\x06\x45\x06\x49" }, |
{ 0xfd5c, "\x06\x33\x06\x2d\x06\x2c" }, |
{ 0xfd5d, "\x06\x33\x06\x2c\x06\x2d" }, |
{ 0xfd5e, "\x06\x33\x06\x2c\x06\x49" }, |
{ 0xfd5f, "\x06\x33\x06\x45\x06\x2d" }, |
{ 0xfd60, "\x06\x33\x06\x45\x06\x2d" }, |
{ 0xfd61, "\x06\x33\x06\x45\x06\x2c" }, |
{ 0xfd62, "\x06\x33\x06\x45\x06\x45" }, |
{ 0xfd63, "\x06\x33\x06\x45\x06\x45" }, |
{ 0xfd64, "\x06\x35\x06\x2d\x06\x2d" }, |
{ 0xfd65, "\x06\x35\x06\x2d\x06\x2d" }, |
{ 0xfd66, "\x06\x35\x06\x45\x06\x45" }, |
{ 0xfd67, "\x06\x34\x06\x2d\x06\x45" }, |
{ 0xfd68, "\x06\x34\x06\x2d\x06\x45" }, |
{ 0xfd69, "\x06\x34\x06\x2c\x06\x4a" }, |
{ 0xfd6a, "\x06\x34\x06\x45\x06\x2e" }, |
{ 0xfd6b, "\x06\x34\x06\x45\x06\x2e" }, |
{ 0xfd6c, "\x06\x34\x06\x45\x06\x45" }, |
{ 0xfd6d, "\x06\x34\x06\x45\x06\x45" }, |
{ 0xfd6e, "\x06\x36\x06\x2d\x06\x49" }, |
{ 0xfd6f, "\x06\x36\x06\x2e\x06\x45" }, |
{ 0xfd70, "\x06\x36\x06\x2e\x06\x45" }, |
{ 0xfd71, "\x06\x37\x06\x45\x06\x2d" }, |
{ 0xfd72, "\x06\x37\x06\x45\x06\x2d" }, |
{ 0xfd73, "\x06\x37\x06\x45\x06\x45" }, |
{ 0xfd74, "\x06\x37\x06\x45\x06\x4a" }, |
{ 0xfd75, "\x06\x39\x06\x2c\x06\x45" }, |
{ 0xfd76, "\x06\x39\x06\x45\x06\x45" }, |
{ 0xfd77, "\x06\x39\x06\x45\x06\x45" }, |
{ 0xfd78, "\x06\x39\x06\x45\x06\x49" }, |
{ 0xfd79, "\x06\x3a\x06\x45\x06\x45" }, |
{ 0xfd7a, "\x06\x3a\x06\x45\x06\x4a" }, |
{ 0xfd7b, "\x06\x3a\x06\x45\x06\x49" }, |
{ 0xfd7c, "\x06\x41\x06\x2e\x06\x45" }, |
{ 0xfd7d, "\x06\x41\x06\x2e\x06\x45" }, |
{ 0xfd7e, "\x06\x42\x06\x45\x06\x2d" }, |
{ 0xfd7f, "\x06\x42\x06\x45\x06\x45" }, |
{ 0xfd80, "\x06\x44\x06\x2d\x06\x45" }, |
{ 0xfd81, "\x06\x44\x06\x2d\x06\x4a" }, |
{ 0xfd82, "\x06\x44\x06\x2d\x06\x49" }, |
{ 0xfd83, "\x06\x44\x06\x2c\x06\x2c" }, |
{ 0xfd84, "\x06\x44\x06\x2c\x06\x2c" }, |
{ 0xfd85, "\x06\x44\x06\x2e\x06\x45" }, |
{ 0xfd86, "\x06\x44\x06\x2e\x06\x45" }, |
{ 0xfd87, "\x06\x44\x06\x45\x06\x2d" }, |
{ 0xfd88, "\x06\x44\x06\x45\x06\x2d" }, |
{ 0xfd89, "\x06\x45\x06\x2d\x06\x2c" }, |
{ 0xfd8a, "\x06\x45\x06\x2d\x06\x45" }, |
{ 0xfd8b, "\x06\x45\x06\x2d\x06\x4a" }, |
{ 0xfd8c, "\x06\x45\x06\x2c\x06\x2d" }, |
{ 0xfd8d, "\x06\x45\x06\x2c\x06\x45" }, |
{ 0xfd8e, "\x06\x45\x06\x2e\x06\x2c" }, |
{ 0xfd8f, "\x06\x45\x06\x2e\x06\x45" }, |
{ 0xfd92, "\x06\x45\x06\x2c\x06\x2e" }, |
{ 0xfd93, "\x06\x47\x06\x45\x06\x2c" }, |
{ 0xfd94, "\x06\x47\x06\x45\x06\x45" }, |
{ 0xfd95, "\x06\x46\x06\x2d\x06\x45" }, |
{ 0xfd96, "\x06\x46\x06\x2d\x06\x49" }, |
{ 0xfd97, "\x06\x46\x06\x2c\x06\x45" }, |
{ 0xfd98, "\x06\x46\x06\x2c\x06\x45" }, |
{ 0xfd99, "\x06\x46\x06\x2c\x06\x49" }, |
{ 0xfd9a, "\x06\x46\x06\x45\x06\x4a" }, |
{ 0xfd9b, "\x06\x46\x06\x45\x06\x49" }, |
{ 0xfd9c, "\x06\x4a\x06\x45\x06\x45" }, |
{ 0xfd9d, "\x06\x4a\x06\x45\x06\x45" }, |
{ 0xfd9e, "\x06\x28\x06\x2e\x06\x4a" }, |
{ 0xfd9f, "\x06\x2a\x06\x2c\x06\x4a" }, |
{ 0xfda0, "\x06\x2a\x06\x2c\x06\x49" }, |
{ 0xfda1, "\x06\x2a\x06\x2e\x06\x4a" }, |
{ 0xfda2, "\x06\x2a\x06\x2e\x06\x49" }, |
{ 0xfda3, "\x06\x2a\x06\x45\x06\x4a" }, |
{ 0xfda4, "\x06\x2a\x06\x45\x06\x49" }, |
{ 0xfda5, "\x06\x2c\x06\x45\x06\x4a" }, |
{ 0xfda6, "\x06\x2c\x06\x2d\x06\x49" }, |
{ 0xfda7, "\x06\x2c\x06\x45\x06\x49" }, |
{ 0xfda8, "\x06\x33\x06\x2e\x06\x49" }, |
{ 0xfda9, "\x06\x35\x06\x2d\x06\x4a" }, |
{ 0xfdaa, "\x06\x34\x06\x2d\x06\x4a" }, |
{ 0xfdab, "\x06\x36\x06\x2d\x06\x4a" }, |
{ 0xfdac, "\x06\x44\x06\x2c\x06\x4a" }, |
{ 0xfdad, "\x06\x44\x06\x45\x06\x4a" }, |
{ 0xfdae, "\x06\x4a\x06\x2d\x06\x4a" }, |
{ 0xfdaf, "\x06\x4a\x06\x2c\x06\x4a" }, |
{ 0xfdb0, "\x06\x4a\x06\x45\x06\x4a" }, |
{ 0xfdb1, "\x06\x45\x06\x45\x06\x4a" }, |
{ 0xfdb2, "\x06\x42\x06\x45\x06\x4a" }, |
{ 0xfdb3, "\x06\x46\x06\x2d\x06\x4a" }, |
{ 0xfdb4, "\x06\x42\x06\x45\x06\x2d" }, |
{ 0xfdb5, "\x06\x44\x06\x2d\x06\x45" }, |
{ 0xfdb6, "\x06\x39\x06\x45\x06\x4a" }, |
{ 0xfdb7, "\x06\x43\x06\x45\x06\x4a" }, |
{ 0xfdb8, "\x06\x46\x06\x2c\x06\x2d" }, |
{ 0xfdb9, "\x06\x45\x06\x2e\x06\x4a" }, |
{ 0xfdba, "\x06\x44\x06\x2c\x06\x45" }, |
{ 0xfdbb, "\x06\x43\x06\x45\x06\x45" }, |
{ 0xfdbc, "\x06\x44\x06\x2c\x06\x45" }, |
{ 0xfdbd, "\x06\x46\x06\x2c\x06\x2d" }, |
{ 0xfdbe, "\x06\x2c\x06\x2d\x06\x4a" }, |
{ 0xfdbf, "\x06\x2d\x06\x2c\x06\x4a" }, |
{ 0xfdc0, "\x06\x45\x06\x2c\x06\x4a" }, |
{ 0xfdc1, "\x06\x41\x06\x45\x06\x4a" }, |
{ 0xfdc2, "\x06\x28\x06\x2d\x06\x4a" }, |
{ 0xfdc3, "\x06\x43\x06\x45\x06\x45" }, |
{ 0xfdc4, "\x06\x39\x06\x2c\x06\x45" }, |
{ 0xfdc5, "\x06\x35\x06\x45\x06\x45" }, |
{ 0xfdc6, "\x06\x33\x06\x2e\x06\x4a" }, |
{ 0xfdc7, "\x06\x46\x06\x2c\x06\x4a" }, |
{ 0xfdf0, "\x06\x35\x06\x44\x06\xd2" }, |
{ 0xfdf1, "\x06\x42\x06\x44\x06\xd2" }, |
{ 0xfdf2, "\x06\x27\x06\x44\x06\x44\x06\x47" }, |
{ 0xfdf3, "\x06\x27\x06\x43\x06\x28\x06\x31" }, |
{ 0xfdf4, "\x06\x45\x06\x2d\x06\x45\x06\x2f" }, |
{ 0xfdf5, "\x06\x35\x06\x44\x06\x39\x06\x45" }, |
{ 0xfdf6, "\x06\x31\x06\x33\x06\x48\x06\x44" }, |
{ 0xfdf7, "\x06\x39\x06\x44\x06\x4a\x06\x47" }, |
{ 0xfdf8, "\x06\x48\x06\x33\x06\x44\x06\x45" }, |
{ 0xfdf9, "\x06\x35\x06\x44\x06\x49" }, |
{ 0xfdfa, "\x06\x35\x06\x44\x06\x49\x00\x20\x06\x27\x06\x44\x06\x44\x06\x47\x00\x20\x06\x39\x06\x44\x06\x4a\x06\x47\x00\x20\x06\x48\x06\x33\x06\x44\x06\x45" }, |
{ 0xfdfb, "\x06\x2c\x06\x44\x00\x20\x06\x2c\x06\x44\x06\x27\x06\x44\x06\x47" }, |
{ 0xfe30, "\x20\x25" }, |
{ 0xfe31, "\x20\x14" }, |
{ 0xfe32, "\x20\x13" }, |
{ 0xfe33, "\x00\x5f" }, |
{ 0xfe34, "\x00\x5f" }, |
{ 0xfe35, "\x00\x28" }, |
{ 0xfe36, "\x00\x29" }, |
{ 0xfe37, "\x00\x7b" }, |
{ 0xfe38, "\x00\x7d" }, |
{ 0xfe39, "\x30\x14" }, |
{ 0xfe3a, "\x30\x15" }, |
{ 0xfe3b, "\x30\x10" }, |
{ 0xfe3c, "\x30\x11" }, |
{ 0xfe3d, "\x30\x0a" }, |
{ 0xfe3e, "\x30\x0b" }, |
{ 0xfe3f, "\x30\x08" }, |
{ 0xfe40, "\x30\x09" }, |
{ 0xfe41, "\x30\x0c" }, |
{ 0xfe42, "\x30\x0d" }, |
{ 0xfe43, "\x30\x0e" }, |
{ 0xfe44, "\x30\x0f" }, |
{ 0xfe49, "\x20\x3e" }, |
{ 0xfe4a, "\x20\x3e" }, |
{ 0xfe4b, "\x20\x3e" }, |
{ 0xfe4c, "\x20\x3e" }, |
{ 0xfe4d, "\x00\x5f" }, |
{ 0xfe4e, "\x00\x5f" }, |
{ 0xfe4f, "\x00\x5f" }, |
{ 0xfe50, "\x00\x2c" }, |
{ 0xfe51, "\x30\x01" }, |
{ 0xfe52, "\x00\x2e" }, |
{ 0xfe54, "\x00\x3b" }, |
{ 0xfe55, "\x00\x3a" }, |
{ 0xfe56, "\x00\x3f" }, |
{ 0xfe57, "\x00\x21" }, |
{ 0xfe58, "\x20\x14" }, |
{ 0xfe59, "\x00\x28" }, |
{ 0xfe5a, "\x00\x29" }, |
{ 0xfe5b, "\x00\x7b" }, |
{ 0xfe5c, "\x00\x7d" }, |
{ 0xfe5d, "\x30\x14" }, |
{ 0xfe5e, "\x30\x15" }, |
{ 0xfe5f, "\x00\x23" }, |
{ 0xfe60, "\x00\x26" }, |
{ 0xfe61, "\x00\x2a" }, |
{ 0xfe62, "\x00\x2b" }, |
{ 0xfe63, "\x00\x2d" }, |
{ 0xfe64, "\x00\x3c" }, |
{ 0xfe65, "\x00\x3e" }, |
{ 0xfe66, "\x00\x3d" }, |
{ 0xfe68, "\x00\x5c" }, |
{ 0xfe69, "\x00\x24" }, |
{ 0xfe6a, "\x00\x25" }, |
{ 0xfe6b, "\x00\x40" }, |
{ 0xfe70, "\x00\x20\x06\x4b" }, |
{ 0xfe71, "\x06\x40\x06\x4b" }, |
{ 0xfe72, "\x00\x20\x06\x4c" }, |
{ 0xfe74, "\x00\x20\x06\x4d" }, |
{ 0xfe76, "\x00\x20\x06\x4e" }, |
{ 0xfe77, "\x06\x40\x06\x4e" }, |
{ 0xfe78, "\x00\x20\x06\x4f" }, |
{ 0xfe79, "\x06\x40\x06\x4f" }, |
{ 0xfe7a, "\x00\x20\x06\x50" }, |
{ 0xfe7b, "\x06\x40\x06\x50" }, |
{ 0xfe7c, "\x00\x20\x06\x51" }, |
{ 0xfe7d, "\x06\x40\x06\x51" }, |
{ 0xfe7e, "\x00\x20\x06\x52" }, |
{ 0xfe7f, "\x06\x40\x06\x52" }, |
{ 0xfe80, "\x06\x21" }, |
{ 0xfe81, "\x06\x22" }, |
{ 0xfe82, "\x06\x22" }, |
{ 0xfe83, "\x06\x23" }, |
{ 0xfe84, "\x06\x23" }, |
{ 0xfe85, "\x06\x24" }, |
{ 0xfe86, "\x06\x24" }, |
{ 0xfe87, "\x06\x25" }, |
{ 0xfe88, "\x06\x25" }, |
{ 0xfe89, "\x06\x26" }, |
{ 0xfe8a, "\x06\x26" }, |
{ 0xfe8b, "\x06\x26" }, |
{ 0xfe8c, "\x06\x26" }, |
{ 0xfe8d, "\x06\x27" }, |
{ 0xfe8e, "\x06\x27" }, |
{ 0xfe8f, "\x06\x28" }, |
{ 0xfe90, "\x06\x28" }, |
{ 0xfe91, "\x06\x28" }, |
{ 0xfe92, "\x06\x28" }, |
{ 0xfe93, "\x06\x29" }, |
{ 0xfe94, "\x06\x29" }, |
{ 0xfe95, "\x06\x2a" }, |
{ 0xfe96, "\x06\x2a" }, |
{ 0xfe97, "\x06\x2a" }, |
{ 0xfe98, "\x06\x2a" }, |
{ 0xfe99, "\x06\x2b" }, |
{ 0xfe9a, "\x06\x2b" }, |
{ 0xfe9b, "\x06\x2b" }, |
{ 0xfe9c, "\x06\x2b" }, |
{ 0xfe9d, "\x06\x2c" }, |
{ 0xfe9e, "\x06\x2c" }, |
{ 0xfe9f, "\x06\x2c" }, |
{ 0xfea0, "\x06\x2c" }, |
{ 0xfea1, "\x06\x2d" }, |
{ 0xfea2, "\x06\x2d" }, |
{ 0xfea3, "\x06\x2d" }, |
{ 0xfea4, "\x06\x2d" }, |
{ 0xfea5, "\x06\x2e" }, |
{ 0xfea6, "\x06\x2e" }, |
{ 0xfea7, "\x06\x2e" }, |
{ 0xfea8, "\x06\x2e" }, |
{ 0xfea9, "\x06\x2f" }, |
{ 0xfeaa, "\x06\x2f" }, |
{ 0xfeab, "\x06\x30" }, |
{ 0xfeac, "\x06\x30" }, |
{ 0xfead, "\x06\x31" }, |
{ 0xfeae, "\x06\x31" }, |
{ 0xfeaf, "\x06\x32" }, |
{ 0xfeb0, "\x06\x32" }, |
{ 0xfeb1, "\x06\x33" }, |
{ 0xfeb2, "\x06\x33" }, |
{ 0xfeb3, "\x06\x33" }, |
{ 0xfeb4, "\x06\x33" }, |
{ 0xfeb5, "\x06\x34" }, |
{ 0xfeb6, "\x06\x34" }, |
{ 0xfeb7, "\x06\x34" }, |
{ 0xfeb8, "\x06\x34" }, |
{ 0xfeb9, "\x06\x35" }, |
{ 0xfeba, "\x06\x35" }, |
{ 0xfebb, "\x06\x35" }, |
{ 0xfebc, "\x06\x35" }, |
{ 0xfebd, "\x06\x36" }, |
{ 0xfebe, "\x06\x36" }, |
{ 0xfebf, "\x06\x36" }, |
{ 0xfec0, "\x06\x36" }, |
{ 0xfec1, "\x06\x37" }, |
{ 0xfec2, "\x06\x37" }, |
{ 0xfec3, "\x06\x37" }, |
{ 0xfec4, "\x06\x37" }, |
{ 0xfec5, "\x06\x38" }, |
{ 0xfec6, "\x06\x38" }, |
{ 0xfec7, "\x06\x38" }, |
{ 0xfec8, "\x06\x38" }, |
{ 0xfec9, "\x06\x39" }, |
{ 0xfeca, "\x06\x39" }, |
{ 0xfecb, "\x06\x39" }, |
{ 0xfecc, "\x06\x39" }, |
{ 0xfecd, "\x06\x3a" }, |
{ 0xfece, "\x06\x3a" }, |
{ 0xfecf, "\x06\x3a" }, |
{ 0xfed0, "\x06\x3a" }, |
{ 0xfed1, "\x06\x41" }, |
{ 0xfed2, "\x06\x41" }, |
{ 0xfed3, "\x06\x41" }, |
{ 0xfed4, "\x06\x41" }, |
{ 0xfed5, "\x06\x42" }, |
{ 0xfed6, "\x06\x42" }, |
{ 0xfed7, "\x06\x42" }, |
{ 0xfed8, "\x06\x42" }, |
{ 0xfed9, "\x06\x43" }, |
{ 0xfeda, "\x06\x43" }, |
{ 0xfedb, "\x06\x43" }, |
{ 0xfedc, "\x06\x43" }, |
{ 0xfedd, "\x06\x44" }, |
{ 0xfede, "\x06\x44" }, |
{ 0xfedf, "\x06\x44" }, |
{ 0xfee0, "\x06\x44" }, |
{ 0xfee1, "\x06\x45" }, |
{ 0xfee2, "\x06\x45" }, |
{ 0xfee3, "\x06\x45" }, |
{ 0xfee4, "\x06\x45" }, |
{ 0xfee5, "\x06\x46" }, |
{ 0xfee6, "\x06\x46" }, |
{ 0xfee7, "\x06\x46" }, |
{ 0xfee8, "\x06\x46" }, |
{ 0xfee9, "\x06\x47" }, |
{ 0xfeea, "\x06\x47" }, |
{ 0xfeeb, "\x06\x47" }, |
{ 0xfeec, "\x06\x47" }, |
{ 0xfeed, "\x06\x48" }, |
{ 0xfeee, "\x06\x48" }, |
{ 0xfeef, "\x06\x49" }, |
{ 0xfef0, "\x06\x49" }, |
{ 0xfef1, "\x06\x4a" }, |
{ 0xfef2, "\x06\x4a" }, |
{ 0xfef3, "\x06\x4a" }, |
{ 0xfef4, "\x06\x4a" }, |
{ 0xfef5, "\x06\x44\x06\x22" }, |
{ 0xfef6, "\x06\x44\x06\x22" }, |
{ 0xfef7, "\x06\x44\x06\x23" }, |
{ 0xfef8, "\x06\x44\x06\x23" }, |
{ 0xfef9, "\x06\x44\x06\x25" }, |
{ 0xfefa, "\x06\x44\x06\x25" }, |
{ 0xfefb, "\x06\x44\x06\x27" }, |
{ 0xfefc, "\x06\x44\x06\x27" }, |
{ 0xff01, "\x00\x21" }, |
{ 0xff02, "\x00\x22" }, |
{ 0xff03, "\x00\x23" }, |
{ 0xff04, "\x00\x24" }, |
{ 0xff05, "\x00\x25" }, |
{ 0xff06, "\x00\x26" }, |
{ 0xff07, "\x00\x27" }, |
{ 0xff08, "\x00\x28" }, |
{ 0xff09, "\x00\x29" }, |
{ 0xff0a, "\x00\x2a" }, |
{ 0xff0b, "\x00\x2b" }, |
{ 0xff0c, "\x00\x2c" }, |
{ 0xff0d, "\x00\x2d" }, |
{ 0xff0e, "\x00\x2e" }, |
{ 0xff0f, "\x00\x2f" }, |
{ 0xff10, "\x00\x30" }, |
{ 0xff11, "\x00\x31" }, |
{ 0xff12, "\x00\x32" }, |
{ 0xff13, "\x00\x33" }, |
{ 0xff14, "\x00\x34" }, |
{ 0xff15, "\x00\x35" }, |
{ 0xff16, "\x00\x36" }, |
{ 0xff17, "\x00\x37" }, |
{ 0xff18, "\x00\x38" }, |
{ 0xff19, "\x00\x39" }, |
{ 0xff1a, "\x00\x3a" }, |
{ 0xff1b, "\x00\x3b" }, |
{ 0xff1c, "\x00\x3c" }, |
{ 0xff1d, "\x00\x3d" }, |
{ 0xff1e, "\x00\x3e" }, |
{ 0xff1f, "\x00\x3f" }, |
{ 0xff20, "\x00\x40" }, |
{ 0xff21, "\x00\x41" }, |
{ 0xff22, "\x00\x42" }, |
{ 0xff23, "\x00\x43" }, |
{ 0xff24, "\x00\x44" }, |
{ 0xff25, "\x00\x45" }, |
{ 0xff26, "\x00\x46" }, |
{ 0xff27, "\x00\x47" }, |
{ 0xff28, "\x00\x48" }, |
{ 0xff29, "\x00\x49" }, |
{ 0xff2a, "\x00\x4a" }, |
{ 0xff2b, "\x00\x4b" }, |
{ 0xff2c, "\x00\x4c" }, |
{ 0xff2d, "\x00\x4d" }, |
{ 0xff2e, "\x00\x4e" }, |
{ 0xff2f, "\x00\x4f" }, |
{ 0xff30, "\x00\x50" }, |
{ 0xff31, "\x00\x51" }, |
{ 0xff32, "\x00\x52" }, |
{ 0xff33, "\x00\x53" }, |
{ 0xff34, "\x00\x54" }, |
{ 0xff35, "\x00\x55" }, |
{ 0xff36, "\x00\x56" }, |
{ 0xff37, "\x00\x57" }, |
{ 0xff38, "\x00\x58" }, |
{ 0xff39, "\x00\x59" }, |
{ 0xff3a, "\x00\x5a" }, |
{ 0xff3b, "\x00\x5b" }, |
{ 0xff3c, "\x00\x5c" }, |
{ 0xff3d, "\x00\x5d" }, |
{ 0xff3e, "\x00\x5e" }, |
{ 0xff3f, "\x00\x5f" }, |
{ 0xff40, "\x00\x60" }, |
{ 0xff41, "\x00\x61" }, |
{ 0xff42, "\x00\x62" }, |
{ 0xff43, "\x00\x63" }, |
{ 0xff44, "\x00\x64" }, |
{ 0xff45, "\x00\x65" }, |
{ 0xff46, "\x00\x66" }, |
{ 0xff47, "\x00\x67" }, |
{ 0xff48, "\x00\x68" }, |
{ 0xff49, "\x00\x69" }, |
{ 0xff4a, "\x00\x6a" }, |
{ 0xff4b, "\x00\x6b" }, |
{ 0xff4c, "\x00\x6c" }, |
{ 0xff4d, "\x00\x6d" }, |
{ 0xff4e, "\x00\x6e" }, |
{ 0xff4f, "\x00\x6f" }, |
{ 0xff50, "\x00\x70" }, |
{ 0xff51, "\x00\x71" }, |
{ 0xff52, "\x00\x72" }, |
{ 0xff53, "\x00\x73" }, |
{ 0xff54, "\x00\x74" }, |
{ 0xff55, "\x00\x75" }, |
{ 0xff56, "\x00\x76" }, |
{ 0xff57, "\x00\x77" }, |
{ 0xff58, "\x00\x78" }, |
{ 0xff59, "\x00\x79" }, |
{ 0xff5a, "\x00\x7a" }, |
{ 0xff5b, "\x00\x7b" }, |
{ 0xff5c, "\x00\x7c" }, |
{ 0xff5d, "\x00\x7d" }, |
{ 0xff5e, "\x00\x7e" }, |
{ 0xff61, "\x30\x02" }, |
{ 0xff62, "\x30\x0c" }, |
{ 0xff63, "\x30\x0d" }, |
{ 0xff64, "\x30\x01" }, |
{ 0xff65, "\x30\xfb" }, |
{ 0xff66, "\x30\xf2" }, |
{ 0xff67, "\x30\xa1" }, |
{ 0xff68, "\x30\xa3" }, |
{ 0xff69, "\x30\xa5" }, |
{ 0xff6a, "\x30\xa7" }, |
{ 0xff6b, "\x30\xa9" }, |
{ 0xff6c, "\x30\xe3" }, |
{ 0xff6d, "\x30\xe5" }, |
{ 0xff6e, "\x30\xe7" }, |
{ 0xff6f, "\x30\xc3" }, |
{ 0xff70, "\x30\xfc" }, |
{ 0xff71, "\x30\xa2" }, |
{ 0xff72, "\x30\xa4" }, |
{ 0xff73, "\x30\xa6" }, |
{ 0xff74, "\x30\xa8" }, |
{ 0xff75, "\x30\xaa" }, |
{ 0xff76, "\x30\xab" }, |
{ 0xff77, "\x30\xad" }, |
{ 0xff78, "\x30\xaf" }, |
{ 0xff79, "\x30\xb1" }, |
{ 0xff7a, "\x30\xb3" }, |
{ 0xff7b, "\x30\xb5" }, |
{ 0xff7c, "\x30\xb7" }, |
{ 0xff7d, "\x30\xb9" }, |
{ 0xff7e, "\x30\xbb" }, |
{ 0xff7f, "\x30\xbd" }, |
{ 0xff80, "\x30\xbf" }, |
{ 0xff81, "\x30\xc1" }, |
{ 0xff82, "\x30\xc4" }, |
{ 0xff83, "\x30\xc6" }, |
{ 0xff84, "\x30\xc8" }, |
{ 0xff85, "\x30\xca" }, |
{ 0xff86, "\x30\xcb" }, |
{ 0xff87, "\x30\xcc" }, |
{ 0xff88, "\x30\xcd" }, |
{ 0xff89, "\x30\xce" }, |
{ 0xff8a, "\x30\xcf" }, |
{ 0xff8b, "\x30\xd2" }, |
{ 0xff8c, "\x30\xd5" }, |
{ 0xff8d, "\x30\xd8" }, |
{ 0xff8e, "\x30\xdb" }, |
{ 0xff8f, "\x30\xde" }, |
{ 0xff90, "\x30\xdf" }, |
{ 0xff91, "\x30\xe0" }, |
{ 0xff92, "\x30\xe1" }, |
{ 0xff93, "\x30\xe2" }, |
{ 0xff94, "\x30\xe4" }, |
{ 0xff95, "\x30\xe6" }, |
{ 0xff96, "\x30\xe8" }, |
{ 0xff97, "\x30\xe9" }, |
{ 0xff98, "\x30\xea" }, |
{ 0xff99, "\x30\xeb" }, |
{ 0xff9a, "\x30\xec" }, |
{ 0xff9b, "\x30\xed" }, |
{ 0xff9c, "\x30\xef" }, |
{ 0xff9d, "\x30\xf3" }, |
{ 0xff9e, "\x30\x99" }, |
{ 0xff9f, "\x30\x9a" }, |
{ 0xffa0, "\x31\x64" }, |
{ 0xffa1, "\x31\x31" }, |
{ 0xffa2, "\x31\x32" }, |
{ 0xffa3, "\x31\x33" }, |
{ 0xffa4, "\x31\x34" }, |
{ 0xffa5, "\x31\x35" }, |
{ 0xffa6, "\x31\x36" }, |
{ 0xffa7, "\x31\x37" }, |
{ 0xffa8, "\x31\x38" }, |
{ 0xffa9, "\x31\x39" }, |
{ 0xffaa, "\x31\x3a" }, |
{ 0xffab, "\x31\x3b" }, |
{ 0xffac, "\x31\x3c" }, |
{ 0xffad, "\x31\x3d" }, |
{ 0xffae, "\x31\x3e" }, |
{ 0xffaf, "\x31\x3f" }, |
{ 0xffb0, "\x31\x40" }, |
{ 0xffb1, "\x31\x41" }, |
{ 0xffb2, "\x31\x42" }, |
{ 0xffb3, "\x31\x43" }, |
{ 0xffb4, "\x31\x44" }, |
{ 0xffb5, "\x31\x45" }, |
{ 0xffb6, "\x31\x46" }, |
{ 0xffb7, "\x31\x47" }, |
{ 0xffb8, "\x31\x48" }, |
{ 0xffb9, "\x31\x49" }, |
{ 0xffba, "\x31\x4a" }, |
{ 0xffbb, "\x31\x4b" }, |
{ 0xffbc, "\x31\x4c" }, |
{ 0xffbd, "\x31\x4d" }, |
{ 0xffbe, "\x31\x4e" }, |
{ 0xffc2, "\x31\x4f" }, |
{ 0xffc3, "\x31\x50" }, |
{ 0xffc4, "\x31\x51" }, |
{ 0xffc5, "\x31\x52" }, |
{ 0xffc6, "\x31\x53" }, |
{ 0xffc7, "\x31\x54" }, |
{ 0xffca, "\x31\x55" }, |
{ 0xffcb, "\x31\x56" }, |
{ 0xffcc, "\x31\x57" }, |
{ 0xffcd, "\x31\x58" }, |
{ 0xffce, "\x31\x59" }, |
{ 0xffcf, "\x31\x5a" }, |
{ 0xffd2, "\x31\x5b" }, |
{ 0xffd3, "\x31\x5c" }, |
{ 0xffd4, "\x31\x5d" }, |
{ 0xffd5, "\x31\x5e" }, |
{ 0xffd6, "\x31\x5f" }, |
{ 0xffd7, "\x31\x60" }, |
{ 0xffda, "\x31\x61" }, |
{ 0xffdb, "\x31\x62" }, |
{ 0xffdc, "\x31\x63" }, |
{ 0xffe0, "\x00\xa2" }, |
{ 0xffe1, "\x00\xa3" }, |
{ 0xffe2, "\x00\xac" }, |
{ 0xffe3, "\x00\xaf" }, |
{ 0xffe4, "\x00\xa6" }, |
{ 0xffe5, "\x00\xa5" }, |
{ 0xffe6, "\x20\xa9" }, |
{ 0xffe8, "\x25\x02" }, |
{ 0xffe9, "\x21\x90" }, |
{ 0xffea, "\x21\x91" }, |
{ 0xffeb, "\x21\x92" }, |
{ 0xffec, "\x21\x93" }, |
{ 0xffed, "\x25\xa0" }, |
{ 0xffee, "\x25\xcb" } |
}; |
|
#endif /* __JAVA_CHARDECOMP_H__ */ |
/jvmpi.h
0,0 → 1,227
/* Copyright (C) 2000 Free Software Foundation |
|
This file is part of libgcj. |
|
This software is copyrighted work licensed under the terms of the |
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for |
details. */ |
|
/* Note: this file must be compilable by the C compiler (for now, |
assuming GNU C is ok). This means you must never use `//' |
comments, and all C++-specific code must be conditional on |
__cplusplus. */ |
|
#ifndef __GCJ_JVMPI_H__ |
#define __GCJ_JVMPI_H__ |
|
#include <jni.h> |
|
/* JVMPI version numbers. FIXME: this is a semi-random number. The |
documentation doesn't say what it should be. */ |
#define JVMPI_VERSION_1 0x00020001 |
|
/* JVMPI return codes. FIXME: These are semi-random numbers. The |
documentation doesn't say what they should be. */ |
#define JVMPI_SUCCESS 0 |
#define JVMPI_FAIL 1 |
#define JVMPI_NOT_AVAILABLE 2 |
|
/* An opaque pointer representing an object ID. */ |
struct _jobjectID; |
typedef struct _jobjectID * jobjectID; |
|
typedef struct |
{ |
/* Source line number. */ |
jint lineno; |
/* Method being executed. */ |
jmethodID method_id; |
} JVMPI_CallFrame; |
|
typedef struct |
{ |
JNIEnv *env_id; |
/* Number of frames in the call trace. */ |
jint num_frames; |
/* An array of frames representing the trace. Callees first. */ |
JVMPI_CallFrame *frames; |
} JVMPI_CallTrace; |
|
typedef struct |
{ |
/* Name of the field. */ |
char *field_name; |
/* Signature of the field. */ |
char *field_signature; |
} JVMPI_Field; |
|
/* The documentation doesn't actually specify what the |
JVMPI_DUMP_LEVEL macros should be defined to. Here's a reasonable |
guess. */ |
#define JVMPI_DUMP_LEVEL_0 0 |
#define JVMPI_DUMP_LEVEL_1 1 |
#define JVMPI_DUMP_LEVEL_2 2 |
#define JVMPI_DUMP_LEVEL_3 3 |
|
typedef struct |
{ |
/* One of JVMPI_DUMP_LEVEL_0, JVMPI_DUMP_LEVEL_1 or |
JVMPI_DUMP_LEVEL_2. */ |
jint heap_dump_level; |
} JVMPI_HeapDumpArg; |
|
typedef struct |
{ |
/* Offset from the beginning of the method. */ |
jint offset; |
/* Line number from the beginning of the source file. */ |
jint lineno; |
} JVMPI_Lineno; |
|
typedef struct |
{ |
/* Name of the method. */ |
char *method_name; |
/* Signature of the method. */ |
char *method_signature; |
/* Start line number from the beginning of the source file. */ |
jint start_lineno; |
/* End line number from the beginning of the source file. */ |
jint end_lineno; |
/* The method ID. */ |
jmethodID method_id; |
} JVMPI_Method; |
|
/* An opaque pointer representing a raw monitor. */ |
struct _JVMPI_RawMonitor; |
typedef struct _JVMPI_RawMonitor *JVMPI_RawMonitor; |
|
/* JVMPI event codes. FIXME: These are semi-random numbers. The |
documentation doesn't say what they should be. */ |
#define JVMPI_EVENT_ARENA_DELETE 0 |
#define JVMPI_EVENT_ARENA_NEW 1 |
#define JVMPI_EVENT_CLASS_LOAD 2 |
#define JVMPI_EVENT_CLASS_LOAD_HOOK 3 |
#define JVMPI_EVENT_CLASS_UNLOAD 4 |
#define JVMPI_EVENT_COMPILED_METHOD_LOAD 5 |
#define JVMPI_EVENT_COMPILED_METHOD_UNLOAD 6 |
#define JVMPI_EVENT_DATA_DUMP_REQUEST 7 |
#define JVMPI_EVENT_DATA_RESET_REQUEST 8 |
#define JVMPI_EVENT_GC_FINISH 9 |
#define JVMPI_EVENT_GC_START 10 |
#define JVMPI_EVENT_HEAP_DUMP 11 |
#define JVMPI_EVENT_JNI_GLOBALREF_ALLOC 12 |
#define JVMPI_EVENT_JNI_GLOBALREF_FREE 13 |
#define JVMPI_EVENT_JNI_WEAK_GLOBALREF_ALLOC 14 |
#define JVMPI_EVENT_JNI_WEAK_GLOBALREF_FREE 15 |
#define JVMPI_EVENT_JVM_INIT_DONE 16 |
#define JVMPI_EVENT_JVM_SHUT_DOWN 17 |
#define JVMPI_EVENT_METHOD_ENTRY 18 |
#define JVMPI_EVENT_METHOD_ENTRY2 19 |
#define JVMPI_EVENT_METHOD_EXIT 20 |
#define JVMPI_EVENT_MONITOR_CONTENDED_ENTER 21 |
#define JVMPI_EVENT_MONITOR_CONTENDED_ENTERED 22 |
#define JVMPI_EVENT_MONITOR_CONTENDED_EXIT 23 |
#define JVMPI_EVENT_MONITOR_DUMP 24 |
#define JVMPI_EVENT_MONITOR_WAIT 25 |
#define JVMPI_EVENT_MONITOR_WAITED 26 |
#define JVMPI_EVENT_OBJECT_ALLOC 27 |
#define JVMPI_EVENT_OBJECT_DUMP 28 |
#define JVMPI_EVENT_OBJECT_FREE 29 |
#define JVMPI_EVENT_OBJECT_MOVE 30 |
#define JVMPI_EVENT_RAW_MONITOR_CONTENDED_ENTER 31 |
#define JVMPI_EVENT_RAW_MONITOR_CONTENDED_ENTERED 32 |
#define JVMPI_EVENT_RAW_MONITOR_CONTENDED_EXIT 33 |
#define JVMPI_EVENT_THREAD_END 34 |
#define JVMPI_EVENT_THREAD_START 35 |
#define JVMPI_EVENT_INSTRUCTION_START 36 |
|
|
typedef struct |
{ |
/* Event type. */ |
jint event_type; |
|
/* Evn where this event occurred. */ |
JNIEnv *env_id; |
|
union |
{ |
struct |
{ |
char *class_name; |
char *source_name; |
jint num_interfaces; |
jint num_methods; |
JVMPI_Method *methods; |
jint num_static_fields; |
JVMPI_Field *statics; |
jint num_instance_fields; |
JVMPI_Field *instances; |
jobjectID class_id; |
} class_load; |
|
struct |
{ |
jobjectID class_id; |
} class_unload; |
|
struct |
{ |
jint arena_id; |
jobjectID class_id; |
jint is_array; |
jint size; |
jobjectID obj_id; |
} obj_alloc; |
|
struct |
{ |
char *thread_name; |
char *group_name; |
char *parent_name; |
jobjectID thread_id; |
JNIEnv *thread_env_id; |
} thread_start; |
|
} u; |
|
} JVMPI_Event; |
|
typedef struct |
{ |
/* JVMPI version number. */ |
jint version; |
|
/* Implemented by the user... */ |
void (*NotifyEvent) (JVMPI_Event *event); |
|
/* Implemented by the runtime... */ |
jint (*EnableEvent) (jint event_type, void *arg); |
jint (*DisableEvent) (jint event_type, void *arg); |
jint (*RequestEvent) (jint event_type, void *arg); |
void (*GetCallTrace) (JVMPI_CallTrace *trace, jint depth); |
void (*ProfilerExit) (jint); |
JVMPI_RawMonitor (*RawMonitorCreate) (char *lock_name); |
void (*RawMonitorEnter) (JVMPI_RawMonitor lock_id); |
void (*RawMonitorExit) (JVMPI_RawMonitor lock_id); |
void (*RawMonitorWait) (JVMPI_RawMonitor lock_id, jlong ms); |
void (*RawMonitorNotifyAll) (JVMPI_RawMonitor lock_id); |
void (*RawMonitorDestroy) (JVMPI_RawMonitor lock_id); |
jlong (*GetCurrentThreadCpuTime) (void); |
void (*SuspendThread) (JNIEnv *env); |
void (*ResumeThread) (JNIEnv *env); |
jint (*GetThreadStatus) (JNIEnv *env); |
jboolean (*ThreadHasRun) (JNIEnv *env); |
jint (*CreateSystemThread) (char *name, jint priority, void (*f) (void *)); |
void (*SetThreadLocalStorage) (JNIEnv *env_id, void *ptr); |
void *(*GetThreadLocalStorage) (JNIEnv *env_id); |
void (*DisableGC) (void); |
void (*EnableGC) (void); |
void (*RunGC) (void); |
jobjectID (*GetThreadObject) (JNIEnv *env); |
jobjectID (*GetMethodClass) (jmethodID mid); |
|
} JVMPI_Interface; |
|
#endif /* __GCJ_JVMPI_H__ */ |
/sh-signal.h
0,0 → 1,75
// sh-signal.h - Catch runtime signals and turn them into exceptions |
// on a SuperH based Linux system. |
|
/* Copyright (C) 2004, 2006 Free Software Foundation |
|
This file is part of libgcj. |
|
This software is copyrighted work licensed under the terms of the |
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for |
details. */ |
|
|
#ifndef JAVA_SIGNAL_H |
#define JAVA_SIGNAL_H 1 |
|
#include <signal.h> |
#include <sys/syscall.h> |
|
#define HANDLE_SEGV 1 |
#define HANDLE_FPE 1 |
|
/* The third parameter to the signal handler points to something with |
* this structure defined in asm/ucontext.h, but the name clashes with |
* struct ucontext from sys/ucontext.h so this private copy is used. */ |
typedef struct _sig_ucontext { |
unsigned long uc_flags; |
struct _sig_ucontext *uc_link; |
stack_t uc_stack; |
struct sigcontext uc_mcontext; |
sigset_t uc_sigmask; |
} sig_ucontext_t; |
|
#define SIGNAL_HANDLER(_name) \ |
static void _name (int , siginfo_t *, sig_ucontext_t *_uc) |
|
#define MAKE_THROW_FRAME(_exception) |
|
/* For an explanation why we cannot simply use sigaction to |
install the handlers, see i386-signal.h. */ |
|
/* We use kernel_old_sigaction here because we're calling the kernel |
directly rather than via glibc. The sigaction structure that the |
syscall uses is a different shape from the one in userland and not |
visible to us in a header file so we define it here. */ |
|
struct kernel_old_sigaction { |
void (*k_sa_handler) (int, siginfo_t *, sig_ucontext_t *); |
unsigned long k_sa_mask; |
unsigned long k_sa_flags; |
void (*k_sa_restorer) (void); |
}; |
|
#define INIT_SEGV \ |
do \ |
{ \ |
struct kernel_old_sigaction kact; \ |
kact.k_sa_handler = catch_segv; \ |
kact.k_sa_mask = 0; \ |
kact.k_sa_flags = SA_SIGINFO | SA_NODEFER; \ |
syscall (SYS_sigaction, SIGSEGV, &kact, NULL); \ |
} \ |
while (0) |
|
#define INIT_FPE \ |
do \ |
{ \ |
struct kernel_old_sigaction kact; \ |
kact.k_sa_handler = catch_fpe; \ |
kact.k_sa_mask = 0; \ |
kact.k_sa_flags = SA_SIGINFO | SA_NODEFER; \ |
syscall (SYS_sigaction, SIGFPE, &kact, NULL); \ |
} \ |
while (0) |
|
#endif /* JAVA_SIGNAL_H */ |