From 7a23480b5758f74a896f9c00fbd9c846d1c8a65e Mon Sep 17 00:00:00 2001 From: spiff Date: Sun, 6 Feb 2011 11:40:21 +0100 Subject: [PATCH 1/5] changed: remove libmms support --- README.linux | 2 +- README.osx | 1 - README.ubuntu | 11 +- configure.in | 3 - .../DVDInputStreams/DVDFactoryInputStream.cpp | 7 - .../DVDInputStreams/DVDInputStreamMMS.cpp | 143 ------------------ .../DVDInputStreams/DVDInputStreamMMS.h | 52 ------- xbmc/cores/dvdplayer/DVDInputStreams/Makefile | 1 - xbmc/system.h | 1 - 9 files changed, 2 insertions(+), 219 deletions(-) delete mode 100644 xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamMMS.cpp delete mode 100644 xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamMMS.h diff --git a/README.linux b/README.linux index 725021e5988ff..6e24408341d11 100644 --- a/README.linux +++ b/README.linux @@ -51,7 +51,7 @@ Build-Depends: debhelper (>= 7.0.50~), python-support, cmake, libavformat-dev, libavutil-dev, libpostproc-dev, libswscale-dev, libmpeg2-4-dev, libass-dev (>= 0.9.8), libmpcdec-dev, libflac-dev, libwavpack-dev, python-dev, gawk, gperf, nasm [!amd64], libcwiid1-dev, - libbluetooth-dev, zlib1g-dev, libmms-dev (>= 0.4), libsmbclient-dev, + libbluetooth-dev, zlib1g-dev, libsmbclient-dev, libfaad-dev, libiso9660-dev, libssl-dev, lsb-release, libvdpau-dev, libmicrohttpd-dev, libmodplug-dev, librtmp-dev, libcrystalhd-dev, curl diff --git a/README.osx b/README.osx index e089b57e7725d..71ac733d2db63 100644 --- a/README.osx +++ b/README.osx @@ -110,7 +110,6 @@ Then install the following port packages (order is very important): $ sudo port install libvorbis +universal $ sudo port install libmad macosx_deployment_target=10.4 $ sudo port install fribidi +universal - $ sudo port install libmms +universal $ sudo port install wavpack +universal $ sudo port install libmpeg2 +no_sdl +no_x11 +universal diff --git a/README.ubuntu b/README.ubuntu index 129e63c987d2a..c5d520feeb7e0 100644 --- a/README.ubuntu +++ b/README.ubuntu @@ -44,7 +44,7 @@ Two methods exist to install the required Ubuntu packages: For Ubuntu (all versions >= 7.04): - # sudo apt-get install subversion make g++ gcc gawk pmount libtool nasm yasm automake cmake gperf zip unzip bison libsdl-dev libsdl-image1.2-dev libsdl-gfx1.2-dev libsdl-mixer1.2-dev libfribidi-dev liblzo2-dev libfreetype6-dev libsqlite3-dev libogg-dev libasound-dev python-sqlite libglew-dev libcurl3 libcurl4-gnutls-dev libxrandr-dev libxrender-dev libmad0-dev libogg-dev libvorbisenc2 libsmbclient-dev libmysqlclient-dev libpcre3-dev libdbus-1-dev libhal-dev libhal-storage-dev libjasper-dev libfontconfig-dev libbz2-dev libboost-dev libenca-dev libxt-dev libxtst-dev libxmu-dev libpng-dev libjpeg-dev libpulse-dev mesa-utils libcdio-dev libsamplerate-dev libmms-dev libmpeg3-dev libfaad-dev libflac-dev libiso9660-dev libass-dev libssl-dev fp-compiler gdc libwavpack-dev libmpeg2-4-dev libmicrohttpd-dev libmodplug-dev libssh-dev gettext cvs + # sudo apt-get install subversion make g++ gcc gawk pmount libtool nasm yasm automake cmake gperf zip unzip bison libsdl-dev libsdl-image1.2-dev libsdl-gfx1.2-dev libsdl-mixer1.2-dev libfribidi-dev liblzo2-dev libfreetype6-dev libsqlite3-dev libogg-dev libasound-dev python-sqlite libglew-dev libcurl3 libcurl4-gnutls-dev libxrandr-dev libxrender-dev libmad0-dev libogg-dev libvorbisenc2 libsmbclient-dev libmysqlclient-dev libpcre3-dev libdbus-1-dev libhal-dev libhal-storage-dev libjasper-dev libfontconfig-dev libbz2-dev libboost-dev libenca-dev libxt-dev libxtst-dev libxmu-dev libpng-dev libjpeg-dev libpulse-dev mesa-utils libcdio-dev libsamplerate-dev libmpeg3-dev libfaad-dev libflac-dev libiso9660-dev libass-dev libssl-dev fp-compiler gdc libwavpack-dev libmpeg2-4-dev libmicrohttpd-dev libmodplug-dev libssh-dev gettext cvs For Ubuntu Maverick (10.10): # sudo apt-get install autopoint @@ -58,15 +58,6 @@ In this case you will have to manually compile the latest version. # make # sudo make install -On 8.04 and older versions, libmms is outdated and thus XBMC will not compile properly. -In this case you will have to manually compile the latest version. See the previous [NOTICE]. - # wget "http://launchpad.net/libmms/trunk/0.5/+download/libmms-0.5.tar.gz" - # tar zxvf libmms-0.5.tar.gz - # cd libmms-0.5 - # ./configure --prefix=/usr - # make - # sudo make install - -------------------------------------------------------------- 3.2. Use a single command to get all build dependencies -------------------------------------------------------------- diff --git a/configure.in b/configure.in index 04af74287872b..d184a34d6b20a 100644 --- a/configure.in +++ b/configure.in @@ -581,9 +581,6 @@ PKG_CHECK_MODULES([CDIO], [libcdio], PKG_CHECK_MODULES([SAMPLERATE], [samplerate], [INCLUDES="$INCLUDES $SAMPLERATE_CFLAGS"; LIBS="$LIBS $SAMPLERATE_LIBS"], AC_MSG_ERROR($missing_library)) -PKG_CHECK_MODULES([MMS], [libmms], - [INCLUDES="$INCLUDES $MMS_CFLAGS"; LIBS="$LIBS $MMS_LIBS"], - AC_MSG_ERROR($missing_library)) PKG_CHECK_MODULES([FREETYPE2], [freetype2], [INCLUDES="$INCLUDES $FREETYPE2_CFLAGS"; LIBS="$LIBS $FREETYPE2_LIBS"], AC_MSG_ERROR($missing_library)) diff --git a/xbmc/cores/dvdplayer/DVDInputStreams/DVDFactoryInputStream.cpp b/xbmc/cores/dvdplayer/DVDInputStreams/DVDFactoryInputStream.cpp index c5a1dcf647ce8..5705ba2d86511 100644 --- a/xbmc/cores/dvdplayer/DVDInputStreams/DVDFactoryInputStream.cpp +++ b/xbmc/cores/dvdplayer/DVDInputStreams/DVDFactoryInputStream.cpp @@ -37,9 +37,6 @@ #ifdef ENABLE_DVDINPUTSTREAM_STACK #include "DVDInputStreamStack.h" #endif -#ifdef HAS_FILESYSTEM_MMS -#include "DVDInputStreamMMS.h" -#endif #include "FileItem.h" #include "storage/MediaManager.h" @@ -86,10 +83,6 @@ CDVDInputStream* CDVDFactoryInputStream::CreateInputStream(IDVDPlayer* pPlayer, else if(file.substr(0, 7) == "htsp://") return new CDVDInputStreamHTSP(); #endif -#ifdef HAS_FILESYSTEM_MMS - else if(file.substr(0,6) == "mms://" || file.substr(0,7) == "mmsh://") - return new CDVDInputStreamMMS(); -#endif // our file interface handles all these types of streams return (new CDVDInputStreamFile()); diff --git a/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamMMS.cpp b/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamMMS.cpp deleted file mode 100644 index b33636597cb54..0000000000000 --- a/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamMMS.cpp +++ /dev/null @@ -1,143 +0,0 @@ -/* - * Copyright (C) 2005-2008 Team XBMC - * http://www.xbmc.org - * - * This Program 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. - * - * This Program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with XBMC; see the file COPYING. If not, write to - * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. - * http://www.gnu.org/copyleft/gpl.html - * - */ - -#include "system.h" - -#ifdef HAS_FILESYSTEM_MMS - -#include "FileItem.h" -#include "DVDInputStreamMMS.h" -#include "filesystem/IFile.h" -#include "settings/GUISettings.h" - -#ifndef _WIN32 -// work around for braindead usage of "this" keyword as parameter name in libmms headers -// some distros have already patched this but upstream @ https://launchpad.net/libmms -// does still has the "this" usage. -#define this instance -#undef byte -#include // FIXME: remove this header once the ubuntu headers is fixed (variable named this) -#include -#include -#include -#undef this -#else -#include "win32/libmms_win32/src/mmsx.h" -#endif - -using namespace XFILE; - -CDVDInputStreamMMS::CDVDInputStreamMMS() : CDVDInputStream(DVDSTREAM_TYPE_MMS) -{ - m_mms = NULL; -} - -CDVDInputStreamMMS::~CDVDInputStreamMMS() -{ - Close(); -} - -bool CDVDInputStreamMMS::IsEOF() -{ - return false; -} - -#ifndef _WIN32 -struct mmsx_s { - mms_t *connection; - mmsh_t *connection_h; -}; -#endif - -bool CDVDInputStreamMMS::Open(const char* strFile, const std::string& content) -{ - int bandwidth = g_guiSettings.GetInt("network.bandwidth") * 1024; - if(bandwidth == 0) - bandwidth = 2000*1000; - - // TODO: remove this code if upstream accepts my patch - // tracked at https://bugs.launchpad.net/libmms/+bug/512089 - // also see the struct definition further up (needed due to opaqueness) -#ifndef _WIN32 - m_mms = (mmsx_t*)calloc(1, sizeof(mmsx_t)); - - if (!m_mms) - return false; - - m_mms->connection_h = mmsh_connect((mms_io_t*)mms_get_default_io_impl(), - NULL,strFile,bandwidth); - if (m_mms->connection_h) - return true; - - m_mms->connection = mms_connect((mms_io_t*)mms_get_default_io_impl(), - NULL,strFile,bandwidth); - if (m_mms->connection) - return true; - - free(m_mms); - m_mms = NULL; - return false; -#else - m_mms = mmsx_connect((mms_io_t*)mms_get_default_io_impl(),NULL,strFile,bandwidth); // TODO: what to do with bandwidth? - return (m_mms != NULL); -#endif -} - -// close file and reset everyting -void CDVDInputStreamMMS::Close() -{ - CDVDInputStream::Close(); - if (m_mms) - mmsx_close(m_mms); -} - -int CDVDInputStreamMMS::Read(BYTE* buf, int buf_size) -{ - return mmsx_read((mms_io_t*)mms_get_default_io_impl(),m_mms,(char*)buf,buf_size); -} - -__int64 CDVDInputStreamMMS::Seek(__int64 offset, int whence) -{ - if(whence == SEEK_POSSIBLE) - return 0; - else - return -1; // TODO: implement offset based seeks -} - -bool CDVDInputStreamMMS::SeekTime(int iTimeInMsec) -{ - if (mmsx_get_seekable(m_mms)) - return (mmsx_time_seek(NULL,m_mms,double(iTimeInMsec)/1000) != -1); - - return false; -} - -__int64 CDVDInputStreamMMS::GetLength() -{ - return (__int64)mmsx_get_time_length(m_mms); -} - -bool CDVDInputStreamMMS::NextStream() -{ - return false; -} - -#endif diff --git a/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamMMS.h b/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamMMS.h deleted file mode 100644 index 8a90e277835f1..0000000000000 --- a/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamMMS.h +++ /dev/null @@ -1,52 +0,0 @@ -#pragma once -/* - * Copyright (C) 2005-2008 Team XBMC - * http://www.xbmc.org - * - * This Program 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. - * - * This Program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with XBMC; see the file COPYING. If not, write to - * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. - * http://www.gnu.org/copyleft/gpl.html - * - */ - -#include "system.h" - -#ifdef HAS_FILESYSTEM_MMS - -#include "DVDInputStream.h" - -//forward declare this so we avoid including mmsx.h -typedef struct mmsx_s mmsx_t; - -class CDVDInputStreamMMS - : public CDVDInputStream - , public CDVDInputStream::ISeekTime -{ -public: - CDVDInputStreamMMS(); - virtual ~CDVDInputStreamMMS(); - virtual bool Open(const char* strFile, const std::string &content); - virtual bool Pause(double) { return true; } - virtual void Close(); - virtual int Read(BYTE* buf, int buf_size); - virtual __int64 Seek(__int64 offset, int whence); - bool SeekTime(int iTimeInMsec); - virtual bool IsEOF(); - virtual __int64 GetLength(); - virtual bool NextStream(); -protected: - mmsx_t* m_mms; -}; - -#endif diff --git a/xbmc/cores/dvdplayer/DVDInputStreams/Makefile b/xbmc/cores/dvdplayer/DVDInputStreams/Makefile index 38666f2d8abbe..b522e055afb7b 100644 --- a/xbmc/cores/dvdplayer/DVDInputStreams/Makefile +++ b/xbmc/cores/dvdplayer/DVDInputStreams/Makefile @@ -9,7 +9,6 @@ SRCS= DVDFactoryInputStream.cpp \ DVDInputStreamHTSP.cpp \ DVDInputStreamHttp.cpp \ DVDInputStreamMemory.cpp \ - DVDInputStreamMMS.cpp \ DVDInputStreamNavigator.cpp \ DVDInputStreamRTMP.cpp \ DVDInputStreamStack.cpp \ diff --git a/xbmc/system.h b/xbmc/system.h index f4541842d9aac..d59ae87199490 100644 --- a/xbmc/system.h +++ b/xbmc/system.h @@ -63,7 +63,6 @@ #define HAS_FILESYSTEM_SAP #define HAS_FILESYSTEM_VTP #define HAS_FILESYSTEM_HTSP -#define HAS_FILESYSTEM_MMS /********************** * Non-free Components From ee22f4d9e8832b7520ea948828e86225849af2f3 Mon Sep 17 00:00:00 2001 From: spiff Date: Sun, 6 Feb 2011 11:49:30 +0100 Subject: [PATCH 2/5] added: support mms through ffmpeg --- .../dvdplayer/DVDDemuxers/DVDDemuxFFmpeg.cpp | 15 ++++++++++++++- .../DVDInputStreams/DVDFactoryInputStream.cpp | 5 ++++- 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/xbmc/cores/dvdplayer/DVDDemuxers/DVDDemuxFFmpeg.cpp b/xbmc/cores/dvdplayer/DVDDemuxers/DVDDemuxFFmpeg.cpp index 2bc0586664564..4ba470e366c70 100644 --- a/xbmc/cores/dvdplayer/DVDDemuxers/DVDDemuxFFmpeg.cpp +++ b/xbmc/cores/dvdplayer/DVDDemuxers/DVDDemuxFFmpeg.cpp @@ -279,7 +279,20 @@ bool CDVDDemuxFFmpeg::Open(CDVDInputStream* pInput) { // special stream type that makes avformat handle file opening // allows internal ffmpeg protocols to be used - if( m_dllAvFormat.av_open_input_file(&m_pFormatContext, strFile.c_str(), iformat, FFMPEG_FILE_BUFFER_SIZE, NULL) < 0 ) + int result=-1; + if (strFile.substr(0,6) == "mms://") + { + // try mmsh, then mmst + CStdString strFile2; + strFile2.Format("mmsh://%s",strFile.substr(6,strFile.size()-6).c_str()); + result = m_dllAvFormat.av_open_input_file(&m_pFormatContext, strFile2.c_str(), iformat, FFMPEG_FILE_BUFFER_SIZE, NULL); + if (result < 0) + { + strFile = "mmst://"; + strFile += strFile2.Mid(7).c_str(); + } + } + if (result < 0 && m_dllAvFormat.av_open_input_file(&m_pFormatContext, strFile.c_str(), iformat, FFMPEG_FILE_BUFFER_SIZE, NULL) < 0 ) { CLog::Log(LOGDEBUG, "Error, could not open file %s", strFile.c_str()); Dispose(); diff --git a/xbmc/cores/dvdplayer/DVDInputStreams/DVDFactoryInputStream.cpp b/xbmc/cores/dvdplayer/DVDInputStreams/DVDFactoryInputStream.cpp index 5705ba2d86511..29d824b94579e 100644 --- a/xbmc/cores/dvdplayer/DVDInputStreams/DVDFactoryInputStream.cpp +++ b/xbmc/cores/dvdplayer/DVDInputStreams/DVDFactoryInputStream.cpp @@ -60,7 +60,10 @@ CDVDInputStream* CDVDFactoryInputStream::CreateInputStream(IDVDPlayer* pPlayer, || file.substr(0, 7) == "rtsp://" || file.substr(0, 6) == "sdp://" || file.substr(0, 6) == "udp://" - || file.substr(0, 6) == "tcp://") + || file.substr(0, 6) == "tcp://" + || file.substr(0, 6) == "mms://" + || file.substr(0, 6) == "mmst://" + || file.substr(0, 7) == "mmsh://") return new CDVDInputStreamFFmpeg(); else if(file.substr(0, 7) == "myth://" || file.substr(0, 8) == "cmyth://" From 43940eb8981a75848b11796117820298496c5848 Mon Sep 17 00:00:00 2001 From: elupus Date: Sun, 6 Feb 2011 16:08:59 +0100 Subject: [PATCH 3/5] removed: libmms from win32 build --- lib/win32/libmms_win32/.cvsignore | 17 - lib/win32/libmms_win32/AUTHORS | 6 - lib/win32/libmms_win32/COPYING.LIB | 510 ----- lib/win32/libmms_win32/ChangeLog | 329 --- lib/win32/libmms_win32/INSTALL | 302 --- lib/win32/libmms_win32/Makefile.am | 9 - lib/win32/libmms_win32/NEWS | 0 lib/win32/libmms_win32/README | 57 - lib/win32/libmms_win32/README.LICENSE | 6 - lib/win32/libmms_win32/TODO | 35 - lib/win32/libmms_win32/autogen.sh | 2 - lib/win32/libmms_win32/configure.in | 54 - lib/win32/libmms_win32/doc/random/URLs.txt | 9 - lib/win32/libmms_win32/libmms.spec.in | 63 - lib/win32/libmms_win32/msvc++/config.h | 3 - lib/win32/libmms_win32/msvc++/inttypes.h | 305 --- lib/win32/libmms_win32/msvc++/libmms.sln | 29 - lib/win32/libmms_win32/msvc++/libmms.vcproj | 333 --- lib/win32/libmms_win32/msvc++/libmms.vcxproj | 171 -- .../msvc++/libmms.vcxproj.filters | 56 - lib/win32/libmms_win32/msvc++/stdint.h | 222 -- lib/win32/libmms_win32/pkgconfig/.cvsignore | 3 - lib/win32/libmms_win32/pkgconfig/Makefile.am | 4 - lib/win32/libmms_win32/pkgconfig/libmms.pc.in | 11 - lib/win32/libmms_win32/src/.cvsignore | 10 - lib/win32/libmms_win32/src/Makefile.am | 45 - lib/win32/libmms_win32/src/README.AUX | 15 - lib/win32/libmms_win32/src/asfheader.h | 261 --- lib/win32/libmms_win32/src/bswap.h | 43 - lib/win32/libmms_win32/src/input_mms.c | 451 ---- lib/win32/libmms_win32/src/mms.c | 1981 ----------------- lib/win32/libmms_win32/src/mms.h | 91 - lib/win32/libmms_win32/src/mms_config.h | 4 - lib/win32/libmms_win32/src/mms_config.h.in | 4 - lib/win32/libmms_win32/src/mmsh.c | 1558 ------------- lib/win32/libmms_win32/src/mmsh.h | 63 - lib/win32/libmms_win32/src/mmsio.h | 93 - lib/win32/libmms_win32/src/mmsx.c | 153 -- lib/win32/libmms_win32/src/mmsx.h | 69 - lib/win32/libmms_win32/src/testconnect.c | 11 - lib/win32/libmms_win32/src/testdownload.c | 29 - lib/win32/libmms_win32/src/testswap.c | 45 - lib/win32/libmms_win32/src/uri.c | 904 -------- lib/win32/libmms_win32/src/uri.h | 94 - lib/win32/libmms_win32/src/utils.c | 37 - lib/win32/libmms_win32/src/utils.h | 40 - project/VS2010Express/XBMC for Windows.sln | 28 +- project/VS2010Express/XBMC.vcxproj | 6 - project/VS2010Express/XBMC.vcxproj.filters | 6 - 49 files changed, 9 insertions(+), 8568 deletions(-) delete mode 100644 lib/win32/libmms_win32/.cvsignore delete mode 100644 lib/win32/libmms_win32/AUTHORS delete mode 100644 lib/win32/libmms_win32/COPYING.LIB delete mode 100644 lib/win32/libmms_win32/ChangeLog delete mode 100644 lib/win32/libmms_win32/INSTALL delete mode 100644 lib/win32/libmms_win32/Makefile.am delete mode 100644 lib/win32/libmms_win32/NEWS delete mode 100644 lib/win32/libmms_win32/README delete mode 100644 lib/win32/libmms_win32/README.LICENSE delete mode 100644 lib/win32/libmms_win32/TODO delete mode 100644 lib/win32/libmms_win32/autogen.sh delete mode 100644 lib/win32/libmms_win32/configure.in delete mode 100644 lib/win32/libmms_win32/doc/random/URLs.txt delete mode 100644 lib/win32/libmms_win32/libmms.spec.in delete mode 100644 lib/win32/libmms_win32/msvc++/config.h delete mode 100644 lib/win32/libmms_win32/msvc++/inttypes.h delete mode 100644 lib/win32/libmms_win32/msvc++/libmms.sln delete mode 100644 lib/win32/libmms_win32/msvc++/libmms.vcproj delete mode 100644 lib/win32/libmms_win32/msvc++/libmms.vcxproj delete mode 100644 lib/win32/libmms_win32/msvc++/libmms.vcxproj.filters delete mode 100644 lib/win32/libmms_win32/msvc++/stdint.h delete mode 100644 lib/win32/libmms_win32/pkgconfig/.cvsignore delete mode 100644 lib/win32/libmms_win32/pkgconfig/Makefile.am delete mode 100644 lib/win32/libmms_win32/pkgconfig/libmms.pc.in delete mode 100644 lib/win32/libmms_win32/src/.cvsignore delete mode 100644 lib/win32/libmms_win32/src/Makefile.am delete mode 100644 lib/win32/libmms_win32/src/README.AUX delete mode 100644 lib/win32/libmms_win32/src/asfheader.h delete mode 100644 lib/win32/libmms_win32/src/bswap.h delete mode 100644 lib/win32/libmms_win32/src/input_mms.c delete mode 100644 lib/win32/libmms_win32/src/mms.c delete mode 100644 lib/win32/libmms_win32/src/mms.h delete mode 100644 lib/win32/libmms_win32/src/mms_config.h delete mode 100644 lib/win32/libmms_win32/src/mms_config.h.in delete mode 100644 lib/win32/libmms_win32/src/mmsh.c delete mode 100644 lib/win32/libmms_win32/src/mmsh.h delete mode 100644 lib/win32/libmms_win32/src/mmsio.h delete mode 100644 lib/win32/libmms_win32/src/mmsx.c delete mode 100644 lib/win32/libmms_win32/src/mmsx.h delete mode 100644 lib/win32/libmms_win32/src/testconnect.c delete mode 100644 lib/win32/libmms_win32/src/testdownload.c delete mode 100644 lib/win32/libmms_win32/src/testswap.c delete mode 100644 lib/win32/libmms_win32/src/uri.c delete mode 100644 lib/win32/libmms_win32/src/uri.h delete mode 100644 lib/win32/libmms_win32/src/utils.c delete mode 100644 lib/win32/libmms_win32/src/utils.h diff --git a/lib/win32/libmms_win32/.cvsignore b/lib/win32/libmms_win32/.cvsignore deleted file mode 100644 index 25a7301e7246b..0000000000000 --- a/lib/win32/libmms_win32/.cvsignore +++ /dev/null @@ -1,17 +0,0 @@ -prepare-ChangeLog.pl -Makefile -Makefile.in -aclocal.m4 -config.h -config.h.in -config.log -configure -semantic.cache -config.status -libtool -stamp-h -stamp-h.in -autom4te.cache -stamp-h1 -libmms.spec -autom4te.cache diff --git a/lib/win32/libmms_win32/AUTHORS b/lib/win32/libmms_win32/AUTHORS deleted file mode 100644 index 04a684313f4d8..0000000000000 --- a/lib/win32/libmms_win32/AUTHORS +++ /dev/null @@ -1,6 +0,0 @@ -Original author of the MMS interface code was Major MMS of http://www.geocities.com/majormms/ -Enhanced and maintained by Xine project at http://xine.sf.net - -Current developers of libmms are: -Maciej Katafiasz (Mathrick) -Søren Hansen (shawarma) diff --git a/lib/win32/libmms_win32/COPYING.LIB b/lib/win32/libmms_win32/COPYING.LIB deleted file mode 100644 index b124cf581250c..0000000000000 --- a/lib/win32/libmms_win32/COPYING.LIB +++ /dev/null @@ -1,510 +0,0 @@ - - GNU LESSER GENERAL PUBLIC LICENSE - Version 2.1, February 1999 - - Copyright (C) 1991, 1999 Free Software Foundation, Inc. - 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - -[This is the first released version of the Lesser GPL. It also counts - as the successor of the GNU Library Public License, version 2, hence - the version number 2.1.] - - Preamble - - The licenses for most software are designed to take away your -freedom to share and change it. By contrast, the GNU General Public -Licenses are intended to guarantee your freedom to share and change -free software--to make sure the software is free for all its users. - - This license, the Lesser General Public License, applies to some -specially designated software packages--typically libraries--of the -Free Software Foundation and other authors who decide to use it. You -can use it too, but we suggest you first think carefully about whether -this license or the ordinary General Public License is the better -strategy to use in any particular case, based on the explanations -below. - - When we speak of free software, we are referring to freedom of use, -not price. Our General Public Licenses are designed to make sure that -you have the freedom to distribute copies of free software (and charge -for this service if you wish); that you receive source code or can get -it if you want it; that you can change the software and use pieces of -it in new free programs; and that you are informed that you can do -these things. - - To protect your rights, we need to make restrictions that forbid -distributors to deny you these rights or to ask you to surrender these -rights. These restrictions translate to certain responsibilities for -you if you distribute copies of the library or if you modify it. - - For example, if you distribute copies of the library, whether gratis -or for a fee, you must give the recipients all the rights that we gave -you. You must make sure that they, too, receive or can get the source -code. If you link other code with the library, you must provide -complete object files to the recipients, so that they can relink them -with the library after making changes to the library and recompiling -it. And you must show them these terms so they know their rights. - - We protect your rights with a two-step method: (1) we copyright the -library, and (2) we offer you this license, which gives you legal -permission to copy, distribute and/or modify the library. - - To protect each distributor, we want to make it very clear that -there is no warranty for the free library. Also, if the library is -modified by someone else and passed on, the recipients should know -that what they have is not the original version, so that the original -author's reputation will not be affected by problems that might be -introduced by others. - - Finally, software patents pose a constant threat to the existence of -any free program. We wish to make sure that a company cannot -effectively restrict the users of a free program by obtaining a -restrictive license from a patent holder. Therefore, we insist that -any patent license obtained for a version of the library must be -consistent with the full freedom of use specified in this license. - - Most GNU software, including some libraries, is covered by the -ordinary GNU General Public License. This license, the GNU Lesser -General Public License, applies to certain designated libraries, and -is quite different from the ordinary General Public License. We use -this license for certain libraries in order to permit linking those -libraries into non-free programs. - - When a program is linked with a library, whether statically or using -a shared library, the combination of the two is legally speaking a -combined work, a derivative of the original library. The ordinary -General Public License therefore permits such linking only if the -entire combination fits its criteria of freedom. The Lesser General -Public License permits more lax criteria for linking other code with -the library. - - We call this license the "Lesser" General Public License because it -does Less to protect the user's freedom than the ordinary General -Public License. It also provides other free software developers Less -of an advantage over competing non-free programs. These disadvantages -are the reason we use the ordinary General Public License for many -libraries. However, the Lesser license provides advantages in certain -special circumstances. - - For example, on rare occasions, there may be a special need to -encourage the widest possible use of a certain library, so that it -becomes a de-facto standard. To achieve this, non-free programs must -be allowed to use the library. A more frequent case is that a free -library does the same job as widely used non-free libraries. In this -case, there is little to gain by limiting the free library to free -software only, so we use the Lesser General Public License. - - In other cases, permission to use a particular library in non-free -programs enables a greater number of people to use a large body of -free software. For example, permission to use the GNU C Library in -non-free programs enables many more people to use the whole GNU -operating system, as well as its variant, the GNU/Linux operating -system. - - Although the Lesser General Public License is Less protective of the -users' freedom, it does ensure that the user of a program that is -linked with the Library has the freedom and the wherewithal to run -that program using a modified version of the Library. - - The precise terms and conditions for copying, distribution and -modification follow. Pay close attention to the difference between a -"work based on the library" and a "work that uses the library". The -former contains code derived from the library, whereas the latter must -be combined with the library in order to run. - - GNU LESSER GENERAL PUBLIC LICENSE - TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - - 0. This License Agreement applies to any software library or other -program which contains a notice placed by the copyright holder or -other authorized party saying it may be distributed under the terms of -this Lesser General Public License (also called "this License"). -Each licensee is addressed as "you". - - A "library" means a collection of software functions and/or data -prepared so as to be conveniently linked with application programs -(which use some of those functions and data) to form executables. - - The "Library", below, refers to any such software library or work -which has been distributed under these terms. A "work based on the -Library" means either the Library or any derivative work under -copyright law: that is to say, a work containing the Library or a -portion of it, either verbatim or with modifications and/or translated -straightforwardly into another language. (Hereinafter, translation is -included without limitation in the term "modification".) - - "Source code" for a work means the preferred form of the work for -making modifications to it. For a library, complete source code means -all the source code for all modules it contains, plus any associated -interface definition files, plus the scripts used to control -compilation and installation of the library. - - Activities other than copying, distribution and modification are not -covered by this License; they are outside its scope. The act of -running a program using the Library is not restricted, and output from -such a program is covered only if its contents constitute a work based -on the Library (independent of the use of the Library in a tool for -writing it). Whether that is true depends on what the Library does -and what the program that uses the Library does. - - 1. You may copy and distribute verbatim copies of the Library's -complete source code as you receive it, in any medium, provided that -you conspicuously and appropriately publish on each copy an -appropriate copyright notice and disclaimer of warranty; keep intact -all the notices that refer to this License and to the absence of any -warranty; and distribute a copy of this License along with the -Library. - - You may charge a fee for the physical act of transferring a copy, -and you may at your option offer warranty protection in exchange for a -fee. - - 2. You may modify your copy or copies of the Library or any portion -of it, thus forming a work based on the Library, and copy and -distribute such modifications or work under the terms of Section 1 -above, provided that you also meet all of these conditions: - - a) The modified work must itself be a software library. - - b) You must cause the files modified to carry prominent notices - stating that you changed the files and the date of any change. - - c) You must cause the whole of the work to be licensed at no - charge to all third parties under the terms of this License. - - d) If a facility in the modified Library refers to a function or a - table of data to be supplied by an application program that uses - the facility, other than as an argument passed when the facility - is invoked, then you must make a good faith effort to ensure that, - in the event an application does not supply such function or - table, the facility still operates, and performs whatever part of - its purpose remains meaningful. - - (For example, a function in a library to compute square roots has - a purpose that is entirely well-defined independent of the - application. Therefore, Subsection 2d requires that any - application-supplied function or table used by this function must - be optional: if the application does not supply it, the square - root function must still compute square roots.) - -These requirements apply to the modified work as a whole. If -identifiable sections of that work are not derived from the Library, -and can be reasonably considered independent and separate works in -themselves, then this License, and its terms, do not apply to those -sections when you distribute them as separate works. But when you -distribute the same sections as part of a whole which is a work based -on the Library, the distribution of the whole must be on the terms of -this License, whose permissions for other licensees extend to the -entire whole, and thus to each and every part regardless of who wrote -it. - -Thus, it is not the intent of this section to claim rights or contest -your rights to work written entirely by you; rather, the intent is to -exercise the right to control the distribution of derivative or -collective works based on the Library. - -In addition, mere aggregation of another work not based on the Library -with the Library (or with a work based on the Library) on a volume of -a storage or distribution medium does not bring the other work under -the scope of this License. - - 3. You may opt to apply the terms of the ordinary GNU General Public -License instead of this License to a given copy of the Library. To do -this, you must alter all the notices that refer to this License, so -that they refer to the ordinary GNU General Public License, version 2, -instead of to this License. (If a newer version than version 2 of the -ordinary GNU General Public License has appeared, then you can specify -that version instead if you wish.) Do not make any other change in -these notices. - - Once this change is made in a given copy, it is irreversible for -that copy, so the ordinary GNU General Public License applies to all -subsequent copies and derivative works made from that copy. - - This option is useful when you wish to copy part of the code of -the Library into a program that is not a library. - - 4. You may copy and distribute the Library (or a portion or -derivative of it, under Section 2) in object code or executable form -under the terms of Sections 1 and 2 above provided that you accompany -it with the complete corresponding machine-readable source code, which -must be distributed under the terms of Sections 1 and 2 above on a -medium customarily used for software interchange. - - If distribution of object code is made by offering access to copy -from a designated place, then offering equivalent access to copy the -source code from the same place satisfies the requirement to -distribute the source code, even though third parties are not -compelled to copy the source along with the object code. - - 5. A program that contains no derivative of any portion of the -Library, but is designed to work with the Library by being compiled or -linked with it, is called a "work that uses the Library". Such a -work, in isolation, is not a derivative work of the Library, and -therefore falls outside the scope of this License. - - However, linking a "work that uses the Library" with the Library -creates an executable that is a derivative of the Library (because it -contains portions of the Library), rather than a "work that uses the -library". The executable is therefore covered by this License. -Section 6 states terms for distribution of such executables. - - When a "work that uses the Library" uses material from a header file -that is part of the Library, the object code for the work may be a -derivative work of the Library even though the source code is not. -Whether this is true is especially significant if the work can be -linked without the Library, or if the work is itself a library. The -threshold for this to be true is not precisely defined by law. - - If such an object file uses only numerical parameters, data -structure layouts and accessors, and small macros and small inline -functions (ten lines or less in length), then the use of the object -file is unrestricted, regardless of whether it is legally a derivative -work. (Executables containing this object code plus portions of the -Library will still fall under Section 6.) - - Otherwise, if the work is a derivative of the Library, you may -distribute the object code for the work under the terms of Section 6. -Any executables containing that work also fall under Section 6, -whether or not they are linked directly with the Library itself. - - 6. As an exception to the Sections above, you may also combine or -link a "work that uses the Library" with the Library to produce a -work containing portions of the Library, and distribute that work -under terms of your choice, provided that the terms permit -modification of the work for the customer's own use and reverse -engineering for debugging such modifications. - - You must give prominent notice with each copy of the work that the -Library is used in it and that the Library and its use are covered by -this License. You must supply a copy of this License. If the work -during execution displays copyright notices, you must include the -copyright notice for the Library among them, as well as a reference -directing the user to the copy of this License. Also, you must do one -of these things: - - a) Accompany the work with the complete corresponding - machine-readable source code for the Library including whatever - changes were used in the work (which must be distributed under - Sections 1 and 2 above); and, if the work is an executable linked - with the Library, with the complete machine-readable "work that - uses the Library", as object code and/or source code, so that the - user can modify the Library and then relink to produce a modified - executable containing the modified Library. (It is understood - that the user who changes the contents of definitions files in the - Library will not necessarily be able to recompile the application - to use the modified definitions.) - - b) Use a suitable shared library mechanism for linking with the - Library. A suitable mechanism is one that (1) uses at run time a - copy of the library already present on the user's computer system, - rather than copying library functions into the executable, and (2) - will operate properly with a modified version of the library, if - the user installs one, as long as the modified version is - interface-compatible with the version that the work was made with. - - c) Accompany the work with a written offer, valid for at least - three years, to give the same user the materials specified in - Subsection 6a, above, for a charge no more than the cost of - performing this distribution. - - d) If distribution of the work is made by offering access to copy - from a designated place, offer equivalent access to copy the above - specified materials from the same place. - - e) Verify that the user has already received a copy of these - materials or that you have already sent this user a copy. - - For an executable, the required form of the "work that uses the -Library" must include any data and utility programs needed for -reproducing the executable from it. However, as a special exception, -the materials to be distributed need not include anything that is -normally distributed (in either source or binary form) with the major -components (compiler, kernel, and so on) of the operating system on -which the executable runs, unless that component itself accompanies -the executable. - - It may happen that this requirement contradicts the license -restrictions of other proprietary libraries that do not normally -accompany the operating system. Such a contradiction means you cannot -use both them and the Library together in an executable that you -distribute. - - 7. You may place library facilities that are a work based on the -Library side-by-side in a single library together with other library -facilities not covered by this License, and distribute such a combined -library, provided that the separate distribution of the work based on -the Library and of the other library facilities is otherwise -permitted, and provided that you do these two things: - - a) Accompany the combined library with a copy of the same work - based on the Library, uncombined with any other library - facilities. This must be distributed under the terms of the - Sections above. - - b) Give prominent notice with the combined library of the fact - that part of it is a work based on the Library, and explaining - where to find the accompanying uncombined form of the same work. - - 8. You may not copy, modify, sublicense, link with, or distribute -the Library except as expressly provided under this License. Any -attempt otherwise to copy, modify, sublicense, link with, or -distribute the Library is void, and will automatically terminate your -rights under this License. However, parties who have received copies, -or rights, from you under this License will not have their licenses -terminated so long as such parties remain in full compliance. - - 9. You are not required to accept this License, since you have not -signed it. However, nothing else grants you permission to modify or -distribute the Library or its derivative works. These actions are -prohibited by law if you do not accept this License. Therefore, by -modifying or distributing the Library (or any work based on the -Library), you indicate your acceptance of this License to do so, and -all its terms and conditions for copying, distributing or modifying -the Library or works based on it. - - 10. Each time you redistribute the Library (or any work based on the -Library), the recipient automatically receives a license from the -original licensor to copy, distribute, link with or modify the Library -subject to these terms and conditions. You may not impose any further -restrictions on the recipients' exercise of the rights granted herein. -You are not responsible for enforcing compliance by third parties with -this License. - - 11. If, as a consequence of a court judgment or allegation of patent -infringement or for any other reason (not limited to patent issues), -conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot -distribute so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you -may not distribute the Library at all. For example, if a patent -license would not permit royalty-free redistribution of the Library by -all those who receive copies directly or indirectly through you, then -the only way you could satisfy both it and this License would be to -refrain entirely from distribution of the Library. - -If any portion of this section is held invalid or unenforceable under -any particular circumstance, the balance of the section is intended to -apply, and the section as a whole is intended to apply in other -circumstances. - -It is not the purpose of this section to induce you to infringe any -patents or other property right claims or to contest validity of any -such claims; this section has the sole purpose of protecting the -integrity of the free software distribution system which is -implemented by public license practices. Many people have made -generous contributions to the wide range of software distributed -through that system in reliance on consistent application of that -system; it is up to the author/donor to decide if he or she is willing -to distribute software through any other system and a licensee cannot -impose that choice. - -This section is intended to make thoroughly clear what is believed to -be a consequence of the rest of this License. - - 12. If the distribution and/or use of the Library is restricted in -certain countries either by patents or by copyrighted interfaces, the -original copyright holder who places the Library under this License -may add an explicit geographical distribution limitation excluding those -countries, so that distribution is permitted only in or among -countries not thus excluded. In such case, this License incorporates -the limitation as if written in the body of this License. - - 13. The Free Software Foundation may publish revised and/or new -versions of the Lesser General Public License from time to time. -Such new versions will be similar in spirit to the present version, -but may differ in detail to address new problems or concerns. - -Each version is given a distinguishing version number. If the Library -specifies a version number of this License which applies to it and -"any later version", you have the option of following the terms and -conditions either of that version or of any later version published by -the Free Software Foundation. If the Library does not specify a -license version number, you may choose any version ever published by -the Free Software Foundation. - - 14. If you wish to incorporate parts of the Library into other free -programs whose distribution conditions are incompatible with these, -write to the author to ask for permission. For software which is -copyrighted by the Free Software Foundation, write to the Free -Software Foundation; we sometimes make exceptions for this. Our -decision will be guided by the two goals of preserving the free status -of all derivatives of our free software and of promoting the sharing -and reuse of software generally. - - NO WARRANTY - - 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO -WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. -EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR -OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY -KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE -LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME -THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. - - 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN -WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY -AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU -FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR -CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE -LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING -RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A -FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF -SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGES. - - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Libraries - - If you develop a new library, and you want it to be of the greatest -possible use to the public, we recommend making it free software that -everyone can redistribute and change. You can do so by permitting -redistribution under these terms (or, alternatively, under the terms -of the ordinary General Public License). - - To apply these terms, attach the following notices to the library. -It is safest to attach them to the start of each source file to most -effectively convey the exclusion of warranty; and each file should -have at least the "copyright" line and a pointer to where the full -notice is found. - - - - Copyright (C) - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - -Also add information on how to contact you by electronic and paper mail. - -You should also get your employer (if you work as a programmer) or -your school, if any, to sign a "copyright disclaimer" for the library, -if necessary. Here is a sample; alter the names: - - Yoyodyne, Inc., hereby disclaims all copyright interest in the - library `Frob' (a library for tweaking knobs) written by James - Random Hacker. - - , 1 April 1990 - Ty Coon, President of Vice - -That's all there is to it! - - diff --git a/lib/win32/libmms_win32/ChangeLog b/lib/win32/libmms_win32/ChangeLog deleted file mode 100644 index 55e710dca45f2..0000000000000 --- a/lib/win32/libmms_win32/ChangeLog +++ /dev/null @@ -1,329 +0,0 @@ -2009-11-03 Maxim Levitsky - - * Rework URL handling - * Increase buffer size for very long URLS and handle buffer overflow - -2007-12-11 Hans de Goede - - * Remove out of date (not working with recent autotools) autogen.sh, - use: "autoreconf -i -f -v" instead. - -2007-12-11 Hans de Goede - - * Better tracking of seekable state in mms.c, return immediately - from the seek functions when they gat called on a non seekable - stream. - -2007-12-11 Hans de Goede - - * Do some minimal sanity checks on the information parsed from the - asf header. - -2007-12-11 Hans de Goede - - * Add mmsx.c / .h, mmsx.c is a small wrapper around mms.c and mmsh.c - The mmsx functions provide transparent access to both protocols - so that programs who wish to support both can do so with a single - code path if desired. - -2007-12-11 Hans de Goede - - * Add an atrribute to the mms / mmsh structs to track if the - stream is seekable and export it. - -2007-12-11 Hans de Goede - - * Add support for both time and byte offset based mmsh seeking! - -2007-12-11 Hans de Goede - - * Export (add get methods for) asf header- and packet-length. - -2007-12-11 Hans de Goede - - * Calculate length returned by mss_get_length() instead if returning - the filesize from the header. The filesize usually is bigger then - then the header + all packets because the end of the file contains - time->packet offset lookup tables, however these tables are not - accessible through mms. - -2007-12-11 Hans de Goede - - * Some off_t changes so that applications no longer need to be - have _FILE_OFFSET_BITS defined to 64 when compiling, when they - will be linked against a libmms which did have _FILE_OFFSET_BITS - defined to 64 during its compile (which gets defined by default - by configure on systems which support it). - -2007-09-10 Soren Hansen - - * Fix libmms to work with URL's that contain a query string. - Many thanks to Bob Richmond for discovering this and providing - a patch! - -2007-09-10 Soren Hansen - - * Fix hardcoded path in pkgconfig. Thanks to Ronald Bultje for - the patch! - -2007-09-09 Soren Hansen - - * Make libmms C89 compliant. Thanks to Jens Granseuer for the - patch! - -2007-09-09 Soren Hansen - - * Fix discarded first mmsh packet. Thanks to - azwemmer@users.sourceforge.net for the patch! - -2007-09-09 Soren Hansen - - * Fix URL handling. Thanks to Gabriel Velo for the patch! - -2007-09-09 Soren Hansen - - * Added seeking support. Many thanks to Anon Sricharoenchai - for this excellent work! - -2007-09-09 Soren Hansen - - * Fix stream ID > 23. Thanks to Fabrizio Gennari for the patch! - -2007-09-09 Soren Hansen - - * Double the acceptable size of ASF headers. Thanks to Sjoerd - Simons for the patch! - -2006-07-28 Soren Hansen - - * Apply security patches "stolen" from Debian. Thanks to Wesley J. - Landaker, Martin Pitt and Matthias Hopf. - * Applied patch from Daniel Rogers to - enable mms through proxies! - -2005-12-12 Christian Schaller - - * Add mmsh.h to Makefile for distribution/installation - * func mmsh_read, it doesnt return 0 even after it reaches the end. - Fix from Edgard Lima - -2005-11-30 Christian Schaller - - Merge changes to get mmsh support, patch from Akira TAGOH - * configure.in: - * libmms.spec.in: - * src/Makefile.am: - * src/asfheader.h: - * src/mms.c: (fallback_io_read), (send_command), - (interp_asf_header), (mms_choose_best_streams): - * src/mms.h: - * src/mmsh.c: (fallback_io_select), (fallback_io_read), - (fallback_io_write), (fallback_io_tcp_connect), (send_command), - (get_answer), (get_chunk_header), (get_header), (interp_header), - (mmsh_tcp_connect), (mmsh_connect_int), (mmsh_connect), - (get_media_packet), (mmsh_read), (mmsh_get_current_pos): - * src/mmsh.h: - -2005-03-15 mathrick - - * src/mms.c: - Ahem. We should be able to handle EOF, instead of falling into infloop, shouldn't we? - -2005-03-06 mathrick - - * src/mms.c: - Fix offets in live streams. Hope it doesn't break anything, - will need to redo probably when seeking gets in. - -2005-01-06 mathrick - - * pkgconfig/libmms.pc.in: - Fix stupid mistake. Include dir should be $prefix/include, not - $prefix/include/libmms. - -2004-12-27 mathrick - - * src/mms.c: - Fix compilation warning about comm unused in print_command(), wrong #defines used. - Thanks to Stephane Loeuillet for noticing that. - -2004-12-22 mathrick - - * src/mms.c: - Kill printfs so that we aren't as verbose as we used to be. This time for real - - * Makefile.am, configure.in, src/Makefile.am: - yay! libmms now correctly works, fixed miscompilation wrt large file support that - caused gst-mms to trash offsets. Almost ready for first release, now only removing - stray printf()s is pending - - -2004-12-22 mathrick - - * ChangeLog: - Add patches from Stephane and Ronald, hope we don't get - any conflicts from applying them twice (as it seems Christian - already commited Stephane's) - -2004-12-11 Christian Fredrik Kalager Schaller - - * src/Makefile.am, src/mms.c, src/testconnect.c, ChangeLog, autogen.sh: - patch from Stephane to fix some build issues - -2004-12-11 Christian Fredrik Kalager Schaller - - * src/Makefile.am, src/mms.c, src/testconnect.c, ChangeLog, autogen.sh: - patch from Stephane to fix some build issues - -2004-12-11 Stephane Loeuillet - - * autogen.sh : use POSIX form of 'head' (-n 1, instead of deprecated GNU only -1) - * src/mms.c : fix 4 warnings related to missing casts - * src/testconnect.c : non-void function should return something - * src/Makefile.am : if we don't plan to build testconnect, don't make automake think it exists - * pkgconfig/libmms.pc.in : add 'glib-2.0' to 'Requires' in .pc file - -2004-12-09 Christian Fredrik Kalager Schaller - - * .cvsignore: add some more files to be ignored - * COPYING: Remove this - * COPYING.LIB: Add this - * Makefile.am: Update to actually work - * autogen.sh: Completly replace with something nice - * configure.in: Update for latest changes - * src/Makefile.am: Update to install all we need - * pkgconfig: add directory with .pc file - -2004-10-26 shawarma - - * configure: New configure due to changes in configure.in - - * configure.in: Added a check for gnet-2.0 - - * src/Makefile.am: Added the different tests to the makefiles - - * src/mms.c: Added missing include - - * src/.cvsignore, .cvsignore: Adjusted .cvsignore - - * .cvsignore, src/.cvsignore: Tweaked .cvsignore - -2004-10-22 shawarma - - * autogen.sh: - Added libtoolize to the chain. Something changed between automake 1.4 and 1.7 that forces us to do this. - - * configure.in: Fixed a bug? - - * configure.in, src/Makefile.am, src/mms.c, TODO, autogen.sh, configure: - Everything should be wrapped in GNU autotools now - -2004-10-21 mathrick - - * ChangeLog, src/bswap.h, src/mms.c, src/mms.h, src/testconnect.c, src/testdownload.c, src/testswap.c: - Uhm, so basically now it works. Fixed funky bug in byteswapping (yay for meaningful - macros names!). Added test for that. Added tests for connection and basic - downloading (work). Removed some crufty bits from code, although there's still lots - xine-specific code that'll need to be removed/abstracted (TODO: how to do progress - reporting?) - -2004-10-21 mathrick - - * src/testconnect.c: Test connection to mms:// host - - * src/testdownload.c: Test connection and basic download - - * src/testswap.c: Test byteswapping macros -- we don't want to screw it - up again, do we? - -2004-05-08 mathrick - - * src/bswap.h, src/mms.c, src/mms.h: - Some initial commenting-out done in order to get it compiling w/o xine. Nothing working yet, though. - -2004-05-05 mathrick - - * src/mms.c, src/mms.h: - Import new, overhauled mms.[ch] from xine's tree. Code is cleaner now. - -2004-03-01 mathrick - - * ChangeLog: *** empty log message *** - - * TODO, src/README.AUX, src/asfheader.h, src/mms.c, src/mms.h, ChangeLog: - Slight changes in source files - added some non sources like TODO - imported asfheader.h - -2004-03-01 mathrick - - * TODO, src/README.AUX, src/asfheader.h, src/libmms/TODO, src/libmms/src/README.AUX, src/libmms/src/asfheader.h, src/libmms/src/mms.c, src/libmms/src/mms.h, src/mms.c, src/mms.h, ChangeLog, src/libmms/ChangeLog: - Slight changes in source files - added some non sources like TODO - imported asfheader.h - -2004-02-20 mathrick - - * AUTHORS, README, src/libmms/AUTHORS, src/libmms/README, README.LICENSE, src/libmms/README.LICENSE: - Filled in some info about project, corrected and enhanced details in AUTHORS - -2004-02-18 mathrick - - * bswap.h, libmms/src/bswap.h: Done this incredibly creative - byteswapping work, by stealing GLib's code and massaging it into - file. It is no longer xine work, now it's fully LGPL licensed. - - * bswap.h, libmms/src/bswap.h, libmms/src/mms.c, libmms/src/mms.h, - mms.c, mms.h: Imported bswap.h from xine (it's temporary fix, only - to know what name are in there, no code is intended to be copied). - Removed trailing whitespace from mms.[ch] - -2004-02-17 shawarma - - * libmms/AUTHORS: Created AUTHORS - - * Makefile.am, libmms/src/Makefile.am: Forgot to add the header - files to Makefile.am - -2004-02-15 mathrick - - * libmms/src/mmsh.c, libmms/src/mmsh.h, mmsh.c, mmsh.h, - input_mms.c, libmms/src/input_mms.c, libmms/src/mms.c, - libmms/src/mms.h, mms.c, mms.h: Should be a little more sane now, - with code dating back to 2001 removed ;) - -2004-02-13 shawarma - - * libmms/autom4te.cache/output.0, libmms/autom4te.cache/requests, - libmms/autom4te.cache/traces.0: These shouldn't have been imported - in the first place.. - - * Makefile.am, bswap.h, libmms/autom4te.cache/output.0, - libmms/autom4te.cache/traces.0, libmms/src/Makefile.am, - libmms/src/bswap.h, libmms/src/mms.c, libmms/src/mms.h, mms.c, - mms.h: Initial import of new source tree. Source files are from - xine-mms project. - - * Makefile.am, bswap.h, libmms/autom4te.cache/output.0, - libmms/autom4te.cache/traces.0, libmms/src/Makefile.am, - libmms/src/bswap.h, libmms/src/mms.c, libmms/src/mms.h, mms.c, - mms.h: New file. - - * libmms/AUTHORS, libmms/ChangeLog, libmms/NEWS, libmms/README, - libmms/autom4te.cache/requests, libmms/configure: Initial import - of new source tree. Source files are from xine-mms project. - - * libmms/AUTHORS, libmms/ChangeLog, libmms/NEWS, libmms/README, - libmms/autom4te.cache/requests, libmms/configure: New file. - - * libmms/COPYING: Initial import of new source tree. Source files - are from xine-mms project. - - * libmms/COPYING: New file. - - * libmms/INSTALL, libmms/Makefile.am, libmms/configure.in: Initial - import of new source tree. Source files are from xine-mms project. - - * libmms/INSTALL, libmms/Makefile.am, libmms/configure.in: New - file. - diff --git a/lib/win32/libmms_win32/INSTALL b/lib/win32/libmms_win32/INSTALL deleted file mode 100644 index 2550dab752611..0000000000000 --- a/lib/win32/libmms_win32/INSTALL +++ /dev/null @@ -1,302 +0,0 @@ -Installation Instructions -************************* - -Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005, -2006, 2007, 2008, 2009 Free Software Foundation, Inc. - - This file is free documentation; the Free Software Foundation gives -unlimited permission to copy, distribute and modify it. - -Basic Installation -================== - - Briefly, the shell commands `./configure; make; make install' should -configure, build, and install this package. The following -more-detailed instructions are generic; see the `README' file for -instructions specific to this package. - - The `configure' shell script attempts to guess correct values for -various system-dependent variables used during compilation. It uses -those values to create a `Makefile' in each directory of the package. -It may also create one or more `.h' files containing system-dependent -definitions. Finally, it creates a shell script `config.status' that -you can run in the future to recreate the current configuration, and a -file `config.log' containing compiler output (useful mainly for -debugging `configure'). - - It can also use an optional file (typically called `config.cache' -and enabled with `--cache-file=config.cache' or simply `-C') that saves -the results of its tests to speed up reconfiguring. Caching is -disabled by default to prevent problems with accidental use of stale -cache files. - - If you need to do unusual things to compile the package, please try -to figure out how `configure' could check whether to do them, and mail -diffs or instructions to the address given in the `README' so they can -be considered for the next release. If you are using the cache, and at -some point `config.cache' contains results you don't want to keep, you -may remove or edit it. - - The file `configure.ac' (or `configure.in') is used to create -`configure' by a program called `autoconf'. You need `configure.ac' if -you want to change it or regenerate `configure' using a newer version -of `autoconf'. - -The simplest way to compile this package is: - - 1. `cd' to the directory containing the package's source code and type - `./configure' to configure the package for your system. - - Running `configure' might take a while. While running, it prints - some messages telling which features it is checking for. - - 2. Type `make' to compile the package. - - 3. Optionally, type `make check' to run any self-tests that come with - the package. - - 4. Type `make install' to install the programs and any data files and - documentation. - - 5. You can remove the program binaries and object files from the - source code directory by typing `make clean'. To also remove the - files that `configure' created (so you can compile the package for - a different kind of computer), type `make distclean'. There is - also a `make maintainer-clean' target, but that is intended mainly - for the package's developers. If you use it, you may have to get - all sorts of other programs in order to regenerate files that came - with the distribution. - - 6. Often, you can also type `make uninstall' to remove the installed - files again. - -Compilers and Options -===================== - - Some systems require unusual options for compilation or linking that -the `configure' script does not know about. Run `./configure --help' -for details on some of the pertinent environment variables. - - You can give `configure' initial values for configuration parameters -by setting variables in the command line or in the environment. Here -is an example: - - ./configure CC=c99 CFLAGS=-g LIBS=-lposix - - *Note Defining Variables::, for more details. - -Compiling For Multiple Architectures -==================================== - - You can compile the package for more than one kind of computer at the -same time, by placing the object files for each architecture in their -own directory. To do this, you can use GNU `make'. `cd' to the -directory where you want the object files and executables to go and run -the `configure' script. `configure' automatically checks for the -source code in the directory that `configure' is in and in `..'. - - With a non-GNU `make', it is safer to compile the package for one -architecture at a time in the source code directory. After you have -installed the package for one architecture, use `make distclean' before -reconfiguring for another architecture. - - On MacOS X 10.5 and later systems, you can create libraries and -executables that work on multiple system types--known as "fat" or -"universal" binaries--by specifying multiple `-arch' options to the -compiler but only a single `-arch' option to the preprocessor. Like -this: - - ./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \ - CXX="g++ -arch i386 -arch x86_64 -arch ppc -arch ppc64" \ - CPP="gcc -E" CXXCPP="g++ -E" - - This is not guaranteed to produce working output in all cases, you -may have to build one architecture at a time and combine the results -using the `lipo' tool if you have problems. - -Installation Names -================== - - By default, `make install' installs the package's commands under -`/usr/local/bin', include files under `/usr/local/include', etc. You -can specify an installation prefix other than `/usr/local' by giving -`configure' the option `--prefix=PREFIX'. - - You can specify separate installation prefixes for -architecture-specific files and architecture-independent files. If you -pass the option `--exec-prefix=PREFIX' to `configure', the package uses -PREFIX as the prefix for installing programs and libraries. -Documentation and other data files still use the regular prefix. - - In addition, if you use an unusual directory layout you can give -options like `--bindir=DIR' to specify different values for particular -kinds of files. Run `configure --help' for a list of the directories -you can set and what kinds of files go in them. - - If the package supports it, you can cause programs to be installed -with an extra prefix or suffix on their names by giving `configure' the -option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'. - -Optional Features -================= - - Some packages pay attention to `--enable-FEATURE' options to -`configure', where FEATURE indicates an optional part of the package. -They may also pay attention to `--with-PACKAGE' options, where PACKAGE -is something like `gnu-as' or `x' (for the X Window System). The -`README' should mention any `--enable-' and `--with-' options that the -package recognizes. - - For packages that use the X Window System, `configure' can usually -find the X include and library files automatically, but if it doesn't, -you can use the `configure' options `--x-includes=DIR' and -`--x-libraries=DIR' to specify their locations. - -Particular systems -================== - - On HP-UX, the default C compiler is not ANSI C compatible. If GNU -CC is not installed, it is recommended to use the following options in -order to use an ANSI C compiler: - - ./configure CC="cc -Ae -D_XOPEN_SOURCE=500" - -and if that doesn't work, install pre-built binaries of GCC for HP-UX. - - On OSF/1 a.k.a. Tru64, some versions of the default C compiler cannot -parse its `' header file. The option `-nodtk' can be used as -a workaround. If GNU CC is not installed, it is therefore recommended -to try - - ./configure CC="cc" - -and if that doesn't work, try - - ./configure CC="cc -nodtk" - - On Solaris, don't put `/usr/ucb' early in your `PATH'. This -directory contains several dysfunctional programs; working variants of -these programs are available in `/usr/bin'. So, if you need `/usr/ucb' -in your `PATH', put it _after_ `/usr/bin'. - - On Haiku, software installed for all users goes in `/boot/common', -not `/usr/local'. It is recommended to use the following options: - - ./configure --prefix=/boot/common - -Specifying the System Type -========================== - - There may be some features `configure' cannot figure out -automatically, but needs to determine by the type of machine the package -will run on. Usually, assuming the package is built to be run on the -_same_ architectures, `configure' can figure that out, but if it prints -a message saying it cannot guess the machine type, give it the -`--build=TYPE' option. TYPE can either be a short name for the system -type, such as `sun4', or a canonical name which has the form: - - CPU-COMPANY-SYSTEM - -where SYSTEM can have one of these forms: - - OS - KERNEL-OS - - See the file `config.sub' for the possible values of each field. If -`config.sub' isn't included in this package, then this package doesn't -need to know the machine type. - - If you are _building_ compiler tools for cross-compiling, you should -use the option `--target=TYPE' to select the type of system they will -produce code for. - - If you want to _use_ a cross compiler, that generates code for a -platform different from the build platform, you should specify the -"host" platform (i.e., that on which the generated programs will -eventually be run) with `--host=TYPE'. - -Sharing Defaults -================ - - If you want to set default values for `configure' scripts to share, -you can create a site shell script called `config.site' that gives -default values for variables like `CC', `cache_file', and `prefix'. -`configure' looks for `PREFIX/share/config.site' if it exists, then -`PREFIX/etc/config.site' if it exists. Or, you can set the -`CONFIG_SITE' environment variable to the location of the site script. -A warning: not all `configure' scripts look for a site script. - -Defining Variables -================== - - Variables not defined in a site shell script can be set in the -environment passed to `configure'. However, some packages may run -configure again during the build, and the customized values of these -variables may be lost. In order to avoid this problem, you should set -them in the `configure' command line, using `VAR=value'. For example: - - ./configure CC=/usr/local2/bin/gcc - -causes the specified `gcc' to be used as the C compiler (unless it is -overridden in the site shell script). - -Unfortunately, this technique does not work for `CONFIG_SHELL' due to -an Autoconf bug. Until the bug is fixed you can use this workaround: - - CONFIG_SHELL=/bin/bash /bin/bash ./configure CONFIG_SHELL=/bin/bash - -`configure' Invocation -====================== - - `configure' recognizes the following options to control how it -operates. - -`--help' -`-h' - Print a summary of all of the options to `configure', and exit. - -`--help=short' -`--help=recursive' - Print a summary of the options unique to this package's - `configure', and exit. The `short' variant lists options used - only in the top level, while the `recursive' variant lists options - also present in any nested packages. - -`--version' -`-V' - Print the version of Autoconf used to generate the `configure' - script, and exit. - -`--cache-file=FILE' - Enable the cache: use and save the results of the tests in FILE, - traditionally `config.cache'. FILE defaults to `/dev/null' to - disable caching. - -`--config-cache' -`-C' - Alias for `--cache-file=config.cache'. - -`--quiet' -`--silent' -`-q' - Do not print messages saying which checks are being made. To - suppress all normal output, redirect it to `/dev/null' (any error - messages will still be shown). - -`--srcdir=DIR' - Look for the package's source code in directory DIR. Usually - `configure' can determine that directory automatically. - -`--prefix=DIR' - Use DIR as the installation prefix. *Note Installation Names:: - for more details, including other options available for fine-tuning - the installation locations. - -`--no-create' -`-n' - Run the configure checks, but stop before creating any output - files. - -`configure' also accepts some other, not widely useful, options. Run -`configure --help' for more details. - diff --git a/lib/win32/libmms_win32/Makefile.am b/lib/win32/libmms_win32/Makefile.am deleted file mode 100644 index 30b28da12de40..0000000000000 --- a/lib/win32/libmms_win32/Makefile.am +++ /dev/null @@ -1,9 +0,0 @@ -SUBDIRS=src \ - pkgconfig - -DIST_SUBDIRS=src \ - pkgconfig - -EXTRA_DIST=libmms.spec \ - AUTHORS COPYING.LIB NEWS README \ - ChangeLog autogen.sh INSTALL TODO README.LICENSE diff --git a/lib/win32/libmms_win32/NEWS b/lib/win32/libmms_win32/NEWS deleted file mode 100644 index e69de29bb2d1d..0000000000000 diff --git a/lib/win32/libmms_win32/README b/lib/win32/libmms_win32/README deleted file mode 100644 index 8426d2cf775b5..0000000000000 --- a/lib/win32/libmms_win32/README +++ /dev/null @@ -1,57 +0,0 @@ - LibMMS - - library for parsing - Microsoft Media Streaming - protocol - - -What is LibMMS? -=============== - -LibMMS is common library for parsing mms:// and mmsh:// type network -streams. These are commonly used to stream Windows Media Video content -over the web. LibMMS itself is only for receiving MMS stream, it -doesn't handle sending at all. If you need streaming functionality, -look for other protocol, such as RT(S)P. MMS is legacy thing, being -closed with no specs and abandoned even by its creator, the Microsoft Corp. - -Why LibMMS? -=========== - -LibMMS was created out of need for common library that would remedy -current situation where each Free Software project maintains its own -implementation of MMS protocol handling, creating unnecessary code and -effort duplication and introducing feature disparity as not every -bugfix gets into each of them. It also addresses need for LGPL -licensed code for that task, as every current implementation is -licensed as GPL, thus knocking out many projects that do not use GPL -themselves. - -Howto LibMMS? -============= - -LibMMS is intended to be small and simple, being useful for any -project that needs MMS handling functionality. It is constructed in -such a way that allows plugging custom I/O implementation, thus being -easy to integrate with custom framework, and providing a way to add -timeouted or cancelable I/O etc. - -Hmm, you said no specs? How so? -=============================== - -LibMMS code is based on amazing work done by SDP guys (http://get.to/sdp) -Without the specs they've reverse-engineered, there won't be any free -implementation of MMS handling today. - -How is LibMMS licensed? -======================= - -LibMMS is Free Software, licensed under GNU Library General Public -License. Original code comes from Xine project (http://xine.sf.net), -and it got separated for number of reasons, one of them being desire -to provide non GPL projects with library they could use. There's a -number of valuable LGPL projects locked out by GPL libraries, besides -we strongly feel that GPL is bad license for a library, as it's not -library thing to mess with its users licensing by vague interpretations -of wether linking makes binary derived work. We want libraries to be -used, and for that, we need to stay clean. \ No newline at end of file diff --git a/lib/win32/libmms_win32/README.LICENSE b/lib/win32/libmms_win32/README.LICENSE deleted file mode 100644 index 15dfbd2531740..0000000000000 --- a/lib/win32/libmms_win32/README.LICENSE +++ /dev/null @@ -1,6 +0,0 @@ -Original GPL code was taken from Xine project -(http://xine.sf.net). Relicensed to LGPL with explicit approval from -all copyright holders, if you're interested, you can see thread at: - - \ No newline at end of file diff --git a/lib/win32/libmms_win32/TODO b/lib/win32/libmms_win32/TODO deleted file mode 100644 index 8795d51392fe7..0000000000000 --- a/lib/win32/libmms_win32/TODO +++ /dev/null @@ -1,35 +0,0 @@ -TODO list for LibMMS --------------------- - -* mms.c: - - - remove dependency on xine_stream_t - - - resolve asfheader.h status - Ask xine maintainers if it's OK to just copy it (done, but no - reply yet) - - - get rid of xine_internal.h inclusion - There are lots of Xine internal vars and defines used, get rid - of them, and delete #include "xine_internal.h" - - - better log handling - Allow installing custom log handlers a'la GLib. Currently it is - done by #ifdef LOG printf(...), which is rather suboptimal and not - suitable for library - - - custom I/O functions provide sane default implementations - Allow installing custom I/O functions. Xine needs this to - provide cancellable I/O, as does probably anyone aiming to provide - usable app - - - sort out iconv() usage - I don't like the way it's currently used, especially I think - that source charset isn't obtained correctly - -* i18n: - - - gettextize - Gettextize source, currently there is some gettext used, - determine how much is done and what else needs to be gettextized - diff --git a/lib/win32/libmms_win32/autogen.sh b/lib/win32/libmms_win32/autogen.sh deleted file mode 100644 index f16cbb0b53f11..0000000000000 --- a/lib/win32/libmms_win32/autogen.sh +++ /dev/null @@ -1,2 +0,0 @@ -#!/bin/sh -exec autoreconf -f -i -v diff --git a/lib/win32/libmms_win32/configure.in b/lib/win32/libmms_win32/configure.in deleted file mode 100644 index 1fb29e23292f5..0000000000000 --- a/lib/win32/libmms_win32/configure.in +++ /dev/null @@ -1,54 +0,0 @@ -AC_INIT([libmms], [0.5], [sh@warma.dk]) -AM_INIT_AUTOMAKE(AC_PACKAGE_NAME, AC_PACKAGE_VERSION) -AM_CONFIG_HEADER([config.h src/mms_config.h]) -AC_CONFIG_SRCDIR(configure.in) - -AC_ISC_POSIX -AC_PROG_CC -AC_STDC_HEADERS -AM_PROG_LIBTOOL -AC_PROG_LIBTOOL -AC_PROG_INSTALL - - -PKG_CHECK_MODULES(GLIB, glib-2.0) -AC_SUBST(GLIB_CFLAGS) -AC_SUBST(GLIB_LIBS) - -dnl -dnl check for large file support -dnl hacky, copied from gstreamer's configure.ac - -AC_MSG_CHECKING(for large file support) -AC_TRY_RUN([ -#define _LARGEFILE_SOURCE -#define _FILE_OFFSET_BITS 64 -#include -int main () { return !(sizeof(off_t) == 8); } -], -[ - AC_MSG_RESULT(yes) - MMS_PKG_CFLAGS="-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64" - echo "#define LIBMMS_HAVE_64BIT_OFF_T 1" >> confdefs.h -], -[ - AC_MSG_RESULT(no) -], -[ - AC_MSG_RESULT(no) -]) - -AC_SUBST(MMS_CFLAGS) -AC_SUBST(MMS_PKG_CFLAGS) -AC_SUBST(MMS_LIBS) - - -AC_CONFIG_FILES([ -Makefile -pkgconfig/Makefile -pkgconfig/libmms.pc -src/Makefile -libmms.spec]) -AC_OUTPUT - -echo "configure done" diff --git a/lib/win32/libmms_win32/doc/random/URLs.txt b/lib/win32/libmms_win32/doc/random/URLs.txt deleted file mode 100644 index 56ed82cffb61f..0000000000000 --- a/lib/win32/libmms_win32/doc/random/URLs.txt +++ /dev/null @@ -1,9 +0,0 @@ -(This file contains various mms:// URLs available on 'net for our -pleasure and testing purposes :) - -- mms://sr-wm.qbrick.com/02038_srk-wm-High - Swedish classical music - radio - -- http://live.atlas.cz/pwf/default.asp - Czech news site, with many - mms:// video streams (requires some digging through html, though) - diff --git a/lib/win32/libmms_win32/libmms.spec.in b/lib/win32/libmms_win32/libmms.spec.in deleted file mode 100644 index ecfc0e8909c0a..0000000000000 --- a/lib/win32/libmms_win32/libmms.spec.in +++ /dev/null @@ -1,63 +0,0 @@ -Summary: mms stream protocol library -Name: libmms -Version: @VERSION@ -Release: 1 -License: LGPL -Group: Libraries/Multimedia -Source: libmms-%{version}.tar.gz -BuildRoot: %{_tmppath}/%{name}-%{PACKAGE_VERSION}-root -URL: http://libmms.sf.net - -%description -libmms is a library implementing the mms streaming protocol - -%package devel -Summary: Libraries and includefiles for developing with libmms -Group: Development/Libraries - -%description devel -This paackage provides the necessary development headers and libraries -to allow you to devel with libmms - -%prep -%setup - -%build -%configure -make - -%install -rm -rf $RPM_BUILD_ROOT - -%makeinstall - -# Clean out files that should not be part of the rpm. -# This is the recommended way of dealing with it for RH8 -rm -f $RPM_BUILD_ROOT%{_libdir}/*.a -rm -f $RPM_BUILD_ROOT%{_libdir}/*.la - -%clean -rm -rf $RPM_BUILD_ROOT - -%post -/sbin/ldconfig - -%postun -/sbin/ldconfig - -%files -%defattr(-, root, root) -%doc AUTHORS COPYING.LIB ChangeLog NEWS README TODO README.LICENSE -%{_libdir}/libmms.so.* - -%files devel -%{_includedir}/libmms/mms.h -%{_includedir}/libmms/bswap.h -%{_includedir}/libmms/mmsio.h -%{_includedir}/libmms/mmsh.h -%{_libdir}/libmms.so -%{_libdir}/pkgconfig/libmms.pc - -%changelog -* Thu Dec 9 2004 Christian Schaller --first attempt at SPEC diff --git a/lib/win32/libmms_win32/msvc++/config.h b/lib/win32/libmms_win32/msvc++/config.h deleted file mode 100644 index 7808ff8afb300..0000000000000 --- a/lib/win32/libmms_win32/msvc++/config.h +++ /dev/null @@ -1,3 +0,0 @@ -#ifdef WIN32 -#define close closesocket -#endif \ No newline at end of file diff --git a/lib/win32/libmms_win32/msvc++/inttypes.h b/lib/win32/libmms_win32/msvc++/inttypes.h deleted file mode 100644 index 0e8af69cb07c6..0000000000000 --- a/lib/win32/libmms_win32/msvc++/inttypes.h +++ /dev/null @@ -1,305 +0,0 @@ -// ISO C9x compliant inttypes.h for Microsoft Visual Studio -// Based on ISO/IEC 9899:TC2 Committee draft (May 6, 2005) WG14/N1124 -// -// Copyright (c) 2006 Alexander Chemeris -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are met: -// -// 1. Redistributions of source code must retain the above copyright notice, -// this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. The name of the author may be used to endorse or promote products -// derived from this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED -// WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO -// EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; -// OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, -// WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR -// OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF -// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _MSC_VER // [ -#error "Use this header only with Microsoft Visual C++ compilers!" -#endif // _MSC_VER ] - -#ifndef _MSC_INTTYPES_H_ // [ -#define _MSC_INTTYPES_H_ - -#if _MSC_VER > 1000 -#pragma once -#endif - -#include - -// 7.8 Format conversion of integer types - -typedef struct { - intmax_t quot; - intmax_t rem; -} imaxdiv_t; - -// 7.8.1 Macros for format specifiers - -#if !defined(__cplusplus) || defined(__STDC_FORMAT_MACROS) // [ See footnote 185 at page 198 - -// The fprintf macros for signed integers are: -#define PRId8 "d" -#define PRIi8 "i" -#define PRIdLEAST8 "d" -#define PRIiLEAST8 "i" -#define PRIdFAST8 "d" -#define PRIiFAST8 "i" - -#define PRId16 "hd" -#define PRIi16 "hi" -#define PRIdLEAST16 "hd" -#define PRIiLEAST16 "hi" -#define PRIdFAST16 "hd" -#define PRIiFAST16 "hi" - -#define PRId32 "I32d" -#define PRIi32 "I32i" -#define PRIdLEAST32 "I32d" -#define PRIiLEAST32 "I32i" -#define PRIdFAST32 "I32d" -#define PRIiFAST32 "I32i" - -#define PRId64 "I64d" -#define PRIi64 "I64i" -#define PRIdLEAST64 "I64d" -#define PRIiLEAST64 "I64i" -#define PRIdFAST64 "I64d" -#define PRIiFAST64 "I64i" - -#define PRIdMAX "I64d" -#define PRIiMAX "I64i" - -#define PRIdPTR "Id" -#define PRIiPTR "Ii" - -// The fprintf macros for unsigned integers are: -#define PRIo8 "o" -#define PRIu8 "u" -#define PRIx8 "x" -#define PRIX8 "X" -#define PRIoLEAST8 "o" -#define PRIuLEAST8 "u" -#define PRIxLEAST8 "x" -#define PRIXLEAST8 "X" -#define PRIoFAST8 "o" -#define PRIuFAST8 "u" -#define PRIxFAST8 "x" -#define PRIXFAST8 "X" - -#define PRIo16 "ho" -#define PRIu16 "hu" -#define PRIx16 "hx" -#define PRIX16 "hX" -#define PRIoLEAST16 "ho" -#define PRIuLEAST16 "hu" -#define PRIxLEAST16 "hx" -#define PRIXLEAST16 "hX" -#define PRIoFAST16 "ho" -#define PRIuFAST16 "hu" -#define PRIxFAST16 "hx" -#define PRIXFAST16 "hX" - -#define PRIo32 "I32o" -#define PRIu32 "I32u" -#define PRIx32 "I32x" -#define PRIX32 "I32X" -#define PRIoLEAST32 "I32o" -#define PRIuLEAST32 "I32u" -#define PRIxLEAST32 "I32x" -#define PRIXLEAST32 "I32X" -#define PRIoFAST32 "I32o" -#define PRIuFAST32 "I32u" -#define PRIxFAST32 "I32x" -#define PRIXFAST32 "I32X" - -#define PRIo64 "I64o" -#define PRIu64 "I64u" -#define PRIx64 "I64x" -#define PRIX64 "I64X" -#define PRIoLEAST64 "I64o" -#define PRIuLEAST64 "I64u" -#define PRIxLEAST64 "I64x" -#define PRIXLEAST64 "I64X" -#define PRIoFAST64 "I64o" -#define PRIuFAST64 "I64u" -#define PRIxFAST64 "I64x" -#define PRIXFAST64 "I64X" - -#define PRIoMAX "I64o" -#define PRIuMAX "I64u" -#define PRIxMAX "I64x" -#define PRIXMAX "I64X" - -#define PRIoPTR "Io" -#define PRIuPTR "Iu" -#define PRIxPTR "Ix" -#define PRIXPTR "IX" - -// The fscanf macros for signed integers are: -#define SCNd8 "d" -#define SCNi8 "i" -#define SCNdLEAST8 "d" -#define SCNiLEAST8 "i" -#define SCNdFAST8 "d" -#define SCNiFAST8 "i" - -#define SCNd16 "hd" -#define SCNi16 "hi" -#define SCNdLEAST16 "hd" -#define SCNiLEAST16 "hi" -#define SCNdFAST16 "hd" -#define SCNiFAST16 "hi" - -#define SCNd32 "ld" -#define SCNi32 "li" -#define SCNdLEAST32 "ld" -#define SCNiLEAST32 "li" -#define SCNdFAST32 "ld" -#define SCNiFAST32 "li" - -#define SCNd64 "I64d" -#define SCNi64 "I64i" -#define SCNdLEAST64 "I64d" -#define SCNiLEAST64 "I64i" -#define SCNdFAST64 "I64d" -#define SCNiFAST64 "I64i" - -#define SCNdMAX "I64d" -#define SCNiMAX "I64i" - -#ifdef _WIN64 // [ -# define SCNdPTR "I64d" -# define SCNiPTR "I64i" -#else // _WIN64 ][ -# define SCNdPTR "ld" -# define SCNiPTR "li" -#endif // _WIN64 ] - -// The fscanf macros for unsigned integers are: -#define SCNo8 "o" -#define SCNu8 "u" -#define SCNx8 "x" -#define SCNX8 "X" -#define SCNoLEAST8 "o" -#define SCNuLEAST8 "u" -#define SCNxLEAST8 "x" -#define SCNXLEAST8 "X" -#define SCNoFAST8 "o" -#define SCNuFAST8 "u" -#define SCNxFAST8 "x" -#define SCNXFAST8 "X" - -#define SCNo16 "ho" -#define SCNu16 "hu" -#define SCNx16 "hx" -#define SCNX16 "hX" -#define SCNoLEAST16 "ho" -#define SCNuLEAST16 "hu" -#define SCNxLEAST16 "hx" -#define SCNXLEAST16 "hX" -#define SCNoFAST16 "ho" -#define SCNuFAST16 "hu" -#define SCNxFAST16 "hx" -#define SCNXFAST16 "hX" - -#define SCNo32 "lo" -#define SCNu32 "lu" -#define SCNx32 "lx" -#define SCNX32 "lX" -#define SCNoLEAST32 "lo" -#define SCNuLEAST32 "lu" -#define SCNxLEAST32 "lx" -#define SCNXLEAST32 "lX" -#define SCNoFAST32 "lo" -#define SCNuFAST32 "lu" -#define SCNxFAST32 "lx" -#define SCNXFAST32 "lX" - -#define SCNo64 "I64o" -#define SCNu64 "I64u" -#define SCNx64 "I64x" -#define SCNX64 "I64X" -#define SCNoLEAST64 "I64o" -#define SCNuLEAST64 "I64u" -#define SCNxLEAST64 "I64x" -#define SCNXLEAST64 "I64X" -#define SCNoFAST64 "I64o" -#define SCNuFAST64 "I64u" -#define SCNxFAST64 "I64x" -#define SCNXFAST64 "I64X" - -#define SCNoMAX "I64o" -#define SCNuMAX "I64u" -#define SCNxMAX "I64x" -#define SCNXMAX "I64X" - -#ifdef _WIN64 // [ -# define SCNoPTR "I64o" -# define SCNuPTR "I64u" -# define SCNxPTR "I64x" -# define SCNXPTR "I64X" -#else // _WIN64 ][ -# define SCNoPTR "lo" -# define SCNuPTR "lu" -# define SCNxPTR "lx" -# define SCNXPTR "lX" -#endif // _WIN64 ] - -#endif // __STDC_FORMAT_MACROS ] - -// 7.8.2 Functions for greatest-width integer types - -// 7.8.2.1 The imaxabs function -#define imaxabs _abs64 - -// 7.8.2.2 The imaxdiv function - -// This is modified version of div() function from Microsoft's div.c found -// in %MSVC.NET%\crt\src\div.c -#ifdef STATIC_IMAXDIV // [ -static -#else // STATIC_IMAXDIV ][ -_inline -#endif // STATIC_IMAXDIV ] -imaxdiv_t __cdecl imaxdiv(intmax_t numer, intmax_t denom) -{ - imaxdiv_t result; - - result.quot = numer / denom; - result.rem = numer % denom; - - if (numer < 0 && result.rem > 0) { - // did division wrong; must fix up - ++result.quot; - result.rem -= denom; - } - - return result; -} - -// 7.8.2.3 The strtoimax and strtoumax functions -#define strtoimax _strtoi64 -#define strtoumax _strtoui64 - -// 7.8.2.4 The wcstoimax and wcstoumax functions -#define wcstoimax _wcstoi64 -#define wcstoumax _wcstoui64 - - -#endif // _MSC_INTTYPES_H_ ] diff --git a/lib/win32/libmms_win32/msvc++/libmms.sln b/lib/win32/libmms_win32/msvc++/libmms.sln deleted file mode 100644 index d0cb1de0d9993..0000000000000 --- a/lib/win32/libmms_win32/msvc++/libmms.sln +++ /dev/null @@ -1,29 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 10.00 -# Visual C++ Express 2008 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libmms", "libmms.vcproj", "{3A575CF0-45B3-41CC-85E2-9F9CE8C56B38}" - ProjectSection(ProjectDependencies) = postProject - {12BCA020-EABF-429E-876A-A476BC9C10C0} = {12BCA020-EABF-429E-876A-A476BC9C10C0} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "glib", "..\..\glib-2.20.4\build\win32\vs9\glib.vcproj", "{12BCA020-EABF-429E-876A-A476BC9C10C0}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Win32 = Debug|Win32 - Release|Win32 = Release|Win32 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {3A575CF0-45B3-41CC-85E2-9F9CE8C56B38}.Debug|Win32.ActiveCfg = Debug|Win32 - {3A575CF0-45B3-41CC-85E2-9F9CE8C56B38}.Debug|Win32.Build.0 = Debug|Win32 - {3A575CF0-45B3-41CC-85E2-9F9CE8C56B38}.Release|Win32.ActiveCfg = Release|Win32 - {3A575CF0-45B3-41CC-85E2-9F9CE8C56B38}.Release|Win32.Build.0 = Release|Win32 - {12BCA020-EABF-429E-876A-A476BC9C10C0}.Debug|Win32.ActiveCfg = Debug|Win32 - {12BCA020-EABF-429E-876A-A476BC9C10C0}.Debug|Win32.Build.0 = Debug|Win32 - {12BCA020-EABF-429E-876A-A476BC9C10C0}.Release|Win32.ActiveCfg = Release|Win32 - {12BCA020-EABF-429E-876A-A476BC9C10C0}.Release|Win32.Build.0 = Release|Win32 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/lib/win32/libmms_win32/msvc++/libmms.vcproj b/lib/win32/libmms_win32/msvc++/libmms.vcproj deleted file mode 100644 index ac8e598348510..0000000000000 --- a/lib/win32/libmms_win32/msvc++/libmms.vcproj +++ /dev/null @@ -1,333 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/lib/win32/libmms_win32/msvc++/libmms.vcxproj b/lib/win32/libmms_win32/msvc++/libmms.vcxproj deleted file mode 100644 index 71e85431545a9..0000000000000 --- a/lib/win32/libmms_win32/msvc++/libmms.vcxproj +++ /dev/null @@ -1,171 +0,0 @@ - - - - - Debug - Win32 - - - Release - Win32 - - - - {3A575CF0-45B3-41CC-85E2-9F9CE8C56B38} - - - - StaticLibrary - false - MultiByte - - - StaticLibrary - false - MultiByte - - - - - - - - - - - - - - - - - <_ProjectFileVersion>10.0.30319.1 - $(SolutionDir)libs\$(TargetName)\$(Configuration)\ - $(SolutionDir)objs\$(TargetName)\$(Configuration)\ - $(SolutionDir)libs\$(TargetName)\$(Configuration)\ - $(SolutionDir)objs\$(TargetName)\$(Configuration)\ - - - - Disabled - .;../src;..\..\glib-2.20.4;..\..\glib-2.20.4\glib;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_LIB;HAVE_CONFIG_H;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - false - .\Debug/libmms.pch - $(Configuration)\vs2010\ - $(Configuration)\vs2010\ - $(Configuration)\vs2010\ - Level3 - true - EditAndContinue - CompileAsC - 4002;4018;4244;4996;%(DisableSpecificWarnings) - - - _DEBUG;%(PreprocessorDefinitions) - 0x0412 - - - $(OutDir)$(TargetName)$(TargetExt) - true - - - true - .\Debug/libmms.bsc - - - true - - - - - Full - Default - Speed - .;../src;..\..\glib-2.20.4;..\..\glib-2.20.4\glib;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_LIB;HAVE_CONFIG_H;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;%(PreprocessorDefinitions) - true - MultiThreaded - true - false - .\Release/libmms.pch - $(Configuration)\vs2010\ - $(Configuration)\vs2010\ - $(Configuration)\vs2010\ - Level3 - true - CompileAsC - 4002;4018;4244;4996;%(DisableSpecificWarnings) - - - NDEBUG;%(PreprocessorDefinitions) - 0x0412 - - - $(OutDir)$(TargetName)$(TargetExt) - true - - - true - .\Release/libmms.bsc - - - - - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - - - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - - - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - - - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - - - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - - - - - - - - - - - - - - - {12bca020-eabf-429e-876a-a476bc9c10c0} - true - false - false - true - false - - - - - - \ No newline at end of file diff --git a/lib/win32/libmms_win32/msvc++/libmms.vcxproj.filters b/lib/win32/libmms_win32/msvc++/libmms.vcxproj.filters deleted file mode 100644 index 6413202ffe89b..0000000000000 --- a/lib/win32/libmms_win32/msvc++/libmms.vcxproj.filters +++ /dev/null @@ -1,56 +0,0 @@ - - - - - {1a51a4fe-02f3-49e2-89d1-8affb88501e1} - cpp;c;cxx;rc;def;r;odl;idl;hpj;bat - - - {2511eb49-8886-4756-96dc-f14a934fdbd0} - h;hpp;hxx;hm;inl - - - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - \ No newline at end of file diff --git a/lib/win32/libmms_win32/msvc++/stdint.h b/lib/win32/libmms_win32/msvc++/stdint.h deleted file mode 100644 index b23840f1d5de7..0000000000000 --- a/lib/win32/libmms_win32/msvc++/stdint.h +++ /dev/null @@ -1,222 +0,0 @@ -// ISO C9x compliant stdint.h for Microsoft Visual Studio -// Based on ISO/IEC 9899:TC2 Committee draft (May 6, 2005) WG14/N1124 -// -// Copyright (c) 2006 Alexander Chemeris -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are met: -// -// 1. Redistributions of source code must retain the above copyright notice, -// this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. The name of the author may be used to endorse or promote products -// derived from this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED -// WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO -// EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; -// OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, -// WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR -// OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF -// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _MSC_VER // [ -#error "Use this header only with Microsoft Visual C++ compilers!" -#endif // _MSC_VER ] - -#ifndef _MSC_STDINT_H_ // [ -#define _MSC_STDINT_H_ - -#if _MSC_VER > 1000 -#pragma once -#endif - -#include - -// For Visual Studio 6 in C++ mode wrap include with 'extern "C++" {}' -// or compiler give many errors like this: -// error C2733: second C linkage of overloaded function 'wmemchr' not allowed -#if (_MSC_VER < 1300) && defined(__cplusplus) - extern "C++" { -#endif -# include -#if (_MSC_VER < 1300) && defined(__cplusplus) - } -#endif - -// 7.18.1 Integer types - -// 7.18.1.1 Exact-width integer types -typedef __int8 int8_t; -typedef __int16 int16_t; -typedef __int32 int32_t; -typedef __int64 int64_t; -typedef unsigned __int8 uint8_t; -typedef unsigned __int16 uint16_t; -typedef unsigned __int32 uint32_t; -typedef unsigned __int64 uint64_t; - -// 7.18.1.2 Minimum-width integer types -typedef int8_t int_least8_t; -typedef int16_t int_least16_t; -typedef int32_t int_least32_t; -typedef int64_t int_least64_t; -typedef uint8_t uint_least8_t; -typedef uint16_t uint_least16_t; -typedef uint32_t uint_least32_t; -typedef uint64_t uint_least64_t; - -// 7.18.1.3 Fastest minimum-width integer types -typedef int8_t int_fast8_t; -typedef int16_t int_fast16_t; -typedef int32_t int_fast32_t; -typedef int64_t int_fast64_t; -typedef uint8_t uint_fast8_t; -typedef uint16_t uint_fast16_t; -typedef uint32_t uint_fast32_t; -typedef uint64_t uint_fast64_t; - -// 7.18.1.4 Integer types capable of holding object pointers -#ifdef _WIN64 // [ - typedef __int64 intptr_t; - typedef unsigned __int64 uintptr_t; -#else // _WIN64 ][ - typedef int intptr_t; - typedef unsigned int uintptr_t; -#endif // _WIN64 ] - -// 7.18.1.5 Greatest-width integer types -typedef int64_t intmax_t; -typedef uint64_t uintmax_t; - - -// 7.18.2 Limits of specified-width integer types - -#if !defined(__cplusplus) || defined(__STDC_LIMIT_MACROS) // [ See footnote 220 at page 257 and footnote 221 at page 259 - -// 7.18.2.1 Limits of exact-width integer types -#define INT8_MIN ((int8_t)_I8_MIN) -#define INT8_MAX _I8_MAX -#define INT16_MIN ((int16_t)_I16_MIN) -#define INT16_MAX _I16_MAX -#define INT32_MIN ((int32_t)_I32_MIN) -#define INT32_MAX _I32_MAX -#define INT64_MIN ((int64_t)_I64_MIN) -#define INT64_MAX _I64_MAX -#define UINT8_MAX _UI8_MAX -#define UINT16_MAX _UI16_MAX -#define UINT32_MAX _UI32_MAX -#define UINT64_MAX _UI64_MAX - -// 7.18.2.2 Limits of minimum-width integer types -#define INT_LEAST8_MIN INT8_MIN -#define INT_LEAST8_MAX INT8_MAX -#define INT_LEAST16_MIN INT16_MIN -#define INT_LEAST16_MAX INT16_MAX -#define INT_LEAST32_MIN INT32_MIN -#define INT_LEAST32_MAX INT32_MAX -#define INT_LEAST64_MIN INT64_MIN -#define INT_LEAST64_MAX INT64_MAX -#define UINT_LEAST8_MAX UINT8_MAX -#define UINT_LEAST16_MAX UINT16_MAX -#define UINT_LEAST32_MAX UINT32_MAX -#define UINT_LEAST64_MAX UINT64_MAX - -// 7.18.2.3 Limits of fastest minimum-width integer types -#define INT_FAST8_MIN INT8_MIN -#define INT_FAST8_MAX INT8_MAX -#define INT_FAST16_MIN INT16_MIN -#define INT_FAST16_MAX INT16_MAX -#define INT_FAST32_MIN INT32_MIN -#define INT_FAST32_MAX INT32_MAX -#define INT_FAST64_MIN INT64_MIN -#define INT_FAST64_MAX INT64_MAX -#define UINT_FAST8_MAX UINT8_MAX -#define UINT_FAST16_MAX UINT16_MAX -#define UINT_FAST32_MAX UINT32_MAX -#define UINT_FAST64_MAX UINT64_MAX - -// 7.18.2.4 Limits of integer types capable of holding object pointers -#ifdef _WIN64 // [ -# define INTPTR_MIN INT64_MIN -# define INTPTR_MAX INT64_MAX -# define UINTPTR_MAX UINT64_MAX -#else // _WIN64 ][ -# define INTPTR_MIN INT32_MIN -# define INTPTR_MAX INT32_MAX -# define UINTPTR_MAX UINT32_MAX -#endif // _WIN64 ] - -// 7.18.2.5 Limits of greatest-width integer types -#define INTMAX_MIN INT64_MIN -#define INTMAX_MAX INT64_MAX -#define UINTMAX_MAX UINT64_MAX - -// 7.18.3 Limits of other integer types - -#ifdef _WIN64 // [ -# define PTRDIFF_MIN _I64_MIN -# define PTRDIFF_MAX _I64_MAX -#else // _WIN64 ][ -# define PTRDIFF_MIN _I32_MIN -# define PTRDIFF_MAX _I32_MAX -#endif // _WIN64 ] - -#define SIG_ATOMIC_MIN INT_MIN -#define SIG_ATOMIC_MAX INT_MAX - -#ifndef SIZE_MAX // [ -# ifdef _WIN64 // [ -# define SIZE_MAX _UI64_MAX -# else // _WIN64 ][ -# define SIZE_MAX _UI32_MAX -# endif // _WIN64 ] -#endif // SIZE_MAX ] - -// WCHAR_MIN and WCHAR_MAX are also defined in -#ifndef WCHAR_MIN // [ -# define WCHAR_MIN 0 -#endif // WCHAR_MIN ] -#ifndef WCHAR_MAX // [ -# define WCHAR_MAX _UI16_MAX -#endif // WCHAR_MAX ] - -#define WINT_MIN 0 -#define WINT_MAX _UI16_MAX - -#endif // __STDC_LIMIT_MACROS ] - - -// 7.18.4 Limits of other integer types - -#if !defined(__cplusplus) || defined(__STDC_CONSTANT_MACROS) // [ See footnote 224 at page 260 - -// 7.18.4.1 Macros for minimum-width integer constants - -#define INT8_C(val) val##i8 -#define INT16_C(val) val##i16 -#define INT32_C(val) val##i32 -//#define INT64_C(val) val##i64 - -#define UINT8_C(val) val##ui8 -#define UINT16_C(val) val##ui16 -#define UINT32_C(val) val##ui32 -//#define UINT64_C(val) val##ui64 - -// 7.18.4.2 Macros for greatest-width integer constants -#define INTMAX_C INT64_C -#define UINTMAX_C UINT64_C - -#endif // __STDC_CONSTANT_MACROS ] - - -#endif // _MSC_STDINT_H_ ] diff --git a/lib/win32/libmms_win32/pkgconfig/.cvsignore b/lib/win32/libmms_win32/pkgconfig/.cvsignore deleted file mode 100644 index 97bc18c141c70..0000000000000 --- a/lib/win32/libmms_win32/pkgconfig/.cvsignore +++ /dev/null @@ -1,3 +0,0 @@ -Makefile -Makefile.in -libmms.pc diff --git a/lib/win32/libmms_win32/pkgconfig/Makefile.am b/lib/win32/libmms_win32/pkgconfig/Makefile.am deleted file mode 100644 index 658013913bee1..0000000000000 --- a/lib/win32/libmms_win32/pkgconfig/Makefile.am +++ /dev/null @@ -1,4 +0,0 @@ -pkgconfigdir = $(libdir)/pkgconfig -pkgconfig_DATA = libmms.pc - -EXTRA_DIST=libmms.pc.in diff --git a/lib/win32/libmms_win32/pkgconfig/libmms.pc.in b/lib/win32/libmms_win32/pkgconfig/libmms.pc.in deleted file mode 100644 index 602c967210e7f..0000000000000 --- a/lib/win32/libmms_win32/pkgconfig/libmms.pc.in +++ /dev/null @@ -1,11 +0,0 @@ -prefix=@prefix@ -exec_prefix=@exec_prefix@ -libdir=@libdir@ -includedir=@includedir@/ - -Name: libmms -Description: Library implementing the MMS protocol -Requires: glib-2.0 -Version: @VERSION@ -Libs: -L${libdir} -lmms -lm -Cflags: -I${includedir} diff --git a/lib/win32/libmms_win32/src/.cvsignore b/lib/win32/libmms_win32/src/.cvsignore deleted file mode 100644 index 9db9f89608499..0000000000000 --- a/lib/win32/libmms_win32/src/.cvsignore +++ /dev/null @@ -1,10 +0,0 @@ -.cvsignore -.deps -.libs -Makefile -Makefile.in -libmms.la -mms.lo -testconnect -testdownload -testswap diff --git a/lib/win32/libmms_win32/src/Makefile.am b/lib/win32/libmms_win32/src/Makefile.am deleted file mode 100644 index 61de3646470e1..0000000000000 --- a/lib/win32/libmms_win32/src/Makefile.am +++ /dev/null @@ -1,45 +0,0 @@ -# noinst_PROGRAMS = testconnect testdownload testswap - -lib_LTLIBRARIES = libmms.la - -libmms_la_SOURCES = \ - mmsio.h \ - mms.c \ - mms.h \ - mms_config.h \ - mmsh.c \ - mmsh.h \ - mmsx.c \ - mmsx.h \ - bswap.h \ - uri.c \ - uri.h \ - asfheader.h \ - mmsh.h - -# noinst_HEADERS = - -libmms_la_LDFLAGS = -version-info 0:2:0 -no-undefined -export-dynamic -libmms_la_LIBADD = $(GLIB_LIBS) - -libmmsincdir = $(includedir)/libmms - -libmmsinc_HEADERS = \ - mms.h \ - mms_config.h \ - bswap.h \ - mmsio.h \ - mmsx.h \ - mmsh.h - -INCLUDES = \ - -I$(top_srcdir) \ - -I$(top_builddir) \ - $(MMS_PKG_CFLAGS) \ - $(GLIB_CFLAGS) - -DEPS = $(top_builddir)/src/libmms.la -LDADD = $(top_builddir)/src/libmms.la - -# libmms_test_SOURCES = testconnect.c testdownload.c testswap.c -# libmms_test_LDADD = $(LDADD) diff --git a/lib/win32/libmms_win32/src/README.AUX b/lib/win32/libmms_win32/src/README.AUX deleted file mode 100644 index e4a430c01d105..0000000000000 --- a/lib/win32/libmms_win32/src/README.AUX +++ /dev/null @@ -1,15 +0,0 @@ -Auxiliary files ---------------- - -Files listed here are auxiliary in sense they are _NOT_ part of libmms -source. Sometimes they are not meant to ever be, and are included -temporarily as reference for declarations not ported from Xine yet, -and sometimes their status isn't clear enough yet for them to be -considered libmms part. They don't fall under libmms' license, and -have their own distribution terms. - -* Files provided for porting reasons: - - input_mms.c - -* Files not included officially yet: - - asfheader.h \ No newline at end of file diff --git a/lib/win32/libmms_win32/src/asfheader.h b/lib/win32/libmms_win32/src/asfheader.h deleted file mode 100644 index 09d94edfeac45..0000000000000 --- a/lib/win32/libmms_win32/src/asfheader.h +++ /dev/null @@ -1,261 +0,0 @@ -/* - * Copyright (C) 2000-2003 the xine project - * - * This file is part of xine, a free video player. - * - * xine 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 of the License, or - * (at your option) any later version. - * - * xine 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 this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA - * - * $Id: asfheader.h,v 1.2 2005/12/12 09:24:19 theuraeus Exp $ - * - * demultiplexer for asf streams - * - * based on ffmpeg's - * ASF compatible encoder and decoder. - * Copyright (c) 2000, 2001 Gerard Lantau. - * - * GUID list from avifile - * some other ideas from MPlayer - */ - -#ifndef ASFHEADER_H -#define ASFHEADER_H - -/* - * define asf GUIDs (list from avifile) - */ -#define GUID_ERROR 0 - - /* base ASF objects */ -#define GUID_ASF_HEADER 1 -#define GUID_ASF_DATA 2 -#define GUID_ASF_SIMPLE_INDEX 3 -#define GUID_INDEX 4 -#define GUID_MEDIA_OBJECT_INDEX 5 -#define GUID_TIMECODE_INDEX 6 - - /* header ASF objects */ -#define GUID_ASF_FILE_PROPERTIES 7 -#define GUID_ASF_STREAM_PROPERTIES 8 -#define GUID_ASF_HEADER_EXTENSION 9 -#define GUID_ASF_CODEC_LIST 10 -#define GUID_ASF_SCRIPT_COMMAND 11 -#define GUID_ASF_MARKER 12 -#define GUID_ASF_BITRATE_MUTUAL_EXCLUSION 13 -#define GUID_ASF_ERROR_CORRECTION 14 -#define GUID_ASF_CONTENT_DESCRIPTION 15 -#define GUID_ASF_EXTENDED_CONTENT_DESCRIPTION 16 -#define GUID_ASF_STREAM_BITRATE_PROPERTIES 17 -#define GUID_ASF_EXTENDED_CONTENT_ENCRYPTION 18 -#define GUID_ASF_PADDING 19 - - /* stream properties object stream type */ -#define GUID_ASF_AUDIO_MEDIA 20 -#define GUID_ASF_VIDEO_MEDIA 21 -#define GUID_ASF_COMMAND_MEDIA 22 -#define GUID_ASF_JFIF_MEDIA 23 -#define GUID_ASF_DEGRADABLE_JPEG_MEDIA 24 -#define GUID_ASF_FILE_TRANSFER_MEDIA 25 -#define GUID_ASF_BINARY_MEDIA 26 - - /* stream properties object error correction type */ -#define GUID_ASF_NO_ERROR_CORRECTION 27 -#define GUID_ASF_AUDIO_SPREAD 28 - - /* mutual exclusion object exlusion type */ -#define GUID_ASF_MUTEX_BITRATE 29 -#define GUID_ASF_MUTEX_UKNOWN 30 - - /* header extension */ -#define GUID_ASF_RESERVED_1 31 - - /* script command */ -#define GUID_ASF_RESERVED_SCRIPT_COMMNAND 32 - - /* marker object */ -#define GUID_ASF_RESERVED_MARKER 33 - - /* various */ -/* -#define GUID_ASF_HEAD2 27 -*/ -#define GUID_ASF_AUDIO_CONCEAL_NONE 34 -#define GUID_ASF_CODEC_COMMENT1_HEADER 35 -#define GUID_ASF_2_0_HEADER 36 - -#define GUID_END 37 - - -/* asf stream types */ -#define ASF_STREAM_TYPE_UNKNOWN 0 -#define ASF_STREAM_TYPE_AUDIO 1 -#define ASF_STREAM_TYPE_VIDEO 2 -#define ASF_STREAM_TYPE_CONTROL 3 -#define ASF_STREAM_TYPE_JFIF 4 -#define ASF_STREAM_TYPE_DEGRADABLE_JPEG 5 -#define ASF_STREAM_TYPE_FILE_TRANSFER 6 -#define ASF_STREAM_TYPE_BINARY 7 - -#define ASF_MAX_NUM_STREAMS 23 - -#ifndef GUID_DEFINED -#define GUID_DEFINED - -typedef struct _GUID { /* size is 16 */ - uint32_t Data1; - uint16_t Data2; - uint16_t Data3; - uint8_t Data4[8]; -} GUID; - -#endif /* !GUID_DEFINED */ - -static const struct -{ - const char* name; - const GUID guid; -} guids[] = -{ - { "error", - { 0x0,} }, - - - /* base ASF objects */ - { "header", - { 0x75b22630, 0x668e, 0x11cf, { 0xa6, 0xd9, 0x00, 0xaa, 0x00, 0x62, 0xce, 0x6c }} }, - - { "data", - { 0x75b22636, 0x668e, 0x11cf, { 0xa6, 0xd9, 0x00, 0xaa, 0x00, 0x62, 0xce, 0x6c }} }, - - { "simple index", - { 0x33000890, 0xe5b1, 0x11cf, { 0x89, 0xf4, 0x00, 0xa0, 0xc9, 0x03, 0x49, 0xcb }} }, - - { "index", - { 0xd6e229d3, 0x35da, 0x11d1, { 0x90, 0x34, 0x00, 0xa0, 0xc9, 0x03, 0x49, 0xbe }} }, - - { "media object index", - { 0xfeb103f8, 0x12ad, 0x4c64, { 0x84, 0x0f, 0x2a, 0x1d, 0x2f, 0x7a, 0xd4, 0x8c }} }, - - { "timecode index", - { 0x3cb73fd0, 0x0c4a, 0x4803, { 0x95, 0x3d, 0xed, 0xf7, 0xb6, 0x22, 0x8f, 0x0c }} }, - - /* header ASF objects */ - { "file properties", - { 0x8cabdca1, 0xa947, 0x11cf, { 0x8e, 0xe4, 0x00, 0xc0, 0x0c, 0x20, 0x53, 0x65 }} }, - - { "stream header", - { 0xb7dc0791, 0xa9b7, 0x11cf, { 0x8e, 0xe6, 0x00, 0xc0, 0x0c, 0x20, 0x53, 0x65 }} }, - - { "header extension", - { 0x5fbf03b5, 0xa92e, 0x11cf, { 0x8e, 0xe3, 0x00, 0xc0, 0x0c, 0x20, 0x53, 0x65 }} }, - - { "codec list", - { 0x86d15240, 0x311d, 0x11d0, { 0xa3, 0xa4, 0x00, 0xa0, 0xc9, 0x03, 0x48, 0xf6 }} }, - - { "script command", - { 0x1efb1a30, 0x0b62, 0x11d0, { 0xa3, 0x9b, 0x00, 0xa0, 0xc9, 0x03, 0x48, 0xf6 }} }, - - { "marker", - { 0xf487cd01, 0xa951, 0x11cf, { 0x8e, 0xe6, 0x00, 0xc0, 0x0c, 0x20, 0x53, 0x65 }} }, - - { "bitrate mutual exclusion", - { 0xd6e229dc, 0x35da, 0x11d1, { 0x90, 0x34, 0x00, 0xa0, 0xc9, 0x03, 0x49, 0xbe }} }, - - { "error correction", - { 0x75b22635, 0x668e, 0x11cf, { 0xa6, 0xd9, 0x00, 0xaa, 0x00, 0x62, 0xce, 0x6c }} }, - - { "content description", - { 0x75b22633, 0x668e, 0x11cf, { 0xa6, 0xd9, 0x00, 0xaa, 0x00, 0x62, 0xce, 0x6c }} }, - - { "extended content description", - { 0xd2d0a440, 0xe307, 0x11d2, { 0x97, 0xf0, 0x00, 0xa0, 0xc9, 0x5e, 0xa8, 0x50 }} }, - - { "stream bitrate properties", /* (http://get.to/sdp) */ - { 0x7bf875ce, 0x468d, 0x11d1, { 0x8d, 0x82, 0x00, 0x60, 0x97, 0xc9, 0xa2, 0xb2 }} }, - - { "extended content encryption", - { 0x298ae614, 0x2622, 0x4c17, { 0xb9, 0x35, 0xda, 0xe0, 0x7e, 0xe9, 0x28, 0x9c }} }, - - { "padding", - { 0x1806d474, 0xcadf, 0x4509, { 0xa4, 0xba, 0x9a, 0xab, 0xcb, 0x96, 0xaa, 0xe8 }} }, - - - /* stream properties object stream type */ - { "audio media", - { 0xf8699e40, 0x5b4d, 0x11cf, { 0xa8, 0xfd, 0x00, 0x80, 0x5f, 0x5c, 0x44, 0x2b }} }, - - { "video media", - { 0xbc19efc0, 0x5b4d, 0x11cf, { 0xa8, 0xfd, 0x00, 0x80, 0x5f, 0x5c, 0x44, 0x2b }} }, - - { "command media", - { 0x59dacfc0, 0x59e6, 0x11d0, { 0xa3, 0xac, 0x00, 0xa0, 0xc9, 0x03, 0x48, 0xf6 }} }, - - { "JFIF media (JPEG)", - { 0xb61be100, 0x5b4e, 0x11cf, { 0xa8, 0xfd, 0x00, 0x80, 0x5f, 0x5c, 0x44, 0x2b }} }, - - { "Degradable JPEG media", - { 0x35907de0, 0xe415, 0x11cf, { 0xa9, 0x17, 0x00, 0x80, 0x5f, 0x5c, 0x44, 0x2b }} }, - - { "File Transfer media", - { 0x91bd222c, 0xf21c, 0x497a, { 0x8b, 0x6d, 0x5a, 0xa8, 0x6b, 0xfc, 0x01, 0x85 }} }, - - { "Binary media", - { 0x3afb65e2, 0x47ef, 0x40f2, { 0xac, 0x2c, 0x70, 0xa9, 0x0d, 0x71, 0xd3, 0x43 }} }, - - /* stream properties object error correction */ - { "no error correction", - { 0x20fb5700, 0x5b55, 0x11cf, { 0xa8, 0xfd, 0x00, 0x80, 0x5f, 0x5c, 0x44, 0x2b }} }, - - { "audio spread", - { 0xbfc3cd50, 0x618f, 0x11cf, { 0x8b, 0xb2, 0x00, 0xaa, 0x00, 0xb4, 0xe2, 0x20 }} }, - - - /* mutual exclusion object exlusion type */ - { "mutex bitrate", - { 0xd6e22a01, 0x35da, 0x11d1, { 0x90, 0x34, 0x00, 0xa0, 0xc9, 0x03, 0x49, 0xbe }} }, - - { "mutex unknown", - { 0xd6e22a02, 0x35da, 0x11d1, { 0x90, 0x34, 0x00, 0xa0, 0xc9, 0x03, 0x49, 0xbe }} }, - - - /* header extension */ - { "reserved_1", - { 0xabd3d211, 0xa9ba, 0x11cf, { 0x8e, 0xe6, 0x00, 0xc0, 0x0c, 0x20, 0x53, 0x65 }} }, - - - /* script command */ - { "reserved script command", - { 0x4B1ACBE3, 0x100B, 0x11D0, { 0xA3, 0x9B, 0x00, 0xA0, 0xC9, 0x03, 0x48, 0xF6 }} }, - - /* marker object */ - { "reserved marker", - { 0x4CFEDB20, 0x75F6, 0x11CF, { 0x9C, 0x0F, 0x00, 0xA0, 0xC9, 0x03, 0x49, 0xCB }} }, - - /* various */ - /* Already defined (reserved_1) - { "head2", - { 0xabd3d211, 0xa9ba, 0x11cf, { 0x8e, 0xe6, 0x00, 0xc0, 0x0c, 0x20, 0x53, 0x65 }} }, - */ - { "audio conceal none", - { 0x49f1a440, 0x4ece, 0x11d0, { 0xa3, 0xac, 0x00, 0xa0, 0xc9, 0x03, 0x48, 0xf6 }} }, - - { "codec comment1 header", - { 0x86d15241, 0x311d, 0x11d0, { 0xa3, 0xa4, 0x00, 0xa0, 0xc9, 0x03, 0x48, 0xf6 }} }, - - { "asf 2.0 header", - { 0xd6e229d1, 0x35da, 0x11d1, { 0x90, 0x34, 0x00, 0xa0, 0xc9, 0x03, 0x49, 0xbe }} }, - -}; - -#endif diff --git a/lib/win32/libmms_win32/src/bswap.h b/lib/win32/libmms_win32/src/bswap.h deleted file mode 100644 index 5fde765406ca5..0000000000000 --- a/lib/win32/libmms_win32/src/bswap.h +++ /dev/null @@ -1,43 +0,0 @@ -#ifndef BSWAP_H_INCLUDED -#define BSWAP_H_INCLUDED - -/* - * Copyright (C) 2004 Maciej Katafiasz - * - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU Library General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - */ - - -/* Go cheap now, will rip out glib later. *Sigh* */ -#include - -/* NOTE: - * Now, to clear up confusion: LE_XX means "from LE to native, XX bits wide" - * I know it's not very clear naming (tell me about it, I - * misinterpreted in first version and caused bad nasty bug, *sigh*), - * but that's inherited code, will clean up as things go - * Oh, and one more thing -- they take *pointers*, not actual ints - */ - -#define LE_16(val) (GINT16_FROM_LE (*((guint16*)(val)))) -#define BE_16(val) (GINT16_FROM_BE (*((guint16*)(val)))) -#define LE_32(val) (GINT32_FROM_LE (*((guint32*)(val)))) -#define BE_32(val) (GINT32_FROM_BE (*((guint32*)(val)))) - -#define LE_64(val) (GINT64_FROM_LE (*((guint64*)(val)))) -#define BE_64(val) (GINT64_FROM_BE (*((guint64*)(val)))) - -#endif /* BSWAP_H_INCLUDED */ diff --git a/lib/win32/libmms_win32/src/input_mms.c b/lib/win32/libmms_win32/src/input_mms.c deleted file mode 100644 index fdfbbad8a27b9..0000000000000 --- a/lib/win32/libmms_win32/src/input_mms.c +++ /dev/null @@ -1,451 +0,0 @@ -/* - * Copyright (C) 2002-2003 the xine project - * - * This file is part of xine, a free video player. - * - * xine 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 of the License, or - * (at your option) any later version. - * - * xine 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 this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA - * - * $Id: input_mms.c,v 1.1 2004/02/15 19:57:21 mathrick Exp $ - * - * mms input plugin based on work from major mms - */ - -#ifdef HAVE_CONFIG_H -#include "config.h" -#endif - -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#define LOG_MODULE "input_mms" -#define LOG_VERBOSE -/* -#define LOG -*/ - -#include "bswap.h" -#include "xine_internal.h" -#include "xineutils.h" -#include "input_plugin.h" - -#include "mms.h" -#include "mmsh.h" -#include "net_buf_ctrl.h" - -#define PROTOCOL_UNDEFINED 0 -#define PROTOCOL_MMST 1 -#define PROTOCOL_MMSH 2 - -#if !defined(NDELAY) && defined(O_NDELAY) -#define FNDELAY O_NDELAY -#endif - -/* network bandwidth */ -const uint32_t mms_bandwidths[]={14400,19200,28800,33600,34430,57600, - 115200,262200,393216,524300,1544000,10485800}; - -const char * mms_bandwidth_strs[]={"14.4 Kbps (Modem)", "19.2 Kbps (Modem)", - "28.8 Kbps (Modem)", "33.6 Kbps (Modem)", - "34.4 Kbps (Modem)", "57.6 Kbps (Modem)", - "115.2 Kbps (ISDN)", "262.2 Kbps (Cable/DSL)", - "393.2 Kbps (Cable/DSL)","524.3 Kbps (Cable/DSL)", - "1.5 Mbps (T1)", "10.5 Mbps (LAN)", NULL}; - -typedef struct { - input_plugin_t input_plugin; - - xine_stream_t *stream; - mms_t *mms; - mmsh_t *mmsh; - - char *mrl; - - off_t curpos; - - nbc_t *nbc; - - char scratch[1025]; - - int bandwidth; - int protocol; /* mmst or mmsh */ - -} mms_input_plugin_t; - -typedef struct { - - input_class_t input_class; - - mms_input_plugin_t *ip; - - xine_t *xine; -} mms_input_class_t; - -static off_t mms_plugin_read (input_plugin_t *this_gen, - char *buf, off_t len) { - mms_input_plugin_t *this = (mms_input_plugin_t *) this_gen; - off_t n = 0; - - lprintf ("mms_plugin_read: %lld bytes ...\n", len); - - nbc_check_buffers (this->nbc); - - switch (this->protocol) { - case PROTOCOL_MMST: - n = mms_read (this->mms, buf, len); - break; - case PROTOCOL_MMSH: - n = mmsh_read (this->mmsh, buf, len); - break; - } - - this->curpos += n; - - return n; -} - -static buf_element_t *mms_plugin_read_block (input_plugin_t *this_gen, - fifo_buffer_t *fifo, off_t todo) { - /*mms_input_plugin_t *this = (mms_input_plugin_t *) this_gen; */ - buf_element_t *buf = fifo->buffer_pool_alloc (fifo); - int total_bytes; - - lprintf ("mms_plugin_read_block: %lld bytes...\n", todo); - - buf->content = buf->mem; - buf->type = BUF_DEMUX_BLOCK; - - total_bytes = mms_plugin_read (this_gen, buf->content, todo); - - if (total_bytes != todo) { - buf->free_buffer (buf); - return NULL; - } - - buf->size = total_bytes; - - return buf; -} - -static off_t mms_plugin_seek (input_plugin_t *this_gen, off_t offset, int origin) { - mms_input_plugin_t *this = (mms_input_plugin_t *) this_gen; - off_t dest = this->curpos; - - lprintf ("mms_plugin_seek: %lld offset, %d origin...\n", offset, origin); - - switch (origin) { - case SEEK_SET: - dest = offset; - break; - case SEEK_CUR: - dest = this->curpos + offset; - break; - case SEEK_END: - printf ("input_mms: SEEK_END not implemented!\n"); - return this->curpos; - default: - printf ("input_mms: unknown origin in seek!\n"); - return this->curpos; - } - - if (this->curpos > dest) { - printf ("input_mms: cannot seek back!\n"); - return this->curpos; - } - - while (this->curposcurpos; - - if (diff>1024) - diff = 1024; - - switch (this->protocol) { - case PROTOCOL_MMST: - n = mms_read (this->mms, this->scratch, diff); - break; - case PROTOCOL_MMSH: - n = mmsh_read (this->mmsh, this->scratch, diff); - break; - } - - this->curpos += n; - - if (n < diff) - return this->curpos; - - } - - return this->curpos; -} - -static off_t mms_plugin_get_length (input_plugin_t *this_gen) { - mms_input_plugin_t *this = (mms_input_plugin_t *) this_gen; - off_t length = 0; - - if (!this->mms) - return 0; - - switch (this->protocol) { - case PROTOCOL_MMST: - length = mms_get_length (this->mms); - break; - case PROTOCOL_MMSH: - length = mmsh_get_length (this->mmsh); - break; - } - - lprintf ("length is %lld\n", length); - - return length; - -} - -static uint32_t mms_plugin_get_capabilities (input_plugin_t *this_gen) { - return INPUT_CAP_PREVIEW; -} - -static uint32_t mms_plugin_get_blocksize (input_plugin_t *this_gen) { - return 0; -} - -static off_t mms_plugin_get_current_pos (input_plugin_t *this_gen){ - mms_input_plugin_t *this = (mms_input_plugin_t *) this_gen; - - /* - printf ("current pos is %lld\n", this->curpos); - */ - - return this->curpos; -} - -static void mms_plugin_dispose (input_plugin_t *this_gen) { - mms_input_plugin_t *this = (mms_input_plugin_t *) this_gen; - - if (this->mms) - mms_close (this->mms); - - if (this->mmsh) - mmsh_close (this->mmsh); - - this->mms = NULL; - this->mmsh = NULL; - - if (this->nbc) { - nbc_close (this->nbc); - this->nbc = NULL; - } - - if(this->mrl) - free(this->mrl); - - free (this); -} - -static char* mms_plugin_get_mrl (input_plugin_t *this_gen) { - mms_input_plugin_t *this = (mms_input_plugin_t *) this_gen; - - return this->mrl; -} - -static int mms_plugin_get_optional_data (input_plugin_t *this_gen, - void *data, int data_type) { - mms_input_plugin_t *this = (mms_input_plugin_t *) this_gen; - - switch (data_type) { - - case INPUT_OPTIONAL_DATA_PREVIEW: - switch (this->protocol) { - case PROTOCOL_MMST: - return mms_peek_header (this->mms, data, MAX_PREVIEW_SIZE); - break; - case PROTOCOL_MMSH: - return mmsh_peek_header (this->mmsh, data, MAX_PREVIEW_SIZE); - break; - } - break; - - default: - return INPUT_OPTIONAL_UNSUPPORTED; - break; - - } - - return INPUT_OPTIONAL_UNSUPPORTED; -} - -static void bandwidth_changed_cb (void *this_gen, xine_cfg_entry_t *entry) { - mms_input_class_t *class = (mms_input_class_t*) this_gen; - - lprintf ("bandwidth_changed_cb %d\n", entry->num_value); - - if(!class) - return; - - if(class->ip && ((entry->num_value >= 0) && (entry->num_value <= 11))) { - mms_input_plugin_t *this = class->ip; - - this->bandwidth = mms_bandwidths[entry->num_value]; - } -} - -static int mms_plugin_open (input_plugin_t *this_gen) { - mms_input_plugin_t *this = (mms_input_plugin_t *) this_gen; - mms_t *mms = NULL; - mmsh_t *mmsh = NULL; - - switch (this->protocol) { - case PROTOCOL_UNDEFINED: - mms = mms_connect (this->stream, this->mrl, this->bandwidth); - if (mms) { - this->protocol = PROTOCOL_MMST; - } else { - mmsh = mmsh_connect (this->stream, this->mrl, this->bandwidth); - this->protocol = PROTOCOL_MMSH; - } - break; - case PROTOCOL_MMST: - mms = mms_connect (this->stream, this->mrl, this->bandwidth); - break; - case PROTOCOL_MMSH: - mmsh = mmsh_connect (this->stream, this->mrl, this->bandwidth); - break; - } - - if (!mms && !mmsh) { - return 0; - } - - this->mms = mms; - this->mmsh = mmsh; - this->curpos = 0; - - return 1; -} - -static input_plugin_t *mms_class_get_instance (input_class_t *cls_gen, xine_stream_t *stream, - const char *data) { - - mms_input_class_t *cls = (mms_input_class_t *) cls_gen; - mms_input_plugin_t *this; - char *mrl = strdup(data); - xine_cfg_entry_t bandwidth_entry; - int protocol; - - lprintf ("trying to open '%s'\n", mrl); - - if (!strncasecmp (mrl, "mms://", 6)) { - protocol = PROTOCOL_UNDEFINED; - } else if (!strncasecmp (mrl, "mmst://", 7)) { - protocol = PROTOCOL_MMST; - } else if (!strncasecmp (mrl, "mmsh://", 7)) { - protocol = PROTOCOL_MMSH; - } else { - free (mrl); - return NULL; - } - - this = (mms_input_plugin_t *) xine_xmalloc (sizeof (mms_input_plugin_t)); - cls->ip = this; - this->stream = stream; - this->mms = NULL; - this->mmsh = NULL; - this->protocol = protocol; - this->mrl = mrl; - this->curpos = 0; - this->nbc = nbc_init (this->stream); - - if (xine_config_lookup_entry (stream->xine, "input.mms_network_bandwidth", - &bandwidth_entry)) { - bandwidth_changed_cb(cls, &bandwidth_entry); - } - - this->input_plugin.open = mms_plugin_open; - this->input_plugin.get_capabilities = mms_plugin_get_capabilities; - this->input_plugin.read = mms_plugin_read; - this->input_plugin.read_block = mms_plugin_read_block; - this->input_plugin.seek = mms_plugin_seek; - this->input_plugin.get_current_pos = mms_plugin_get_current_pos; - this->input_plugin.get_length = mms_plugin_get_length; - this->input_plugin.get_blocksize = mms_plugin_get_blocksize; - this->input_plugin.get_mrl = mms_plugin_get_mrl; - this->input_plugin.dispose = mms_plugin_dispose; - this->input_plugin.get_optional_data = mms_plugin_get_optional_data; - this->input_plugin.input_class = cls_gen; - - - return &this->input_plugin; -} - -/* - * mms input plugin class stuff - */ - -static char *mms_class_get_description (input_class_t *this_gen) { - return _("mms streaming input plugin"); -} - -static char *mms_class_get_identifier (input_class_t *this_gen) { - return "mms"; -} - -static void mms_class_dispose (input_class_t *this_gen) { - mms_input_class_t *this = (mms_input_class_t *) this_gen; - - free (this); -} - -static void *init_class (xine_t *xine, void *data) { - - mms_input_class_t *this; - - this = (mms_input_class_t *) xine_xmalloc (sizeof (mms_input_class_t)); - - this->xine = xine; - this->ip = NULL; - - this->input_class.get_instance = mms_class_get_instance; - this->input_class.get_identifier = mms_class_get_identifier; - this->input_class.get_description = mms_class_get_description; - this->input_class.get_dir = NULL; - this->input_class.get_autoplay_list = NULL; - this->input_class.dispose = mms_class_dispose; - this->input_class.eject_media = NULL; - - xine->config->register_enum(xine->config, "input.mms_network_bandwidth", 10, - (char **)mms_bandwidth_strs, - "Network bandwidth", - NULL, 0, bandwidth_changed_cb, (void*) this); - - return this; -} - -/* - * exported plugin catalog entry - */ - -plugin_info_t xine_plugin_info[] = { - /* type, API, "name", version, special_info, init_function */ - { PLUGIN_INPUT, 14, "mms", XINE_VERSION_CODE, NULL, init_class }, - { PLUGIN_NONE, 0, "", 0, NULL, NULL } -}; diff --git a/lib/win32/libmms_win32/src/mms.c b/lib/win32/libmms_win32/src/mms.c deleted file mode 100644 index 4c574d4a27e7a..0000000000000 --- a/lib/win32/libmms_win32/src/mms.c +++ /dev/null @@ -1,1981 +0,0 @@ -/* - * Copyright (C) 2002-2004 the xine project - * - * This file is part of LibMMS, an MMS protocol handling library. - * - * xine is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the ree Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * xine 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 this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA - * - * $Id: mms.c,v 1.31 2007/12/11 20:35:01 jwrdegoede Exp $ - * - * MMS over TCP protocol - * based on work from major mms - * utility functions to handle communication with an mms server - * - * TODO: - * error messages - * enable seeking ! - */ - -#ifdef HAVE_CONFIG_H -#include "config.h" -#endif - -#include /* for G_OS_WIN32 */ - -#ifdef G_OS_WIN32 -#ifdef _MSC_VER -#include -#endif -#include -#else -#include -#include -#include -#include -#endif - -#include -#include -#include -#include -#include -#include -#include -#include - -#if defined(HAVE_ICONV) && defined(HAVE_LANGINFO_CODESET) -#define USE_ICONV -#include -#include -#include -#endif - -/********** logging **********/ -#define LOG_MODULE "mms" -#define LOG_VERBOSE -#ifdef DEBUG -# define lprintf g_print -#else -# define lprintf(x) -#endif - -#define __MMS_C__ - -#include "bswap.h" -#include "mms.h" -#include "asfheader.h" -#include "uri.h" -#include "utils.h" - - -/* - * mms specific types - */ - -#define MMST_PORT 1755 - -#define BUF_SIZE 102400 - -#define CMD_HEADER_LEN 40 -#define CMD_PREFIX_LEN 8 -#define CMD_BODY_LEN 1024 * 16 /* FIXME: make this dynamic */ - -#define ASF_HEADER_LEN (8192 * 2) - - -#define MMS_PACKET_ERR 0 -#define MMS_PACKET_COMMAND 1 -#define MMS_PACKET_ASF_HEADER 2 -#define MMS_PACKET_ASF_PACKET 3 - -#define ASF_HEADER_PACKET_ID_TYPE 2 -#define ASF_MEDIA_PACKET_ID_TYPE 4 - - -typedef struct mms_buffer_s mms_buffer_t; -struct mms_buffer_s { - uint8_t *buffer; - int pos; -}; - -typedef struct mms_packet_header_s mms_packet_header_t; -struct mms_packet_header_s { - uint32_t packet_len; - uint8_t flags; - uint8_t packet_id_type; - uint32_t packet_seq; -}; - -typedef struct mms_stream_s mms_stream_t; -struct mms_stream_s { - int stream_id; - int stream_type; - uint32_t bitrate; - uint32_t bitrate_pos; -}; - -struct mms_s { - - /* FIXME: de-xine-ification */ - void *custom_data; - - int s; - - /* url parsing */ - char *url; - char *proto; - char *host; - int port; - char *user; - char *password; - char *uri; - - /* command to send */ - char scmd[CMD_HEADER_LEN + CMD_BODY_LEN]; - char *scmd_body; /* pointer to &scmd[CMD_HEADER_LEN] */ - int scmd_len; /* num bytes written in header */ - - char str[1024]; /* scratch buffer to built strings */ - - /* receive buffer */ - uint8_t buf[BUF_SIZE]; - int buf_size; - int buf_read; - off_t buf_packet_seq_offset; /* packet sequence offset residing in - buf */ - - uint8_t asf_header[ASF_HEADER_LEN]; - uint32_t asf_header_len; - uint32_t asf_header_read; - int seq_num; - int num_stream_ids; - mms_stream_t streams[ASF_MAX_NUM_STREAMS]; - uint8_t packet_id_type; - off_t start_packet_seq; /* for live streams != 0, need to keep it around */ - int need_discont; /* whether we need to set start_packet_seq */ - uint32_t asf_packet_len; - uint64_t file_len; - uint64_t time_len; /* playback time in 100 nanosecs (10^-7) */ - uint64_t preroll; - uint64_t asf_num_packets; - char guid[37]; - int bandwidth; - - int has_audio; - int has_video; - int live_flag; - int seekable; - off_t current_pos; - int eos; -}; - -/* required for MSVC 6.0 */ -static gdouble -guint64_to_gdouble (guint64 value) -{ - if (value & G_GINT64_CONSTANT (0x8000000000000000)) - return (gdouble) ((gint64) value) + (gdouble) 18446744073709551616.; - else - return (gdouble) ((gint64) value); -} - -static int fallback_io_select(void *data, int socket, int state, int timeout_msec) -{ - int ret; - fd_set set; - struct timeval tv = { timeout_msec / 1000, (timeout_msec % 1000) * 1000}; - FD_ZERO(&set); - FD_SET(socket, &set); - ret = select(1, (state == MMS_IO_READ_READY) ? &set : NULL, - (state == MMS_IO_WRITE_READY) ? &set : NULL, NULL, &tv); - -#ifdef G_OS_WIN32 - if (ret > 0) - return MMS_IO_STATUS_READY; - else if (ret == 0) - return MMS_IO_STATUS_TIMEOUT; - else -#endif - return ret; -} - -static off_t fallback_io_read(void *data, int socket, char *buf, off_t num) -{ - off_t len = 0, ret; -/* lprintf("%d\n", fallback_io_select(data, socket, MMS_IO_READ_READY, 1000)); */ - errno = 0; - while (len < num) - { - ret = (off_t)recv(socket, buf + len, num - len, 0); - if(ret == 0) - break; /* EOF */ - if(ret < 0) - switch(errno) - { - case EAGAIN: - lprintf("len == %lld\n", (gint64) len); - break; - default: - lprintf("len == %lld\n", (gint64) len); - perror(NULL); - /* if already read something, return it, we will fail next time */ - return len ? len : ret; - } - len += ret; - } - lprintf("ret len == %lld\nnum == %lld\n", (gint64) len, (gint64) num); - return len; -} - -static off_t fallback_io_write(void *data, int socket, char *buf, off_t num) -{ - return (off_t)send(socket, buf, num, 0); -} - -static int fallback_io_tcp_connect(void *data, const char *host, int port) -{ - - struct hostent *h; - int i, s; - - h = gethostbyname(host); - if (h == NULL) { -/* fprintf(stderr, "unable to resolve host: %s\n", host); */ - return -1; - } - - s = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP); - if (s == -1) { -/* fprintf(stderr, "failed to create socket: %s", strerror(errno)); */ - return -1; - } - -#ifndef G_OS_WIN32 - if (fcntl (s, F_SETFL, fcntl (s, F_GETFL) & ~O_NONBLOCK) == -1) { -/* _x_message(stream, XINE_MSG_CONNECTION_REFUSED, "can't put socket in non-blocking mode", strerror(errno), NULL); */ - return -1; - } -#endif - - for (i = 0; h->h_addr_list[i]; i++) { - struct in_addr ia; - struct sockaddr_in sin; - - memcpy (&ia, h->h_addr_list[i], 4); - sin.sin_family = AF_INET; - sin.sin_addr = ia; - sin.sin_port = htons(port); - -#ifdef G_OS_WIN32 - if (connect(s, (struct sockaddr *)&sin, sizeof(sin)) ==-1) { -#else - if (connect(s, (struct sockaddr *)&sin, sizeof(sin)) ==-1 && errno != EINPROGRESS) { -#endif - - /* FIXME: de-xine-ification */ -/* _x_message(stream, XINE_MSG_CONNECTION_REFUSED, strerror(errno), NULL); */ - close(s); - continue; - } - - return s; - } - return -1; -} - - -static mms_io_t fallback_io = - { - &fallback_io_select, - NULL, - &fallback_io_read, - NULL, - &fallback_io_write, - NULL, - &fallback_io_tcp_connect, - NULL, - }; - -static mms_io_t default_io = { - &fallback_io_select, - NULL, - &fallback_io_read, - NULL, - &fallback_io_write, - NULL, - &fallback_io_tcp_connect, - NULL, - }; - - -#define io_read(io, socket, buf, num) \ - ((io) ? (io)->read(io->read_data, socket, buf, num) \ - : default_io.read(NULL , socket, buf, num)) -#define io_write(io, socket, buf, num) \ - ((io) ? (io)->write(io->write_data, socket, buf, num) \ - : default_io.write(NULL , socket, buf, num)) -#define io_select(io, fd, state, timeout_msec) \ - ((io) ? (io)->select(io->select_data, fd, state, timeout_msec) \ - : default_io.select(NULL , fd, state, timeout_msec)) -#define io_connect(io, host, port) \ - ((io) ? (io)->connect(io->connect_data, host, port) \ - : default_io.connect(NULL , host, port)) - -const mms_io_t* mms_get_default_io_impl() -{ - return &default_io; -} - -void mms_set_default_io_impl(const mms_io_t *io) -{ - if(io->select) - { - default_io.select = io->select; - default_io.select_data = io->select_data; - } else - { - default_io.select = fallback_io.select; - default_io.select_data = fallback_io.select_data; - } - if(io->read) - { - default_io.read = io->read; - default_io.read_data = io->read_data; - } else - { - default_io.read = fallback_io.read; - default_io.read_data = fallback_io.read_data; - } - if(io->write) - { - default_io.write = io->write; - default_io.write_data = io->write_data; - } else - { - default_io.write = fallback_io.write; - default_io.write_data = fallback_io.write_data; - } - if(io->connect) - { - default_io.connect = io->connect; - default_io.connect_data = io->connect_data; - } else - { - default_io.connect = fallback_io.connect; - default_io.connect_data = fallback_io.connect_data; - } -} - -static void mms_buffer_init (mms_buffer_t *mms_buffer, uint8_t *buffer) { - mms_buffer->buffer = buffer; - mms_buffer->pos = 0; -} - -static void mms_buffer_put_8 (mms_buffer_t *mms_buffer, uint8_t value) { - - mms_buffer->buffer[mms_buffer->pos] = value & 0xff; - - mms_buffer->pos += 1; -} - -#if 0 -static void mms_buffer_put_16 (mms_buffer_t *mms_buffer, uint16_t value) { - - mms_buffer->buffer[mms_buffer->pos] = value & 0xff; - mms_buffer->buffer[mms_buffer->pos + 1] = (value >> 8) & 0xff; - - mms_buffer->pos += 2; -} -#endif - -static void mms_buffer_put_32 (mms_buffer_t *mms_buffer, uint32_t value) { - - mms_buffer->buffer[mms_buffer->pos] = value & 0xff; - mms_buffer->buffer[mms_buffer->pos + 1] = (value >> 8) & 0xff; - mms_buffer->buffer[mms_buffer->pos + 2] = (value >> 16) & 0xff; - mms_buffer->buffer[mms_buffer->pos + 3] = (value >> 24) & 0xff; - - mms_buffer->pos += 4; -} - -static int get_guid (unsigned char *buffer, int offset) { - int i; - GUID g; - - g.Data1 = LE_32(buffer + offset); - g.Data2 = LE_16(buffer + offset + 4); - g.Data3 = LE_16(buffer + offset + 6); - for(i = 0; i < 8; i++) { - g.Data4[i] = buffer[offset + 8 + i]; - } - - for (i = 1; i < GUID_END; i++) { - if (!memcmp(&g, &guids[i].guid, sizeof(GUID))) { - lprintf("GUID: %s\n", guids[i].name); - return i; - } - } - - lprintf("unknown GUID: 0x%x, 0x%x, 0x%x, " - "{ 0x%hx, 0x%hx, 0x%hx, 0x%hx, 0x%hx, 0x%hx, 0x%hx, 0x%hx }\n", - g.Data1, g.Data2, g.Data3, - g.Data4[0], g.Data4[1], g.Data4[2], g.Data4[3], - g.Data4[4], g.Data4[5], g.Data4[6], g.Data4[7]); - - return GUID_ERROR; -} - - -static void print_command (char *data, int len) { - -#ifdef DEBUG - int i; - int dir = LE_32 (data + 36) >> 16; - int comm = LE_32 (data + 36) & 0xFFFF; - - lprintf ("----------------------------------------------\n"); - if (dir == 3) { - lprintf ("send command 0x%02x, %d bytes\n", comm, len); - } else { - lprintf ("receive command 0x%02x, %d bytes\n", comm, len); - } - lprintf (" start sequence %08x\n", LE_32 (data + 0)); - lprintf (" command id %08x\n", LE_32 (data + 4)); - lprintf (" length %8x \n", LE_32 (data + 8)); - lprintf (" protocol %08x\n", LE_32 (data + 12)); - lprintf (" len8 %8x \n", LE_32 (data + 16)); - lprintf (" sequence # %08x\n", LE_32 (data + 20)); - lprintf (" len8 (II) %8x \n", LE_32 (data + 32)); - lprintf (" dir | comm %08x\n", LE_32 (data + 36)); - if (len >= 4) - lprintf (" prefix1 %08x\n", LE_32 (data + 40)); - if (len >= 8) - lprintf (" prefix2 %08x\n", LE_32 (data + 44)); - - for (i = (CMD_HEADER_LEN + CMD_PREFIX_LEN); i < (CMD_HEADER_LEN + CMD_PREFIX_LEN + len); i += 1) { - unsigned char c = data[i]; - - if ((c >= 32) && (c < 128)) - lprintf ("%c", c); - else - lprintf (" %02x ", c); - - } - if (len > CMD_HEADER_LEN) - lprintf ("\n"); - lprintf ("----------------------------------------------\n"); -#endif -} - - - -static int send_command (mms_io_t *io, mms_t *this, int command, - uint32_t prefix1, uint32_t prefix2, - int length) { - int len8; - off_t n; - mms_buffer_t command_buffer; - - len8 = (length + 7) / 8; - - this->scmd_len = 0; - - mms_buffer_init(&command_buffer, this->scmd); - mms_buffer_put_32 (&command_buffer, 0x00000001); /* start sequence */ - mms_buffer_put_32 (&command_buffer, 0xB00BFACE); /* #-)) */ - mms_buffer_put_32 (&command_buffer, len8 * 8 + 32); - mms_buffer_put_32 (&command_buffer, 0x20534d4d); /* protocol type "MMS " */ - mms_buffer_put_32 (&command_buffer, len8 + 4); - mms_buffer_put_32 (&command_buffer, this->seq_num); - this->seq_num++; - mms_buffer_put_32 (&command_buffer, 0x0); /* timestamp */ - mms_buffer_put_32 (&command_buffer, 0x0); - mms_buffer_put_32 (&command_buffer, len8 + 2); - mms_buffer_put_32 (&command_buffer, 0x00030000 | command); /* dir | command */ - /* end of the 40 byte command header */ - - mms_buffer_put_32 (&command_buffer, prefix1); - mms_buffer_put_32 (&command_buffer, prefix2); - - if (length & 7) - memset(this->scmd + length + CMD_HEADER_LEN + CMD_PREFIX_LEN, 0, 8 - (length & 7)); - - n = io_write(io, this->s, this->scmd, len8 * 8 + CMD_HEADER_LEN + CMD_PREFIX_LEN); - if (n != (len8 * 8 + CMD_HEADER_LEN + CMD_PREFIX_LEN)) { - return 0; - } - - print_command (this->scmd, length); - - return 1; -} - -#ifdef USE_ICONV -static iconv_t string_utf16_open() { - return iconv_open("UTF-16LE", nl_langinfo(CODESET)); -} - -static void string_utf16_close(iconv_t url_conv) { - if (url_conv != (iconv_t)-1) { - iconv_close(url_conv); - } -} - -static void string_utf16(iconv_t url_conv, char *dest, char *src, int len) { - memset(dest, 0, 2 * len); - - if (url_conv == (iconv_t)-1) { - int i; - - for (i = 0; i < len; i++) { - dest[i * 2] = src[i]; - dest[i * 2 + 1] = 0; - } - dest[i * 2] = 0; - dest[i * 2 + 1] = 0; - } - else { - size_t len1, len2; - char *ip, *op; - - len1 = len; len2 = 1000; - ip = src; op = dest; - iconv(url_conv, &ip, &len1, &op, &len2); - } -} - -#else -static void string_utf16(int unused, char *dest, char *src, int len) { - int i; - - memset (dest, 0, 2 * len); - - for (i = 0; i < len; i++) { - dest[i * 2] = src[i]; - dest[i * 2 + 1] = 0; - } - - dest[i * 2] = 0; - dest[i * 2 + 1] = 0; -} -#endif - - -/* - * return packet type - */ -static int get_packet_header (mms_io_t *io, mms_t *this, mms_packet_header_t *header) { - size_t len; - int packet_type; - - header->packet_len = 0; - header->packet_seq = 0; - header->flags = 0; - header->packet_id_type = 0; - len = io_read(io, this->s, this->buf, 8); - this->buf_packet_seq_offset = -1; - if (len != 8) - goto error; - - if (LE_32(this->buf + 4) == 0xb00bface) { - /* command packet */ - header->flags = this->buf[3]; - len = io_read(io, this->s, this->buf + 8, 4); - if (len != 4) - goto error; - - header->packet_len = LE_32(this->buf + 8) + 4; - if (header->packet_len > BUF_SIZE - 12) { - header->packet_len = 0; - goto error; - } - lprintf("mms command\n"); - packet_type = MMS_PACKET_COMMAND; - } else { - header->packet_seq = LE_32(this->buf); - header->packet_id_type = this->buf[4]; - header->flags = this->buf[5]; - header->packet_len = (LE_16(this->buf + 6) - 8) & 0xffff; - if (header->packet_id_type == ASF_HEADER_PACKET_ID_TYPE) { - lprintf("asf header\n"); - packet_type = MMS_PACKET_ASF_HEADER; - } else { - lprintf("asf packet\n"); - packet_type = MMS_PACKET_ASF_PACKET; - } - } - - return packet_type; - -error: - lprintf("read error, len=%d\n", len); - perror("Could not read packet header"); - return MMS_PACKET_ERR; -} - - -static int get_packet_command (mms_io_t *io, mms_t *this, uint32_t packet_len) { - - - int command = 0; - size_t len; - - /* always enter this loop */ - lprintf("packet_len: %d bytes\n", packet_len); - - len = io_read(io, this->s, this->buf + 12, packet_len) ; - //this->buf_packet_seq_offset = -1; // already set in get_packet_header - if (len != packet_len) { - return 0; - } - - print_command (this->buf, len); - - /* check protocol type ("MMS ") */ - if (LE_32(this->buf + 12) != 0x20534D4D) { - lprintf("unknown protocol type: %c%c%c%c (0x%08X)\n", - this->buf[12], this->buf[13], this->buf[14], this->buf[15], - LE_32(this->buf + 12)); - return 0; - } - - command = LE_32 (this->buf + 36) & 0xFFFF; - lprintf("command = 0x%2x\n", command); - - return command; -} - -static int get_answer (mms_io_t *io, mms_t *this) { - int command = 0; - mms_packet_header_t header; - - switch (get_packet_header (io, this, &header)) { - case MMS_PACKET_ERR: - /* FIXME: de-xine-ification */ - lprintf( "***LOG:*** -- " - "libmms: failed to read mms packet header\n"); - break; - case MMS_PACKET_COMMAND: - command = get_packet_command (io, this, header.packet_len); - - if (command == 0x1b) { - - if (!send_command (io, this, 0x1b, 0, 0, 0)) { - /* FIXME: de-xine-ification */ - lprintf( "***LOG:*** -- " - "libmms: failed to send command\n"); - return 0; - } - /* FIXME: limit recursion */ - command = get_answer (io, this); - } - break; - case MMS_PACKET_ASF_HEADER: - /* FIXME: de-xine-ification */ - lprintf( "***LOG:*** -- " - "libmms: unexpected asf header packet\n"); - break; - case MMS_PACKET_ASF_PACKET: - /* FIXME: de-xine-ification */ - lprintf( "***LOG:*** -- " -"libmms: unexpected asf packet\n"); - break; - } - - return command; -} - - -static int get_asf_header (mms_io_t *io, mms_t *this) { - - off_t len; - int stop = 0; - - this->asf_header_read = 0; - this->asf_header_len = 0; - - while (!stop) { - mms_packet_header_t header; - int command; - - switch (get_packet_header (io, this, &header)) { - case MMS_PACKET_ERR: - /* FIXME: de-xine-ification */ - lprintf( "***LOG:*** -- " - "libmms: failed to read mms packet header\n"); - return 0; - break; - case MMS_PACKET_COMMAND: - command = get_packet_command (io, this, header.packet_len); - - if (command == 0x1b) { - - if (!send_command (io, this, 0x1b, 0, 0, 0)) { - /* FIXME: de-xine-ification */ - lprintf( "***LOG:*** -- " - "libmms: failed to send command\n"); - return 0; - } - command = get_answer (io, this); - } else { - /* FIXME: de-xine-ification */ - lprintf( "***LOG:*** -- " - "libmms: unexpected command packet\n"); - } - break; - case MMS_PACKET_ASF_HEADER: - case MMS_PACKET_ASF_PACKET: - if (header.packet_len + this->asf_header_len > ASF_HEADER_LEN) { - lprintf( "***LOG:*** -- " - "libmms: asf packet too large: %d\n", - header.packet_len + this->asf_header_len); - return 0; - } - len = io_read(io, this->s, - this->asf_header + this->asf_header_len, header.packet_len); - if (len != header.packet_len) { - /* FIXME: de-xine-ification */ - lprintf( "***LOG:*** -- " - "libmms: get_asf_header failed\n"); - return 0; - } - this->asf_header_len += header.packet_len; - lprintf("header flags: %d\n", header.flags); - if ((header.flags == 0X08) || (header.flags == 0X0C)) - stop = 1; - break; - } - } - lprintf ("get header packet succ\n"); - return 1; -} - -static void interp_asf_header (mms_t *this) { - - int i; - - this->asf_packet_len = 0; - this->num_stream_ids = 0; - this->asf_num_packets = 0; - /* - * parse header - */ - - i = 30; - while (i < this->asf_header_len) { - - int guid; - uint64_t length; - - guid = get_guid(this->asf_header, i); - i += 16; - - length = LE_64(this->asf_header + i); - i += 8; - - switch (guid) { - - case GUID_ASF_FILE_PROPERTIES: - - this->asf_packet_len = LE_32(this->asf_header + i + 92 - 24); - if (this->asf_packet_len > BUF_SIZE) { - this->asf_packet_len = 0; - lprintf( "***LOG:*** -- " - "libmms: asf packet len too large\n"); - break; - } - this->file_len = LE_64(this->asf_header + i + 40 - 24); - this->time_len = LE_64(this->asf_header + i + 64 - 24); - //this->time_len = LE_64(this->asf_header + i + 72 - 24); - this->preroll = LE_64(this->asf_header + i + 80 - 24); - lprintf ("file object, packet length = %d (%d)\n", - this->asf_packet_len, LE_32(this->asf_header + i + 96 - 24)); - break; - - case GUID_ASF_STREAM_PROPERTIES: - { - uint16_t flags; - uint16_t stream_id; - int type; - int encrypted; - - guid = get_guid(this->asf_header, i); - switch (guid) { - case GUID_ASF_AUDIO_MEDIA: - type = ASF_STREAM_TYPE_AUDIO; - this->has_audio = 1; - break; - - case GUID_ASF_VIDEO_MEDIA: - case GUID_ASF_JFIF_MEDIA: - case GUID_ASF_DEGRADABLE_JPEG_MEDIA: - type = ASF_STREAM_TYPE_VIDEO; - this->has_video = 1; - break; - - case GUID_ASF_COMMAND_MEDIA: - type = ASF_STREAM_TYPE_CONTROL; - break; - - default: - type = ASF_STREAM_TYPE_UNKNOWN; - } - - flags = LE_16(this->asf_header + i + 48); - stream_id = flags & 0x7F; - encrypted = flags >> 15; - - lprintf ("stream object, stream id: %d, type: %d, encrypted: %d\n", - stream_id, type, encrypted); - - if (this->num_stream_ids < ASF_MAX_NUM_STREAMS) { - this->streams[this->num_stream_ids].stream_type = type; - this->streams[this->num_stream_ids].stream_id = stream_id; - this->num_stream_ids++; - } else { - lprintf ("too many streams, skipping\n"); - } - } - break; - - case GUID_ASF_STREAM_BITRATE_PROPERTIES: - { - uint16_t streams = LE_16(this->asf_header + i); - uint16_t stream_id; - int j; - - lprintf ("stream bitrate properties\n"); - lprintf ("streams %d\n", streams); - - for(j = 0; j < streams; j++) { - int stream_index; - stream_id = LE_16(this->asf_header + i + 2 + j * 6); - lprintf ("stream id %d\n", stream_id); - for(stream_index = 0; stream_index < this->num_stream_ids; stream_index++) { - if (this->streams[stream_index].stream_id == stream_id) - break; - } - if (stream_index < this->num_stream_ids) { - this->streams[stream_index].bitrate = LE_32(this->asf_header + i + 4 + j * 6); - this->streams[stream_index].bitrate_pos = i + 4 + j * 6; - lprintf ("stream id %d, bitrate %d\n", stream_id, - this->streams[stream_index].bitrate); - } - } - } - break; - - case GUID_ASF_DATA: - this->asf_num_packets = LE_64(this->asf_header + i + 40 - 24); - break; - - default: - lprintf ("unknown object\n"); - break; - } - - lprintf ("length : %lld\n", length); - - if (length > 24) { - i += length - 24; - } - } -} - -const static char *const mmst_proto_s[] = { "mms", "mmst", NULL }; - -static int mmst_valid_proto (char *proto) { - int i = 0; - - lprintf("mmst_valid_proto\n"); - - if (!proto) - return 0; - - while(mmst_proto_s[i]) { - if (!g_strcasecmp(proto, mmst_proto_s[i])) { - return 1; - } - i++; - } - return 0; -} - -/* FIXME: de-xine-ification */ - -/* static void report_progress (void *data, int p) { - - xine_event_t event; - xine_progress_data_t prg; - - prg.description = _("Connecting MMS server (over tcp)..."); - prg.percent = p; - - event.type = XINE_EVENT_PROGRESS; - event.data = &prg; - event.data_length = sizeof (xine_progress_data_t); - - xine_event_send (stream, &event); -} */ - - -/* - * returns 1 on error - */ -static int mms_tcp_connect(mms_io_t *io, mms_t *this) { - int progress, res; - - if (!this->port) this->port = MMST_PORT; - - /* - * try to connect - */ - lprintf("try to connect to %s on port %d \n", this->host, this->port); - this->s = io_connect(io, this->host, this->port); - if (this->s == -1) { - /* FIXME: de-xine-ification */ - lprintf ( "***LOG:*** -- " - "failed to connect '%s'\n", this->host); - return 1; - } - - /* connection timeout 15s */ - progress = 0; - do { - /*FIXME: de-xine-ification */ -/* report_progress(this->stream, progress); */ - res = io_select(io, this->s, MMS_IO_WRITE_READY, 500); - progress += 1; - } while ((res == MMS_IO_STATUS_TIMEOUT) && (progress < 30)); - if (res != MMS_IO_STATUS_READY) { - return 1; - } - lprintf ("connected\n"); - return 0; -} - -static void mms_gen_guid(char guid[]) { - static char digit[16] = "0123456789ABCDEF"; - int i = 0; - - srand(time(NULL)); - for (i = 0; i < 36; i++) { - guid[i] = digit[(int) ((16.0*rand())/(RAND_MAX+1.0))]; - } - guid[8] = '-'; guid[13] = '-'; guid[18] = '-'; guid[23] = '-'; - guid[36] = '\0'; -} - -/* - * return 0 on error - */ -int static mms_choose_best_streams(mms_io_t *io, mms_t *this) { - int i; - int video_stream = 0; - int audio_stream = 0; - int max_arate = 0; - int min_vrate = 0; - int min_bw_left = 0; - int bandwitdh_left; - int res; - - /* command 0x33 */ - /* choose the best quality for the audio stream */ - /* i've never seen more than one audio stream */ - lprintf("num_stream_ids=%d\n", this->num_stream_ids); - for (i = 0; i < this->num_stream_ids; i++) { - switch (this->streams[i].stream_type) { - case ASF_STREAM_TYPE_AUDIO: - if (this->streams[i].bitrate > max_arate) { - audio_stream = this->streams[i].stream_id; - max_arate = this->streams[i].bitrate; - } - break; - default: - break; - } - } - - /* choose a video stream adapted to the user bandwidth */ - bandwitdh_left = this->bandwidth - max_arate; - if (bandwitdh_left < 0) { - bandwitdh_left = 0; - } - lprintf("bandwitdh %d, left %d\n", this->bandwidth, bandwitdh_left); - - min_bw_left = bandwitdh_left; - for (i = 0; i < this->num_stream_ids; i++) { - switch (this->streams[i].stream_type) { - case ASF_STREAM_TYPE_VIDEO: - if (((bandwitdh_left - this->streams[i].bitrate) < min_bw_left) && - (bandwitdh_left >= this->streams[i].bitrate)) { - video_stream = this->streams[i].stream_id; - min_bw_left = bandwitdh_left - this->streams[i].bitrate; - } - break; - default: - break; - } - } - - /* choose the lower bitrate of */ - if (!video_stream && this->has_video) { - for (i = 0; i < this->num_stream_ids; i++) { - switch (this->streams[i].stream_type) { - case ASF_STREAM_TYPE_VIDEO: - if ((this->streams[i].bitrate < min_vrate) || - (!min_vrate)) { - video_stream = this->streams[i].stream_id; - min_vrate = this->streams[i].bitrate; - } - break; - default: - break; - } - } - } - - lprintf("selected streams: audio %d, video %d\n", audio_stream, video_stream); - lprintf("disabling other streams\n"); - memset (this->scmd_body, 0, 40); - for (i = 1; i < this->num_stream_ids; i++) { - this->scmd_body [ (i - 1) * 6 + 2 ] = 0xFF; - this->scmd_body [ (i - 1) * 6 + 3 ] = 0xFF; - this->scmd_body [ (i - 1) * 6 + 4 ] = this->streams[i].stream_id ; - this->scmd_body [ (i - 1) * 6 + 5 ] = this->streams[i].stream_id >> 8; - if ((this->streams[i].stream_id == audio_stream) || - (this->streams[i].stream_id == video_stream)) { - this->scmd_body [ (i - 1) * 6 + 6 ] = 0x00; - this->scmd_body [ (i - 1) * 6 + 7 ] = 0x00; - } else { - lprintf("disabling stream %d\n", this->streams[i].stream_id); - this->scmd_body [ (i - 1) * 6 + 6 ] = 0x02; - this->scmd_body [ (i - 1) * 6 + 7 ] = 0x00; - - /* forces the asf demuxer to not choose this stream */ - if (this->streams[i].bitrate_pos) { - if (this->streams[i].bitrate_pos+3 <= ASF_HEADER_LEN) { - this->asf_header[this->streams[i].bitrate_pos ] = 0; - this->asf_header[this->streams[i].bitrate_pos + 1] = 0; - this->asf_header[this->streams[i].bitrate_pos + 2] = 0; - this->asf_header[this->streams[i].bitrate_pos + 3] = 0; - } else { - lprintf("***LOG:*** -- " - "libmms: attempt to write beyond asf header limit"); - } - } - } - } - - if (!send_command (io, this, 0x33, this->num_stream_ids, - 0xFFFF | this->streams[0].stream_id << 16, - this->num_stream_ids * 6 + 2)) { - /* FIXME: de-xine-ification */ - lprintf ( "***LOG:*** -- " - "libmms: mms_choose_best_streams failed\n"); - return 0; - } - - if ((res = get_answer (io, this)) != 0x21) { - /* FIXME: de-xine-ification */ - lprintf ( "***LOG:*** -- " - "libmms: unexpected response: %02x (0x21)\n", res); - } - - return 1; -} - -/* - * TODO: error messages - * network timing request - */ -/* FIXME: got somewhat broken during xine_stream_t->(void*) conversion */ -mms_t *mms_connect (mms_io_t *io, void *data, const char *url, int bandwidth) { -#ifdef USE_ICONV - iconv_t url_conv; -#else - int url_conv = 0; -#endif - mms_t *this; - int res; - GURI *uri; - - if (!url) - return NULL; - - mms_sock_init(); - - /* FIXME: needs proper error-signalling work */ - this = (mms_t*) malloc (sizeof (mms_t)); - - this->custom_data = data; - this->url = strdup (url); - this->s = -1; - this->seq_num = 0; - this->scmd_body = this->scmd + CMD_HEADER_LEN + CMD_PREFIX_LEN; - this->asf_header_len = 0; - this->asf_header_read = 0; - this->num_stream_ids = 0; - this->asf_packet_len = 0; - this->start_packet_seq= 0; - this->need_discont = 1; - this->buf_size = 0; - this->buf_read = 0; - this->buf_packet_seq_offset = -1; - this->has_audio = 0; - this->has_video = 0; - this->bandwidth = bandwidth; - this->current_pos = 0; - this->eos = 0; - - /* FIXME de-xine-ification */ -/* report_progress (stream, 0); */ - - uri = gnet_uri_new(this->url); - if(!uri) { - lprintf ("invalid url\n"); - goto fail; - } - this->proto = uri->scheme; - this->user = uri->user; - this->host = uri->hostname; - this->port = uri->port; - this->password = uri->passwd; - this->uri = gnet_mms_helper(uri); - - if(!this->uri) - goto fail; - - if (!mmst_valid_proto(this->proto)) { - lprintf ("unsupported protocol\n"); - goto fail; - } - - if (mms_tcp_connect(io, this)) { - goto fail; - } - /* FIXME de-xine-ification */ -/* report_progress (stream, 30); */ - -#ifdef USE_ICONV - url_conv = string_utf16_open(); -#endif - /* - * let the negotiations begin... - */ - - /* command 0x1 */ - lprintf("send command 0x01\n"); - mms_gen_guid(this->guid); - sprintf (this->str, "\x1c\x03NSPlayer/7.0.0.1956; {%s}; Host: %s", - this->guid, this->host); - string_utf16 (url_conv, this->scmd_body, this->str, strlen(this->str) + 2); - - if (!send_command (io, this, 1, 0, 0x0004000b, strlen(this->str) * 2 + 8)) { - /* FIXME: de-xine-ification */ - lprintf( "***LOG:*** -- " - "libmms: failed to send command 0x01\n"); - goto fail; - } - - if ((res = get_answer (io, this)) != 0x01) { - /* FIXME: de-xine-ification */ - lprintf ( "***LOG:*** -- " - "libmms: unexpected response: %02x (0x01)\n", res); - lprintf("answer: %d\n", res); - goto fail; - } - - /* FIXME de-xine-ification */ -/* report_progress (stream, 40); */ - - /* TODO: insert network timing request here */ - /* command 0x2 */ - lprintf("send command 0x02\n"); - string_utf16 (url_conv, &this->scmd_body[8], "\002\000\\\\192.168.0.129\\TCP\\1037\0000", 28); - memset (this->scmd_body, 0, 8); - if (!send_command (io, this, 2, 0, 0, 28 * 2 + 8)) { - /* FIXME: de-xine-ification */ - lprintf( "***LOG:*** -- " - "libmms: failed to send command 0x02\n"); - - goto fail; - } - - switch (res = get_answer (io, this)) { - case 0x02: - /* protocol accepted */ - break; - case 0x03: - /* FIXME: de-xine-ification */ - lprintf( "***LOG:*** -- " - "libmms: protocol failed\n"); - goto fail; - break; - default: - lprintf("unexpected response: %02x (0x02 or 0x03)\n", res); - goto fail; - } - - /* FIXME de-xine-ification */ -/* report_progress (stream, 50); */ - - /* command 0x5 */ - { - mms_buffer_t command_buffer; - - lprintf("send command 0x05\n"); - mms_buffer_init(&command_buffer, this->scmd_body); - mms_buffer_put_32 (&command_buffer, 0x00000000); /* ?? */ - mms_buffer_put_32 (&command_buffer, 0x00000000); /* ?? */ - - /* FIXME: refuse to work with urls that are longer that buffer can hold - 64 is a precation */ - - if (strlen(this->uri) >= CMD_BODY_LEN - 64) - goto fail; - - string_utf16 (url_conv, this->scmd_body + command_buffer.pos, this->uri, strlen(this->uri)); - if (!send_command (io, this, 5, 1, 0xffffffff, strlen(this->uri) * 2 + 12)) - goto fail; - } - - switch (res = get_answer (io, this)) { - case 0x06: - { - int xx, yy; - /* no authentication required */ - - /* Warning: sdp is not right here */ - xx = this->buf[62]; - yy = this->buf[63]; - this->live_flag = ((xx == 0) && ((yy & 0xf) == 2)); - this->seekable = !this->live_flag; - lprintf("live: live_flag=%d, xx=%d, yy=%d\n", this->live_flag, xx, yy); - } - break; - case 0x1A: - /* authentication request, not yet supported */ - /* FIXME: de-xine-ification */ - lprintf ( "***LOG:*** -- " - "libmms: authentication request, not yet supported\n"); - goto fail; - break; - default: - /* FIXME: de-xine-ification */ - lprintf ( "***LOG:*** -- " - "libmms: unexpected response: %02x (0x06 or 0x1A)\n", res); - goto fail; - } - - /* FIXME de-xine-ification */ -/* report_progress (stream, 60); */ - - /* command 0x15 */ - lprintf("send command 0x15\n"); - { - mms_buffer_t command_buffer; - mms_buffer_init(&command_buffer, this->scmd_body); - mms_buffer_put_32 (&command_buffer, 0x00000000); /* ?? */ - mms_buffer_put_32 (&command_buffer, 0x00800000); /* ?? */ - mms_buffer_put_32 (&command_buffer, 0xFFFFFFFF); /* ?? */ - mms_buffer_put_32 (&command_buffer, 0x00000000); /* ?? */ - mms_buffer_put_32 (&command_buffer, 0x00000000); /* ?? */ - mms_buffer_put_32 (&command_buffer, 0x00000000); /* ?? */ - mms_buffer_put_32 (&command_buffer, 0x00000000); /* ?? */ - mms_buffer_put_32 (&command_buffer, 0x40AC2000); /* ?? */ - mms_buffer_put_32 (&command_buffer, ASF_HEADER_PACKET_ID_TYPE); /* Header Packet ID type */ - mms_buffer_put_32 (&command_buffer, 0x00000000); /* ?? */ - if (!send_command (io, this, 0x15, 1, 0, command_buffer.pos)) { - /* FIXME: de-xine-ification */ - lprintf ( "***LOG:*** -- " - "libmms: failed to send command 0x15\n"); - goto fail; - } - } - - if ((res = get_answer (io, this)) != 0x11) { - /* FIXME: de-xine-ification */ - lprintf ( "***LOG:*** -- " - "libmms: unexpected response: %02x (0x11)\n", res); - goto fail; - } - - this->num_stream_ids = 0; - - if (!get_asf_header (io, this)) - goto fail; - - interp_asf_header (this); - if (!this->asf_packet_len || !this->num_stream_ids) - goto fail; - - /* FIXME de-xine-ification */ -/* report_progress (stream, 70); */ - - if (!mms_choose_best_streams(io, this)) { - /* FIXME: de-xine-ification */ - lprintf ( "***LOG:*** -- " - "libmms: mms_choose_best_streams failed"); - goto fail; - } - - /* FIXME de-xine-ification */ -/* report_progress (stream, 80); */ - - /* command 0x07 */ - this->packet_id_type = ASF_MEDIA_PACKET_ID_TYPE; - { - mms_buffer_t command_buffer; - mms_buffer_init(&command_buffer, this->scmd_body); - mms_buffer_put_32 (&command_buffer, 0x00000000); /* 64 byte float timestamp */ - mms_buffer_put_32 (&command_buffer, 0x00000000); - mms_buffer_put_32 (&command_buffer, 0xFFFFFFFF); /* ?? */ - mms_buffer_put_32 (&command_buffer, 0xFFFFFFFF); /* first packet sequence */ - mms_buffer_put_8 (&command_buffer, 0xFF); /* max stream time limit (3 bytes) */ - mms_buffer_put_8 (&command_buffer, 0xFF); - mms_buffer_put_8 (&command_buffer, 0xFF); - mms_buffer_put_8 (&command_buffer, 0x00); /* stream time limit flag */ - mms_buffer_put_32 (&command_buffer, this->packet_id_type); /* asf media packet id type */ - if (!send_command (io, this, 0x07, 1, 0x0001FFFF, command_buffer.pos)) { - /* FIXME: de-xine-ification */ - lprintf ( "***LOG:*** -- " - "libmms: failed to send command 0x07\n"); - goto fail; - } - } - -/* report_progress (stream, 100); */ - -#ifdef USE_ICONV - string_utf16_close(url_conv); -#endif - - lprintf("mms_connect: passed\n" ); - - return this; - -fail: - if (this->s != -1) - close (this->s); - if (this->url) - free(this->url); - if (this->proto) - free(this->proto); - if (this->host) - free(this->host); - if (this->user) - free(this->user); - if (this->password) - free(this->password); - if (this->uri) - free(this->uri); - - free (this); - return NULL; -} - -static int get_media_packet (mms_io_t *io, mms_t *this) { - mms_packet_header_t header; - off_t len; - - switch (get_packet_header (io, this, &header)) { - case MMS_PACKET_ERR: - /* FIXME: de-xine-ification */ - lprintf( "***LOG:*** -- " - "libmms: failed to read mms packet header\n"); - return 0; - break; - - case MMS_PACKET_COMMAND: - { - int command; - command = get_packet_command (io, this, header.packet_len); - - switch (command) { - case 0x1e: - { - uint32_t error_code; - - /* Warning: sdp is incomplete. Do not stop if error_code==1 */ - error_code = LE_32(this->buf + CMD_HEADER_LEN); - lprintf ("End of the current stream. Continue=%d\n", error_code); - - if (error_code == 0) { - this->eos = 1; - return 0; - } - - } - break; - - case 0x20: - { - lprintf ("new stream.\n"); - /* asf header */ - if (!get_asf_header (io, this)) { - /* FIXME: de-xine-ification */ - lprintf ( "***LOG:*** -- " - "failed to read new ASF header\n"); - return 0; - } - - interp_asf_header (this); - if (!this->asf_packet_len || !this->num_stream_ids) - return 0; - - if (!mms_choose_best_streams(io, this)) - return 0; - - /* send command 0x07 */ - /* TODO: ugly */ - /* command 0x07 */ - { - mms_buffer_t command_buffer; - mms_buffer_init(&command_buffer, this->scmd_body); - mms_buffer_put_32 (&command_buffer, 0x00000000); /* 64 byte float timestamp */ - mms_buffer_put_32 (&command_buffer, 0x00000000); - mms_buffer_put_32 (&command_buffer, 0xFFFFFFFF); /* ?? */ - mms_buffer_put_32 (&command_buffer, 0xFFFFFFFF); /* first packet sequence */ - mms_buffer_put_8 (&command_buffer, 0xFF); /* max stream time limit (3 bytes) */ - mms_buffer_put_8 (&command_buffer, 0xFF); - mms_buffer_put_8 (&command_buffer, 0xFF); - mms_buffer_put_8 (&command_buffer, 0x00); /* stream time limit flag */ - mms_buffer_put_32 (&command_buffer, ASF_MEDIA_PACKET_ID_TYPE); /* asf media packet id type */ - if (!send_command (io, this, 0x07, 1, 0x0001FFFF, command_buffer.pos)) { - /* FIXME: de-xine-ification */ - lprintf ( "***LOG:*** -- " - "libmms: failed to send command 0x07\n"); - return 0; - } - } - this->current_pos = 0; - - /* I don't know if this ever happens with none live (and thus - seekable streams), but I do know that if it happens all bets - with regards to seeking are off */ - this->seekable = 0; - } - break; - - case 0x1b: - { - if (!send_command (io, this, 0x1b, 0, 0, 0)) { - /* FIXME: de-xine-ification */ - lprintf( "***LOG:*** -- " - "libmms: failed to send command\n"); - return 0; - } - } - break; - - case 0x05: - break; - - default: - /* FIXME: de-xine-ification */ - lprintf ( "***LOG:*** -- " - "unexpected mms command %02x\n", command); - } - this->buf_size = 0; - } - break; - - case MMS_PACKET_ASF_HEADER: - /* FIXME: de-xine-ification */ - lprintf( "***LOG:*** -- " - "libmms: unexpected asf header packet\n"); - this->buf_size = 0; - break; - - case MMS_PACKET_ASF_PACKET: - { - /* media packet */ - - /* FIXME: probably needs some more sophisticated logic, but - until we do seeking, this should work */ - if(this->need_discont && - header.packet_id_type == ASF_MEDIA_PACKET_ID_TYPE) - { - this->need_discont = 0; - this->start_packet_seq = header.packet_seq; - } - - lprintf ("asf media packet detected, packet_len=%d, packet_seq=%d\n", - header.packet_len, header.packet_seq); - if (header.packet_len > this->asf_packet_len) { - /* FIXME: de-xine-ification */ - lprintf ( "***LOG:*** -- " - "libmms: invalid asf packet len: %d bytes\n", header.packet_len); - return 0; - } - - /* simulate a seek */ - this->current_pos = (off_t)this->asf_header_len + - ((off_t)header.packet_seq - this->start_packet_seq) * (off_t)this->asf_packet_len; - - len = io_read(io, this->s, this->buf, header.packet_len); - if (len != header.packet_len) { - /* FIXME: de-xine-ification */ - lprintf ( "***LOG:*** -- " - "libmms: read failed\n"); - return 0; - } - - /* explicit padding with 0 */ - lprintf("padding: %d bytes\n", this->asf_packet_len - header.packet_len); - { - char *base = (char *)(this->buf); - char *start = base + header.packet_len; - char *end = start + this->asf_packet_len - header.packet_len; - if ((start > base) && (start < (base+BUF_SIZE-1)) && - (start < end) && (end < (base+BUF_SIZE-1))) { - memset(this->buf + header.packet_len, 0, this->asf_packet_len - header.packet_len); - } - if (header.packet_id_type == this->packet_id_type) { - if (this->asf_packet_len > BUF_SIZE) { - this->buf_size = BUF_SIZE; - } else { - this->buf_size = this->asf_packet_len; - } - this->buf_packet_seq_offset = - header.packet_seq - this->start_packet_seq; - } else { - this->buf_size = 0; - // Don't set this packet sequence for reuse in seek(), since the - // subsequence packet may be discontinued. - //this->buf_packet_seq_offset = header.packet_seq; - // already set to -1 in get_packet_header - //this->buf_packet_seq_offset = -1; - } - } - } - break; - } - - lprintf ("get media packet succ\n"); - - return 1; -} - - -int mms_peek_header (mms_t *this, char *data, int maxsize) { - - int len; - - len = (this->asf_header_len < maxsize) ? this->asf_header_len : maxsize; - - memcpy(data, this->asf_header, len); - return len; -} - -int mms_read (mms_io_t *io, mms_t *this, char *data, int len) { - int total; - - total = 0; - while (total < len && !this->eos) { - - if (this->asf_header_read < this->asf_header_len) { - int n, bytes_left; - - bytes_left = this->asf_header_len - this->asf_header_read ; - - if ((len - total) < bytes_left) - n = len-total; - else - n = bytes_left; - - memcpy (&data[total], &this->asf_header[this->asf_header_read], n); - - this->asf_header_read += n; - total += n; - this->current_pos += n; - } else { - - int n, bytes_left; - - bytes_left = this->buf_size - this->buf_read; - if (bytes_left == 0) { - this->buf_size = this->buf_read = 0; - if (!get_media_packet (io, this)) { - /* FIXME: de-xine-ification */ - lprintf ( "***LOG:*** -- " - "libmms: get_media_packet failed\n"); - return total; - } - bytes_left = this->buf_size; - } - - if ((len - total) < bytes_left) - n = len - total; - else - n = bytes_left; - - memcpy (&data[total], &this->buf[this->buf_read], n); - - this->buf_read += n; - total += n; - this->current_pos += n; - } - } - return total; -} - -// To be inline function? -static int mms_request_data_packet (mms_io_t *io, mms_t *this, - double time_sec, unsigned long first_packet, unsigned long time_msec_limit) { - /* command 0x07 */ - { - mms_buffer_t command_buffer; - //mms_buffer_init(&command_buffer, this->scmd_body); - //mms_buffer_put_32 (&command_buffer, 0x00000000); /* 64 byte float timestamp */ - //mms_buffer_put_32 (&command_buffer, 0x00000000); - memcpy(this->scmd_body, &time_sec, 8); - mms_buffer_init(&command_buffer, this->scmd_body+8); - mms_buffer_put_32 (&command_buffer, 0xFFFFFFFF); /* ?? */ - //mms_buffer_put_32 (&command_buffer, 0xFFFFFFFF); /* first packet sequence */ - mms_buffer_put_32 (&command_buffer, first_packet); /* first packet sequence */ - //mms_buffer_put_8 (&command_buffer, 0xFF); /* max stream time limit (3 bytes) */ - //mms_buffer_put_8 (&command_buffer, 0xFF); - //mms_buffer_put_8 (&command_buffer, 0xFF); - //mms_buffer_put_8 (&command_buffer, 0x00); /* stream time limit flag */ - mms_buffer_put_32 (&command_buffer, time_msec_limit & 0x00FFFFFF);/* max stream time limit (3 bytes) */ - mms_buffer_put_32 (&command_buffer, this->packet_id_type); /* asf media packet id type */ - if (!send_command (io, this, 0x07, 1, 0x0001FFFF, 8+command_buffer.pos)) { - /* FIXME: de-xine-ification */ - lprintf ( "***LOG:*** -- " - "libmms: failed to send command 0x07\n"); - return 0; - } - } - /* TODO: adjust current_pos, considering asf_header_read */ - return 1; -} - -int mms_request_time_seek (mms_io_t *io, mms_t *this, double time_sec) { - if (++this->packet_id_type <= ASF_MEDIA_PACKET_ID_TYPE) - this->packet_id_type = ASF_MEDIA_PACKET_ID_TYPE+1; - //return mms_request_data_packet (io, this, time_sec, 0xFFFFFFFF, 0x00FFFFFF); - // also adjust time by preroll - return mms_request_data_packet (io, this, - time_sec+guint64_to_gdouble(this->preroll)/1000, - 0xFFFFFFFF, 0x00FFFFFF); -} - -// set current_pos to the first byte of the requested packet by peeking at -// the first packet. -// To be inline function? -static int peek_and_set_pos (mms_io_t *io, mms_t *this) { - uint8_t saved_buf[BUF_SIZE]; - int saved_buf_size; - off_t saved_buf_packet_seq_offset; - // save buf and buf_size that may be changed in get_media_packet() - memcpy(saved_buf, this->buf, this->buf_size); - saved_buf_size = this->buf_size; - saved_buf_packet_seq_offset = this->buf_packet_seq_offset; - //this->buf_size = this->buf_read = 0; // reset buf, only if success peeking - this->buf_size = 0; - while (!this->eos) { - // get_media_packet() will set current_pos if data packet is read. - if (!get_media_packet (io, this)) { - /* FIXME: de-xine-ification */ - lprintf ( "***LOG:*** -- " - "libmms: get_media_packet failed\n"); - // restore buf and buf_size that may be changed in get_media_packet() - memcpy(this->buf, saved_buf, saved_buf_size); - this->buf_size = saved_buf_size; - this->buf_packet_seq_offset = saved_buf_packet_seq_offset; - return 0; - } - if (this->buf_size > 0) break; - } - // flush header and reset buf_read, only if success peeking - this->asf_header_read = this->asf_header_len; - this->buf_read = 0; - return 1; - //return this->current_pos; -} - -// send time seek request, and update current_pos corresponding to the next -// requested packet -// Note that, the current_pos will always does not less than asf_header_len -int mms_time_seek (mms_io_t *io, mms_t *this, double time_sec) { - if (!this->seekable) - return 0; - - if (!mms_request_time_seek (io, this, time_sec)) return 0; - return peek_and_set_pos (io, this); -} - -// http://sdp.ppona.com/zipfiles/MMSprotocol_pdf.zip said that, this -// packet_seq value make no difference in version 9 servers. -// But from my experiment with -// mms://202.142.200.130/tltk/56k/tltkD2006-08-08ID-7209.wmv and -// mms://202.142.200.130/tltk/56k/tltkD2006-09-01ID-7467.wmv (the url may valid -// in only 2-3 months) whose server is version 9, it does response and return -// the requested packet. -int mms_request_packet_seek (mms_io_t *io, mms_t *this, - unsigned long packet_seq) { - if (++this->packet_id_type <= ASF_MEDIA_PACKET_ID_TYPE) - this->packet_id_type = ASF_MEDIA_PACKET_ID_TYPE+1; - return mms_request_data_packet (io, this, 0, packet_seq, 0x00FFFFFF); -} - -// send packet seek request, and update current_pos corresponding to the next -// requested packet -// Note that, the current_pos will always does not less than asf_header_len -// Not export this function. Let user use mms_seek() instead? -static int mms_packet_seek (mms_io_t *io, mms_t *this, - unsigned long packet_seq) { - if (!mms_request_packet_seek (io, this, packet_seq)) return 0; - return peek_and_set_pos (io, this); -} - -/* -TODO: To use this table to calculate buf_packet_seq_offset rather than store -and retrieve it from this->buf_packet_seq_offset? -current_packet_seq == (current_pos - asf_header_len) / asf_packet_len -current_packet_seq == -1 if current_pos < asf_header_len -buf_packet_seq_offset indicating which packet sequence are residing in the buf. -Possible status after read(), "last" means last value or unchange. -current_packet_seq | buf_read | buf_size | buf_packet_seq_offset --------------------+----------------+-----------+--------------- -<= 0 | 0 (last) | 0 (last) | none -<= 0 | 0 (last) | 0 (last) | eos at #0 -<= 0 | 0 (last) | 0 (last) | eos at > #0 -<= 0 | 0 (last) | > 0 (last)| #0 -<= 0 | buf_size (last)| > 0 (last)| > #0 -> 0 | 0 | 0 | eos at current_packet_seq -> 0 | 0(never happen)| > 0 | (never happen) -> 0 | buf_size | > 0 | current_packet_seq-1 -*/ -// TODO: How to handle seek() in multi stream source? -// The stream that follows 0x20 ("new stream") command. -off_t mms_seek (mms_io_t *io, mms_t *this, off_t offset, int origin) { - off_t dest; - off_t dest_packet_seq; - //off_t buf_packet_seq_offset; - - if (!this->seekable) - return this->current_pos; - - switch (origin) { - case SEEK_SET: - dest = offset; - break; - case SEEK_CUR: - dest = this->current_pos + offset; - break; - case SEEK_END: - //if (this->asf_num_packets == 0) { - // //printf ("input_mms: unknown end position in seek!\n"); - // return this->current_pos; - //} - dest = mms_get_length (this) + offset; - default: - printf ("input_mms: unknown origin in seek!\n"); - return this->current_pos; - } - - dest_packet_seq = dest - this->asf_header_len; - //if (dest_packet_seq > 0) dest_packet_seq /= this->asf_packet_len; - dest_packet_seq = dest_packet_seq >= 0 ? - dest_packet_seq / this->asf_packet_len : -1; -#if 0 - // buf_packet_seq_offset will identify which packet sequence are residing in - // the buf. -#if 1 /* To show both of the alternate styles :D */ - buf_packet_seq_offset = this->current_pos - this->asf_header_len; - //if (buf_packet_seq_offset > 0) buf_packet_seq_offset /= this->asf_packet_len; - buf_packet_seq_offset = buf_packet_seq_offset >= 0 ? - buf_packet_seq_offset / this->asf_packet_len : -1; - // Note: buf_read == buf_size == 0 may means that it is eos, - // eos means that the packet has been peek'ed. - if (this->buf_read >= this->buf_size && this->buf_size > 0 && - buf_packet_seq_offset >= 0 || - // assuming packet not peek'ed in the following condition - /*this->buf_read >= this->buf_size && */this->buf_size == 0 && - buf_packet_seq_offset == 0) - // The buf is all read but the packet has not been peek'ed. - --buf_packet_seq_offset; -#else - buf_packet_seq_offset = this->current_pos - this->asf_header_len - 1; - //if (buf_packet_seq_offset > 0) buf_packet_seq_offset /= this->asf_packet_len; - buf_packet_seq_offset = buf_packet_seq_offset >= 0 ? - buf_packet_seq_offset / this->asf_packet_len : -1; - // Note: buf_read == buf_size == 0 may means that it is eos, - // eos means that the packet has been peek'ed. - if (this->buf_read == 0/* && buf_packet_seq_offset >= 0*/) - // Since the packet has just been peek'ed. - ++buf_packet_seq_offset; -#endif -#endif - - if (dest_packet_seq < 0) { - if (this->buf_packet_seq_offset > 0) { - if (!mms_request_packet_seek (io, this, 0xFFFFFFFF)) - return this->current_pos; -#if 1 - // clear buf - this->buf_read = this->buf_size = 0; - this->buf_packet_seq_offset = -1; - } else { -#else - // clear buf - this->buf_read = this->buf_size; - // Set this packet sequence not to be reused, since the subsequence - // packet may be discontinued. - this->buf_packet_seq_offset = -1; - // don't reset buf_read if buf_packet_seq_offset < 0, since the previous - // buf may not be cleared. - } else if (this->buf_packet_seq_offset == 0) { -#endif - // reset buf_read - this->buf_read = 0; - } - this->asf_header_read = dest; - return this->current_pos = dest; - } - // dest_packet_seq >= 0 - if (this->asf_num_packets && dest == this->asf_header_len + - this->asf_num_packets*this->asf_packet_len) { - // Requesting the packet beyond the last packet, can cause the server to - // not return any packet or any eos command. This can cause - // mms_packet_seek() to hang. - // This is to allow seeking at end of stream, and avoid hanging. - --dest_packet_seq; - } - if (dest_packet_seq != this->buf_packet_seq_offset) { - if (this->asf_num_packets && dest_packet_seq >= this->asf_num_packets) { - // Do not seek beyond the last packet. - return this->current_pos; - } - if (!mms_packet_seek (io, this, this->start_packet_seq + dest_packet_seq)) - return this->current_pos; - // Check if current_pos is correct. - // This can happen if the server ignore packet seek command. - // If so, just return unchanged current_pos, rather than trying to - // mms_read() to reach the destination pos. - // It should let the caller to decide to choose the alternate method, such - // as, mms_time_seek() and/or mms_read() until the destination pos is - // reached. - if (dest_packet_seq != this->buf_packet_seq_offset) - return this->current_pos; - // This has already been set in mms_packet_seek(). - //if (current_packet_seq < 0) - // this->asf_header_read = this->asf_header_len; - //this->asf_header_read = this->asf_header_len; - } - // eos is reached ? - //if (this->buf_size <= 0) return this->current_pos; - //this->buf_read = (dest - this->asf_header_len) % this->asf_packet_len; - this->buf_read = dest - - (this->asf_header_len + dest_packet_seq*this->asf_packet_len); - // will never happen ? - //if (this->buf_size <= this->buf_read) return this->current_pos; - return this->current_pos = dest; -} - - -void mms_close (mms_t *this) { - - if (this->s != -1) - close (this->s); - if (this->url) - free(this->url); - if (this->proto) - free(this->proto); - if (this->host) - free(this->host); - if (this->user) - free(this->user); - if (this->password) - free(this->password); - if (this->uri) - free(this->uri); - - free (this); -} - -double mms_get_time_length (mms_t *this) { - return guint64_to_gdouble(this->time_len) / 1e7; -} - -uint64_t mms_get_raw_time_length (mms_t *this) { - return this->time_len; -} - -uint32_t mms_get_length (mms_t *this) { - /* we could / should return this->file_len here, but usually this->file_len - is longer then the calculation below, as usually an asf file contains an - asf index object after the data stream. However since we do not have a - (known) way to get to this index object through mms, we return a - calculated size of what we can get to when we know. */ - if (this->asf_num_packets) - return this->asf_header_len + this->asf_num_packets*this->asf_packet_len; - else - return this->file_len; -} - -off_t mms_get_current_pos (mms_t *this) { - return this->current_pos; -} - -uint32_t mms_get_asf_header_len (mms_t *this) { - return this->asf_header_len; -} - -uint64_t mms_get_asf_packet_len (mms_t *this) { - return this->asf_packet_len; -} - -int mms_get_seekable (mms_t *this) { - return this->seekable; -} - -/* If init_state is N where > 0, mms_init has been called N times; - * if == 0, library is not initialized; if < 0, library initialization - * has failed. */ -static int init_state = 0; - -int mms_sock_init(void) -{ -#ifdef G_OS_WIN32 - WORD wVersionRequested; - WSADATA wsaData; - int err; -#endif - - if (init_state > 0) { - init_state++; - return 0; - } - else if (init_state < 0) { - return -1; - } - -#ifdef G_OS_WIN32 - wVersionRequested = MAKEWORD(2, 2); - - err = WSAStartup(wVersionRequested, &wsaData); - if (err != 0) { - return init_state = -1; - } -#endif - init_state = 1; - - return 0; -} - diff --git a/lib/win32/libmms_win32/src/mms.h b/lib/win32/libmms_win32/src/mms.h deleted file mode 100644 index c6cc6ed40f1a8..0000000000000 --- a/lib/win32/libmms_win32/src/mms.h +++ /dev/null @@ -1,91 +0,0 @@ -/* - * Copyright (C) 2002-2003 the xine project - * - * This file is part of xine, a free video player. - * - * xine 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 of the License, or - * (at your option) any later version. - * - * xine 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 this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA - * - * $Id: mms.h,v 1.15 2007/12/11 20:24:48 jwrdegoede Exp $ - * - * libmms public header - */ - -/* TODO/dexineification: - * + functions needed: - * - _x_io_*() - * - xine_malloc() [?] - * - xine_fast_memcpy() [?] - */ - -#ifndef HAVE_MMS_H -#define HAVE_MMS_H - -#include -#include -#include - -/* #include "xine_internal.h" */ - -#include "bswap.h" -#include "mmsio.h" - -#ifdef __cplusplus -extern "C" { -#endif /* __cplusplus */ - -typedef struct mms_s mms_t; - -int mms_sock_init (void); -mms_t* mms_connect (mms_io_t *io, void *data, const char *url, int bandwidth); - -int mms_read (mms_io_t *io, mms_t *instance, char *data, int len); -int mms_request_time_seek (mms_io_t *io, mms_t *instance, double time_sec); -int mms_time_seek (mms_io_t *io, mms_t *instance, double time_sec); -int mms_request_packet_seek (mms_io_t *io, mms_t *instance, - unsigned long packet_seq); -/* - * mms_seek() will try to seek using mms_request_packet_seek(), if the server - * ignore the packet seek command, it will return unchanged current_pos, rather - * than trying to mms_read() until the destination pos is reached. This is to - * let the caller, by itself, to decide to choose the alternate method, such - * as, mms_time_seek() and/or mms_read() until the destination pos is reached. - * One can do binary search using time offset (mms_time_seek()) as a search - * index, to approach the desired byte offset. It is to systematically guess - * the time offset to reach for the byte offset. - */ -mms_off_t mms_seek (mms_io_t *io, mms_t *instance, mms_off_t offset, int origin); -/* return total playback time in seconds */ -double mms_get_time_length (mms_t *instance); -/* return raw total playback time in 100 nanosecs (10^-7) */ -uint64_t mms_get_raw_time_length (mms_t *instance); -uint32_t mms_get_length (mms_t *instance); -void mms_close (mms_t *instance); - -int mms_peek_header (mms_t *instance, char *data, int maxsize); - -mms_off_t mms_get_current_pos (mms_t *instance); - -uint32_t mms_get_asf_header_len (mms_t *instance); - -uint64_t mms_get_asf_packet_len (mms_t *instance); - -int mms_get_seekable (mms_t *instance); - -#ifdef __cplusplus -} -#endif /* __cplusplus */ - -#endif - diff --git a/lib/win32/libmms_win32/src/mms_config.h b/lib/win32/libmms_win32/src/mms_config.h deleted file mode 100644 index 4e1045b819b77..0000000000000 --- a/lib/win32/libmms_win32/src/mms_config.h +++ /dev/null @@ -1,4 +0,0 @@ -/* libmms public autoconf settings header file */ - -/* Define to 1 if libmms is compiled with 64 bit file offsets */ -#undef LIBMMS_HAVE_64BIT_OFF_T diff --git a/lib/win32/libmms_win32/src/mms_config.h.in b/lib/win32/libmms_win32/src/mms_config.h.in deleted file mode 100644 index 4e1045b819b77..0000000000000 --- a/lib/win32/libmms_win32/src/mms_config.h.in +++ /dev/null @@ -1,4 +0,0 @@ -/* libmms public autoconf settings header file */ - -/* Define to 1 if libmms is compiled with 64 bit file offsets */ -#undef LIBMMS_HAVE_64BIT_OFF_T diff --git a/lib/win32/libmms_win32/src/mmsh.c b/lib/win32/libmms_win32/src/mmsh.c deleted file mode 100644 index 48690a2501831..0000000000000 --- a/lib/win32/libmms_win32/src/mmsh.c +++ /dev/null @@ -1,1558 +0,0 @@ -/* - * Copyright (C) 2002-2003 the xine project - * - * This file is part of xine, a free video player. - * - * xine 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 of the License, or - * (at your option) any later version. - * - * xine 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 this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA - * - * $Id: mmsh.c,v 1.16 2007/12/11 20:50:43 jwrdegoede Exp $ - * - * MMS over HTTP protocol - * written by Thibaut Mattern - * based on mms.c and specs from avifile - * (http://avifile.sourceforge.net/asf-1.0.htm) - * - * TODO: - * error messages - * http support cleanup, find a way to share code with input_http.c (http.h|c) - * http proxy support - */ - -#ifdef HAVE_CONFIG_H -#include "config.h" -#endif - -#include - -#ifdef G_OS_WIN32 -#ifdef _MSC_VER -#include -#endif -#include -#else -#include -#include -#include -#include -#endif - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#define LOG_MODULE "mmsh" -#define LOG_VERBOSE -#ifdef DEBUG -# define lprintf g_print -#else -# define lprintf(x) -#endif - -/* cheat a bit and call ourselves mms.c to keep the code in mmsio.h clean */ -#define __MMS_C__ - -#include "bswap.h" -#include "mmsh.h" -#include "asfheader.h" -#include "uri.h" -#include "utils.h" - -/* #define USERAGENT "User-Agent: NSPlayer/7.1.0.3055\r\n" */ -#define USERAGENT "User-Agent: NSPlayer/4.1.0.3856\r\n" -#define CLIENTGUID "Pragma: xClientGUID={c77e7400-738a-11d2-9add-0020af0a3278}\r\n" - - -#define MMSH_PORT 80 -#define MMSH_UNKNOWN 0 -#define MMSH_SEEKABLE 1 -#define MMSH_LIVE 2 - -#define CHUNK_HEADER_LENGTH 4 -#define EXT_HEADER_LENGTH 8 -#define CHUNK_TYPE_RESET 0x4324 -#define CHUNK_TYPE_DATA 0x4424 -#define CHUNK_TYPE_END 0x4524 -#define CHUNK_TYPE_ASF_HEADER 0x4824 -#define CHUNK_SIZE 65536 /* max chunk size */ -#define ASF_HEADER_SIZE (8192 * 2) /* max header size */ - -#define SCRATCH_SIZE 1024 - -static const char* mmsh_FirstRequest = - "GET %s HTTP/1.0\r\n" - "Accept: */*\r\n" - USERAGENT - "Host: %s:%d\r\n" - "Pragma: no-cache,rate=1.000000,stream-time=0,stream-offset=0:0,request-context=%u,max-duration=0\r\n" - CLIENTGUID - "Connection: Close\r\n\r\n"; - -static const char* mmsh_SeekableRequest = - "GET %s HTTP/1.0\r\n" - "Accept: */*\r\n" - USERAGENT - "Host: %s:%d\r\n" - "Pragma: no-cache,rate=1.000000,stream-time=%u,stream-offset=%u:%u,request-context=%u,max-duration=%u\r\n" - CLIENTGUID - "Pragma: xPlayStrm=1\r\n" - "Pragma: stream-switch-count=%d\r\n" - "Pragma: stream-switch-entry=%s\r\n" /* ffff:1:0 ffff:2:0 */ - "Connection: Close\r\n\r\n"; - -static const char* mmsh_LiveRequest = - "GET %s HTTP/1.0\r\n" - "Accept: */*\r\n" - USERAGENT - "Host: %s:%d\r\n" - "Pragma: no-cache,rate=1.000000,request-context=%u\r\n" - "Pragma: xPlayStrm=1\r\n" - CLIENTGUID - "Pragma: stream-switch-count=%d\r\n" - "Pragma: stream-switch-entry=%s\r\n" - "Connection: Close\r\n\r\n"; - - -#if 0 -/* Unused requests */ -static const char* mmsh_PostRequest = - "POST %s HTTP/1.0\r\n" - "Accept: */*\r\n" - USERAGENT - "Host: %s\r\n" - "Pragma: client-id=%u\r\n" -/* "Pragma: log-line=no-cache,rate=1.000000,stream-time=%u,stream-offset=%u:%u,request-context=2,max-duration=%u\r\n" */ - "Pragma: Content-Length: 0\r\n" - CLIENTGUID - "\r\n"; - -static const char* mmsh_RangeRequest = - "GET %s HTTP/1.0\r\n" - "Accept: */*\r\n" - USERAGENT - "Host: %s:%d\r\n" - "Range: bytes=%Lu-\r\n" - CLIENTGUID - "Connection: Close\r\n\r\n"; -#endif - - - -/* - * mmsh specific types - */ - - -struct mmsh_s { - - /* FIXME: de-xine-ification */ - void *custom_data; - - int s; - - /* url parsing */ - char *url; - char *proxy_url; - char *proto; - char *connect_host; - int connect_port; - char *http_host; - int http_port; - int http_request_number; - char *proxy_user; - char *proxy_password; - char *host_user; - char *host_password; - char *uri; - - char str[SCRATCH_SIZE]; /* scratch buffer to built strings */ - - int stream_type; /* seekable or broadcast */ - - /* receive buffer */ - - /* chunk */ - uint16_t chunk_type; - uint16_t chunk_length; - uint32_t chunk_seq_number; - uint8_t buf[CHUNK_SIZE]; - - int buf_size; - int buf_read; - - uint8_t asf_header[ASF_HEADER_SIZE]; - uint32_t asf_header_len; - uint32_t asf_header_read; - int num_stream_ids; - int stream_ids[ASF_MAX_NUM_STREAMS]; - int stream_types[ASF_MAX_NUM_STREAMS]; - uint32_t packet_length; - int64_t file_length; - uint64_t time_len; /* playback time in 100 nanosecs (10^-7) */ - uint64_t preroll; - uint64_t asf_num_packets; - char guid[37]; - uint32_t bitrates[ASF_MAX_NUM_STREAMS]; - uint32_t bitrates_pos[ASF_MAX_NUM_STREAMS]; - - int has_audio; - int has_video; - int seekable; - - off_t current_pos; - int user_bandwidth; -}; - -static int fallback_io_select(void *data, int socket, int state, int timeout_msec) -{ - int ret; - fd_set set; - struct timeval tv = { timeout_msec / 1000, (timeout_msec % 1000) * 1000}; - FD_ZERO(&set); - FD_SET(socket, &set); - ret = select(1, (state == MMS_IO_READ_READY) ? &set : NULL, - (state == MMS_IO_WRITE_READY) ? &set : NULL, NULL, &tv); - -#ifdef G_OS_WIN32 - if (ret > 0) - return MMS_IO_STATUS_READY; - else if (ret == 0) - return MMS_IO_STATUS_TIMEOUT; - else -#endif - return ret; -} - -static off_t fallback_io_read(void *data, int socket, char *buf, off_t num) -{ - off_t len = 0, ret; -/* lprintf("%d\n", fallback_io_select(data, socket, MMS_IO_READ_READY, 1000)); */ - errno = 0; - while (len < num) - { - ret = (off_t)recv(socket, buf + len, num - len, 0); - if(ret == 0) - break; /* EOF */ - if(ret < 0) - switch(errno) - { - case EAGAIN: - lprintf("len == %lld\n", (gint64) len); - break; - default: - lprintf("len == %lld\n", (gint64) len); - perror(NULL); - /* if already read something, return it, we will fail next time */ - return len ? len : ret; - } - len += ret; - } - lprintf("ret len == %lld\nnum == %lld\n", (gint64) len, (gint64) num); - lprintf("read\n"); - return len; -} - -static off_t fallback_io_write(void *data, int socket, char *buf, off_t num) -{ - return (off_t)send(socket, buf, num, 0); -} - -static int fallback_io_tcp_connect(void *data, const char *host, int port) -{ - - struct hostent *h; - int i, s; - - h = gethostbyname(host); - if (h == NULL) { -/* fprintf(stderr, "unable to resolve host: %s\n", host); */ - return -1; - } - - s = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP); - if (s == -1) { -/* fprintf(stderr, "failed to create socket: %s", strerror(errno)); */ - return -1; - } - -#ifndef G_OS_WIN32 - if (fcntl (s, F_SETFL, fcntl (s, F_GETFL) & ~O_NONBLOCK) == -1) { -/* _x_message(stream, XINE_MSG_CONNECTION_REFUSED, "can't put socket in non-blocking mode", strerror(errno), NULL); */ - return -1; - } -#endif - - for (i = 0; h->h_addr_list[i]; i++) { - struct in_addr ia; - struct sockaddr_in sin; - - memcpy (&ia, h->h_addr_list[i], 4); - sin.sin_family = AF_INET; - sin.sin_addr = ia; - sin.sin_port = htons(port); - -#ifdef G_OS_WIN32 - if (connect(s, (struct sockaddr *)&sin, sizeof(sin)) ==-1) { -#else - if (connect(s, (struct sockaddr *)&sin, sizeof(sin)) ==-1 && errno != EINPROGRESS) { -#endif - - /* FIXME: de-xine-ification */ -/* _x_message(stream, XINE_MSG_CONNECTION_REFUSED, strerror(errno), NULL); */ - close(s); - continue; - } - - return s; - } - return -1; -} - - -static mms_io_t fallback_io = - { - &fallback_io_select, - NULL, - &fallback_io_read, - NULL, - &fallback_io_write, - NULL, - &fallback_io_tcp_connect, - NULL, - }; - -static mms_io_t default_io = { - &fallback_io_select, - NULL, - &fallback_io_read, - NULL, - &fallback_io_write, - NULL, - &fallback_io_tcp_connect, - NULL, - }; - - -#define io_read(io, socket, buf, num) \ - ((io) ? (io)->read(io->read_data, socket, buf, num) \ - : default_io.read(NULL , socket, buf, num)) -#define io_write(io, socket, buf, num) \ - ((io) ? (io)->write(io->write_data, socket, buf, num) \ - : default_io.write(NULL , socket, buf, num)) -#define io_select(io, fd, state, timeout_msec) \ - ((io) ? (io)->select(io->select_data, fd, state, timeout_msec) \ - : default_io.select(NULL , fd, state, timeout_msec)) -#define io_connect(io, host, port) \ - ((io) ? (io)->connect(io->connect_data, host, port) \ - : default_io.connect(NULL , host, port)) - - -static int get_guid (unsigned char *buffer, int offset) { - int i; - GUID g; - - g.Data1 = LE_32(buffer + offset); - g.Data2 = LE_16(buffer + offset + 4); - g.Data3 = LE_16(buffer + offset + 6); - for(i = 0; i < 8; i++) { - g.Data4[i] = buffer[offset + 8 + i]; - } - - for (i = 1; i < GUID_END; i++) { - if (!memcmp(&g, &guids[i].guid, sizeof(GUID))) { - lprintf ("GUID: %s\n", guids[i].name); - - return i; - } - } - - lprintf ("libmmsh: unknown GUID: 0x%x, 0x%x, 0x%x, " - "{ 0x%hx, 0x%hx, 0x%hx, 0x%hx, 0x%hx, 0x%hx, 0x%hx, 0x%hx }\n", - g.Data1, g.Data2, g.Data3, - g.Data4[0], g.Data4[1], g.Data4[2], g.Data4[3], - g.Data4[4], g.Data4[5], g.Data4[6], g.Data4[7]); - return GUID_ERROR; -} - -static int send_command (mms_io_t *io, mmsh_t *this, char *cmd) { - int length; - - lprintf ("send_command:\n%s\n", cmd); - - length = strlen(cmd); - if (io_write(io, this->s, cmd, length) != length) { - lprintf ("mmsh: send error.\n"); - return 0; - } - return 1; -} - -static int get_answer (mms_io_t *io, mmsh_t *this) { - - int done, len, linenum; - char *features; - - lprintf ("get_answer\n"); - - done = 0; len = 0; linenum = 0; - this->stream_type = MMSH_UNKNOWN; - - while (!done) { - - if (io_read(io, this->s, &(this->buf[len]), 1) != 1) { - lprintf ("mmsh: alart: end of stream\n"); - return 0; - } - - if (this->buf[len] == '\012') { - - this->buf[len] = '\0'; - len--; - - if ((len >= 0) && (this->buf[len] == '\015')) { - this->buf[len] = '\0'; - len--; - } - - linenum++; - - lprintf ("answer: >%s<\n", this->buf); - - if (linenum == 1) { - int httpver, httpsub, httpcode; - char httpstatus[51]; - - if (sscanf(this->buf, "HTTP/%d.%d %d %50[^\015\012]", &httpver, &httpsub, - &httpcode, httpstatus) != 4) { - lprintf ("mmsh: bad response format\n"); - return 0; - } - - if (httpcode >= 300 && httpcode < 400) { - lprintf ("mmsh: 3xx redirection not implemented: >%d %s<\n", httpcode, httpstatus); - return 0; - } - - if (httpcode < 200 || httpcode >= 300) { - lprintf ("mmsh: http status not 2xx: >%d %s<\n", httpcode, httpstatus); - return 0; - } - } else { - - if (!g_strncasecmp(this->buf, "Location: ", 10)) { - lprintf ("mmsh: Location redirection not implemented.\n"); - return 0; - } - - if (!g_strncasecmp(this->buf, "Pragma:", 7)) { - features = strstr(this->buf + 7, "features="); - if (features) { - if (strstr(features, "seekable")) { - lprintf("seekable stream\n"); - this->stream_type = MMSH_SEEKABLE; - this->seekable = 1; - } else { - if (strstr(features, "broadcast")) { - lprintf("live stream\n"); - this->stream_type = MMSH_LIVE; - this->seekable = 0; - } - } - } - } - } - - if (len == -1) { - done = 1; - } else { - len = 0; - } - } else { - len ++; - } - } - if (this->stream_type == MMSH_UNKNOWN) { - lprintf ("mmsh: unknown stream type\n"); - this->stream_type = MMSH_SEEKABLE; /* FIXME ? */ - this->seekable = 1; - } - return 1; -} - -static int get_chunk_header (mms_io_t *io, mmsh_t *this) { - uint8_t chunk_header[CHUNK_HEADER_LENGTH]; - uint8_t ext_header[EXT_HEADER_LENGTH]; - int read_len; - int ext_header_len; - - lprintf ("get_chunk_header\n"); - - /* read chunk header */ - read_len = io_read(io, this->s, chunk_header, CHUNK_HEADER_LENGTH); - if (read_len != CHUNK_HEADER_LENGTH) { - lprintf ("chunk header read failed, %d != %d\n", read_len, CHUNK_HEADER_LENGTH); - return 0; - } - this->chunk_type = LE_16 (&chunk_header[0]); - this->chunk_length = LE_16 (&chunk_header[2]); - - switch (this->chunk_type) { - case CHUNK_TYPE_DATA: - ext_header_len = 8; - break; - case CHUNK_TYPE_END: - ext_header_len = 4; - break; - case CHUNK_TYPE_ASF_HEADER: - ext_header_len = 8; - break; - case CHUNK_TYPE_RESET: - ext_header_len = 4; - break; - default: - ext_header_len = 0; - } - /* read extended header */ - if (ext_header_len > 0) { - read_len = io_read (io, this->s, ext_header, ext_header_len); - if (read_len != ext_header_len) { - lprintf ("extended header read failed. %d != %d\n", read_len, ext_header_len); - return 0; - } - } - - if (this->chunk_type == CHUNK_TYPE_DATA || this->chunk_type == CHUNK_TYPE_END) - this->chunk_seq_number = LE_32 (&ext_header[0]); - - /* display debug infos */ -#ifdef DEBUG - switch (this->chunk_type) { - case CHUNK_TYPE_DATA: - lprintf ("chunk type: CHUNK_TYPE_DATA\n"); - lprintf ("chunk length: %d\n", this->chunk_length); - lprintf ("chunk seq: %d\n", this->chunk_seq_number); - lprintf ("unknown: %d\n", ext_header[4]); - lprintf ("mmsh seq: %d\n", ext_header[5]); - lprintf ("len2: %d\n", LE_16(&ext_header[6])); - break; - case CHUNK_TYPE_END: - lprintf ("chunk type: CHUNK_TYPE_END\n"); - lprintf ("continue: %d\n", this->chunk_seq_number); - break; - case CHUNK_TYPE_ASF_HEADER: - lprintf ("chunk type: CHUNK_TYPE_ASF_HEADER\n"); - lprintf ("chunk length: %d\n", this->chunk_length); - lprintf ("unknown: %2X %2X %2X %2X %2X %2X\n", - ext_header[0], ext_header[1], ext_header[2], ext_header[3], - ext_header[4], ext_header[5]); - lprintf ("len2: %d\n", LE_16(&ext_header[6])); - break; - case CHUNK_TYPE_RESET: - lprintf ("chunk type: CHUNK_TYPE_RESET\n"); - lprintf ("chunk seq: %d\n", this->chunk_seq_number); - lprintf ("unknown: %2X %2X %2X %2X\n", - ext_header[0], ext_header[1], ext_header[2], ext_header[3]); - break; - default: - lprintf ("unknown chunk: %4X\n", this->chunk_type); - } -#endif - - this->chunk_length -= ext_header_len; - return 1; -} - -static int get_header (mms_io_t *io, mmsh_t *this) { - int len = 0; - - lprintf("get_header\n"); - - this->asf_header_len = 0; - this->asf_header_read = 0; - - /* read chunk */ - while (1) { - if (get_chunk_header(io, this)) { - if (this->chunk_type == CHUNK_TYPE_ASF_HEADER) { - if ((this->asf_header_len + this->chunk_length) > ASF_HEADER_SIZE) { - lprintf ("mmsh: the asf header exceed %d bytes\n", ASF_HEADER_SIZE); - return 0; - } else { - len = io_read(io, this->s, this->asf_header + this->asf_header_len, - this->chunk_length); - this->asf_header_len += len; - if (len != this->chunk_length) { - return 0; - } - } - } else { - break; - } - } else { - lprintf("get_chunk_header failed\n"); - return 0; - } - } - - if (this->chunk_type == CHUNK_TYPE_DATA) { - /* read the first data chunk */ - len = io_read (io, this->s, this->buf, this->chunk_length); - - if (len != this->chunk_length) { - return 0; - } else { - /* check and 0 pad the first data chunk */ - if (this->chunk_length > this->packet_length) { - lprintf ("mmsh: chunk_length(%d) > packet_length(%d)\n", - this->chunk_length, this->packet_length); - return 0; - } - - /* explicit padding with 0 */ - if (this->chunk_length < this->packet_length) - memset(this->buf + this->chunk_length, 0, - this->packet_length - this->chunk_length); - - this->buf_size = this->packet_length; - - return 1; - } - } else { - /* unexpected packet type */ - return 0; - } -} - -static void interp_header (mms_io_t *io, mmsh_t *this) { - - int i; - - lprintf ("interp_header, header_len=%d\n", this->asf_header_len); - - this->packet_length = 0; - this->num_stream_ids = 0; - this->asf_num_packets = 0; - - /* - * parse asf header - */ - - i = 30; - while ((i + 24) < this->asf_header_len) { - - int guid; - uint64_t length; - - guid = get_guid(this->asf_header, i); - i += 16; - - length = LE_64(this->asf_header + i); - i += 8; - - if ((i + length) >= this->asf_header_len) return; - - switch (guid) { - - case GUID_ASF_FILE_PROPERTIES: - - this->packet_length = LE_32(this->asf_header + i + 92 - 24); - if (this->packet_length > CHUNK_SIZE) { - this->packet_length = 0; - break; - } - this->file_length = LE_64(this->asf_header + i + 40 - 24); - this->time_len = LE_64(this->asf_header + i + 64 - 24); - //this->time_len = LE_64(this->asf_header + i + 72 - 24); - this->preroll = LE_64(this->asf_header + i + 80 - 24); - lprintf ("file object, packet length = %d (%d)\n", - this->packet_length, LE_32(this->asf_header + i + 96 - 24)); - break; - - case GUID_ASF_STREAM_PROPERTIES: - { - uint16_t flags; - uint16_t stream_id; - int type; - int encrypted; - - guid = get_guid(this->asf_header, i); - switch (guid) { - case GUID_ASF_AUDIO_MEDIA: - type = ASF_STREAM_TYPE_AUDIO; - this->has_audio = 1; - break; - - case GUID_ASF_VIDEO_MEDIA: - case GUID_ASF_JFIF_MEDIA: - case GUID_ASF_DEGRADABLE_JPEG_MEDIA: - type = ASF_STREAM_TYPE_VIDEO; - this->has_video = 1; - break; - - case GUID_ASF_COMMAND_MEDIA: - type = ASF_STREAM_TYPE_CONTROL; - break; - - default: - type = ASF_STREAM_TYPE_UNKNOWN; - } - - flags = LE_16(this->asf_header + i + 48); - stream_id = flags & 0x7F; - encrypted = flags >> 15; - - lprintf ("stream object, stream id: %d, type: %d, encrypted: %d\n", - stream_id, type, encrypted); - - this->stream_types[stream_id] = type; - this->stream_ids[this->num_stream_ids] = stream_id; - this->num_stream_ids++; - - } - break; - - case GUID_ASF_STREAM_BITRATE_PROPERTIES: - { - uint16_t streams = LE_16(this->asf_header + i); - uint16_t stream_id; - int j; - - lprintf ("stream bitrate properties\n"); - lprintf ("streams %d\n", streams); - - for(j = 0; j < streams; j++) { - stream_id = LE_16(this->asf_header + i + 2 + j * 6); - - lprintf ("stream id %d\n", stream_id); - - this->bitrates[stream_id] = LE_32(this->asf_header + i + 4 + j * 6); - this->bitrates_pos[stream_id] = i + 4 + j * 6; - lprintf ("mmsh: stream id %d, bitrate %d\n", stream_id, this->bitrates[stream_id]); - } - } - break; - - case GUID_ASF_DATA: - this->asf_num_packets = LE_64(this->asf_header + i + 40 - 24); - lprintf("mmsh: num_packets: %d\n", (int)this->asf_num_packets); - break; - - default: - lprintf ("unknown object\n"); - break; - } - - lprintf ("length : %lld\n", length); - - if (length > 24) { - i += length - 24; - } - } -} - -const static char *const mmsh_proto_s[] = { "mms", "mmsh", NULL }; - -static int mmsh_valid_proto (char *proto) { - int i = 0; - - lprintf("mmsh_valid_proto\n"); - - if (!proto) - return 0; - - while(mmsh_proto_s[i]) { - if (!g_strcasecmp(proto, mmsh_proto_s[i])) { - return 1; - } - i++; - } - return 0; -} - -/* - * returns 1 on error - */ -static int mmsh_tcp_connect(mms_io_t *io, mmsh_t *this) { - int progress, res; - - if (!this->connect_port) this->connect_port = MMSH_PORT; - - /* - * try to connect - */ - lprintf("try to connect to %s on port %d \n", this->connect_host, this->connect_port); - - this->s = io_connect (io, this->connect_host, this->connect_port); - - if (this->s == -1) { - lprintf ("mmsh: failed to connect '%s'\n", this->connect_host); - return 1; - } - - /* connection timeout 15s */ - progress = 0; - do { -// report_progress(this->stream, progress); - res = io_select (io, this->s, MMS_IO_WRITE_READY, 500); - progress += 1; - } while ((res == MMS_IO_STATUS_TIMEOUT) && (progress < 30)); - if (res != MMS_IO_STATUS_READY) { - close (this->s); - this->s = -1; - return 1; - } - lprintf ("connected\n"); - - return 0; -} - -static int mmsh_connect_int (mms_io_t *io, mmsh_t *this, off_t seek, uint32_t time_seek) { - int i; - int video_stream = -1; - int audio_stream = -1; - int max_arate = -1; - int min_vrate = -1; - int min_bw_left = 0; - int stream_id; - int bandwitdh_left; - char stream_selection[10 * ASF_MAX_NUM_STREAMS]; /* 10 chars per stream */ - int offset; - - /* Close exisiting connection (if any) and connect */ - if (this->s != -1) - close(this->s); - - if (mmsh_tcp_connect(io, this)) { - return 0; - } -// report_progress (stream, 30); - - /* - * let the negotiations begin... - */ - this->num_stream_ids = 0; - - /* first request */ - lprintf("first http request\n"); - - g_snprintf (this->str, SCRATCH_SIZE, mmsh_FirstRequest, this->uri, - this->http_host, this->http_port, this->http_request_number++); - - if (!send_command (io, this, this->str)) - goto fail; - - if (!get_answer (io, this)) - goto fail; - - - get_header(io, this); - interp_header(io, this); - if (!this->packet_length || !this->num_stream_ids) - goto fail; - - close(this->s); -// report_progress (stream, 20); - - - /* choose the best quality for the audio stream */ - /* i've never seen more than one audio stream */ - for (i = 0; i < this->num_stream_ids; i++) { - stream_id = this->stream_ids[i]; - switch (this->stream_types[stream_id]) { - case ASF_STREAM_TYPE_AUDIO: - if ((audio_stream == -1) || (this->bitrates[stream_id] > max_arate)) { - audio_stream = stream_id; - max_arate = this->bitrates[stream_id]; - } - break; - default: - break; - } - } - - /* choose a video stream adapted to the user bandwidth */ - bandwitdh_left = this->user_bandwidth - max_arate; - if (bandwitdh_left < 0) { - bandwitdh_left = 0; - } - lprintf("bandwitdh %d, left %d\n", this->user_bandwidth, bandwitdh_left); - - min_bw_left = bandwitdh_left; - for (i = 0; i < this->num_stream_ids; i++) { - stream_id = this->stream_ids[i]; - switch (this->stream_types[stream_id]) { - case ASF_STREAM_TYPE_VIDEO: - if (((bandwitdh_left - this->bitrates[stream_id]) < min_bw_left) && - (bandwitdh_left >= this->bitrates[stream_id])) { - video_stream = stream_id; - min_bw_left = bandwitdh_left - this->bitrates[stream_id]; - } - break; - default: - break; - } - } - - /* choose the stream with the lower bitrate */ - if ((video_stream == -1) && this->has_video) { - for (i = 0; i < this->num_stream_ids; i++) { - stream_id = this->stream_ids[i]; - switch (this->stream_types[stream_id]) { - case ASF_STREAM_TYPE_VIDEO: - if ((video_stream == -1) || - (this->bitrates[stream_id] < min_vrate) || - (!min_vrate)) { - video_stream = stream_id; - min_vrate = this->bitrates[stream_id]; - } - break; - default: - break; - } - } - } - - lprintf("audio stream %d, video stream %d\n", audio_stream, video_stream); - - /* second request */ - lprintf("second http request\n"); - - if (mmsh_tcp_connect(io, this)) { - return 0; - } - - /* stream selection string */ - /* The same selection is done with mmst */ - /* 0 means selected */ - /* 2 means disabled */ - offset = 0; - for (i = 0; i < this->num_stream_ids; i++) { - int size; - if ((this->stream_ids[i] == audio_stream) || - (this->stream_ids[i] == video_stream)) { - size = g_snprintf(stream_selection + offset, sizeof(stream_selection) - offset, - "ffff:%d:0 ", this->stream_ids[i]); - } else { - lprintf ("disabling stream %d\n", this->stream_ids[i]); - size = g_snprintf(stream_selection + offset, sizeof(stream_selection) - offset, - "ffff:%d:2 ", this->stream_ids[i]); - } - if (size < 0) goto fail; - offset += size; - } - - switch (this->stream_type) { - case MMSH_SEEKABLE: - g_snprintf (this->str, SCRATCH_SIZE, mmsh_SeekableRequest, this->uri, - this->http_host, this->http_port, time_seek, - (unsigned int)(seek >> 32), - (unsigned int)seek, this->http_request_number++, 0, - this->num_stream_ids, stream_selection); - break; - case MMSH_LIVE: - g_snprintf (this->str, SCRATCH_SIZE, mmsh_LiveRequest, this->uri, - this->http_host, this->http_port, this->http_request_number++, - this->num_stream_ids, stream_selection); - break; - } - - if (!send_command (io, this, this->str)) - goto fail; - - lprintf("before read \n"); - - if (!get_answer (io, this)) - goto fail; - - if (!get_header(io, this)) - goto fail; - - interp_header(io, this); - if (!this->packet_length || !this->num_stream_ids) - goto fail; - - for (i = 0; i < this->num_stream_ids; i++) { - if ((this->stream_ids[i] != audio_stream) && - (this->stream_ids[i] != video_stream)) { - lprintf("disabling stream %d\n", this->stream_ids[i]); - - /* forces the asf demuxer to not choose this stream */ - if (this->bitrates_pos[this->stream_ids[i]]) { - this->asf_header[this->bitrates_pos[this->stream_ids[i]]] = 0; - this->asf_header[this->bitrates_pos[this->stream_ids[i]] + 1] = 0; - this->asf_header[this->bitrates_pos[this->stream_ids[i]] + 2] = 0; - this->asf_header[this->bitrates_pos[this->stream_ids[i]] + 3] = 0; - } - } - } - return 1; -fail: - close(this->s); - this->s = -1; - return 0; -} - -mmsh_t *mmsh_connect (mms_io_t *io, void *data, const char *url, int bandwidth) { - mmsh_t *this; - GURI *uri = NULL; - GURI *proxy_uri = NULL; - char *proxy_env; - if (!url) - return NULL; - - mms_sock_init(); - -// report_progress (stream, 0); - /* - * initializatoin is essential here. the fail: label depends - * on the various char * in our this structure to be - * NULL if they haven't been assigned yet. - */ - this = (mmsh_t*) malloc (sizeof (mmsh_t)); - this->url=NULL; - this->proxy_url = NULL; - this->proto = NULL; - this->connect_host = NULL; - this->http_host = NULL; - this->proxy_user = NULL; - this->proxy_password = NULL; - this->host_user = NULL; - this->host_password = NULL; - this->uri = NULL; - - this->custom_data = data; - this->url = strdup(url); - if ((proxy_env = getenv("http_proxy")) != NULL) - this->proxy_url = strdup(proxy_env); - else - this->proxy_url = NULL; - this->s = -1; - this->asf_header_len = 0; - this->asf_header_read = 0; - this->num_stream_ids = 0; - this->packet_length = 0; - this->buf_size = 0; - this->buf_read = 0; - this->has_audio = 0; - this->has_video = 0; - this->current_pos = 0; - this->user_bandwidth = bandwidth; - this->http_request_number = 1; - -// report_progress (stream, 0); - - if (this->proxy_url) { - proxy_uri = gnet_uri_new(this->proxy_url); - if (!proxy_uri) { - lprintf("invalid proxy url\n"); - goto fail; - } - if (! proxy_uri->port ) { - proxy_uri->port = 3128; //default squid port - } - } - uri = gnet_uri_new(this->url); - if (!uri) { - lprintf ("invalid url\n"); - goto fail; - } - if (! uri->port ) { - //checked in tcp_connect, but it's better to initialize it here - uri->port = MMSH_PORT; - } - if (this->proxy_url) { - char * uri_string; - this->proto = (uri->scheme) ? strdup(uri->scheme) : NULL; - this->connect_host = (proxy_uri->hostname) ? strdup(proxy_uri->hostname) : NULL; - this->connect_port = proxy_uri->port; - this->http_host = (uri->scheme) ? strdup(uri->hostname) : NULL; - this->http_port = uri->port; - this->proxy_user = (proxy_uri->user) ? strdup(proxy_uri->user) : NULL; - this->proxy_password = (proxy_uri->passwd) ? strdup(proxy_uri->passwd) : NULL; - this->host_user = (uri->user) ? strdup(uri->user) : NULL; - this->host_password = (uri->passwd) ? strdup(uri->passwd) : NULL; - gnet_uri_set_scheme(uri,"http"); - this->uri = gnet_mms_helper(uri); - g_free(uri_string); - } else { - this->proto = (uri->scheme) ? strdup(uri->scheme) : NULL; - this->connect_host = (uri->hostname) ? strdup(uri->hostname) : NULL; - this->connect_port = uri->port; - this->http_host = (uri->hostname) ? strdup(uri->hostname) : NULL; - this->http_port = uri->port; - this->proxy_user = NULL; - this->proxy_password = NULL; - this->host_user =(uri->user) ? strdup(uri->user) : NULL; - this->host_password = (uri->passwd) ? strdup(uri->passwd) : NULL; - this->uri = gnet_mms_helper(uri); - } - - if(!this->uri) - goto fail; - - if (proxy_uri) { - gnet_uri_delete(proxy_uri); - proxy_uri = NULL; - } - if (uri) { - gnet_uri_delete(uri); - uri = NULL; - } - if (!mmsh_valid_proto(this->proto)) { - lprintf ("unsupported protocol\n"); - goto fail; - } - - if (!mmsh_connect_int(io, this, 0, 0)) - goto fail; - -// report_progress (stream, 100); - - lprintf("mmsh_connect: passed\n" ); - - return this; - -fail: - lprintf("mmsh_connect: failed\n" ); - if (proxy_uri) - gnet_uri_delete(proxy_uri); - if (uri) - gnet_uri_delete(uri); - if (this->s != -1) - close(this->s); - if (this->url) - free(this->url); - if (this->proxy_url) - free(this->proxy_url); - if (this->proto) - free(this->proto); - if (this->connect_host) - free(this->connect_host); - if (this->http_host) - free(this->http_host); - if (this->proxy_user) - free(this->proxy_user); - if (this->proxy_password) - free(this->proxy_password); - if (this->host_user) - free(this->host_user); - if (this->host_password) - free(this->host_password); - if (this->uri) - free(this->uri); - - free(this); - - lprintf("mmsh_connect: failed return\n" ); - return NULL; -} - - -/* - * returned value: - * 0: error - * 1: data packet read - * 2: new header and data packet read - */ -static int get_media_packet (mms_io_t *io, mmsh_t *this) { - int len = 0; - - lprintf("get_media_packet: this->packet_length: %d\n", this->packet_length); - - if (get_chunk_header(io, this)) { - switch (this->chunk_type) { - case CHUNK_TYPE_END: - /* this->chunk_seq_number: - * 0: stop - * 1: a new stream follows - */ - if (this->chunk_seq_number == 0) - return 0; - - this->http_request_number = 1; - if (!mmsh_connect_int (io, this, 0, 0)) - return 0; - - /* What todo with: current_pos ?? - Also our chunk_seq_numbers will probably restart from 0! - If this happens with a seekable stream (does it ever?) - and we get a seek request after this were fscked! */ - this->seekable = 0; - - /* mmsh_connect_int reads the first data packet */ - /* this->buf_size is set by mmsh_connect_int */ - return 2; - - case CHUNK_TYPE_DATA: - /* nothing to do */ - break; - - case CHUNK_TYPE_RESET: - /* next chunk is an ASF header */ - - if (this->chunk_length != 0) { - /* that's strange, don't know what to do */ - return 0; - } - if (!get_header (io, this)) - return 0; - interp_header(io, this); - - /* What todo with: current_pos ?? - Also our chunk_seq_numbers might restart from 0! - If this happens with a seekable stream (does it ever?) - and we get a seek request after this were fscked! */ - this->seekable = 0; - - /* get_header reads the first data packet */ - /* this->buf_size is set by get_header */ - return 2; - - default: - lprintf ("mmsh: unexpected chunk type\n"); - return 0; - } - - len = io_read (io, this->s, this->buf, this->chunk_length); - - if (len == this->chunk_length) { - /* explicit padding with 0 */ - if (this->chunk_length > this->packet_length) { - lprintf ("mmsh: chunk_length(%d) > packet_length(%d)\n", - this->chunk_length, this->packet_length); - return 0; - } - - { - char *base = (char *)(this->buf); - char *start = base + this->chunk_length; - char *end = start + this->packet_length - this->chunk_length; - if ((start > base) && (start < (base+CHUNK_SIZE-1)) && - (start < end) && (end < (base+CHUNK_SIZE-1))) { - memset(start, 0, - this->packet_length - this->chunk_length); - } - if (this->packet_length > CHUNK_SIZE) { - this->buf_size = CHUNK_SIZE; - } else { - this->buf_size = this->packet_length; - } - } - return 1; - } else { - lprintf ("mmsh: read error, %d != %d\n", len, this->chunk_length); - return 0; - } - } else { - return 0; - } -} - -int mmsh_peek_header (mmsh_t *this, char *data, int maxsize) { - int len; - - lprintf("mmsh_peek_header\n"); - - len = (this->asf_header_len < maxsize) ? this->asf_header_len : maxsize; - - memcpy(data, this->asf_header, len); - return len; -} - -int mmsh_read (mms_io_t *io, mmsh_t *this, char *data, int len) { - int total; - - total = 0; - - lprintf ("mmsh_read: len: %d\n", len); - - /* Check if the stream didn't get closed because of previous errors */ - if (this->s == -1) - return total; - - while (total < len) { - - if (this->asf_header_read < this->asf_header_len) { - int n, bytes_left ; - - bytes_left = this->asf_header_len - this->asf_header_read ; - - if ((len-total) < bytes_left) - n = len-total; - else - n = bytes_left; - - memcpy (&data[total], &this->asf_header[this->asf_header_read], n); - - this->asf_header_read += n; - total += n; - this->current_pos += n; - } else { - - int n, bytes_left ; - - bytes_left = this->buf_size - this->buf_read; - - if (bytes_left == 0) { - int packet_type; - - this->buf_size=this ->buf_read = 0; - packet_type = get_media_packet (io, this); - - if (packet_type == 0) { - lprintf ("mmsh: get_media_packet failed\n"); - return total; - } else if (packet_type == 2) { - continue; - } - bytes_left = this->buf_size; - } - - if ((len-total) < bytes_left) - n = len-total; - else - n = bytes_left; - - memcpy (&data[total], &this->buf[this->buf_read], n); - - this->buf_read += n; - total += n; - this->current_pos += n; - } - } - return total; -} - -off_t mmsh_seek (mms_io_t *io, mmsh_t *this, off_t offset, int origin) { - off_t dest; - off_t dest_packet_seq; - uint32_t orig_asf_header_len = this->asf_header_len; - uint32_t orig_asf_packet_len = this->packet_length; - - if (!this->seekable) - return this->current_pos; - - switch (origin) { - case SEEK_SET: - dest = offset; - break; - case SEEK_CUR: - dest = this->current_pos + offset; - break; - case SEEK_END: - dest = mmsh_get_length (this) + offset; - default: - return this->current_pos; - } - - dest_packet_seq = dest - this->asf_header_len; - dest_packet_seq = dest_packet_seq >= 0 ? - dest_packet_seq / this->packet_length : -1; - - if (dest_packet_seq < 0) { - if (this->chunk_seq_number > 0) { - lprintf("mmsh: seek within header, already read beyond first packet, resetting connection\n"); - if (!mmsh_connect_int(io, this, 0, 0)) { - /* Oops no more connection let our caller know things are fscked up */ - return this->current_pos = -1; - } - /* Some what simple / naive check to check for changed headers - if the header was changed we are once more fscked up */ - if (this->asf_header_len != orig_asf_header_len || - this->packet_length != orig_asf_packet_len) { - lprintf("mmsh: AIIEEE asf header or packet length changed on re-open for seek\n"); - /* Its a different stream, so its useless! */ - close (this->s); - this->s = -1; - return this->current_pos = -1; - } - } else - lprintf("mmsh: seek within header, resetting buf_read\n"); - - // reset buf_read - this->buf_read = 0; - this->asf_header_read = dest; - return this->current_pos = dest; - } - - // dest_packet_seq >= 0 - if (this->asf_num_packets && dest == this->asf_header_len + - this->asf_num_packets*this->packet_length) { - // Requesting the packet beyond the last packet, can cause the server to - // not return any packet or any eos command. This can cause - // mms_packet_seek() to hang. - // This is to allow seeking at end of stream, and avoid hanging. - --dest_packet_seq; - lprintf("mmsh: seek to eos!\n"); - } - - if (dest_packet_seq != this->chunk_seq_number) { - - if (this->asf_num_packets && dest_packet_seq >= this->asf_num_packets) { - // Do not seek beyond the last packet. - return this->current_pos; - } - - lprintf("mmsh: seek to %d, packet: %d\n", (int)dest, (int)dest_packet_seq); - if (!mmsh_connect_int(io, this, (dest_packet_seq+1) * this->packet_length, 0)) { - /* Oops no more connection let our caller know things are fscked up */ - return this->current_pos = -1; - } - /* Some what simple / naive check to check for changed headers - if the header was changed we are once more fscked up */ - if (this->asf_header_len != orig_asf_header_len || - this->packet_length != orig_asf_packet_len) { - lprintf("mmsh: AIIEEE asf header or packet length changed on re-open for seek\n"); - /* Its a different stream, so its useless! */ - close (this->s); - this->s = -1; - return this->current_pos = -1; - } - } - else - lprintf("mmsh: seek within current packet, dest: %d, current pos: %d\n", - (int)dest, (int)this->current_pos); - - /* make sure asf_header is seen as fully read by mmsh_read() this is needed - in case our caller tries to seek over part of the header, or when we've - done an actual packet seek as get_header() resets asf_header_read then. */ - this->asf_header_read = this->asf_header_len; - - /* check we got what we want */ - if (dest_packet_seq == this->chunk_seq_number) { - this->buf_read = dest - - (this->asf_header_len + dest_packet_seq*this->packet_length); - this->current_pos = dest; - } else { - lprintf("Seek failed, wanted packet: %d, got packet: %d\n", - (int)dest_packet_seq, (int)this->chunk_seq_number); - this->buf_read = 0; - this->current_pos = this->asf_header_len + this->chunk_seq_number * - this->packet_length; - } - - lprintf("current_pos after seek to %d: %d (buf_read %d)\n", - (int)dest, (int)this->current_pos, (int)this->buf_read); - - return this->current_pos; -} - -int mmsh_time_seek (mms_io_t *io, mmsh_t *this, double time_sec) { - uint32_t orig_asf_header_len = this->asf_header_len; - uint32_t orig_asf_packet_len = this->packet_length; - - if (!this->seekable) - return 0; - - lprintf("mmsh: time seek to %f secs\n", time_sec); - if (!mmsh_connect_int(io, this, 0, time_sec * 1000 + guint64_to_gdouble(this->preroll))) { - /* Oops no more connection let our caller know things are fscked up */ - this->current_pos = -1; - return 0; - } - /* Some what simple / naive check to check for changed headers - if the header was changed we are once more fscked up */ - if (this->asf_header_len != orig_asf_header_len || - this->packet_length != orig_asf_packet_len) { - lprintf("mmsh: AIIEEE asf header or packet length changed on re-open for seek\n"); - /* Its a different stream, so its useless! */ - close (this->s); - this->s = -1; - this->current_pos = -1; - return 0; - } - - this->asf_header_read = this->asf_header_len; - this->buf_read = 0; - this->current_pos = this->asf_header_len + this->chunk_seq_number * - this->packet_length; - - lprintf("mmsh, current_pos after time_seek:%d\n", (int)this->current_pos); - - return 1; -} - -void mmsh_close (mmsh_t *this) { - - lprintf("mmsh_close\n"); - - if (this->s != -1) - close(this->s); - if (this->url) - free(this->url); - if (this->proxy_url) - free(this->proxy_url); - if (this->proto) - free(this->proto); - if (this->connect_host) - free(this->connect_host); - if (this->http_host) - free(this->http_host); - if (this->proxy_user) - free(this->proxy_user); - if (this->proxy_password) - free(this->proxy_password); - if (this->host_user) - free(this->host_user); - if (this->host_password) - free(this->host_password); - if (this->uri) - free(this->uri); - if (this) - free (this); -} - - -uint32_t mmsh_get_length (mmsh_t *this) { - /* we could / should return this->file_len here, but usually this->file_len - is longer then the calculation below, as usually an asf file contains an - asf index object after the data stream. However since we do not have a - (known) way to get to this index object through mms, we return a - calculated size of what we can get to when we know. */ - if (this->asf_num_packets) - return this->asf_header_len + this->asf_num_packets*this->packet_length; - else - return this->file_length; -} - -double mmsh_get_time_length (mmsh_t *this) { - return guint64_to_gdouble(this->time_len) / 1e7; -} - -uint64_t mmsh_get_raw_time_length (mmsh_t *this) { - return this->time_len; -} - -off_t mmsh_get_current_pos (mmsh_t *this) { - return this->current_pos; -} - -uint32_t mmsh_get_asf_header_len (mmsh_t *this) { - return this->asf_header_len; -} - -uint32_t mmsh_get_asf_packet_len (mmsh_t *this) { - return this->packet_length; -} - -int mmsh_get_seekable (mmsh_t *this) { - return this->seekable; -} diff --git a/lib/win32/libmms_win32/src/mmsh.h b/lib/win32/libmms_win32/src/mmsh.h deleted file mode 100644 index 6a33f0cbfc17c..0000000000000 --- a/lib/win32/libmms_win32/src/mmsh.h +++ /dev/null @@ -1,63 +0,0 @@ -/* - * Copyright (C) 2002-2003 the xine project - * - * This file is part of xine, a free video player. - * - * xine 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 of the License, or - * (at your option) any later version. - * - * xine 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 this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA - * - * $Id: mmsh.h,v 1.8 2007/12/11 20:24:48 jwrdegoede Exp $ - * - * libmmsh public header - */ - -#ifndef HAVE_MMSH_H -#define HAVE_MMSH_H - -#include -#include -#include -#include "mmsio.h" - -#ifdef __cplusplus -extern "C" { -#endif /* __cplusplus */ - -typedef struct mmsh_s mmsh_t; - -char* mmsh_connect_common(int *s ,int *port, char *url, char **host, char **path, char **file); -mmsh_t* mmsh_connect (mms_io_t *io, void *data, const char *url_, int bandwidth); - -int mmsh_read (mms_io_t *io, mmsh_t *instance, char *data, int len); -int mmsh_time_seek (mms_io_t *io, mmsh_t *instance, double time_sec); -mms_off_t mmsh_seek (mms_io_t *io, mmsh_t *this, mms_off_t offset, int origin); -uint32_t mmsh_get_length (mmsh_t *instance); -double mmsh_get_time_length (mmsh_t *this); -uint64_t mmsh_get_raw_time_length (mmsh_t *this); -mms_off_t mmsh_get_current_pos (mmsh_t *instance); -void mmsh_close (mmsh_t *instance); - -int mmsh_peek_header (mmsh_t *instance, char *data, int maxsize); - -uint32_t mmsh_get_asf_header_len (mmsh_t *this); - -uint32_t mmsh_get_asf_packet_len (mmsh_t *this); - -int mmsh_get_seekable (mmsh_t *this); - -#ifdef __cplusplus -} -#endif /* __cplusplus */ - -#endif diff --git a/lib/win32/libmms_win32/src/mmsio.h b/lib/win32/libmms_win32/src/mmsio.h deleted file mode 100644 index 750d537c50356..0000000000000 --- a/lib/win32/libmms_win32/src/mmsio.h +++ /dev/null @@ -1,93 +0,0 @@ -#ifndef __MMS_IO_H__ -#define __MMS_IO_H__ - -#include "mms_config.h" - -/* On 64 bit file offset capable systems, libmms' configure script adds - -D_FILE_OFFSET_BITS=64 to the CFLAGS. This causes off_t to be 64 bit, - When an app which includes this header file gets compiled without - -D_FILE_OFFSET_BITS=64, it should still expect / pass 64 bit ints for - off_t, this acomplishes this: */ -#if defined LIBMMS_HAVE_64BIT_OFF_T && !defined __MMS_C__ -#define mms_off_t int64_t -#else -#define mms_off_t off_t -#endif - -#ifdef __cplusplus -extern "C" { -#endif /* __cplusplus */ - -typedef mms_off_t (*mms_io_write_func)(void *data, int socket, char *buf, mms_off_t num); -typedef mms_off_t (*mms_io_read_func)(void *data, int socket, char *buf, mms_off_t num); - -/* select states */ -#define MMS_IO_READ_READY 1 -#define MMS_IO_WRITE_READY 2 - -enum - { - MMS_IO_STATUS_READY, /* IO can be safely performed */ - MMS_IO_STATUS_ERROR, /* There was IO error */ - MMS_IO_STATUS_ABORTED, /* IO command was (somehow) - aborted. This is not error, but invalidates IO for further operations*/ - MMS_IO_STATUS_TIMEOUT /* Timeout was exceeded */ - }; - -/* - * Waits for a file descriptor/socket to change status. - * - * users can use this handler to provide their own implementations, - * for example abortable ones - * - * params : - * data whatever parameter may be needed by implementation - * fd file/socket descriptor - * state MMS_IO_READ_READY, MMS_IO_WRITE_READY - * timeout_sec timeout in seconds - * - * - * return value : - * MMS_IO_READY the file descriptor is ready for cmd - * MMS_IO_ERROR an i/o error occured - * MMS_IO_ABORTED command aborted - * MMS_IO_TIMEOUT the file descriptor is not ready after timeout_msec milliseconds - * every other return value is interpreted same as MMS_IO_ABORTED - */ -typedef int (*mms_io_select_func)(void *data, int fd, int state, int timeout_msec); - -/* - * open a tcp connection - * - * params : - * stream needed for reporting errors but may be NULL - * host address of target - * port port on target - * - * returns a socket descriptor or -1 if an error occured - */ -typedef int (*mms_io_tcp_connect_func)(void *data, const char *host, int port); - -typedef struct -{ - mms_io_select_func select; - void *select_data; - mms_io_read_func read; - void *read_data; - mms_io_write_func write; - void *write_data; - mms_io_tcp_connect_func connect; - void *connect_data; -} mms_io_t; - -/* set default IO implementation, it will be used in absence of specific IO - parameter. Structure is referenced, not copied, must remain valid for entire - usage period. Passing NULL reverts to default, POSIX based implementation */ -void mms_set_default_io_impl(const mms_io_t *io); -const mms_io_t* mms_get_default_io_impl(); - -#ifdef __cplusplus -} -#endif /* __cplusplus */ - -#endif /* __MMS_IO_H__ */ diff --git a/lib/win32/libmms_win32/src/mmsx.c b/lib/win32/libmms_win32/src/mmsx.c deleted file mode 100644 index 0618387462809..0000000000000 --- a/lib/win32/libmms_win32/src/mmsx.c +++ /dev/null @@ -1,153 +0,0 @@ -/* - * Copyright (C) 2007 Hans de Goede - * - * This file is part of libmms a free mms protocol library - * - * libmms is free software; you can redistribute it and/or modify - * it under the terms of the GNU Library General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * libmss 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 Library General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA - */ - -/* - * mmsx is a small wrapper around the mms and mmsh protocol implementations - * in libmms. The mmsx functions provide transparent access to both protocols - * so that programs who wish to support both can do so with a single code path - * if desired. - */ - -#include -#include "mmsx.h" -#include "mms.h" -#include "mmsh.h" - -struct mmsx_s { - mms_t *connection; - mmsh_t *connection_h; -}; - -mmsx_t *mmsx_connect(mms_io_t *io, void *data, const char *url, int bandwidth) -{ - mmsx_t *mmsx = calloc(1, sizeof(mmsx_t)); - - if (!mmsx) - return mmsx; - - mmsx->connection_h = mmsh_connect(io, data, url, bandwidth); - if (mmsx->connection_h) - return mmsx; - - mmsx->connection = mms_connect(io, data, url, bandwidth); - if (mmsx->connection) - return mmsx; - - free(mmsx); - return NULL; -} - -int mmsx_read (mms_io_t *io, mmsx_t *mmsx, char *data, int len) -{ - if(mmsx->connection) - return mms_read(io, mmsx->connection, data, len); - else - return mmsh_read(io, mmsx->connection_h, data, len); -} - -int mmsx_time_seek (mms_io_t *io, mmsx_t *mmsx, double time_sec) -{ - if(mmsx->connection) - return mms_time_seek(io, mmsx->connection, time_sec); - else - return mmsh_time_seek(io, mmsx->connection_h, time_sec); -} - -mms_off_t mmsx_seek (mms_io_t *io, mmsx_t *mmsx, mms_off_t offset, int origin) -{ - if(mmsx->connection) - return mms_seek(io, mmsx->connection, offset, origin); - else - return mmsh_seek(io, mmsx->connection_h, offset, origin); -} - -double mmsx_get_time_length (mmsx_t *mmsx) -{ - if(mmsx->connection) - return mms_get_time_length(mmsx->connection); - else - return mmsh_get_time_length(mmsx->connection_h); -} - -uint64_t mmsx_get_raw_time_length (mmsx_t *mmsx) -{ - if(mmsx->connection) - return mms_get_raw_time_length(mmsx->connection); - else - return mmsh_get_raw_time_length(mmsx->connection_h); -} - -uint32_t mmsx_get_length (mmsx_t *mmsx) -{ - if(mmsx->connection) - return mms_get_length(mmsx->connection); - else - return mmsh_get_length(mmsx->connection_h); -} - -void mmsx_close (mmsx_t *mmsx) -{ - if(mmsx->connection) - mms_close(mmsx->connection); - else - mmsh_close(mmsx->connection_h); - - free(mmsx); -} - -int mmsx_peek_header (mmsx_t *mmsx, char *data, int maxsize) -{ - if(mmsx->connection) - return mms_peek_header(mmsx->connection, data, maxsize); - else - return mmsh_peek_header(mmsx->connection_h, data, maxsize); -} - -mms_off_t mmsx_get_current_pos (mmsx_t *mmsx) -{ - if(mmsx->connection) - return mms_get_current_pos(mmsx->connection); - else - return mmsh_get_current_pos(mmsx->connection_h); -} - -uint32_t mmsx_get_asf_header_len(mmsx_t *mmsx) -{ - if(mmsx->connection) - return mms_get_asf_header_len(mmsx->connection); - else - return mmsh_get_asf_header_len(mmsx->connection_h); -} - -uint64_t mmsx_get_asf_packet_len (mmsx_t *mmsx) -{ - if(mmsx->connection) - return mms_get_asf_packet_len(mmsx->connection); - else - return mmsh_get_asf_packet_len(mmsx->connection_h); -} - -int mmsx_get_seekable (mmsx_t *mmsx) -{ - if(mmsx->connection) - return mms_get_seekable(mmsx->connection); - else - return mmsh_get_seekable(mmsx->connection_h); -} diff --git a/lib/win32/libmms_win32/src/mmsx.h b/lib/win32/libmms_win32/src/mmsx.h deleted file mode 100644 index df4adfce4cc41..0000000000000 --- a/lib/win32/libmms_win32/src/mmsx.h +++ /dev/null @@ -1,69 +0,0 @@ -/* - * Copyright (C) 2007 Hans de Goede - * - * This file is part of libmms a free mms protocol library - * - * libmms is free software; you can redistribute it and/or modify - * it under the terms of the GNU Library General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * libmss 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 Library General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA - * - * libmms public header - */ - -/* - * mmsx is a small wrapper around the mms and mmsh protocol implementations - * in libmms. The mmsx functions provide transparent access to both protocols - * so that programs who wish to support both can do so with a single code path - * if desired. - */ - -#ifndef HAVE_MMSX_H -#define HAVE_MMSX_H - -#include -#include "mmsio.h" - -#ifdef __cplusplus -extern "C" { -#endif /* __cplusplus */ - -typedef struct mmsx_s mmsx_t; - -mmsx_t* mmsx_connect (mms_io_t *io, void *data, const char *url, int bandwidth); - -int mmsx_read (mms_io_t *io, mmsx_t *instance, char *data, int len); -int mmsx_time_seek (mms_io_t *io, mmsx_t *instance, double time_sec); -mms_off_t mmsx_seek (mms_io_t *io, mmsx_t *instance, mms_off_t offset, int origin); -/* return total playback time in seconds */ -double mmsx_get_time_length (mmsx_t *instance); -/* return raw total playback time in 100 nanosecs (10^-7) */ -uint64_t mmsx_get_raw_time_length (mmsx_t *instance); -uint32_t mmsx_get_length (mmsx_t *instance); -void mmsx_close (mmsx_t *instance); - -int mmsx_peek_header (mmsx_t *instance, char *data, int maxsize); - -mms_off_t mmsx_get_current_pos (mmsx_t *instance); - -uint32_t mmsx_get_asf_header_len (mmsx_t *instance); - -uint64_t mmsx_get_asf_packet_len (mmsx_t *instance); - -int mmsx_get_seekable (mmsx_t *instance); - -#ifdef __cplusplus -} -#endif /* __cplusplus */ - -#endif - diff --git a/lib/win32/libmms_win32/src/testconnect.c b/lib/win32/libmms_win32/src/testconnect.c deleted file mode 100644 index 9ed2f1a6fbf95..0000000000000 --- a/lib/win32/libmms_win32/src/testconnect.c +++ /dev/null @@ -1,11 +0,0 @@ -#include "mms.h" - -const char *url = "mms://od-msn.msn.com/3/mbr/apprentice_bts.wmv"; - -int main(int argc, char *argv[]) -{ - if(mms_connect(NULL, NULL, url, 1)) - printf("Connect OK\n"); - - return 0; -} diff --git a/lib/win32/libmms_win32/src/testdownload.c b/lib/win32/libmms_win32/src/testdownload.c deleted file mode 100644 index 21d2d566ec7b5..0000000000000 --- a/lib/win32/libmms_win32/src/testdownload.c +++ /dev/null @@ -1,29 +0,0 @@ -#include -#include "mms.h" - -const char *url = "mms://od-msn.msn.com/3/mbr/apprentice_bts.wmv"; - -int main(int argc, char *argv[]) -{ - mms_t *this = NULL; - char buf[1024]; - int i, res; - FILE* f; - - if((this = mms_connect(NULL, NULL, url, 1))) - printf("Connect OK\n"); - f = fopen("/tmp/mmsdownload.test", "w"); - for(i = 0; i < 10000; i++) - { - res = mms_read(NULL, this, buf, 1024); - if(!res) - break; - fwrite(buf, 1, res, f); - } - if(i > 0) - printf("OK, read %d times\n", i); - else - printf("Failed to read from stream\n"); - - -} diff --git a/lib/win32/libmms_win32/src/testswap.c b/lib/win32/libmms_win32/src/testswap.c deleted file mode 100644 index 22b201b922316..0000000000000 --- a/lib/win32/libmms_win32/src/testswap.c +++ /dev/null @@ -1,45 +0,0 @@ -/* Test byteswapping functions for correct operation */ -/* FIXME: put some more extensive tests here */ - - -#include -#include "bswap.h" - - -int main(int argc, char *argv[]) -{ - unsigned char test_value32[5] = "\xFE\xDC\xBA\x10"; - u_int32_t le_uint32 = ((((u_int32_t)(test_value32[3])) << 24) | - (((u_int32_t)(test_value32[2])) << 16) | - (((u_int32_t)(test_value32[1])) << 8) | - (((u_int32_t)(test_value32[0])) << 0)); - - u_int32_t le_uint16 = ((((u_int32_t)(test_value32[1])) << 8) | - (((u_int32_t)(test_value32[0])) << 0)); - - u_int32_t be_uint32 = ((((u_int32_t)(test_value32[0])) << 24) | - (((u_int32_t)(test_value32[1])) << 16) | - (((u_int32_t)(test_value32[2])) << 8) | - (((u_int32_t)(test_value32[3])) << 0)); - - u_int32_t be_uint16 = ((((u_int32_t)(test_value32[0])) << 8) | - (((u_int32_t)(test_value32[1])) << 0)); - - printf("test_value32: %2hhx%2hhx%2hhx%2hhx\n", test_value32[0], - test_value32[1], test_value32[2], test_value32[3]); - printf("test_value32 as u_int32_t: %04x\n", *(u_int32_t*)test_value32); - printf("le_uint32: %04x\n", le_uint32); - printf ("LE_32(le_uint32): %08x\n", LE_32(&le_uint32)); - - printf("test_value16 as u_int16_t: %04x\n", *(u_int16_t*)test_value32); - printf("le_uint16: %04x\n", le_uint16); - printf ("LE_16(le_uint16): %04hx\n", LE_16(&le_uint16)); - - printf("be_uint32: %04x\n", be_uint32); - printf ("BE_32(be_uint32): %08x\n", BE_32(&be_uint32)); - - printf("test_value16 as u_int16_t: %04x\n", *(u_int16_t*)test_value32); - printf("be_uint16: %04x\n", be_uint16); - printf ("BE_16(be_uint16): %04hx\n", BE_16(&be_uint16)); - -} diff --git a/lib/win32/libmms_win32/src/uri.c b/lib/win32/libmms_win32/src/uri.c deleted file mode 100644 index 36710a52528b9..0000000000000 --- a/lib/win32/libmms_win32/src/uri.c +++ /dev/null @@ -1,904 +0,0 @@ -/* GNet - Networking library - * Copyright (C) 2000-2003 David Helder, David Bolcsfoldi, Eric Williams - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ - -/* FIXME: #include "gnet-private.h" */ -#include -#include -#include -#include - -#include "uri.h" -#include - -static void field_unescape (char *str); -static char* field_escape (char* str, unsigned char mask); - -#define USERINFO_ESCAPE_MASK 0x01 -#define PATH_ESCAPE_MASK 0x02 -#define QUERY_ESCAPE_MASK 0x04 -#define FRAGMENT_ESCAPE_MASK 0x08 - -/* #define FALSE 0 */ -/* #define TRUE (!FALSE) */ - -static unsigned char neednt_escape_table[] = -{ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x0f, 0x00, 0x00, 0x0f, 0x00, 0x0f, 0x0f, - 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0e, - 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, - 0x0f, 0x0f, 0x0f, 0x0f, 0x00, 0x0f, 0x00, 0x0c, - 0x0e, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, - 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, - 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, - 0x0f, 0x0f, 0x0f, 0x00, 0x0f, 0x00, 0x00, 0x0f, - 0x00, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, - 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, - 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, - 0x0f, 0x0f, 0x0f, 0x00, 0x00, 0x00, 0x0f, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 -}; - - -/* -Perl code to generate above table: - -#!/usr/bin/perl - -$ok = "abcdefghijklmnopqrstuvwxyz" . - "ABCDEFGHIJKLMNOPQRSTUVWXYZ" . - "0123456789" . - "-_.!~*'()"; -$userinfo_ok = ';:&=+\$,'; -$path_ok = ':\@&=+\$,;/'; -$query_ok = ';/?:\@&=+\$,'; -$fragment_ok = ';/?:\@&=+\$,'; - -for ($i = 0; $i < 32; $i++) -{ - print " "; - for ($j = 0; $j < 8; $j++) - { - $num = 0; - $letter = chr(($i * 8) + $j); - - $num |= 0b0001 if (index($userinfo_ok, $letter) != -1); - $num |= 0b0010 if (index($path_ok, $letter) != -1); - $num |= 0b0100 if (index($query_ok, $letter) != -1); - $num |= 0b1000 if (index($fragment_ok, $letter) != -1); - $num |= 0b1111 if (index($ok, $letter) != -1); - - printf "0x%02x, ", $num; - } - print "\n"; -} -*/ - - -/* our own ISSPACE. ANSI isspace is local dependent */ -#define ISSPACE(C) (((C) >= 9 && (C) <= 13) || (C) == ' ') - - -static int split_user_passwd(const char* in, char** user, char** passwd) -{ - char *tmp = strdup(in); - - if(!tmp) - return 0; - *passwd = strchr(tmp, ':'); - if(!(*passwd)) - { - free(tmp); - return 0; - } - *((*passwd)++) = '\0'; // don't you love C? :) - - *user = strdup(tmp); - if(!*user) - return 0; - *passwd = strdup(*passwd); - if(!*passwd) - return 0; - - free(tmp); - return 1; -} - -/** - * gnet_uri_new - * @uri: URI string - * - * Creates a #GURI from a string. Empty fields are set to NULL. The - * parser does not validate the URI -- it will accept some malformed - * URI. URIs are usually in the form - * scheme://userinfo@hostname:port/path?query#fragment - * - * URIs created from user input are typically unescaped. URIs - * created from machine input (e.g. received over the internet) are - * typically escaped. - * - * Returns: a new #GURI, or NULL if there was a failure. - * - **/ -GURI* -gnet_uri_new (const char* uri) -{ - GURI* guri = NULL; - const char* p; - const char* temp; - - g_return_val_if_fail (uri, NULL); - - /* Skip initial whitespace */ - p = uri; - while (*p && ISSPACE((int)*p)) - ++p; - if (!*p) /* Error if it's just a string of space */ - return NULL; - - guri = g_new0 (GURI, 1); - - /* Scheme */ - temp = p; - while (*p && *p != ':' && *p != '/' && *p != '?' && *p != '#') - ++p; - if (*p == ':') - { - guri->scheme = g_strndup (temp, p - temp); - ++p; - } - else /* This char is NUL, /, ?, or # */ - p = temp; - - /* Authority */ - if (*p == '/' && p[1] == '/') - { - char *userinfo; - p += 2; - - /* Userinfo */ - temp = p; - while (*p && *p != '@' && *p != '/' ) /* Look for @ or / */ - ++p; - if (*p == '@') /* Found userinfo */ - { - userinfo = g_strndup (temp, p - temp); - if(!split_user_passwd(userinfo, &guri->user, &guri->passwd)) - { - free(userinfo); - goto error; - } - free(userinfo); - ++p; - } - else - p = temp; - - /* Hostname */ - - /* Check for IPv6 canonical hostname in brackets */ - if (*p == '[') - { - p++; /* Skip [ */ - temp = p; - while (*p && *p != ']') ++p; - if ((p - temp) == 0) - goto error; - guri->hostname = g_strndup (temp, p - temp); - if (*p) - p++; /* Skip ] (if there) */ - } - else - { - temp = p; - while (*p && *p != '/' && *p != '?' && *p != '#' && *p != ':') ++p; - if ((p - temp) == 0) - goto error; - guri->hostname = g_strndup (temp, p - temp); - } - - /* Port */ - if (*p == ':') - { - for (++p; isdigit((int)*p); ++p) - guri->port = guri->port * 10 + (*p - '0'); - } - - } - - /* Path (we are liberal and won't check if it starts with /) */ - temp = p; - while (*p && *p != '?' && *p != '#') - ++p; - if (p != temp) - guri->path = g_strndup(temp, p - temp); - - /* Query */ - if (*p == '?') - { - temp = p + 1; - while (*p && *p != '#') - ++p; - guri->query = g_strndup (temp, p - temp); - } - - /* Fragment */ - if (*p == '#') - { - ++p; - guri->fragment = g_strdup (p); - } - - return guri; - - error: - gnet_uri_delete (guri); - return NULL; -} - - -/** - * gnet_uri_new_fields - * @scheme: scheme - * @hostname: host name - * @port: port - * @path: path - * - * Creates a #GURI from the fields. This function uses the most - * common fields. Use gnet_uri_new_fields_all() to specify all - * fields. - * - * Returns: a new #GURI. - * - **/ -GURI* -gnet_uri_new_fields (const char* scheme, const char* hostname, - const gint port, const char* path) -{ - GURI* uri = NULL; - - uri = g_new0 (GURI, 1); - if (scheme) uri->scheme = g_strdup (scheme); - if (hostname) uri->hostname = g_strdup (hostname); - uri->port = port; - if (path) uri->path = g_strdup (path); - - return uri; -} - - -/** - * gnet_uri_new_fields_all - * @scheme: scheme - * @userinfo: user info - * @hostname: host name - * @port: port - * @path: path - * @query: query - * @fragment: fragment - * - * Creates a #GURI from all fields. - * - * Returns: a new #GURI. - * - **/ -GURI* -gnet_uri_new_fields_all (const char* scheme, const char* user, - const char* passwd, const char* hostname, - const gint port, const char* path, - const char* query, const char* fragment) -{ - GURI* uri = NULL; - - uri = g_new0 (GURI, 1); - if (scheme) uri->scheme = g_strdup (scheme); - if (user) uri->user = g_strdup (user); - if (passwd) uri->passwd = g_strdup (passwd); - if (hostname) uri->hostname = g_strdup (hostname); - uri->port = port; - if (path) uri->path = g_strdup (path); - if (query) uri->query = g_strdup (query); - if (fragment) uri->fragment = g_strdup (fragment); - - return uri; -} - - -/** - * gnet_uri_clone: - * @uri: a #GURI - * - * Copies a #GURI. - * - * Returns: a copy of @uri. - * - **/ -GURI* -gnet_uri_clone (const GURI* uri) -{ - GURI* uri2; - - g_return_val_if_fail (uri, NULL); - - uri2 = g_new0 (GURI, 1); - uri2->scheme = g_strdup (uri->scheme); - uri2->user = g_strdup (uri->user); - uri2->passwd = g_strdup (uri->passwd); - uri2->hostname = g_strdup (uri->hostname); - uri2->port = uri->port; - uri2->path = g_strdup (uri->path); - uri2->query = g_strdup (uri->query); - uri2->fragment = g_strdup (uri->fragment); - - return uri2; -} - - -/** - * gnet_uri_delete: - * @uri: a #GURI - * - * Deletes a #GURI. - * - **/ -void -gnet_uri_delete (GURI* uri) -{ - if (uri) - { - g_free (uri->scheme); - g_free (uri->user); - g_free (uri->passwd); - g_free (uri->hostname); - g_free (uri->path); - g_free (uri->query); - g_free (uri->fragment); - g_free (uri); - } -} - - - - -#define SAFESTRCMP(A,B) (((A)&&(B))?(strcmp((A),(B))):((A)||(B))) - -/** - * gnet_uri_equal - * @p1: a #GURI - * @p2: another #GURI - * - * Compares two #GURI's for equality. - * - * Returns: TRUE if they are equal; FALSE otherwise. - * - **/ -int -gnet_uri_equal (gconstpointer p1, gconstpointer p2) -{ - const GURI* uri1 = (const GURI*) p1; - const GURI* uri2 = (const GURI*) p2; - - g_return_val_if_fail (uri1, FALSE); - g_return_val_if_fail (uri2, FALSE); - - if (uri1->port == uri2->port && - !SAFESTRCMP(uri1->scheme, uri2->scheme) && - !SAFESTRCMP(uri1->user, uri2->user) && - !SAFESTRCMP(uri1->passwd, uri2->passwd) && - !SAFESTRCMP(uri1->hostname, uri2->hostname) && - !SAFESTRCMP(uri1->path, uri2->path) && - !SAFESTRCMP(uri1->query, uri2->query) && - !SAFESTRCMP(uri1->fragment, uri2->fragment)) - return TRUE; - - return FALSE; -} - - -/** - * gnet_uri_hash - * @p: a #GURI - * - * Creates a hash code for @p for use with GHashTable. - * - * Returns: hash code for @p. - * - **/ -guint -gnet_uri_hash (gconstpointer p) -{ - const GURI* uri = (const GURI*) p; - guint h = 0; - - g_return_val_if_fail (uri, 0); - - if (uri->scheme) h = g_str_hash (uri->scheme); - if (uri->user) h ^= g_str_hash (uri->user); - if (uri->passwd) h ^= g_str_hash (uri->passwd); - if (uri->hostname) h ^= g_str_hash (uri->hostname); - h ^= uri->port; - if (uri->path) h ^= g_str_hash (uri->path); - if (uri->query) h ^= g_str_hash (uri->query); - if (uri->fragment) h ^= g_str_hash (uri->fragment); - - return h; -} - - -/** - * gnet_uri_escape - * @uri: a #GURI - * - * Escapes the fields in a #GURI. Network protocols use escaped - * URIs. People use unescaped URIs. - * - **/ -void -gnet_uri_escape (GURI* uri) -{ - g_return_if_fail (uri); - - uri->user = field_escape (uri->user, USERINFO_ESCAPE_MASK); - uri->passwd = field_escape (uri->passwd, USERINFO_ESCAPE_MASK); - uri->path = field_escape (uri->path, PATH_ESCAPE_MASK); - uri->query = field_escape (uri->query, QUERY_ESCAPE_MASK); - uri->fragment = field_escape (uri->fragment, FRAGMENT_ESCAPE_MASK); -} - - -/** - * gnet_uri_unescape - * @uri: a #GURI - * - * Unescapes the fields in the URI. Network protocols use escaped - * URIs. People use unescaped URIs. - * - **/ -void -gnet_uri_unescape (GURI* uri) -{ - g_return_if_fail (uri); - - if (uri->user) - field_unescape (uri->user); - if (uri->passwd) - field_unescape (uri->passwd); - if (uri->path) - field_unescape (uri->path); - if (uri->query) - field_unescape (uri->query); - if (uri->fragment) - field_unescape (uri->fragment); -} - - -static char* -field_escape (char* str, unsigned char mask) -{ - gint len; - gint i; - int must_escape = FALSE; - char* dst; - gint j; - - if (str == NULL) - return NULL; - - /* Roughly calculate buffer size */ - len = 0; - for (i = 0; str[i]; i++) - { - if (neednt_escape_table[(guint) str[i]] & mask) - len++; - else - { - len += 3; - must_escape = TRUE; - } - } - - /* Don't escape if unnecessary */ - if (must_escape == FALSE) - return str; - - /* Allocate buffer */ - dst = (char*) g_malloc(len + 1); - - /* Copy */ - for (i = j = 0; str[i]; i++, j++) - { - /* Unescaped character */ - if (neednt_escape_table[(guint) str[i]] & mask) - { - dst[j] = str[i]; - } - - /* Escaped character */ - else - { - dst[j] = '%'; - - if (((str[i] & 0xf0) >> 4) < 10) - dst[j+1] = ((str[i] & 0xf0) >> 4) + '0'; - else - dst[j+1] = ((str[i] & 0xf0) >> 4) + 'a' - 10; - - if ((str[i] & 0x0f) < 10) - dst[j+2] = (str[i] & 0x0f) + '0'; - else - dst[j+2] = (str[i] & 0x0f) + 'a' - 10; - - j += 2; /* and j is incremented in loop too */ - } - } - dst[j] = '\0'; - - g_free (str); - return dst; -} - - - -static void -field_unescape (char* s) -{ - char* src; - char* dst; - - for (src = dst = s; *src; ++src, ++dst) - { - if (src[0] == '%' && src[1] != '\0' && src[2] != '\0') - { - gint high, low; - - if ('a' <= src[1] && src[1] <= 'f') - high = src[1] - 'a' + 10; - else if ('A' <= src[1] && src[1] <= 'F') - high = src[1] - 'A' + 10; - else if ('0' <= src[1] && src[1] <= '9') - high = src[1] - '0'; - else /* malformed */ - goto regular_copy; - - if ('a' <= src[2] && src[2] <= 'f') - low = src[2] - 'a' + 10; - else if ('A' <= src[2] && src[2] <= 'F') - low = src[2] - 'A' + 10; - else if ('0' <= src[2] && src[2] <= '9') - low = src[2] - '0'; - else /* malformed */ - goto regular_copy; - - *dst = (char)((high << 4) + low); - src += 2; - } - else - { - regular_copy: - *dst = *src; - } - } - - *dst = '\0'; -} - - - -/** - * gnet_uri_get_string - * @uri: a #GURI - * - * Gets a string representation of a #GURI. This function does not - * escape or unescape the fields first. Call gnet_uri_escape() or - * gnet_uri_unescape first if necessary. - * - * Returns: a string. - * - **/ -char* -gnet_uri_get_string (const GURI* uri) -{ - char* rv = NULL; - GString* buffer = NULL; - - g_return_val_if_fail (uri, NULL); - - buffer = g_string_sized_new (16); - - if (uri->scheme) - g_string_sprintfa (buffer, "%s:", uri->scheme); - - if (uri->user || uri->passwd || uri->hostname || uri->port) - g_string_append (buffer, "//"); - - if (uri->user) - { - buffer = g_string_append (buffer, uri->user); - buffer = g_string_append_c (buffer, '@'); - } - if (uri->passwd) - { - buffer = g_string_append (buffer, uri->passwd); - buffer = g_string_append_c (buffer, '@'); - } - - /* Add brackets around the hostname if it's IPv6 */ - if (uri->hostname) - { - if (strchr(uri->hostname, ':') == NULL) - buffer = g_string_append (buffer, uri->hostname); - else - g_string_sprintfa (buffer, "[%s]", uri->hostname); - } - - if (uri->port) - g_string_sprintfa (buffer, ":%d", uri->port); - - if (uri->path) - { - if (*uri->path == '/' || - !(uri->user || uri->passwd || uri->hostname || uri->port)) - g_string_append (buffer, uri->path); - else - g_string_sprintfa (buffer, "/%s", uri->path); - } - - if (uri->query) - g_string_sprintfa (buffer, "?%s", uri->query); - - if (uri->fragment) - g_string_sprintfa (buffer, "#%s", uri->fragment); - - /* Free only GString not data contained, return the data instead */ - rv = buffer->str; - g_string_free (buffer, FALSE); - return rv; -} - - -/** - * gnet_uri_set_scheme - * @uri: a #GURI - * @scheme: scheme - * - * Sets a #GURI's scheme. - * - **/ -void -gnet_uri_set_scheme (GURI* uri, const char* scheme) -{ - g_return_if_fail (uri); - - if (uri->scheme) - { - g_free (uri->scheme); - uri->scheme = NULL; - } - - if (scheme) - uri->scheme = g_strdup (scheme); -} - - -/** - * gnet_uri_set_userinfo - * @uri: a #GURI - * @userinfo: user info - * - * Sets a #GURI's user info. - * - **/ -void -gnet_uri_set_userinfo (GURI* uri, const char* user, const char* passwd) -{ - g_return_if_fail (uri); - - if (uri->user) - { - g_free (uri->user); - uri->user = NULL; - } - if (uri->passwd) - { - g_free (uri->passwd); - uri->passwd = NULL; - } - - if (user) - uri->user = g_strdup (user); - if (passwd) - uri->passwd = g_strdup (passwd); -} - - -/** - * gnet_uri_set_hostname - * @uri: a #GURI - * @hostname: host name - * - * Sets a #GURI's host name. - * - **/ -void -gnet_uri_set_hostname (GURI* uri, const char* hostname) -{ - g_return_if_fail (uri); - - if (uri->hostname) - { - g_free (uri->hostname); - uri->hostname = NULL; - } - - if (hostname) - uri->hostname = g_strdup (hostname); -} - - -/** - * gnet_uri_set_port - * @uri: a #GURI - * @port: port - * - * Set a #GURI's port. - * - **/ -void -gnet_uri_set_port (GURI* uri, gint port) -{ - uri->port = port; -} - - -/** - * gnet_uri_set_path - * @uri: a #GURI - * @path: path - * - * Set a #GURI's path. - * - **/ -void -gnet_uri_set_path (GURI* uri, const char* path) -{ - g_return_if_fail (uri); - - if (uri->path) - { - g_free (uri->path); - uri->path = NULL; - } - - if (path) - uri->path = g_strdup (path); -} - - - -/** - * gnet_uri_set_query - * @uri: a #GURI - * @query: query - * - * Set a #GURI's query. - * - **/ -void -gnet_uri_set_query (GURI* uri, const char* query) -{ - g_return_if_fail (uri); - - if (uri->query) - { - g_free (uri->query); - uri->query = NULL; - } - - if (query) - uri->query = g_strdup (query); -} - - -/** - * gnet_uri_set_fragment - * @uri: a #GURI - * @fragment: fragment - * - * Set a #GURI's fragment. - * - **/ -void -gnet_uri_set_fragment (GURI* uri, const char* fragment) -{ - g_return_if_fail (uri); - - if (uri->fragment) - { - g_free (uri->fragment); - uri->fragment = NULL; - } - - if (fragment) - uri->fragment = g_strdup (fragment); -} - - -/** - * gnet_mms_helper - * @uri: a #GURI - * - * returns char* representation of an uri that is sutable for - * using in mms protocol. - * '/path?query' - * - **/ - -char* gnet_mms_helper(const GURI* uri) -{ - size_t len = 0; - char *ret, *tmp = NULL; - - - /* Strip leading slashes and calculate the length of the path - * which might not be present in the URI */ - if (uri->path) { - tmp = uri->path; - while (*tmp == '/') - ++tmp; - len += strlen(tmp); - } - /* Append length of the query part */ - if (uri->query) - len += strlen(uri->query) + 1; /* + '?' */ - - if (!(ret = (char *) malloc(len + 2))) - return NULL; - - strcpy(ret, "/"); - - /* Copy the optional path */ - if (tmp) - strcat(ret, tmp); - - /* Copy the optional query */ - if (uri->query) { - strcat(ret, "?"); - strcat(ret, uri->query); - } - - return ret; -} diff --git a/lib/win32/libmms_win32/src/uri.h b/lib/win32/libmms_win32/src/uri.h deleted file mode 100644 index c7a93edfe9239..0000000000000 --- a/lib/win32/libmms_win32/src/uri.h +++ /dev/null @@ -1,94 +0,0 @@ -/* GNet - Networking library - * Copyright (C) 2000-2001 David Helder, David Bolcsfoldi - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ - - -#ifndef _GNET_URI_H -#define _GNET_URI_H - -#include - -#ifdef __cplusplus -extern "C" { -#endif /* __cplusplus */ - - -/** - * GURI: - * @scheme: Scheme (or protocol) - * @userinfo: User info - * @hostname: Host name - * @port: Port number - * @path: Path - * @query: Query - * @fragment: Fragment - * - * The #GURI structure represents a URI. All fields in this - * structure are publicly readable. - * - **/ -typedef struct _GURI GURI; - -struct _GURI -{ - char* scheme; - char* user; - char* passwd; - char* hostname; - gint port; - char* path; - char* query; - char* fragment; -}; - - - -GURI* gnet_uri_new (const char* uri); -GURI* gnet_uri_new_fields (const char* scheme, const char* hostname, - const gint port, const char* path); -GURI* -gnet_uri_new_fields_all (const char* scheme, const char* user, - const char* passwd, const char* hostname, - const gint port, const char* path, - const char* query, const char* fragment); -GURI* gnet_uri_clone (const GURI* uri); -void gnet_uri_delete (GURI* uri); - -gboolean gnet_uri_equal (gconstpointer p1, gconstpointer p2); -guint gnet_uri_hash (gconstpointer p); - -void gnet_uri_escape (GURI* uri); -void gnet_uri_unescape (GURI* uri); - -char* gnet_uri_get_string (const GURI* uri); - -void gnet_uri_set_scheme (GURI* uri, const char* scheme); -void gnet_uri_set_userinfo (GURI* uri, const char* user, const char* passwd); -void gnet_uri_set_hostname (GURI* uri, const char* hostname); -void gnet_uri_set_port (GURI* uri, gint port); -void gnet_uri_set_path (GURI* uri, const char* path); -void gnet_uri_set_query (GURI* uri, const char* query); -void gnet_uri_set_fragment (GURI* uri, const char* fragment); - -char* gnet_mms_helper(const GURI* uri); - -#ifdef __cplusplus -} -#endif /* __cplusplus */ - -#endif /* _GNET_URI_H */ diff --git a/lib/win32/libmms_win32/src/utils.c b/lib/win32/libmms_win32/src/utils.c deleted file mode 100644 index 985dd58916359..0000000000000 --- a/lib/win32/libmms_win32/src/utils.c +++ /dev/null @@ -1,37 +0,0 @@ -/* - * Copyright (C) 2008 the xine project - * - * This file is part of LibMMS, an MMS protocol handling library. - * - * xine is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the ree Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * xine 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 this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA - * - * $Id: mms.c,v 1.31 2007/12/11 20:35:01 jwrdegoede Exp $ - */ - -#ifdef HAVE_CONFIG_H -#include "config.h" -#endif - -#include -#include "utils.h" - -gdouble util_guint64_to_gdouble (guint64 value) -{ - if (value & G_GINT64_CONSTANT (0x8000000000000000)) - return (gdouble) ((gint64) value) + (gdouble) 18446744073709551616.; - else - return (gdouble) ((gint64) value); -} - diff --git a/lib/win32/libmms_win32/src/utils.h b/lib/win32/libmms_win32/src/utils.h deleted file mode 100644 index 1823f76f755b8..0000000000000 --- a/lib/win32/libmms_win32/src/utils.h +++ /dev/null @@ -1,40 +0,0 @@ -/* - * Copyright (C) 2008 the xine project - * - * This file is part of LibMMS, an MMS protocol handling library. - * - * xine is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the ree Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * xine 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 this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA - * - * $Id: mms.c,v 1.31 2007/12/11 20:35:01 jwrdegoede Exp $ - */ - -#ifndef __UTILS_H__ -#define __UTILS_H__ - -#include - -G_BEGIN_DECLS - -gdouble util_guint64_to_gdouble (guint64 value); - -#ifdef WIN32 -#define guint64_to_gdouble(value) util_guint64_to_gdouble(value) -#else -#define guint64_to_gdouble(value) ((gdouble) (value)) -#endif - -G_END_DECLS - -#endif /* __UTILS_H__ */ diff --git a/project/VS2010Express/XBMC for Windows.sln b/project/VS2010Express/XBMC for Windows.sln index db9786d2e812f..ed28b5c245d64 100644 --- a/project/VS2010Express/XBMC for Windows.sln +++ b/project/VS2010Express/XBMC for Windows.sln @@ -1,5 +1,5 @@ Microsoft Visual Studio Solution File, Format Version 11.00 -# Visual C++ Express 2010 +# Visual Studio 2010 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "XBMC", "XBMC.vcxproj", "{3A68081D-E8F9-4523-9436-530DE9E5530A}" ProjectSection(ProjectDependencies) = postProject {78B079BD-9FC7-4B9E-B4A6-96DA0F00248B} = {78B079BD-9FC7-4B9E-B4A6-96DA0F00248B} @@ -11,8 +11,6 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "UnrarXLib", "UnrarXLib.vcxp EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libhts", "..\..\lib\libhts\Win32\libhts_2010.vcxproj", "{00700E12-A63B-4E54-B962-4011A90584BD}" EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libmms", "..\..\lib\win32\libmms_win32\msvc++\libmms.vcxproj", "{3A575CF0-45B3-41CC-85E2-9F9CE8C56B38}" -EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "glib", "..\..\lib\win32\glib-2.20.4\build\win32\vs10\glib.vcxproj", "{12BCA020-EABF-429E-876A-A476BC9C10C0}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libass_dll", "..\..\lib\libass\xbmc\libass_win32\libass_win32_vs2010.vcxproj", "{BA5B08FC-2ECB-4571-9F25-F8054522FC65}" @@ -108,21 +106,21 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "cpluff", "..\..\lib\cpluff\ EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libmp3lame_dll", "..\..\lib\liblame\vc_solution\vc10_libmp3lame_dll.vcxproj", "{92BD50AA-04D6-4FBF-ACE1-468FAF6778F2}" EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "python_make_versioninfo", "..\..\lib\Python\PCbuild\make_versioninfo.vcxproj", "{FC7EBFE5-233C-4608-A4D9-5EF512BA96BF}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "python_make_versioninfo", "..\..\lib\python\PCbuild\make_versioninfo.vcxproj", "{FC7EBFE5-233C-4608-A4D9-5EF512BA96BF}" EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pythoncore_dll", "..\..\lib\Python\PCbuild\pythoncore.vcxproj", "{9E417A6D-50DE-4969-8542-F58EA1163376}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pythoncore_dll", "..\..\lib\python\PCbuild\pythoncore.vcxproj", "{9E417A6D-50DE-4969-8542-F58EA1163376}" EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "python_zlib.pyd", "..\..\lib\Python\PCbuild\zlib_python.vcxproj", "{680CDC79-9CCA-4282-9A8D-927CB0DB55B2}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "python_zlib.pyd", "..\..\lib\python\PCbuild\zlib_python.vcxproj", "{680CDC79-9CCA-4282-9A8D-927CB0DB55B2}" EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "python__socket.pyd", "..\..\lib\Python\PCbuild\_socket.vcxproj", "{324F66C2-44D0-4D50-B979-F9DAE7FD36DB}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "python__socket.pyd", "..\..\lib\python\PCbuild\_socket.vcxproj", "{324F66C2-44D0-4D50-B979-F9DAE7FD36DB}" EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "python_pyexpat.pyd", "..\..\lib\Python\PCbuild\pyexpat.vcxproj", "{7E551393-3C43-47F8-9F3F-5BC368A6C487}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "python_pyexpat.pyd", "..\..\lib\python\PCbuild\pyexpat.vcxproj", "{7E551393-3C43-47F8-9F3F-5BC368A6C487}" EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "python_select.pyd", "..\..\lib\Python\PCbuild\select.vcxproj", "{97239A56-DBC0-41D2-BC14-C87D9B97D63B}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "python_select.pyd", "..\..\lib\python\PCbuild\select.vcxproj", "{97239A56-DBC0-41D2-BC14-C87D9B97D63B}" EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "python_unicodedata.pyd", "..\..\lib\Python\PCbuild\unicodedata.vcxproj", "{FA5FC7EB-C72F-415F-AE42-91DD605ABDDA}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "python_unicodedata.pyd", "..\..\lib\python\PCbuild\unicodedata.vcxproj", "{FA5FC7EB-C72F-415F-AE42-91DD605ABDDA}" EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "python_bz2.pyd", "..\..\lib\Python\PCbuild\bz2.vcxproj", "{62C61EDD-FDC6-4F2C-9ED6-0FEC3C07D616}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "python_bz2.pyd", "..\..\lib\python\PCbuild\bz2.vcxproj", "{62C61EDD-FDC6-4F2C-9ED6-0FEC3C07D616}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libhdhomerun_dll", "..\..\lib\libhdhomerun\hdhomerun\hdhomerun.vcxproj", "{1E2FB608-3DD2-4021-A598-90008FA6DE85}" EndProject @@ -166,14 +164,6 @@ Global {00700E12-A63B-4E54-B962-4011A90584BD}.Release (DirectX)|Win32.Build.0 = Release|Win32 {00700E12-A63B-4E54-B962-4011A90584BD}.Release (OpenGL)|Win32.ActiveCfg = Release|Win32 {00700E12-A63B-4E54-B962-4011A90584BD}.Release (OpenGL)|Win32.Build.0 = Release|Win32 - {3A575CF0-45B3-41CC-85E2-9F9CE8C56B38}.Debug (DirectX)|Win32.ActiveCfg = Debug|Win32 - {3A575CF0-45B3-41CC-85E2-9F9CE8C56B38}.Debug (DirectX)|Win32.Build.0 = Debug|Win32 - {3A575CF0-45B3-41CC-85E2-9F9CE8C56B38}.Debug (OpenGL)|Win32.ActiveCfg = Debug|Win32 - {3A575CF0-45B3-41CC-85E2-9F9CE8C56B38}.Debug (OpenGL)|Win32.Build.0 = Debug|Win32 - {3A575CF0-45B3-41CC-85E2-9F9CE8C56B38}.Release (DirectX)|Win32.ActiveCfg = Release|Win32 - {3A575CF0-45B3-41CC-85E2-9F9CE8C56B38}.Release (DirectX)|Win32.Build.0 = Release|Win32 - {3A575CF0-45B3-41CC-85E2-9F9CE8C56B38}.Release (OpenGL)|Win32.ActiveCfg = Release|Win32 - {3A575CF0-45B3-41CC-85E2-9F9CE8C56B38}.Release (OpenGL)|Win32.Build.0 = Release|Win32 {12BCA020-EABF-429E-876A-A476BC9C10C0}.Debug (DirectX)|Win32.ActiveCfg = Debug|Win32 {12BCA020-EABF-429E-876A-A476BC9C10C0}.Debug (DirectX)|Win32.Build.0 = Debug|Win32 {12BCA020-EABF-429E-876A-A476BC9C10C0}.Debug (OpenGL)|Win32.ActiveCfg = Debug|Win32 diff --git a/project/VS2010Express/XBMC.vcxproj b/project/VS2010Express/XBMC.vcxproj index a81fa30da2c3a..209d761afc242 100644 --- a/project/VS2010Express/XBMC.vcxproj +++ b/project/VS2010Express/XBMC.vcxproj @@ -801,7 +801,6 @@ - @@ -1650,7 +1649,6 @@ - @@ -1960,10 +1958,6 @@ {00700e12-a63b-4e54-b962-4011a90584bd} false - - {3a575cf0-45b3-41cc-85e2-9f9ce8c56b38} - false - {dd4818ae-7e35-40b7-a6a0-0ff83aa1c916} true diff --git a/project/VS2010Express/XBMC.vcxproj.filters b/project/VS2010Express/XBMC.vcxproj.filters index 5ffb89e75152e..f070757d66701 100644 --- a/project/VS2010Express/XBMC.vcxproj.filters +++ b/project/VS2010Express/XBMC.vcxproj.filters @@ -423,9 +423,6 @@ cores\dvdplayer\DVDInputStreams - - cores\dvdplayer\DVDInputStreams - cores\dvdplayer\DVDInputStreams @@ -2704,9 +2701,6 @@ cores\dvdplayer\DVDInputStreams - - cores\dvdplayer\DVDInputStreams - cores\dvdplayer\DVDInputStreams From 173faaace05103f6a01ce74876bee3d5719313f6 Mon Sep 17 00:00:00 2001 From: elupus Date: Sun, 6 Feb 2011 16:13:18 +0100 Subject: [PATCH 4/5] removed: glib now that libmms doesn't need it --- lib/win32/glib-2.20.4/build/ChangeLog | 591 - lib/win32/glib-2.20.4/build/Makefile.am | 7 - lib/win32/glib-2.20.4/build/Makefile.in | 655 - lib/win32/glib-2.20.4/build/README | 2 - lib/win32/glib-2.20.4/build/win32/Makefile.am | 8 - lib/win32/glib-2.20.4/build/win32/Makefile.in | 656 - .../build/win32/dirent/Makefile.am | 9 - .../build/win32/dirent/Makefile.in | 453 - .../glib-2.20.4/build/win32/dirent/README | 2 - .../glib-2.20.4/build/win32/dirent/dirent-zip | 19 - .../glib-2.20.4/build/win32/dirent/dirent.c | 341 - .../glib-2.20.4/build/win32/dirent/dirent.h | 127 - .../build/win32/dirent/makefile.msc | 16 - .../glib-2.20.4/build/win32/dirent/wdirent.c | 3 - lib/win32/glib-2.20.4/build/win32/make.msc | 181 - lib/win32/glib-2.20.4/build/win32/module.defs | 113 - .../glib-2.20.4/build/win32/vs10/glib.vcxproj | 169 - .../build/win32/vs10/glib.vcxproj.filters | 212 - .../glib-2.20.4/build/win32/vs9/glib.sln | 25 - .../glib-2.20.4/build/win32/vs9/glib.vcproj | 451 - lib/win32/glib-2.20.4/config.h | 743 - lib/win32/glib-2.20.4/glib/Makefile.am | 364 - lib/win32/glib-2.20.4/glib/Makefile.in | 1528 -- lib/win32/glib-2.20.4/glib/galias.h | 3886 ---- lib/win32/glib-2.20.4/glib/galiasdef.c | 3889 ---- lib/win32/glib-2.20.4/glib/galloca.h | 63 - lib/win32/glib-2.20.4/glib/garray.c | 719 - lib/win32/glib-2.20.4/glib/garray.h | 169 - lib/win32/glib-2.20.4/glib/gasyncqueue.c | 666 - lib/win32/glib-2.20.4/glib/gasyncqueue.h | 120 - lib/win32/glib-2.20.4/glib/gatomic.c | 1058 - lib/win32/glib-2.20.4/glib/gatomic.h | 85 - lib/win32/glib-2.20.4/glib/gbacktrace.c | 308 - lib/win32/glib-2.20.4/glib/gbacktrace.h | 68 - lib/win32/glib-2.20.4/glib/gbase64.c | 423 - lib/win32/glib-2.20.4/glib/gbase64.h | 57 - lib/win32/glib-2.20.4/glib/gbookmarkfile.c | 3709 ---- lib/win32/glib-2.20.4/glib/gbookmarkfile.h | 191 - lib/win32/glib-2.20.4/glib/gbsearcharray.h | 303 - lib/win32/glib-2.20.4/glib/gcache.c | 197 - lib/win32/glib-2.20.4/glib/gcache.h | 69 - lib/win32/glib-2.20.4/glib/gchecksum.c | 1439 -- lib/win32/glib-2.20.4/glib/gchecksum.h | 86 - lib/win32/glib-2.20.4/glib/gcompletion.c | 350 - lib/win32/glib-2.20.4/glib/gcompletion.h | 77 - lib/win32/glib-2.20.4/glib/gconvert.c | 2116 -- lib/win32/glib-2.20.4/glib/gconvert.h | 138 - lib/win32/glib-2.20.4/glib/gdataset.c | 759 - lib/win32/glib-2.20.4/glib/gdataset.h | 122 - lib/win32/glib-2.20.4/glib/gdatasetprivate.h | 44 - lib/win32/glib-2.20.4/glib/gdate.c | 1905 -- lib/win32/glib-2.20.4/glib/gdate.h | 263 - lib/win32/glib-2.20.4/glib/gdebug.h | 59 - lib/win32/glib-2.20.4/glib/gdir.c | 302 - lib/win32/glib-2.20.4/glib/gdir.h | 52 - lib/win32/glib-2.20.4/glib/gerror.c | 375 - lib/win32/glib-2.20.4/glib/gerror.h | 92 - lib/win32/glib-2.20.4/glib/gfileutils.c | 1965 -- lib/win32/glib-2.20.4/glib/gfileutils.h | 125 - lib/win32/glib-2.20.4/glib/ghash.c | 1346 -- lib/win32/glib-2.20.4/glib/ghash.h | 145 - lib/win32/glib-2.20.4/glib/ghook.c | 638 - lib/win32/glib-2.20.4/glib/ghook.h | 181 - lib/win32/glib-2.20.4/glib/gi18n-lib.h | 38 - lib/win32/glib-2.20.4/glib/gi18n.h | 34 - lib/win32/glib-2.20.4/glib/giochannel.c | 2389 -- lib/win32/glib-2.20.4/glib/giochannel.h | 366 - lib/win32/glib-2.20.4/glib/giounix.c | 609 - lib/win32/glib-2.20.4/glib/giowin32.c | 2191 -- lib/win32/glib-2.20.4/glib/gkeyfile.c | 3780 ---- lib/win32/glib-2.20.4/glib/gkeyfile.h | 250 - lib/win32/glib-2.20.4/glib/glib-object.h | 41 - lib/win32/glib-2.20.4/glib/glib.def | 1658 -- lib/win32/glib-2.20.4/glib/glib.h | 93 - lib/win32/glib-2.20.4/glib/glibintl.h | 38 - lib/win32/glib-2.20.4/glib/glist.c | 999 - lib/win32/glib-2.20.4/glib/glist.h | 120 - lib/win32/glib-2.20.4/glib/gmacros.h | 277 - lib/win32/glib-2.20.4/glib/gmain.c | 4036 ---- lib/win32/glib-2.20.4/glib/gmain.h | 299 - lib/win32/glib-2.20.4/glib/gmappedfile.c | 278 - lib/win32/glib-2.20.4/glib/gmappedfile.h | 44 - lib/win32/glib-2.20.4/glib/gmarkup.c | 2996 --- lib/win32/glib-2.20.4/glib/gmarkup.h | 163 - lib/win32/glib-2.20.4/glib/gmem.c | 730 - lib/win32/glib-2.20.4/glib/gmem.h | 152 - lib/win32/glib-2.20.4/glib/gmessages.c | 1123 - lib/win32/glib-2.20.4/glib/gmessages.h | 341 - lib/win32/glib-2.20.4/glib/gmirroringtable.h | 901 - lib/win32/glib-2.20.4/glib/gnode.c | 1165 - lib/win32/glib-2.20.4/glib/gnode.h | 288 - lib/win32/glib-2.20.4/glib/gnulib/Makefile.am | 22 - lib/win32/glib-2.20.4/glib/gnulib/Makefile.in | 643 - lib/win32/glib-2.20.4/glib/gnulib/README | 44 - lib/win32/glib-2.20.4/glib/gnulib/asnprintf.c | 40 - lib/win32/glib-2.20.4/glib/gnulib/g-gnulib.h | 50 - .../glib-2.20.4/glib/gnulib/makefile.msc | 18 - .../glib-2.20.4/glib/gnulib/printf-args.c | 133 - .../glib-2.20.4/glib/gnulib/printf-args.h | 142 - .../glib-2.20.4/glib/gnulib/printf-parse.c | 498 - .../glib-2.20.4/glib/gnulib/printf-parse.h | 74 - lib/win32/glib-2.20.4/glib/gnulib/printf.c | 154 - lib/win32/glib-2.20.4/glib/gnulib/printf.h | 57 - .../glib-2.20.4/glib/gnulib/vasnprintf.c | 1081 - .../glib-2.20.4/glib/gnulib/vasnprintf.h | 61 - lib/win32/glib-2.20.4/glib/goption.c | 2242 -- lib/win32/glib-2.20.4/glib/goption.h | 163 - lib/win32/glib-2.20.4/glib/gpattern.c | 343 - lib/win32/glib-2.20.4/glib/gpattern.h | 49 - lib/win32/glib-2.20.4/glib/gpoll.c | 430 - lib/win32/glib-2.20.4/glib/gpoll.h | 93 - lib/win32/glib-2.20.4/glib/gprimes.c | 90 - lib/win32/glib-2.20.4/glib/gprimes.h | 51 - lib/win32/glib-2.20.4/glib/gprintf.c | 344 - lib/win32/glib-2.20.4/glib/gprintf.h | 52 - lib/win32/glib-2.20.4/glib/gprintfint.h | 59 - lib/win32/glib-2.20.4/glib/gqsort.c | 287 - lib/win32/glib-2.20.4/glib/gqsort.h | 46 - lib/win32/glib-2.20.4/glib/gquark.h | 52 - lib/win32/glib-2.20.4/glib/gqueue.c | 1013 - lib/win32/glib-2.20.4/glib/gqueue.h | 127 - lib/win32/glib-2.20.4/glib/grand.c | 635 - lib/win32/glib-2.20.4/glib/grand.h | 85 - lib/win32/glib-2.20.4/glib/gregex.c | 2762 --- lib/win32/glib-2.20.4/glib/gregex.h | 243 - lib/win32/glib-2.20.4/glib/grel.c | 484 - lib/win32/glib-2.20.4/glib/grel.h | 97 - lib/win32/glib-2.20.4/glib/gscanner.c | 1767 -- lib/win32/glib-2.20.4/glib/gscanner.h | 278 - lib/win32/glib-2.20.4/glib/gscripttable.h | 3012 --- lib/win32/glib-2.20.4/glib/gsequence.c | 1750 -- lib/win32/glib-2.20.4/glib/gsequence.h | 128 - lib/win32/glib-2.20.4/glib/gshell.c | 673 - lib/win32/glib-2.20.4/glib/gshell.h | 55 - lib/win32/glib-2.20.4/glib/gslice.c | 1476 -- lib/win32/glib-2.20.4/glib/gslice.h | 90 - lib/win32/glib-2.20.4/glib/gslist.c | 948 - lib/win32/glib-2.20.4/glib/gslist.h | 114 - .../glib/gspawn-win32-helper-console.c | 2 - .../glib-2.20.4/glib/gspawn-win32-helper.c | 333 - lib/win32/glib-2.20.4/glib/gspawn-win32.c | 1494 -- .../glib/gspawn-win64-helper-console.c | 2 - .../glib-2.20.4/glib/gspawn-win64-helper.c | 1 - lib/win32/glib-2.20.4/glib/gspawn.c | 1671 -- lib/win32/glib-2.20.4/glib/gspawn.h | 139 - lib/win32/glib-2.20.4/glib/gstdio.c | 811 - lib/win32/glib-2.20.4/glib/gstdio.h | 122 - lib/win32/glib-2.20.4/glib/gstrfuncs.c | 3249 --- lib/win32/glib-2.20.4/glib/gstrfuncs.h | 266 - lib/win32/glib-2.20.4/glib/gstring.c | 1482 -- lib/win32/glib-2.20.4/glib/gstring.h | 178 - lib/win32/glib-2.20.4/glib/gtester.c | 711 - lib/win32/glib-2.20.4/glib/gtestutils.c | 2012 -- lib/win32/glib-2.20.4/glib/gtestutils.h | 267 - lib/win32/glib-2.20.4/glib/gthread.c | 993 - lib/win32/glib-2.20.4/glib/gthread.h | 404 - lib/win32/glib-2.20.4/glib/gthreadpool.c | 945 - lib/win32/glib-2.20.4/glib/gthreadpool.h | 114 - lib/win32/glib-2.20.4/glib/gthreadprivate.h | 68 - lib/win32/glib-2.20.4/glib/gtimer.c | 469 - lib/win32/glib-2.20.4/glib/gtimer.h | 65 - lib/win32/glib-2.20.4/glib/gtree.c | 1290 -- lib/win32/glib-2.20.4/glib/gtree.h | 89 - lib/win32/glib-2.20.4/glib/gtypes.h | 433 - lib/win32/glib-2.20.4/glib/gunibreak.c | 66 - lib/win32/glib-2.20.4/glib/gunibreak.h | 17919 ---------------- lib/win32/glib-2.20.4/glib/gunichartables.h | 13060 ----------- lib/win32/glib-2.20.4/glib/gunicode.h | 404 - lib/win32/glib-2.20.4/glib/gunicodeprivate.h | 35 - lib/win32/glib-2.20.4/glib/gunicollate.c | 679 - lib/win32/glib-2.20.4/glib/gunicomp.h | 682 - lib/win32/glib-2.20.4/glib/gunidecomp.c | 535 - lib/win32/glib-2.20.4/glib/gunidecomp.h | 10870 ---------- lib/win32/glib-2.20.4/glib/guniprop.c | 1302 -- lib/win32/glib-2.20.4/glib/gurifuncs.c | 245 - lib/win32/glib-2.20.4/glib/gurifuncs.h | 81 - lib/win32/glib-2.20.4/glib/gutf8.c | 1872 -- lib/win32/glib-2.20.4/glib/gutils.c | 3442 --- lib/win32/glib-2.20.4/glib/gutils.h | 487 - lib/win32/glib-2.20.4/glib/gwin32.c | 600 - lib/win32/glib-2.20.4/glib/gwin32.h | 114 - .../glib-2.20.4/glib/libcharset/Makefile.am | 64 - .../glib-2.20.4/glib/libcharset/Makefile.in | 672 - lib/win32/glib-2.20.4/glib/libcharset/README | 46 - .../glib-2.20.4/glib/libcharset/codeset.m4 | 21 - .../glib/libcharset/config.charset | 640 - .../glib-2.20.4/glib/libcharset/glibc21.m4 | 30 - .../glib/libcharset/libcharset-glib.patch | 77 - .../glib-2.20.4/glib/libcharset/libcharset.h | 46 - .../glib/libcharset/localcharset.c | 465 - .../glib/libcharset/localcharset.h | 43 - .../glib-2.20.4/glib/libcharset/make-patch.sh | 28 - .../glib-2.20.4/glib/libcharset/ref-add.sin | 31 - .../glib-2.20.4/glib/libcharset/ref-del.sin | 26 - .../glib-2.20.4/glib/libcharset/update.sh | 33 - lib/win32/glib-2.20.4/glib/makefile.msc | 141 - lib/win32/glib-2.20.4/glib/makefile.msc.in | 141 - lib/win32/glib-2.20.4/glib/makegalias.pl | 136 - lib/win32/glib-2.20.4/glib/pltcheck.sh | 25 - lib/win32/glib-2.20.4/glib/win_iconv.c | 1956 -- lib/win32/glib-2.20.4/glibconfig.h | 255 - .../glib-2.20.4/msvc_recommended_pragmas.h | 31 - project/VS2010Express/XBMC for Windows.sln | 10 - 203 files changed, 158608 deletions(-) delete mode 100644 lib/win32/glib-2.20.4/build/ChangeLog delete mode 100644 lib/win32/glib-2.20.4/build/Makefile.am delete mode 100644 lib/win32/glib-2.20.4/build/Makefile.in delete mode 100644 lib/win32/glib-2.20.4/build/README delete mode 100644 lib/win32/glib-2.20.4/build/win32/Makefile.am delete mode 100644 lib/win32/glib-2.20.4/build/win32/Makefile.in delete mode 100644 lib/win32/glib-2.20.4/build/win32/dirent/Makefile.am delete mode 100644 lib/win32/glib-2.20.4/build/win32/dirent/Makefile.in delete mode 100644 lib/win32/glib-2.20.4/build/win32/dirent/README delete mode 100644 lib/win32/glib-2.20.4/build/win32/dirent/dirent-zip delete mode 100644 lib/win32/glib-2.20.4/build/win32/dirent/dirent.c delete mode 100644 lib/win32/glib-2.20.4/build/win32/dirent/dirent.h delete mode 100644 lib/win32/glib-2.20.4/build/win32/dirent/makefile.msc delete mode 100644 lib/win32/glib-2.20.4/build/win32/dirent/wdirent.c delete mode 100644 lib/win32/glib-2.20.4/build/win32/make.msc delete mode 100644 lib/win32/glib-2.20.4/build/win32/module.defs delete mode 100644 lib/win32/glib-2.20.4/build/win32/vs10/glib.vcxproj delete mode 100644 lib/win32/glib-2.20.4/build/win32/vs10/glib.vcxproj.filters delete mode 100644 lib/win32/glib-2.20.4/build/win32/vs9/glib.sln delete mode 100644 lib/win32/glib-2.20.4/build/win32/vs9/glib.vcproj delete mode 100644 lib/win32/glib-2.20.4/config.h delete mode 100644 lib/win32/glib-2.20.4/glib/Makefile.am delete mode 100644 lib/win32/glib-2.20.4/glib/Makefile.in delete mode 100644 lib/win32/glib-2.20.4/glib/galias.h delete mode 100644 lib/win32/glib-2.20.4/glib/galiasdef.c delete mode 100644 lib/win32/glib-2.20.4/glib/galloca.h delete mode 100644 lib/win32/glib-2.20.4/glib/garray.c delete mode 100644 lib/win32/glib-2.20.4/glib/garray.h delete mode 100644 lib/win32/glib-2.20.4/glib/gasyncqueue.c delete mode 100644 lib/win32/glib-2.20.4/glib/gasyncqueue.h delete mode 100644 lib/win32/glib-2.20.4/glib/gatomic.c delete mode 100644 lib/win32/glib-2.20.4/glib/gatomic.h delete mode 100644 lib/win32/glib-2.20.4/glib/gbacktrace.c delete mode 100644 lib/win32/glib-2.20.4/glib/gbacktrace.h delete mode 100644 lib/win32/glib-2.20.4/glib/gbase64.c delete mode 100644 lib/win32/glib-2.20.4/glib/gbase64.h delete mode 100644 lib/win32/glib-2.20.4/glib/gbookmarkfile.c delete mode 100644 lib/win32/glib-2.20.4/glib/gbookmarkfile.h delete mode 100644 lib/win32/glib-2.20.4/glib/gbsearcharray.h delete mode 100644 lib/win32/glib-2.20.4/glib/gcache.c delete mode 100644 lib/win32/glib-2.20.4/glib/gcache.h delete mode 100644 lib/win32/glib-2.20.4/glib/gchecksum.c delete mode 100644 lib/win32/glib-2.20.4/glib/gchecksum.h delete mode 100644 lib/win32/glib-2.20.4/glib/gcompletion.c delete mode 100644 lib/win32/glib-2.20.4/glib/gcompletion.h delete mode 100644 lib/win32/glib-2.20.4/glib/gconvert.c delete mode 100644 lib/win32/glib-2.20.4/glib/gconvert.h delete mode 100644 lib/win32/glib-2.20.4/glib/gdataset.c delete mode 100644 lib/win32/glib-2.20.4/glib/gdataset.h delete mode 100644 lib/win32/glib-2.20.4/glib/gdatasetprivate.h delete mode 100644 lib/win32/glib-2.20.4/glib/gdate.c delete mode 100644 lib/win32/glib-2.20.4/glib/gdate.h delete mode 100644 lib/win32/glib-2.20.4/glib/gdebug.h delete mode 100644 lib/win32/glib-2.20.4/glib/gdir.c delete mode 100644 lib/win32/glib-2.20.4/glib/gdir.h delete mode 100644 lib/win32/glib-2.20.4/glib/gerror.c delete mode 100644 lib/win32/glib-2.20.4/glib/gerror.h delete mode 100644 lib/win32/glib-2.20.4/glib/gfileutils.c delete mode 100644 lib/win32/glib-2.20.4/glib/gfileutils.h delete mode 100644 lib/win32/glib-2.20.4/glib/ghash.c delete mode 100644 lib/win32/glib-2.20.4/glib/ghash.h delete mode 100644 lib/win32/glib-2.20.4/glib/ghook.c delete mode 100644 lib/win32/glib-2.20.4/glib/ghook.h delete mode 100644 lib/win32/glib-2.20.4/glib/gi18n-lib.h delete mode 100644 lib/win32/glib-2.20.4/glib/gi18n.h delete mode 100644 lib/win32/glib-2.20.4/glib/giochannel.c delete mode 100644 lib/win32/glib-2.20.4/glib/giochannel.h delete mode 100644 lib/win32/glib-2.20.4/glib/giounix.c delete mode 100644 lib/win32/glib-2.20.4/glib/giowin32.c delete mode 100644 lib/win32/glib-2.20.4/glib/gkeyfile.c delete mode 100644 lib/win32/glib-2.20.4/glib/gkeyfile.h delete mode 100644 lib/win32/glib-2.20.4/glib/glib-object.h delete mode 100644 lib/win32/glib-2.20.4/glib/glib.def delete mode 100644 lib/win32/glib-2.20.4/glib/glib.h delete mode 100644 lib/win32/glib-2.20.4/glib/glibintl.h delete mode 100644 lib/win32/glib-2.20.4/glib/glist.c delete mode 100644 lib/win32/glib-2.20.4/glib/glist.h delete mode 100644 lib/win32/glib-2.20.4/glib/gmacros.h delete mode 100644 lib/win32/glib-2.20.4/glib/gmain.c delete mode 100644 lib/win32/glib-2.20.4/glib/gmain.h delete mode 100644 lib/win32/glib-2.20.4/glib/gmappedfile.c delete mode 100644 lib/win32/glib-2.20.4/glib/gmappedfile.h delete mode 100644 lib/win32/glib-2.20.4/glib/gmarkup.c delete mode 100644 lib/win32/glib-2.20.4/glib/gmarkup.h delete mode 100644 lib/win32/glib-2.20.4/glib/gmem.c delete mode 100644 lib/win32/glib-2.20.4/glib/gmem.h delete mode 100644 lib/win32/glib-2.20.4/glib/gmessages.c delete mode 100644 lib/win32/glib-2.20.4/glib/gmessages.h delete mode 100644 lib/win32/glib-2.20.4/glib/gmirroringtable.h delete mode 100644 lib/win32/glib-2.20.4/glib/gnode.c delete mode 100644 lib/win32/glib-2.20.4/glib/gnode.h delete mode 100644 lib/win32/glib-2.20.4/glib/gnulib/Makefile.am delete mode 100644 lib/win32/glib-2.20.4/glib/gnulib/Makefile.in delete mode 100644 lib/win32/glib-2.20.4/glib/gnulib/README delete mode 100644 lib/win32/glib-2.20.4/glib/gnulib/asnprintf.c delete mode 100644 lib/win32/glib-2.20.4/glib/gnulib/g-gnulib.h delete mode 100644 lib/win32/glib-2.20.4/glib/gnulib/makefile.msc delete mode 100644 lib/win32/glib-2.20.4/glib/gnulib/printf-args.c delete mode 100644 lib/win32/glib-2.20.4/glib/gnulib/printf-args.h delete mode 100644 lib/win32/glib-2.20.4/glib/gnulib/printf-parse.c delete mode 100644 lib/win32/glib-2.20.4/glib/gnulib/printf-parse.h delete mode 100644 lib/win32/glib-2.20.4/glib/gnulib/printf.c delete mode 100644 lib/win32/glib-2.20.4/glib/gnulib/printf.h delete mode 100644 lib/win32/glib-2.20.4/glib/gnulib/vasnprintf.c delete mode 100644 lib/win32/glib-2.20.4/glib/gnulib/vasnprintf.h delete mode 100644 lib/win32/glib-2.20.4/glib/goption.c delete mode 100644 lib/win32/glib-2.20.4/glib/goption.h delete mode 100644 lib/win32/glib-2.20.4/glib/gpattern.c delete mode 100644 lib/win32/glib-2.20.4/glib/gpattern.h delete mode 100644 lib/win32/glib-2.20.4/glib/gpoll.c delete mode 100644 lib/win32/glib-2.20.4/glib/gpoll.h delete mode 100644 lib/win32/glib-2.20.4/glib/gprimes.c delete mode 100644 lib/win32/glib-2.20.4/glib/gprimes.h delete mode 100644 lib/win32/glib-2.20.4/glib/gprintf.c delete mode 100644 lib/win32/glib-2.20.4/glib/gprintf.h delete mode 100644 lib/win32/glib-2.20.4/glib/gprintfint.h delete mode 100644 lib/win32/glib-2.20.4/glib/gqsort.c delete mode 100644 lib/win32/glib-2.20.4/glib/gqsort.h delete mode 100644 lib/win32/glib-2.20.4/glib/gquark.h delete mode 100644 lib/win32/glib-2.20.4/glib/gqueue.c delete mode 100644 lib/win32/glib-2.20.4/glib/gqueue.h delete mode 100644 lib/win32/glib-2.20.4/glib/grand.c delete mode 100644 lib/win32/glib-2.20.4/glib/grand.h delete mode 100644 lib/win32/glib-2.20.4/glib/gregex.c delete mode 100644 lib/win32/glib-2.20.4/glib/gregex.h delete mode 100644 lib/win32/glib-2.20.4/glib/grel.c delete mode 100644 lib/win32/glib-2.20.4/glib/grel.h delete mode 100644 lib/win32/glib-2.20.4/glib/gscanner.c delete mode 100644 lib/win32/glib-2.20.4/glib/gscanner.h delete mode 100644 lib/win32/glib-2.20.4/glib/gscripttable.h delete mode 100644 lib/win32/glib-2.20.4/glib/gsequence.c delete mode 100644 lib/win32/glib-2.20.4/glib/gsequence.h delete mode 100644 lib/win32/glib-2.20.4/glib/gshell.c delete mode 100644 lib/win32/glib-2.20.4/glib/gshell.h delete mode 100644 lib/win32/glib-2.20.4/glib/gslice.c delete mode 100644 lib/win32/glib-2.20.4/glib/gslice.h delete mode 100644 lib/win32/glib-2.20.4/glib/gslist.c delete mode 100644 lib/win32/glib-2.20.4/glib/gslist.h delete mode 100644 lib/win32/glib-2.20.4/glib/gspawn-win32-helper-console.c delete mode 100644 lib/win32/glib-2.20.4/glib/gspawn-win32-helper.c delete mode 100644 lib/win32/glib-2.20.4/glib/gspawn-win32.c delete mode 100644 lib/win32/glib-2.20.4/glib/gspawn-win64-helper-console.c delete mode 100644 lib/win32/glib-2.20.4/glib/gspawn-win64-helper.c delete mode 100644 lib/win32/glib-2.20.4/glib/gspawn.c delete mode 100644 lib/win32/glib-2.20.4/glib/gspawn.h delete mode 100644 lib/win32/glib-2.20.4/glib/gstdio.c delete mode 100644 lib/win32/glib-2.20.4/glib/gstdio.h delete mode 100644 lib/win32/glib-2.20.4/glib/gstrfuncs.c delete mode 100644 lib/win32/glib-2.20.4/glib/gstrfuncs.h delete mode 100644 lib/win32/glib-2.20.4/glib/gstring.c delete mode 100644 lib/win32/glib-2.20.4/glib/gstring.h delete mode 100644 lib/win32/glib-2.20.4/glib/gtester.c delete mode 100644 lib/win32/glib-2.20.4/glib/gtestutils.c delete mode 100644 lib/win32/glib-2.20.4/glib/gtestutils.h delete mode 100644 lib/win32/glib-2.20.4/glib/gthread.c delete mode 100644 lib/win32/glib-2.20.4/glib/gthread.h delete mode 100644 lib/win32/glib-2.20.4/glib/gthreadpool.c delete mode 100644 lib/win32/glib-2.20.4/glib/gthreadpool.h delete mode 100644 lib/win32/glib-2.20.4/glib/gthreadprivate.h delete mode 100644 lib/win32/glib-2.20.4/glib/gtimer.c delete mode 100644 lib/win32/glib-2.20.4/glib/gtimer.h delete mode 100644 lib/win32/glib-2.20.4/glib/gtree.c delete mode 100644 lib/win32/glib-2.20.4/glib/gtree.h delete mode 100644 lib/win32/glib-2.20.4/glib/gtypes.h delete mode 100644 lib/win32/glib-2.20.4/glib/gunibreak.c delete mode 100644 lib/win32/glib-2.20.4/glib/gunibreak.h delete mode 100644 lib/win32/glib-2.20.4/glib/gunichartables.h delete mode 100644 lib/win32/glib-2.20.4/glib/gunicode.h delete mode 100644 lib/win32/glib-2.20.4/glib/gunicodeprivate.h delete mode 100644 lib/win32/glib-2.20.4/glib/gunicollate.c delete mode 100644 lib/win32/glib-2.20.4/glib/gunicomp.h delete mode 100644 lib/win32/glib-2.20.4/glib/gunidecomp.c delete mode 100644 lib/win32/glib-2.20.4/glib/gunidecomp.h delete mode 100644 lib/win32/glib-2.20.4/glib/guniprop.c delete mode 100644 lib/win32/glib-2.20.4/glib/gurifuncs.c delete mode 100644 lib/win32/glib-2.20.4/glib/gurifuncs.h delete mode 100644 lib/win32/glib-2.20.4/glib/gutf8.c delete mode 100644 lib/win32/glib-2.20.4/glib/gutils.c delete mode 100644 lib/win32/glib-2.20.4/glib/gutils.h delete mode 100644 lib/win32/glib-2.20.4/glib/gwin32.c delete mode 100644 lib/win32/glib-2.20.4/glib/gwin32.h delete mode 100644 lib/win32/glib-2.20.4/glib/libcharset/Makefile.am delete mode 100644 lib/win32/glib-2.20.4/glib/libcharset/Makefile.in delete mode 100644 lib/win32/glib-2.20.4/glib/libcharset/README delete mode 100644 lib/win32/glib-2.20.4/glib/libcharset/codeset.m4 delete mode 100644 lib/win32/glib-2.20.4/glib/libcharset/config.charset delete mode 100644 lib/win32/glib-2.20.4/glib/libcharset/glibc21.m4 delete mode 100644 lib/win32/glib-2.20.4/glib/libcharset/libcharset-glib.patch delete mode 100644 lib/win32/glib-2.20.4/glib/libcharset/libcharset.h delete mode 100644 lib/win32/glib-2.20.4/glib/libcharset/localcharset.c delete mode 100644 lib/win32/glib-2.20.4/glib/libcharset/localcharset.h delete mode 100644 lib/win32/glib-2.20.4/glib/libcharset/make-patch.sh delete mode 100644 lib/win32/glib-2.20.4/glib/libcharset/ref-add.sin delete mode 100644 lib/win32/glib-2.20.4/glib/libcharset/ref-del.sin delete mode 100644 lib/win32/glib-2.20.4/glib/libcharset/update.sh delete mode 100644 lib/win32/glib-2.20.4/glib/makefile.msc delete mode 100644 lib/win32/glib-2.20.4/glib/makefile.msc.in delete mode 100644 lib/win32/glib-2.20.4/glib/makegalias.pl delete mode 100644 lib/win32/glib-2.20.4/glib/pltcheck.sh delete mode 100644 lib/win32/glib-2.20.4/glib/win_iconv.c delete mode 100644 lib/win32/glib-2.20.4/glibconfig.h delete mode 100644 lib/win32/glib-2.20.4/msvc_recommended_pragmas.h diff --git a/lib/win32/glib-2.20.4/build/ChangeLog b/lib/win32/glib-2.20.4/build/ChangeLog deleted file mode 100644 index bbe0569795f81..0000000000000 --- a/lib/win32/glib-2.20.4/build/ChangeLog +++ /dev/null @@ -1,591 +0,0 @@ -2009-01-13 Tor Lillqvist - - * win32/vs8/README - * win32/vs9/README: New files. Mention this VS solution and - projects are experimental and that https://code.launchpad.net/oah - might be a better choice. - - * win32/vs8/Makefile.am - * win32/vs9/Makefile.am (EXTRA_DIST): Add the READMEs and two - missing vcproj files. - -2008-11-02 Tor Lillqvist - - * win32/Makefile.am (SUBDIRS): Add vs9. - -2008-11-02 Tor Lillqvist - - Bug 558153 - Patch for .def files generation - - * win32/{vs8,vs9}/*.vcproj: Add " around paths, making it - possible to compile in a directory containing spaces. .def files - generation is done for every configuration not only the "Debug" - ones. - - Patch by Guillaume Duhamel. - -2008-09-16 Tor Lillqvist - - * win32/vs9: New folder. Project files for use with MSVS9. Based - on the MSVS8 project files is win32/vs8. Four configurations: - Debug|Win32, Release|Win32, Debug|x64 and Release|x64. DLL names - simplified to of the style glib-2-vs9.dll. - -2008-09-15 Tor Lillqvist - - * win32/vs8/*.vcproj: Update to match the Makefile.am files. Drop - G*_EXPORTS from PreprocessorDefinitions, nothing looks for such - macros. Add G_DISABLE_DEPRECATED. - - Don't use Detect64BitPortabilityProblems as those warnings are - misleading. They don't take into consideration ifdefs in - glibconfig.h and elsewhere for _WIN64. - - Add PCRE_STATIC for glib to avoid exporting the pcre - functions. Add DLL_EXPORT to glib to export also the GLIB_VAR - variables that aren't mentioned in glib.symbols. Add G_LOG_DOMAIN - for gobject. - - Drop the "win32" part from under "dependencies" so that the same - project files can be used also for 64-bit compilation by just - having a different "dependencies" folder containing 64-bit - packages instead. At least, I hope it will work out some way like - that. MSVS project files really are a pain to maintain. Much - information is typically copied for four different configurations - "Debug|Win32", "Release|Win32", "Debug|x64" and "Release|x64" - instead of having common stuff listed just once and only different - parametrisations. Or am I missing something? - - Make the "Release" configuration work, too. Use correct character - set for the gspawn-win32-helper programs. Use correct subsystem - for the non-console one. - -2008-08-27 Tor Lillqvist - - * win32/vs8/*.vcproj: Add "win32" directory level to the - references to the dependencies folder (which each actual user of - the project file probably needs to edit anyway depending on their - directory structure). Add missing files, remove nonexistent files. - - * win32/vs8/glib.vcproj: Don't needlessly copy localcharset.c, but - compile it where it is in libcharset. Drop dirent as gdir.c - includes dirent.h and wdirent.c directly. Handle also - G_GNUC_FORMAT in the custom build step for glib.symbols. - -2008-08-02 Tor Lillqvist - - Bug 545954 - 64-bit issue in dirent - - * win32/dirent/dirent.h: Use __int64 for the dd_handle on 64-bit - Windows. (Would use intptr_t, but that is not available before - MSVS8, and we want to keep this compilable also with MSVS6 and 7, - I think.) Thanks to Richard Hult. - -2008-05-19 Tor Lillqvist - - * win32/dirent/dirent.c: Include dirent.h with doublequotes so - that it is searched from this same folder first. - -2008-05-19 Tor Lillqvist - - * win32/vs8/gspawn-win32-helper.vcproj - * win32/vs8/gspawn-win32-helper-console.vcproj: New files. Build - these two executables. - - * win32/vs8/*.vcproj: Compile as C and not C++. - - * win32/vs8/glib-genmarshal.vcproj: Use MBS and not Unicode. (What - this setting really means is just that we don't define the UNICODE - and _UNICODE macros when compiling; it has no effect on what APIs - the code might use.) Use the same IntermediateDirectory as the - other projects. - - * win32/vs8/glib.sln: Add the gspawn-win32-helper and gspawn-win32-helper projects. - -2008-05-17 Tor Lillqvist - - * "build" is no longer include into GLib through - svn:externals. The relevant directories and files have been svn - add'ed to GLib (trunk) instead. - -2008-05-16 Tor Lillqvist - - * win32/vs8/glib.vcproj: Add gi18n.c. - - * win32/vs8/gio.vcproj: Add gwin32directorymonitor.c. - - * win32/vs8/glib-genmarshal.vcproj: Put also glib-genmarshal.exe - in the "bin" folder. - -2008-04-23 Tor Lillqvist - - Bug 529391 - Update of vs8 build files for Glib 2.16 - - * win32/vs8/*: Update from Danel Atallah. - -2008-03-12 Tor Lillqvist - - * MAINTAINERS: Add. - - * win32/make.mingw: Remove this since long unused and obsolete - file from SVN. - - * win32/make.msc: Don't mention it here either then. - -2007-04-15 Tor Lillqvist - - * .cvsignore - * win32/.cvsignore - * win32/dirent/.cvsignore - * win32/vs8/.cvsignore: Remove. - -2006-10-14 Tor Lillqvist - - * win32/vs8/gmodule.vcproj - * win32/vs8/gobject.vcproj - * win32/vs8/gthread.vcproj: Updates by Mike Edenfield. (#354124) - -2006-09-02 Tor Lillqvist - - * win32/vs8/glib.vcproj: Update from Mike Edenfield. - -2006-02-08 Tor Lillqvist - - * win32/vs8/glib-genmarshal.vcproj: New file: Visual Studio - project file for glib-genmarshal.exe, by Sergey Scobich. - - * win32/vs8/Makefile.am - * win32/vs8/glib.sln: Add it. - -2006-01-31 Tor Lillqvist - - * win32/Makefile.am (EXTRA_DIST): Drop the obsolete shell scripts - and make.mingw. - - * win32/vs8/*: Visual Studio 2005 project files for GLib - contributed by Sergey Scobich. (#328691) - - * win32/Makefile.am (SUBDIRS): Add vs8. - - * win32/make.msc (LINKDEBUG): Use /nodefaultlib:msvcrt.lib when - debugging. (#329325, Timo Linna) - -2005-09-01 Tor Lillqvist - - * win32/cl-wrapper.c: Again spent some hours hacking on this. Now - the compilation phase of building libglib autoconfiscated using - CC=cl-wrapper seems to work. But problems in the linking phase, - for instance -Wl,--whole-archive isn't implemented, and I don't - think link.exe even has a such feature to include all of a - library. Argh. To implement -Wl,--whole-archive, would need to - extract the library contents into a temp directory and link with - all the resulting object files. Sigh. - -2005-07-09 Tor Lillqvist - - * README: When using auto*/libtool/gcc to build GLib, Pango and - GTK+, the scripts to compile resource files in build/win32 are no - longer used. Still here in case somebody wants to have a look, - though. - -2005-02-06 Hans Breuer - - * win32/make.msc win32/module.defs : updated to include Cairo, - gnome-canvas, gnome-print(ui), libart, pangoft2, libxml2, libxslt - -2004-12-29 Tor Lillqvist - - * win32/cl-wrapper.c: More hacking. Implement -idirafter - correctly, amending the INCLUDE environment variable. Ignore - -lm. Error if multiple -o options. Copy input libs called foo.a to - foo.temp.lib so that link knows what they are. Remove dead - code. Link with same default libraries as mingw's gcc. Use - indirect command line file if command line is too long. - -2004-12-12 Tor Lillqvist - - * win32/cl-wrapper.c: Hack more on this. Using MSVC is necessary - if one wants to use tools like Purify or BoundsChecker. - -2004-08-11 Tor Lillqvist - - * win32/dirent/dirent.[ch]: Update from mingw-runtime-3.3. - Implements both normal and wide-char versions. - - * win32/dirent/wdirent.c: New file. - - * win32/dirent/Makefile.am (EXTRA_DIST): Add wdirent.c. - -2004-05-01 Hans Breuer - - * win32/make.msc : -DG_ENABLE_DEBUG=1 for debug builds - (#141335, John Ehresman) - -2004-03-05 Federico Mena Quintero - - Fix #136082, patch by Morten Welinder. - - * win32/cl-wrapper.c: #include - * win32/dirent/dirent.c: Likewise. - -2004-01-24 Tor Lillqvist - - * win32/compile-resource - * win32/lt-compile-resource: Use /bin/sh instead of /bin/bash, as - MSYS doesn't come with any /bin/bash. When compiling with - --enable-static and --disable-shared flag, libtool creates *.lo - files as scripts, but the *.o files are in "." and not in - ".libs". Thanks to Fridrich Strba. - -2003-11-15 Tor Lillqvist - - * win32/dirent/makefile.msc: Improve. (#126913, John Ehresman) - -2003-08-08 Tor Lillqvist - - * win32/cl-wrapper.c: Fix bug in environment variable - handling. Support --version flag. Prefix double quotes in -I and - -D parameters with backslash. - -2003-06-06 Tor Lillqvist - - * win32(compile-resource (resfile): Support a WINDRES environment - variable. (#112387, J. Ali Harlow) - -2002-09-28 Tor Lillqvist - - * win32/make.mingw: Add libxml2 CFLAGS and LIBS - (suggestion by Steffen Macke). - -2002-09-17 Tor Lillqvist - - * win32/compile-resource: Return failure (implicitly, as the - return status of the last command executed) if m4 or windres - fails. Thanks to charlet@act-europe.fr (#93373). - -2002-09-13 Tor Lillqvist - - * win32/lt-compile-resource: Argh. With some libtool versions, or - when the moon is in a certain phase, libtool creates the actual - object files as .lo files. Otherwise .lo files are small scripts - (which is what lt-compile-resource has always thought until now). - Add an ugly hack that tries to determine which kind of .lo files are - used, and act correspondingly. - -2002-09-10 Tor Lillqvist - - * win32/module.defs: Remove GTK_VER which was misleading and - unused. Ditto for GTKGLAREA_VER. Add comment about taking this - stuff with a very big grain of salt. - -2002-03-27 Tor Lillqvist - - * win32/module.defs - * win32/make.msc - * win32/make.mingw: Try to make up-to-date with GLib 2.0, ATK 1.0, - Pango 1.0 and GTK+ 2.0. This stuff is starting to feel more and - more quaint, though. Remove the FriBiDi references, Pango uses its - own mini-fribidi version. Use the names GTK2_CFLAGS and _LIBS also in - make.mingw, not GTKCURRENT_*. - -2001-12-05 Tor Lillqvist - - * win32/make.mingw (LIBICONV_LIBS): Fix typo: pkg-config --libs, - not --cflags. Thanks to Victor Secarin. - - * win32/build-dll: Don't call dirname blindly on $0 which might be - a Windows-style (drive letter, backslashes) pathname. Thanks to - Victor Secarin. Remove mention of Platform SDK, it doesn't - include the linker any longer. - -2001-10-31 Tor Lillqvist - - * win32/make.mingw (TIFF_LIBS): We can use same import library for - non-LZW and LZW-enabled versions. Just let the user decide which - DLL to use. - -2001-10-30 Tor Lillqvist - - * win32/make.mingw: Use pkg-config for more stuff. The - corresponding .pc files are included in the new packages on - www.gimp.org/win32/new-downloads.html. - - * win32/dirent/dirent-zip: New file, script to package a developer - package of dirent.h and dirent.lib. - - * win32/dirent/Makefile.am (EXTRA_DIST): Add it. - -2001-10-24 Tor Lillqvist - - * win32/make.mingw: Also try to include module.defs from the build - subdirectory of GLib. - - * win32/make.msc: When DEBUG, use -Zi, otherwise -Zi. Always use - /machine:ix86. - -2001-10-23 Tor Lillqvist - - * win32/cl-wrapper.c: Various changes. I don't actually use this - to build with libtool and MSVC, only to run configure for MSVC. At - least for now. - - * win32/make.mingw: Use pkg-config to get CFLAGS and LIBS for GLib - and GTK. - - * win32/make.msc: Use GDK and GTK import library names now - produced in gtk-1-3-win32-production. - -2001-10-10 Tor Lillqvist - - * win32/module.defs (PNG): Use libpng 1.2.0. - - * win32/lt-compile-resource: Mkdir .libs if not there already. - -2001-09-30 Tor Lillqvist - - * win32/build-dll: Comment clarification. - - * win32/Makefile.am: Add dirent subdirectory. - - * win32/dirent/*: New files. The (public domain) dirent - implementation from the mingw runtime, for MSVC users. - - * win32/make.msc (DIRENT_CFLAGS,DIRENT_LIBS): Point to - build/win32/dirent in the GLib sources. Hmm. - (CC): Remove duplicate $(OPTIMIZE), already in CFLAGS. - -2001-09-28 Tor Lillqvist - - * win32/make.mingw - * win32/make.msc: Separate the compiler program names into - an Make macro of its own (CCOMPILER and CXXCOMPILER). - - * win32/cl-wrapper.c: New file. A program that accepts Unix-like C - compiler command line arguments, and runs the Microsoft C compiler - (cl) after transforming the arguments to cl's syntax. This program - can be used when using the auto*/configure mechanism to build - software with MSVC. - -2001-09-25 Tor Lillqvist - - * win32/module.defs: Do define GLIB_VER after all. (Do use it in - (import) library names, like it is on Unix.) - - * win32/make.mingw - * win32/make.msc: Some comments added. Use GLIB_VER in GLib - (import) library names. - -2001-09-17 Tor Lillqvist - - * win32/build-dll: Invocation changed. We now expect a version - info like libtool's -version-info parameter. The intention is to - produce the same name DLL as libtool would, i.e. use "current - - age" as the DLL name suffix. - - * win32/compile-resource: New file, containing the part of - build-dll that compiles the resource file, if available. - - * win32/lt-compile-resource: New file, invokes compile-resource, - placing the resulting .o file in the .libs subdirectory, and - handcrafts a "libtool object" for it. - - * win32/Makefile.am: Distribute new files. - - * win32/make.mingw: Add COMPILE_RESOURCE. - -Tue Sep 4 01:46:15 2001 Owen Taylor - - * win32/Makefile.am (EXTRA_DIST): Add build-dll, on - the assumption it isn't going to get distributed otherwise. - -2001-09-01 Tor Lillqvist - - * win32/build-dll: Move here from GLib. Use gcc -shared instead of - the multiple pass gcc+dlltool method. Don't include the version - number in the import library names. - - * win32/make.mingw - * win32/make.msc: Correspondingly, remove the version number parts - from (some) import library names. (Just a start, more to follow.) - - * win32/module.defs: In fact, no need to know the versions at all - for stuff that doesn't include it as part of the directory name. - -2001-01-06 Hans Breuer - - * win32/module.defs : renamed GTKCURRENT to GTK2 and some - version number updates - - * win32/make.msc : added GTK2_CFLAGS and GTK2_LIBS, now used - by CVS HEAD Gimp. Minor updates, - -2001-05-22 Sebastian Wilhelmi - - * win32/make.mingw: Redid CFLAGS. - - * win32/make.mingw (CXX): Removed PTHREAD defs. Added -O2 -Wall to - compile flags. - -2001-01-06 Hans Breuer - - * win32/make.msc win32/module.defs : added ATK, - adapted Pango version - -2001-03-19 Tor Lillqvist - - * win32/module.defs (GLIB_GENMARSHAL): Add macro for glib-genmarshal. - -2001-02-17 Tor Lillqvist - - * win32/make.{mingw,msc} (INTL_LIBS): Call the import library just - libintl, not gnu-intl, for consistency with Unix conventions. (The - DLL is still called gnu-intl.dll, using such a generic name as - just "intl.dll" would be asking for trouble.) - -2001-01-28 Tor Lillqvist - - * win32/module.defs - * win32/make.mingw - * win32/make.msc : Use libiconv 1.5.1. Use libiconv's import - library as built by its Makefile.msvc, without any version - number. Use the same convention for the GNU-style import library. - -2000-12-27 Tor Lillqvist - - * win32/make.{mingw,msc} (TIFF_LIBS): Provide separate TIFF_LZW - and TIFF_NOLZW. - -2000-12-21 Tor Lillqvist - - * win32/*: Add version number for FreeType2. We need the FT2 - library built as a DLL, and append the vesion number to its name, - too. - -2000-12-20 Tor Lillqvist - - * win32/module.defs (FRIBIDI_VER): Use FriBidi 0.1.15. - -2000-12-14 Tor Lillqvist - - * win32/make.msc: Split C runtime flag (-MD or -MDd) to a separate - macro. - -2000-11-15 Tor Lillqvist - - * win32/module.defs (PANGO_VER): Update Pango version to 0.13. - -2000-10-22 Tor Lillqvist - - * win32/make.msc (PANGO_LIBS): Include version in Pango lib names. - -2000-10-07 Tor Lillqvist - - * win32/make.msc: Improve to be more useable. - -2000-09-12 Tor Lillqvist - - * win32/make.{mingw,msc}: Add PTHREAD_LIBS and PTHREAD_CFLAGS. - -2000-08-24 Tor Lillqvist - - * win32/module.defs: Add separate version number for gdk-pixbuf. - - * win32/make.mingw: Add C++ defs. - -2000-08-20 Tor Lillqvist - - * win32/*: Remove FREETYPE2_20000624, not needed any - longer by gimp-freetype. - - * win32/make.mingw: Add rule to produce assembler source. - - * win32/make.msc: Fix syntax error. Add CFLAGS. - -2000-08-05 Tor Lillqvist - - * win32/module.defs - * win32/make.{mingw,msc}: Rename the FreeType2 snapshot from 2000-06-24 - (used by gimp-freetype). Use the name "FreeType2" for the current - FreeType2. - -2000-07-30 Tor Lillqvist - - * win32/module.defs - * win32/make.mingw - * win32/make.msc: Rename XML to LIBXML. Use version 0.14 of - it. Add LIBXML_CFLAGS and _LIBS. Add GTKCURRENT referring the - current CVS GTK+ (nonworking on Win32). - -2000-07-25 Tor Lillqvist - - * win32/make.mingw (PANGO_LIBS): Typo. - -2000-07-21 Tor Lillqvist - - * win32/*: Reorder stuff to be in alphabetical order of package - names. Add GtkGLArea. Add path to OpenGL headers. - -2000-07-18 Tor Lillqvist - - * win32/module.defs (FRIBIDI_VER) - * win32/make.{mingw,msc} (FRIBIDI_LIBS): Use correct version - of FriBidi. - -2000-07-15 Tor Lillqvist - - * win32/make.mingw - * win32/make.msc - * win32/module.defs: Add Pango. - -2000-07-10 Tor Lillqvist - - * win32/module.defs: - * win32/make.msc: New files. Factor out common stuff to module.defs. - make.msc is for nmake and MSVC. Thanks to Hans Breuer. - - * win32/Makefile.am: Add them to EXTRA_DIST. - - * win32/make.mingw: Move part to module.defs. Ugly hack to find - module.defs. - -2000-07-02 Tor Lillqvist - - * win32/make.mingw: Addd FriBidi and libiconv. Add USRDIR for - headers and libs that are "installed". - -2000-06-07 Tor Lillqvist - - * win32/make.mingw: Clarify where this stuff should be located. - - * Makefile.am - * win32/Makefile.am: New files. Only set SUBDIRS and EXTRA_DIST. - -2000-05-29 Tor Lillqvist - - * win32/make.mingw: Add gmodule directory to GLib includes. Use - freetype2 directory called just that. - -2000-05-13 Tor Lillqvist - - * README: Remove the original README text. - - * win32/make.mingw: Define macros for CFLAGS and LIBS of GLib, - GTk+, intl, freetype2, zlib, libjpeg, libtiff and GIMP. Remove the - WIN32APIHEADERS, that is now taken care of in glib/build-dll. - -2000-05-05 Tor Lillqvist - - * win32/make.mingw: Add GIMP_VER. Add path to GIMP and freetype2 - sources. - -2000-05-04 Tor Lillqvist - - * ChangeLog: Start ChangeLog. - - * README: Change purpose of this directory. - - * win32/make.mingw: New file. - - * build.inf - * cvs.py - * write.py: Remove. diff --git a/lib/win32/glib-2.20.4/build/Makefile.am b/lib/win32/glib-2.20.4/build/Makefile.am deleted file mode 100644 index 8a834e733b407..0000000000000 --- a/lib/win32/glib-2.20.4/build/Makefile.am +++ /dev/null @@ -1,7 +0,0 @@ -SUBDIRS = \ - win32 - -EXTRA_DIST = \ - README \ - ChangeLog - diff --git a/lib/win32/glib-2.20.4/build/Makefile.in b/lib/win32/glib-2.20.4/build/Makefile.in deleted file mode 100644 index f42c9fb8b2d95..0000000000000 --- a/lib/win32/glib-2.20.4/build/Makefile.in +++ /dev/null @@ -1,655 +0,0 @@ -# Makefile.in generated by automake 1.11 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@ -subdir = build -DIST_COMMON = README $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ - ChangeLog -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ - $(top_srcdir)/acglib.m4 \ - $(top_srcdir)/glib/libcharset/codeset.m4 \ - $(top_srcdir)/glib/libcharset/glibc21.m4 \ - $(top_srcdir)/m4macros/glib-gettext.m4 \ - $(top_srcdir)/configure.in -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs -CONFIG_HEADER = $(top_builddir)/config.h -CONFIG_CLEAN_FILES = -CONFIG_CLEAN_VPATH_FILES = -SOURCES = -DIST_SOURCES = -RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ - html-recursive info-recursive install-data-recursive \ - install-dvi-recursive install-exec-recursive \ - install-html-recursive install-info-recursive \ - install-pdf-recursive install-ps-recursive install-recursive \ - installcheck-recursive installdirs-recursive pdf-recursive \ - ps-recursive uninstall-recursive -RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ - distclean-recursive maintainer-clean-recursive -AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ - $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ - distdir -ETAGS = etags -CTAGS = ctags -DIST_SUBDIRS = $(SUBDIRS) -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -am__relativize = \ - dir0=`pwd`; \ - sed_first='s,^\([^/]*\)/.*$$,\1,'; \ - sed_rest='s,^[^/]*/*,,'; \ - sed_last='s,^.*/\([^/]*\)$$,\1,'; \ - sed_butlast='s,/*[^/]*$$,,'; \ - while test -n "$$dir1"; do \ - first=`echo "$$dir1" | sed -e "$$sed_first"`; \ - if test "$$first" != "."; then \ - if test "$$first" = ".."; then \ - dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ - dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ - else \ - first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ - if test "$$first2" = "$$first"; then \ - dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ - else \ - dir2="../$$dir2"; \ - fi; \ - dir0="$$dir0"/"$$first"; \ - fi; \ - fi; \ - dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ - done; \ - reldir="$$dir2" -ACLOCAL = @ACLOCAL@ -ALLOCA = @ALLOCA@ -AMTAR = @AMTAR@ -AR = @AR@ -AS = @AS@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -CATALOGS = @CATALOGS@ -CATOBJEXT = @CATOBJEXT@ -CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CFLAGS = @CFLAGS@ -CONFIG_STATUS_DEPENDENCIES = @CONFIG_STATUS_DEPENDENCIES@ -CPP = @CPP@ -CPPFLAGS = @CPPFLAGS@ -CXX = @CXX@ -CXXCPP = @CXXCPP@ -CXXDEPMODE = @CXXDEPMODE@ -CXXFLAGS = @CXXFLAGS@ -CYGPATH_W = @CYGPATH_W@ -DATADIRNAME = @DATADIRNAME@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -DISABLE_MEM_POOLS = @DISABLE_MEM_POOLS@ -DLLTOOL = @DLLTOOL@ -DSYMUTIL = @DSYMUTIL@ -DUMPBIN = @DUMPBIN@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -FAM_LIBS = @FAM_LIBS@ -FGREP = @FGREP@ -GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ -GIO = @GIO@ -GIO_MODULE_DIR = @GIO_MODULE_DIR@ -GLIBC21 = @GLIBC21@ -GLIB_BINARY_AGE = @GLIB_BINARY_AGE@ -GLIB_DEBUG_FLAGS = @GLIB_DEBUG_FLAGS@ -GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ -GLIB_GENMARSHAL = @GLIB_GENMARSHAL@ -GLIB_INTERFACE_AGE = @GLIB_INTERFACE_AGE@ -GLIB_MAJOR_VERSION = @GLIB_MAJOR_VERSION@ -GLIB_MICRO_VERSION = @GLIB_MICRO_VERSION@ -GLIB_MINOR_VERSION = @GLIB_MINOR_VERSION@ -GLIB_VERSION = @GLIB_VERSION@ -GLIB_WIN32_STATIC_COMPILATION_DEFINE = @GLIB_WIN32_STATIC_COMPILATION_DEFINE@ -GMOFILES = @GMOFILES@ -GMSGFMT = @GMSGFMT@ -GREP = @GREP@ -GSPAWN = @GSPAWN@ -GTHREAD_COMPILE_IMPL_DEFINES = @GTHREAD_COMPILE_IMPL_DEFINES@ -GTKDOC_CHECK = @GTKDOC_CHECK@ -G_LIBS_EXTRA = @G_LIBS_EXTRA@ -G_MODULE_BROKEN_RTLD_GLOBAL = @G_MODULE_BROKEN_RTLD_GLOBAL@ -G_MODULE_HAVE_DLERROR = @G_MODULE_HAVE_DLERROR@ -G_MODULE_IMPL = @G_MODULE_IMPL@ -G_MODULE_LDFLAGS = @G_MODULE_LDFLAGS@ -G_MODULE_LIBS = @G_MODULE_LIBS@ -G_MODULE_LIBS_EXTRA = @G_MODULE_LIBS_EXTRA@ -G_MODULE_NEED_USCORE = @G_MODULE_NEED_USCORE@ -G_MODULE_PLUGIN_LIBS = @G_MODULE_PLUGIN_LIBS@ -G_MODULE_SUPPORTED = @G_MODULE_SUPPORTED@ -G_THREAD_CFLAGS = @G_THREAD_CFLAGS@ -G_THREAD_LIBS = @G_THREAD_LIBS@ -G_THREAD_LIBS_EXTRA = @G_THREAD_LIBS_EXTRA@ -G_THREAD_LIBS_FOR_GTHREAD = @G_THREAD_LIBS_FOR_GTHREAD@ -HTML_DIR = @HTML_DIR@ -ICONV_LIBS = @ICONV_LIBS@ -INDENT = @INDENT@ -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -INSTOBJEXT = @INSTOBJEXT@ -INTLLIBS = @INTLLIBS@ -LD = @LD@ -LDFLAGS = @LDFLAGS@ -LIBOBJS = @LIBOBJS@ -LIBS = @LIBS@ -LIBTOOL = @LIBTOOL@ -LIBTOOL_EXPORT_OPTIONS = @LIBTOOL_EXPORT_OPTIONS@ -LIB_EXE_MACHINE_FLAG = @LIB_EXE_MACHINE_FLAG@ -LIPO = @LIPO@ -LN_S = @LN_S@ -LTLIBOBJS = @LTLIBOBJS@ -LT_AGE = @LT_AGE@ -LT_CURRENT = @LT_CURRENT@ -LT_CURRENT_MINUS_AGE = @LT_CURRENT_MINUS_AGE@ -LT_RELEASE = @LT_RELEASE@ -LT_REVISION = @LT_REVISION@ -MAINT = @MAINT@ -MAKEINFO = @MAKEINFO@ -MKDIR_P = @MKDIR_P@ -MKINSTALLDIRS = @MKINSTALLDIRS@ -MSGFMT = @MSGFMT@ -MSGFMT_OPTS = @MSGFMT_OPTS@ -NM = @NM@ -NMEDIT = @NMEDIT@ -OBJDUMP = @OBJDUMP@ -OBJEXT = @OBJEXT@ -OTOOL = @OTOOL@ -OTOOL64 = @OTOOL64@ -PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -PCRE_CFLAGS = @PCRE_CFLAGS@ -PCRE_LIBS = @PCRE_LIBS@ -PCRE_REQUIRES = @PCRE_REQUIRES@ -PCRE_WARN_CFLAGS = @PCRE_WARN_CFLAGS@ -PERL = @PERL@ -PERL_PATH = @PERL_PATH@ -PKG_CONFIG = @PKG_CONFIG@ -PLATFORMDEP = @PLATFORMDEP@ -POFILES = @POFILES@ -POSUB = @POSUB@ -PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ -PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ -PYTHON = @PYTHON@ -PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ -PYTHON_PLATFORM = @PYTHON_PLATFORM@ -PYTHON_PREFIX = @PYTHON_PREFIX@ -PYTHON_VERSION = @PYTHON_VERSION@ -RANLIB = @RANLIB@ -REBUILD = @REBUILD@ -SED = @SED@ -SELINUX_LIBS = @SELINUX_LIBS@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRIP = @STRIP@ -USE_NLS = @USE_NLS@ -VERSION = @VERSION@ -WINDRES = @WINDRES@ -XATTR_LIBS = @XATTR_LIBS@ -XGETTEXT = @XGETTEXT@ -XMLCATALOG = @XMLCATALOG@ -XML_CATALOG_FILE = @XML_CATALOG_FILE@ -XSLTPROC = @XSLTPROC@ -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@ -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_os = @build_os@ -build_vendor = @build_vendor@ -builddir = @builddir@ -datadir = @datadir@ -datarootdir = @datarootdir@ -docdir = @docdir@ -dvidir = @dvidir@ -exec_prefix = @exec_prefix@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -htmldir = @htmldir@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localedir = @localedir@ -localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -ms_librarian = @ms_librarian@ -oldincludedir = @oldincludedir@ -pdfdir = @pdfdir@ -pkgpyexecdir = @pkgpyexecdir@ -pkgpythondir = @pkgpythondir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -psdir = @psdir@ -pyexecdir = @pyexecdir@ -pythondir = @pythondir@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -srcdir = @srcdir@ -sysconfdir = @sysconfdir@ -target_alias = @target_alias@ -top_build_prefix = @top_build_prefix@ -top_builddir = @top_builddir@ -top_srcdir = @top_srcdir@ -SUBDIRS = \ - win32 - -EXTRA_DIST = \ - README \ - ChangeLog - -all: all-recursive - -.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) --gnu build/Makefile'; \ - $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --gnu build/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): - -mostlyclean-libtool: - -rm -f *.lo - -clean-libtool: - -rm -rf .libs _libs - -# This directory's subdirectories are mostly independent; you can cd -# into them and run `make' without going through this Makefile. -# To change the values of `make' variables: instead of editing Makefiles, -# (1) if the variable is set in `config.status', edit `config.status' -# (which will cause the Makefiles to be regenerated when you run `make'); -# (2) otherwise, pass the desired values on the `make' command line. -$(RECURSIVE_TARGETS): - @failcom='exit 1'; \ - for f in x $$MAKEFLAGS; do \ - case $$f in \ - *=* | --[!k]*);; \ - *k*) failcom='fail=yes';; \ - esac; \ - done; \ - dot_seen=no; \ - target=`echo $@ | sed s/-recursive//`; \ - list='$(SUBDIRS)'; for subdir in $$list; do \ - echo "Making $$target in $$subdir"; \ - if test "$$subdir" = "."; then \ - dot_seen=yes; \ - local_target="$$target-am"; \ - else \ - local_target="$$target"; \ - fi; \ - ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ - || eval $$failcom; \ - done; \ - if test "$$dot_seen" = "no"; then \ - $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ - fi; test -z "$$fail" - -$(RECURSIVE_CLEAN_TARGETS): - @failcom='exit 1'; \ - for f in x $$MAKEFLAGS; do \ - case $$f in \ - *=* | --[!k]*);; \ - *k*) failcom='fail=yes';; \ - esac; \ - done; \ - dot_seen=no; \ - case "$@" in \ - distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ - *) list='$(SUBDIRS)' ;; \ - esac; \ - rev=''; for subdir in $$list; do \ - if test "$$subdir" = "."; then :; else \ - rev="$$subdir $$rev"; \ - fi; \ - done; \ - rev="$$rev ."; \ - target=`echo $@ | sed s/-recursive//`; \ - for subdir in $$rev; do \ - echo "Making $$target in $$subdir"; \ - if test "$$subdir" = "."; then \ - local_target="$$target-am"; \ - else \ - local_target="$$target"; \ - fi; \ - ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ - || eval $$failcom; \ - done && test -z "$$fail" -tags-recursive: - list='$(SUBDIRS)'; for subdir in $$list; do \ - test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ - done -ctags-recursive: - list='$(SUBDIRS)'; for subdir in $$list; do \ - test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ - done - -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: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - set x; \ - here=`pwd`; \ - if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ - include_option=--etags-include; \ - empty_fix=.; \ - else \ - include_option=--include; \ - empty_fix=; \ - fi; \ - list='$(SUBDIRS)'; for subdir in $$list; do \ - if test "$$subdir" = .; then :; else \ - test ! -f $$subdir/TAGS || \ - set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ - fi; \ - done; \ - 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; }; }'`; \ - 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: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - 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; }; }'`; \ - 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 - -distdir: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - list='$(DISTFILES)'; \ - dist_files=`for file in $$list; do echo $$file; done | \ - sed -e "s|^$$srcdirstrip/||;t" \ - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ - case $$dist_files in \ - */*) $(MKDIR_P) `echo "$$dist_files" | \ - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ - sort -u` ;; \ - esac; \ - for file in $$dist_files; do \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - if test -d $$d/$$file; then \ - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test -d "$(distdir)/$$file"; then \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ - else \ - test -f "$(distdir)/$$file" \ - || cp -p $$d/$$file "$(distdir)/$$file" \ - || exit 1; \ - fi; \ - done - @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ - if test "$$subdir" = .; then :; else \ - test -d "$(distdir)/$$subdir" \ - || $(MKDIR_P) "$(distdir)/$$subdir" \ - || exit 1; \ - fi; \ - done - @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ - if test "$$subdir" = .; then :; else \ - dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ - $(am__relativize); \ - new_distdir=$$reldir; \ - dir1=$$subdir; dir2="$(top_distdir)"; \ - $(am__relativize); \ - new_top_distdir=$$reldir; \ - echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ - echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ - ($(am__cd) $$subdir && \ - $(MAKE) $(AM_MAKEFLAGS) \ - top_distdir="$$new_top_distdir" \ - distdir="$$new_distdir" \ - am__remove_distdir=: \ - am__skip_length_check=: \ - am__skip_mode_fix=: \ - distdir) \ - || exit 1; \ - fi; \ - done -check-am: all-am -check: check-recursive -all-am: Makefile -installdirs: installdirs-recursive -installdirs-am: -install: install-recursive -install-exec: install-exec-recursive -install-data: install-data-recursive -uninstall: uninstall-recursive - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-recursive -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-recursive - -clean-am: clean-generic clean-libtool mostlyclean-am - -distclean: distclean-recursive - -rm -f Makefile -distclean-am: clean-am distclean-generic distclean-tags - -dvi: dvi-recursive - -dvi-am: - -html: html-recursive - -html-am: - -info: info-recursive - -info-am: - -install-data-am: - -install-dvi: install-dvi-recursive - -install-dvi-am: - -install-exec-am: - -install-html: install-html-recursive - -install-html-am: - -install-info: install-info-recursive - -install-info-am: - -install-man: - -install-pdf: install-pdf-recursive - -install-pdf-am: - -install-ps: install-ps-recursive - -install-ps-am: - -installcheck-am: - -maintainer-clean: maintainer-clean-recursive - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-recursive - -mostlyclean-am: mostlyclean-generic mostlyclean-libtool - -pdf: pdf-recursive - -pdf-am: - -ps: ps-recursive - -ps-am: - -uninstall-am: - -.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \ - install-am install-strip tags-recursive - -.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ - all all-am check check-am clean clean-generic clean-libtool \ - ctags ctags-recursive distclean distclean-generic \ - distclean-libtool distclean-tags distdir 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 installcheck \ - installcheck-am installdirs installdirs-am maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-generic \ - mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \ - uninstall uninstall-am - - -# 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: diff --git a/lib/win32/glib-2.20.4/build/README b/lib/win32/glib-2.20.4/build/README deleted file mode 100644 index 8b95fd53f8d79..0000000000000 --- a/lib/win32/glib-2.20.4/build/README +++ /dev/null @@ -1,2 +0,0 @@ -Now this directory is private to GLib. Only the files relevant to GLib -are left. See the separate "build" module in GNOME SVN for history. diff --git a/lib/win32/glib-2.20.4/build/win32/Makefile.am b/lib/win32/glib-2.20.4/build/win32/Makefile.am deleted file mode 100644 index c722a7f8aefe9..0000000000000 --- a/lib/win32/glib-2.20.4/build/win32/Makefile.am +++ /dev/null @@ -1,8 +0,0 @@ -SUBDIRS = \ - dirent \ - vs8 \ - vs9 - -EXTRA_DIST = \ - make.msc \ - module.defs diff --git a/lib/win32/glib-2.20.4/build/win32/Makefile.in b/lib/win32/glib-2.20.4/build/win32/Makefile.in deleted file mode 100644 index 749aa48d77c8e..0000000000000 --- a/lib/win32/glib-2.20.4/build/win32/Makefile.in +++ /dev/null @@ -1,656 +0,0 @@ -# Makefile.in generated by automake 1.11 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@ -subdir = build/win32 -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ - $(top_srcdir)/acglib.m4 \ - $(top_srcdir)/glib/libcharset/codeset.m4 \ - $(top_srcdir)/glib/libcharset/glibc21.m4 \ - $(top_srcdir)/m4macros/glib-gettext.m4 \ - $(top_srcdir)/configure.in -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs -CONFIG_HEADER = $(top_builddir)/config.h -CONFIG_CLEAN_FILES = -CONFIG_CLEAN_VPATH_FILES = -SOURCES = -DIST_SOURCES = -RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ - html-recursive info-recursive install-data-recursive \ - install-dvi-recursive install-exec-recursive \ - install-html-recursive install-info-recursive \ - install-pdf-recursive install-ps-recursive install-recursive \ - installcheck-recursive installdirs-recursive pdf-recursive \ - ps-recursive uninstall-recursive -RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ - distclean-recursive maintainer-clean-recursive -AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ - $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ - distdir -ETAGS = etags -CTAGS = ctags -DIST_SUBDIRS = $(SUBDIRS) -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -am__relativize = \ - dir0=`pwd`; \ - sed_first='s,^\([^/]*\)/.*$$,\1,'; \ - sed_rest='s,^[^/]*/*,,'; \ - sed_last='s,^.*/\([^/]*\)$$,\1,'; \ - sed_butlast='s,/*[^/]*$$,,'; \ - while test -n "$$dir1"; do \ - first=`echo "$$dir1" | sed -e "$$sed_first"`; \ - if test "$$first" != "."; then \ - if test "$$first" = ".."; then \ - dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ - dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ - else \ - first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ - if test "$$first2" = "$$first"; then \ - dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ - else \ - dir2="../$$dir2"; \ - fi; \ - dir0="$$dir0"/"$$first"; \ - fi; \ - fi; \ - dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ - done; \ - reldir="$$dir2" -ACLOCAL = @ACLOCAL@ -ALLOCA = @ALLOCA@ -AMTAR = @AMTAR@ -AR = @AR@ -AS = @AS@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -CATALOGS = @CATALOGS@ -CATOBJEXT = @CATOBJEXT@ -CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CFLAGS = @CFLAGS@ -CONFIG_STATUS_DEPENDENCIES = @CONFIG_STATUS_DEPENDENCIES@ -CPP = @CPP@ -CPPFLAGS = @CPPFLAGS@ -CXX = @CXX@ -CXXCPP = @CXXCPP@ -CXXDEPMODE = @CXXDEPMODE@ -CXXFLAGS = @CXXFLAGS@ -CYGPATH_W = @CYGPATH_W@ -DATADIRNAME = @DATADIRNAME@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -DISABLE_MEM_POOLS = @DISABLE_MEM_POOLS@ -DLLTOOL = @DLLTOOL@ -DSYMUTIL = @DSYMUTIL@ -DUMPBIN = @DUMPBIN@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -FAM_LIBS = @FAM_LIBS@ -FGREP = @FGREP@ -GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ -GIO = @GIO@ -GIO_MODULE_DIR = @GIO_MODULE_DIR@ -GLIBC21 = @GLIBC21@ -GLIB_BINARY_AGE = @GLIB_BINARY_AGE@ -GLIB_DEBUG_FLAGS = @GLIB_DEBUG_FLAGS@ -GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ -GLIB_GENMARSHAL = @GLIB_GENMARSHAL@ -GLIB_INTERFACE_AGE = @GLIB_INTERFACE_AGE@ -GLIB_MAJOR_VERSION = @GLIB_MAJOR_VERSION@ -GLIB_MICRO_VERSION = @GLIB_MICRO_VERSION@ -GLIB_MINOR_VERSION = @GLIB_MINOR_VERSION@ -GLIB_VERSION = @GLIB_VERSION@ -GLIB_WIN32_STATIC_COMPILATION_DEFINE = @GLIB_WIN32_STATIC_COMPILATION_DEFINE@ -GMOFILES = @GMOFILES@ -GMSGFMT = @GMSGFMT@ -GREP = @GREP@ -GSPAWN = @GSPAWN@ -GTHREAD_COMPILE_IMPL_DEFINES = @GTHREAD_COMPILE_IMPL_DEFINES@ -GTKDOC_CHECK = @GTKDOC_CHECK@ -G_LIBS_EXTRA = @G_LIBS_EXTRA@ -G_MODULE_BROKEN_RTLD_GLOBAL = @G_MODULE_BROKEN_RTLD_GLOBAL@ -G_MODULE_HAVE_DLERROR = @G_MODULE_HAVE_DLERROR@ -G_MODULE_IMPL = @G_MODULE_IMPL@ -G_MODULE_LDFLAGS = @G_MODULE_LDFLAGS@ -G_MODULE_LIBS = @G_MODULE_LIBS@ -G_MODULE_LIBS_EXTRA = @G_MODULE_LIBS_EXTRA@ -G_MODULE_NEED_USCORE = @G_MODULE_NEED_USCORE@ -G_MODULE_PLUGIN_LIBS = @G_MODULE_PLUGIN_LIBS@ -G_MODULE_SUPPORTED = @G_MODULE_SUPPORTED@ -G_THREAD_CFLAGS = @G_THREAD_CFLAGS@ -G_THREAD_LIBS = @G_THREAD_LIBS@ -G_THREAD_LIBS_EXTRA = @G_THREAD_LIBS_EXTRA@ -G_THREAD_LIBS_FOR_GTHREAD = @G_THREAD_LIBS_FOR_GTHREAD@ -HTML_DIR = @HTML_DIR@ -ICONV_LIBS = @ICONV_LIBS@ -INDENT = @INDENT@ -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -INSTOBJEXT = @INSTOBJEXT@ -INTLLIBS = @INTLLIBS@ -LD = @LD@ -LDFLAGS = @LDFLAGS@ -LIBOBJS = @LIBOBJS@ -LIBS = @LIBS@ -LIBTOOL = @LIBTOOL@ -LIBTOOL_EXPORT_OPTIONS = @LIBTOOL_EXPORT_OPTIONS@ -LIB_EXE_MACHINE_FLAG = @LIB_EXE_MACHINE_FLAG@ -LIPO = @LIPO@ -LN_S = @LN_S@ -LTLIBOBJS = @LTLIBOBJS@ -LT_AGE = @LT_AGE@ -LT_CURRENT = @LT_CURRENT@ -LT_CURRENT_MINUS_AGE = @LT_CURRENT_MINUS_AGE@ -LT_RELEASE = @LT_RELEASE@ -LT_REVISION = @LT_REVISION@ -MAINT = @MAINT@ -MAKEINFO = @MAKEINFO@ -MKDIR_P = @MKDIR_P@ -MKINSTALLDIRS = @MKINSTALLDIRS@ -MSGFMT = @MSGFMT@ -MSGFMT_OPTS = @MSGFMT_OPTS@ -NM = @NM@ -NMEDIT = @NMEDIT@ -OBJDUMP = @OBJDUMP@ -OBJEXT = @OBJEXT@ -OTOOL = @OTOOL@ -OTOOL64 = @OTOOL64@ -PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -PCRE_CFLAGS = @PCRE_CFLAGS@ -PCRE_LIBS = @PCRE_LIBS@ -PCRE_REQUIRES = @PCRE_REQUIRES@ -PCRE_WARN_CFLAGS = @PCRE_WARN_CFLAGS@ -PERL = @PERL@ -PERL_PATH = @PERL_PATH@ -PKG_CONFIG = @PKG_CONFIG@ -PLATFORMDEP = @PLATFORMDEP@ -POFILES = @POFILES@ -POSUB = @POSUB@ -PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ -PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ -PYTHON = @PYTHON@ -PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ -PYTHON_PLATFORM = @PYTHON_PLATFORM@ -PYTHON_PREFIX = @PYTHON_PREFIX@ -PYTHON_VERSION = @PYTHON_VERSION@ -RANLIB = @RANLIB@ -REBUILD = @REBUILD@ -SED = @SED@ -SELINUX_LIBS = @SELINUX_LIBS@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRIP = @STRIP@ -USE_NLS = @USE_NLS@ -VERSION = @VERSION@ -WINDRES = @WINDRES@ -XATTR_LIBS = @XATTR_LIBS@ -XGETTEXT = @XGETTEXT@ -XMLCATALOG = @XMLCATALOG@ -XML_CATALOG_FILE = @XML_CATALOG_FILE@ -XSLTPROC = @XSLTPROC@ -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@ -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_os = @build_os@ -build_vendor = @build_vendor@ -builddir = @builddir@ -datadir = @datadir@ -datarootdir = @datarootdir@ -docdir = @docdir@ -dvidir = @dvidir@ -exec_prefix = @exec_prefix@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -htmldir = @htmldir@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localedir = @localedir@ -localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -ms_librarian = @ms_librarian@ -oldincludedir = @oldincludedir@ -pdfdir = @pdfdir@ -pkgpyexecdir = @pkgpyexecdir@ -pkgpythondir = @pkgpythondir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -psdir = @psdir@ -pyexecdir = @pyexecdir@ -pythondir = @pythondir@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -srcdir = @srcdir@ -sysconfdir = @sysconfdir@ -target_alias = @target_alias@ -top_build_prefix = @top_build_prefix@ -top_builddir = @top_builddir@ -top_srcdir = @top_srcdir@ -SUBDIRS = \ - dirent \ - vs8 \ - vs9 - -EXTRA_DIST = \ - make.msc \ - module.defs - -all: all-recursive - -.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) --gnu build/win32/Makefile'; \ - $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --gnu build/win32/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): - -mostlyclean-libtool: - -rm -f *.lo - -clean-libtool: - -rm -rf .libs _libs - -# This directory's subdirectories are mostly independent; you can cd -# into them and run `make' without going through this Makefile. -# To change the values of `make' variables: instead of editing Makefiles, -# (1) if the variable is set in `config.status', edit `config.status' -# (which will cause the Makefiles to be regenerated when you run `make'); -# (2) otherwise, pass the desired values on the `make' command line. -$(RECURSIVE_TARGETS): - @failcom='exit 1'; \ - for f in x $$MAKEFLAGS; do \ - case $$f in \ - *=* | --[!k]*);; \ - *k*) failcom='fail=yes';; \ - esac; \ - done; \ - dot_seen=no; \ - target=`echo $@ | sed s/-recursive//`; \ - list='$(SUBDIRS)'; for subdir in $$list; do \ - echo "Making $$target in $$subdir"; \ - if test "$$subdir" = "."; then \ - dot_seen=yes; \ - local_target="$$target-am"; \ - else \ - local_target="$$target"; \ - fi; \ - ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ - || eval $$failcom; \ - done; \ - if test "$$dot_seen" = "no"; then \ - $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ - fi; test -z "$$fail" - -$(RECURSIVE_CLEAN_TARGETS): - @failcom='exit 1'; \ - for f in x $$MAKEFLAGS; do \ - case $$f in \ - *=* | --[!k]*);; \ - *k*) failcom='fail=yes';; \ - esac; \ - done; \ - dot_seen=no; \ - case "$@" in \ - distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ - *) list='$(SUBDIRS)' ;; \ - esac; \ - rev=''; for subdir in $$list; do \ - if test "$$subdir" = "."; then :; else \ - rev="$$subdir $$rev"; \ - fi; \ - done; \ - rev="$$rev ."; \ - target=`echo $@ | sed s/-recursive//`; \ - for subdir in $$rev; do \ - echo "Making $$target in $$subdir"; \ - if test "$$subdir" = "."; then \ - local_target="$$target-am"; \ - else \ - local_target="$$target"; \ - fi; \ - ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ - || eval $$failcom; \ - done && test -z "$$fail" -tags-recursive: - list='$(SUBDIRS)'; for subdir in $$list; do \ - test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ - done -ctags-recursive: - list='$(SUBDIRS)'; for subdir in $$list; do \ - test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ - done - -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: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - set x; \ - here=`pwd`; \ - if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ - include_option=--etags-include; \ - empty_fix=.; \ - else \ - include_option=--include; \ - empty_fix=; \ - fi; \ - list='$(SUBDIRS)'; for subdir in $$list; do \ - if test "$$subdir" = .; then :; else \ - test ! -f $$subdir/TAGS || \ - set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ - fi; \ - done; \ - 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; }; }'`; \ - 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: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - 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; }; }'`; \ - 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 - -distdir: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - list='$(DISTFILES)'; \ - dist_files=`for file in $$list; do echo $$file; done | \ - sed -e "s|^$$srcdirstrip/||;t" \ - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ - case $$dist_files in \ - */*) $(MKDIR_P) `echo "$$dist_files" | \ - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ - sort -u` ;; \ - esac; \ - for file in $$dist_files; do \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - if test -d $$d/$$file; then \ - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test -d "$(distdir)/$$file"; then \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ - else \ - test -f "$(distdir)/$$file" \ - || cp -p $$d/$$file "$(distdir)/$$file" \ - || exit 1; \ - fi; \ - done - @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ - if test "$$subdir" = .; then :; else \ - test -d "$(distdir)/$$subdir" \ - || $(MKDIR_P) "$(distdir)/$$subdir" \ - || exit 1; \ - fi; \ - done - @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ - if test "$$subdir" = .; then :; else \ - dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ - $(am__relativize); \ - new_distdir=$$reldir; \ - dir1=$$subdir; dir2="$(top_distdir)"; \ - $(am__relativize); \ - new_top_distdir=$$reldir; \ - echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ - echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ - ($(am__cd) $$subdir && \ - $(MAKE) $(AM_MAKEFLAGS) \ - top_distdir="$$new_top_distdir" \ - distdir="$$new_distdir" \ - am__remove_distdir=: \ - am__skip_length_check=: \ - am__skip_mode_fix=: \ - distdir) \ - || exit 1; \ - fi; \ - done -check-am: all-am -check: check-recursive -all-am: Makefile -installdirs: installdirs-recursive -installdirs-am: -install: install-recursive -install-exec: install-exec-recursive -install-data: install-data-recursive -uninstall: uninstall-recursive - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-recursive -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-recursive - -clean-am: clean-generic clean-libtool mostlyclean-am - -distclean: distclean-recursive - -rm -f Makefile -distclean-am: clean-am distclean-generic distclean-tags - -dvi: dvi-recursive - -dvi-am: - -html: html-recursive - -html-am: - -info: info-recursive - -info-am: - -install-data-am: - -install-dvi: install-dvi-recursive - -install-dvi-am: - -install-exec-am: - -install-html: install-html-recursive - -install-html-am: - -install-info: install-info-recursive - -install-info-am: - -install-man: - -install-pdf: install-pdf-recursive - -install-pdf-am: - -install-ps: install-ps-recursive - -install-ps-am: - -installcheck-am: - -maintainer-clean: maintainer-clean-recursive - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-recursive - -mostlyclean-am: mostlyclean-generic mostlyclean-libtool - -pdf: pdf-recursive - -pdf-am: - -ps: ps-recursive - -ps-am: - -uninstall-am: - -.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \ - install-am install-strip tags-recursive - -.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ - all all-am check check-am clean clean-generic clean-libtool \ - ctags ctags-recursive distclean distclean-generic \ - distclean-libtool distclean-tags distdir 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 installcheck \ - installcheck-am installdirs installdirs-am maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-generic \ - mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \ - uninstall uninstall-am - - -# 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: diff --git a/lib/win32/glib-2.20.4/build/win32/dirent/Makefile.am b/lib/win32/glib-2.20.4/build/win32/dirent/Makefile.am deleted file mode 100644 index 87b5216ab75ec..0000000000000 --- a/lib/win32/glib-2.20.4/build/win32/dirent/Makefile.am +++ /dev/null @@ -1,9 +0,0 @@ -EXTRA_DIST = \ - README \ - dirent.c \ - dirent.h \ - wdirent.c \ - makefile.msc \ - dirent-zip - - diff --git a/lib/win32/glib-2.20.4/build/win32/dirent/Makefile.in b/lib/win32/glib-2.20.4/build/win32/dirent/Makefile.in deleted file mode 100644 index e26d2e5bdc403..0000000000000 --- a/lib/win32/glib-2.20.4/build/win32/dirent/Makefile.in +++ /dev/null @@ -1,453 +0,0 @@ -# Makefile.in generated by automake 1.11 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@ -subdir = build/win32/dirent -DIST_COMMON = README $(srcdir)/Makefile.am $(srcdir)/Makefile.in -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ - $(top_srcdir)/acglib.m4 \ - $(top_srcdir)/glib/libcharset/codeset.m4 \ - $(top_srcdir)/glib/libcharset/glibc21.m4 \ - $(top_srcdir)/m4macros/glib-gettext.m4 \ - $(top_srcdir)/configure.in -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs -CONFIG_HEADER = $(top_builddir)/config.h -CONFIG_CLEAN_FILES = -CONFIG_CLEAN_VPATH_FILES = -SOURCES = -DIST_SOURCES = -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -ACLOCAL = @ACLOCAL@ -ALLOCA = @ALLOCA@ -AMTAR = @AMTAR@ -AR = @AR@ -AS = @AS@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -CATALOGS = @CATALOGS@ -CATOBJEXT = @CATOBJEXT@ -CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CFLAGS = @CFLAGS@ -CONFIG_STATUS_DEPENDENCIES = @CONFIG_STATUS_DEPENDENCIES@ -CPP = @CPP@ -CPPFLAGS = @CPPFLAGS@ -CXX = @CXX@ -CXXCPP = @CXXCPP@ -CXXDEPMODE = @CXXDEPMODE@ -CXXFLAGS = @CXXFLAGS@ -CYGPATH_W = @CYGPATH_W@ -DATADIRNAME = @DATADIRNAME@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -DISABLE_MEM_POOLS = @DISABLE_MEM_POOLS@ -DLLTOOL = @DLLTOOL@ -DSYMUTIL = @DSYMUTIL@ -DUMPBIN = @DUMPBIN@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -FAM_LIBS = @FAM_LIBS@ -FGREP = @FGREP@ -GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ -GIO = @GIO@ -GIO_MODULE_DIR = @GIO_MODULE_DIR@ -GLIBC21 = @GLIBC21@ -GLIB_BINARY_AGE = @GLIB_BINARY_AGE@ -GLIB_DEBUG_FLAGS = @GLIB_DEBUG_FLAGS@ -GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ -GLIB_GENMARSHAL = @GLIB_GENMARSHAL@ -GLIB_INTERFACE_AGE = @GLIB_INTERFACE_AGE@ -GLIB_MAJOR_VERSION = @GLIB_MAJOR_VERSION@ -GLIB_MICRO_VERSION = @GLIB_MICRO_VERSION@ -GLIB_MINOR_VERSION = @GLIB_MINOR_VERSION@ -GLIB_VERSION = @GLIB_VERSION@ -GLIB_WIN32_STATIC_COMPILATION_DEFINE = @GLIB_WIN32_STATIC_COMPILATION_DEFINE@ -GMOFILES = @GMOFILES@ -GMSGFMT = @GMSGFMT@ -GREP = @GREP@ -GSPAWN = @GSPAWN@ -GTHREAD_COMPILE_IMPL_DEFINES = @GTHREAD_COMPILE_IMPL_DEFINES@ -GTKDOC_CHECK = @GTKDOC_CHECK@ -G_LIBS_EXTRA = @G_LIBS_EXTRA@ -G_MODULE_BROKEN_RTLD_GLOBAL = @G_MODULE_BROKEN_RTLD_GLOBAL@ -G_MODULE_HAVE_DLERROR = @G_MODULE_HAVE_DLERROR@ -G_MODULE_IMPL = @G_MODULE_IMPL@ -G_MODULE_LDFLAGS = @G_MODULE_LDFLAGS@ -G_MODULE_LIBS = @G_MODULE_LIBS@ -G_MODULE_LIBS_EXTRA = @G_MODULE_LIBS_EXTRA@ -G_MODULE_NEED_USCORE = @G_MODULE_NEED_USCORE@ -G_MODULE_PLUGIN_LIBS = @G_MODULE_PLUGIN_LIBS@ -G_MODULE_SUPPORTED = @G_MODULE_SUPPORTED@ -G_THREAD_CFLAGS = @G_THREAD_CFLAGS@ -G_THREAD_LIBS = @G_THREAD_LIBS@ -G_THREAD_LIBS_EXTRA = @G_THREAD_LIBS_EXTRA@ -G_THREAD_LIBS_FOR_GTHREAD = @G_THREAD_LIBS_FOR_GTHREAD@ -HTML_DIR = @HTML_DIR@ -ICONV_LIBS = @ICONV_LIBS@ -INDENT = @INDENT@ -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -INSTOBJEXT = @INSTOBJEXT@ -INTLLIBS = @INTLLIBS@ -LD = @LD@ -LDFLAGS = @LDFLAGS@ -LIBOBJS = @LIBOBJS@ -LIBS = @LIBS@ -LIBTOOL = @LIBTOOL@ -LIBTOOL_EXPORT_OPTIONS = @LIBTOOL_EXPORT_OPTIONS@ -LIB_EXE_MACHINE_FLAG = @LIB_EXE_MACHINE_FLAG@ -LIPO = @LIPO@ -LN_S = @LN_S@ -LTLIBOBJS = @LTLIBOBJS@ -LT_AGE = @LT_AGE@ -LT_CURRENT = @LT_CURRENT@ -LT_CURRENT_MINUS_AGE = @LT_CURRENT_MINUS_AGE@ -LT_RELEASE = @LT_RELEASE@ -LT_REVISION = @LT_REVISION@ -MAINT = @MAINT@ -MAKEINFO = @MAKEINFO@ -MKDIR_P = @MKDIR_P@ -MKINSTALLDIRS = @MKINSTALLDIRS@ -MSGFMT = @MSGFMT@ -MSGFMT_OPTS = @MSGFMT_OPTS@ -NM = @NM@ -NMEDIT = @NMEDIT@ -OBJDUMP = @OBJDUMP@ -OBJEXT = @OBJEXT@ -OTOOL = @OTOOL@ -OTOOL64 = @OTOOL64@ -PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -PCRE_CFLAGS = @PCRE_CFLAGS@ -PCRE_LIBS = @PCRE_LIBS@ -PCRE_REQUIRES = @PCRE_REQUIRES@ -PCRE_WARN_CFLAGS = @PCRE_WARN_CFLAGS@ -PERL = @PERL@ -PERL_PATH = @PERL_PATH@ -PKG_CONFIG = @PKG_CONFIG@ -PLATFORMDEP = @PLATFORMDEP@ -POFILES = @POFILES@ -POSUB = @POSUB@ -PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ -PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ -PYTHON = @PYTHON@ -PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ -PYTHON_PLATFORM = @PYTHON_PLATFORM@ -PYTHON_PREFIX = @PYTHON_PREFIX@ -PYTHON_VERSION = @PYTHON_VERSION@ -RANLIB = @RANLIB@ -REBUILD = @REBUILD@ -SED = @SED@ -SELINUX_LIBS = @SELINUX_LIBS@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRIP = @STRIP@ -USE_NLS = @USE_NLS@ -VERSION = @VERSION@ -WINDRES = @WINDRES@ -XATTR_LIBS = @XATTR_LIBS@ -XGETTEXT = @XGETTEXT@ -XMLCATALOG = @XMLCATALOG@ -XML_CATALOG_FILE = @XML_CATALOG_FILE@ -XSLTPROC = @XSLTPROC@ -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@ -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_os = @build_os@ -build_vendor = @build_vendor@ -builddir = @builddir@ -datadir = @datadir@ -datarootdir = @datarootdir@ -docdir = @docdir@ -dvidir = @dvidir@ -exec_prefix = @exec_prefix@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -htmldir = @htmldir@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localedir = @localedir@ -localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -ms_librarian = @ms_librarian@ -oldincludedir = @oldincludedir@ -pdfdir = @pdfdir@ -pkgpyexecdir = @pkgpyexecdir@ -pkgpythondir = @pkgpythondir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -psdir = @psdir@ -pyexecdir = @pyexecdir@ -pythondir = @pythondir@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -srcdir = @srcdir@ -sysconfdir = @sysconfdir@ -target_alias = @target_alias@ -top_build_prefix = @top_build_prefix@ -top_builddir = @top_builddir@ -top_srcdir = @top_srcdir@ -EXTRA_DIST = \ - README \ - dirent.c \ - dirent.h \ - wdirent.c \ - makefile.msc \ - dirent-zip - -all: 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) --gnu build/win32/dirent/Makefile'; \ - $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --gnu build/win32/dirent/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): - -mostlyclean-libtool: - -rm -f *.lo - -clean-libtool: - -rm -rf .libs _libs -tags: TAGS -TAGS: - -ctags: CTAGS -CTAGS: - - -distdir: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - list='$(DISTFILES)'; \ - dist_files=`for file in $$list; do echo $$file; done | \ - sed -e "s|^$$srcdirstrip/||;t" \ - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ - case $$dist_files in \ - */*) $(MKDIR_P) `echo "$$dist_files" | \ - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ - sort -u` ;; \ - esac; \ - for file in $$dist_files; do \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - if test -d $$d/$$file; then \ - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test -d "$(distdir)/$$file"; then \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ - else \ - test -f "$(distdir)/$$file" \ - || cp -p $$d/$$file "$(distdir)/$$file" \ - || exit 1; \ - fi; \ - done -check-am: all-am -check: check-am -all-am: Makefile -installdirs: -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 - -dvi: dvi-am - -dvi-am: - -html: html-am - -html-am: - -info: info-am - -info-am: - -install-data-am: - -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: - -.MAKE: install-am install-strip - -.PHONY: all all-am check check-am clean clean-generic clean-libtool \ - distclean distclean-generic distclean-libtool distdir 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 \ - installcheck installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-generic \ - mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am - - -# 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: diff --git a/lib/win32/glib-2.20.4/build/win32/dirent/README b/lib/win32/glib-2.20.4/build/win32/dirent/README deleted file mode 100644 index e31ac1f904cc0..0000000000000 --- a/lib/win32/glib-2.20.4/build/win32/dirent/README +++ /dev/null @@ -1,2 +0,0 @@ -This is dirent from mingw-runtime-3.3, separated for MSVC user's -benefit. diff --git a/lib/win32/glib-2.20.4/build/win32/dirent/dirent-zip b/lib/win32/glib-2.20.4/build/win32/dirent/dirent-zip deleted file mode 100644 index 7301987eb0f55..0000000000000 --- a/lib/win32/glib-2.20.4/build/win32/dirent/dirent-zip +++ /dev/null @@ -1,19 +0,0 @@ -#!/bin/sh - -# Build developer package for the dirent library. - -ZIP=/tmp/dirent.zip - -mkdir -p dist/include dist/lib -cp dirent.h dist/include -cp dirent.lib dist/lib - -(cd dist -rm $ZIP -zip $ZIP -@ < - * Significantly revised and rewinddir, seekdir and telldir added by Colin - * Peters - * - */ - -#include -#include -#include -#include -#include - -#include "dirent.h" - -#define WIN32_LEAN_AND_MEAN -#include /* for GetFileAttributes */ - -#include - -#ifdef _UNICODE -#define _tdirent _wdirent -#define _TDIR _WDIR -#define _topendir _wopendir -#define _tclosedir _wclosedir -#define _treaddir _wreaddir -#define _trewinddir _wrewinddir -#define _ttelldir _wtelldir -#define _tseekdir _wseekdir -#else -#define _tdirent dirent -#define _TDIR DIR -#define _topendir opendir -#define _tclosedir closedir -#define _treaddir readdir -#define _trewinddir rewinddir -#define _ttelldir telldir -#define _tseekdir seekdir -#endif - -#define SUFFIX _T("*") -#define SLASH _T("\\") - - -/* - * opendir - * - * Returns a pointer to a DIR structure appropriately filled in to begin - * searching a directory. - */ -_TDIR * -_topendir (const _TCHAR *szPath) -{ - _TDIR *nd; - unsigned int rc; - _TCHAR szFullPath[MAX_PATH]; - - errno = 0; - - if (!szPath) - { - errno = EFAULT; - return (_TDIR *) 0; - } - - if (szPath[0] == _T('\0')) - { - errno = ENOTDIR; - return (_TDIR *) 0; - } - - /* Attempt to determine if the given path really is a directory. */ - rc = GetFileAttributes (szPath); - if (rc == (unsigned int)-1) - { - /* call GetLastError for more error info */ - errno = ENOENT; - return (_TDIR *) 0; - } - if (!(rc & FILE_ATTRIBUTE_DIRECTORY)) - { - /* Error, entry exists but not a directory. */ - errno = ENOTDIR; - return (_TDIR *) 0; - } - - /* Make an absolute pathname. */ - _tfullpath (szFullPath, szPath, MAX_PATH); - - /* Allocate enough space to store DIR structure and the complete - * directory path given. */ - nd = (_TDIR *) malloc (sizeof (_TDIR) + (_tcslen(szFullPath) + _tcslen (SLASH) + - _tcslen(SUFFIX) + 1) * sizeof(_TCHAR)); - - if (!nd) - { - /* Error, out of memory. */ - errno = ENOMEM; - return (_TDIR *) 0; - } - - /* Create the search expression. */ - _tcscpy (nd->dd_name, szFullPath); - - /* Add on a slash if the path does not end with one. */ - if (nd->dd_name[0] != _T('\0') && - nd->dd_name[_tcslen (nd->dd_name) - 1] != _T('/') && - nd->dd_name[_tcslen (nd->dd_name) - 1] != _T('\\')) - { - _tcscat (nd->dd_name, SLASH); - } - - /* Add on the search pattern */ - _tcscat (nd->dd_name, SUFFIX); - - /* Initialize handle to -1 so that a premature closedir doesn't try - * to call _findclose on it. */ - nd->dd_handle = -1; - - /* Initialize the status. */ - nd->dd_stat = 0; - - /* Initialize the dirent structure. ino and reclen are invalid under - * Win32, and name simply points at the appropriate part of the - * findfirst_t structure. */ - nd->dd_dir.d_ino = 0; - nd->dd_dir.d_reclen = 0; - nd->dd_dir.d_namlen = 0; - memset (nd->dd_dir.d_name, 0, FILENAME_MAX); - - return nd; -} - - -/* - * readdir - * - * Return a pointer to a dirent structure filled with the information on the - * next entry in the directory. - */ -struct _tdirent * -_treaddir (_TDIR * dirp) -{ - errno = 0; - - /* Check for valid DIR struct. */ - if (!dirp) - { - errno = EFAULT; - return (struct _tdirent *) 0; - } - - if (dirp->dd_stat < 0) - { - /* We have already returned all files in the directory - * (or the structure has an invalid dd_stat). */ - return (struct _tdirent *) 0; - } - else if (dirp->dd_stat == 0) - { - /* We haven't started the search yet. */ - /* Start the search */ - dirp->dd_handle = _tfindfirst (dirp->dd_name, &(dirp->dd_dta)); - - if (dirp->dd_handle == -1) - { - /* Whoops! Seems there are no files in that - * directory. */ - dirp->dd_stat = -1; - } - else - { - dirp->dd_stat = 1; - } - } - else - { - /* Get the next search entry. */ - if (_tfindnext (dirp->dd_handle, &(dirp->dd_dta))) - { - /* We are off the end or otherwise error. - _findnext sets errno to ENOENT if no more file - Undo this. */ - DWORD winerr = GetLastError(); - if (winerr == ERROR_NO_MORE_FILES) - errno = 0; - _findclose (dirp->dd_handle); - dirp->dd_handle = -1; - dirp->dd_stat = -1; - } - else - { - /* Update the status to indicate the correct - * number. */ - dirp->dd_stat++; - } - } - - if (dirp->dd_stat > 0) - { - /* Successfully got an entry. Everything about the file is - * already appropriately filled in except the length of the - * file name. */ - dirp->dd_dir.d_namlen = _tcslen (dirp->dd_dta.name); - _tcscpy (dirp->dd_dir.d_name, dirp->dd_dta.name); - return &dirp->dd_dir; - } - - return (struct _tdirent *) 0; -} - - -/* - * closedir - * - * Frees up resources allocated by opendir. - */ -int -_tclosedir (_TDIR * dirp) -{ - int rc; - - errno = 0; - rc = 0; - - if (!dirp) - { - errno = EFAULT; - return -1; - } - - if (dirp->dd_handle != -1) - { - rc = _findclose (dirp->dd_handle); - } - - /* Delete the dir structure. */ - free (dirp); - - return rc; -} - -/* - * rewinddir - * - * Return to the beginning of the directory "stream". We simply call findclose - * and then reset things like an opendir. - */ -void -_trewinddir (_TDIR * dirp) -{ - errno = 0; - - if (!dirp) - { - errno = EFAULT; - return; - } - - if (dirp->dd_handle != -1) - { - _findclose (dirp->dd_handle); - } - - dirp->dd_handle = -1; - dirp->dd_stat = 0; -} - -/* - * telldir - * - * Returns the "position" in the "directory stream" which can be used with - * seekdir to go back to an old entry. We simply return the value in stat. - */ -long -_ttelldir (_TDIR * dirp) -{ - errno = 0; - - if (!dirp) - { - errno = EFAULT; - return -1; - } - return dirp->dd_stat; -} - -/* - * seekdir - * - * Seek to an entry previously returned by telldir. We rewind the directory - * and call readdir repeatedly until either dd_stat is the position number - * or -1 (off the end). This is not perfect, in that the directory may - * have changed while we weren't looking. But that is probably the case with - * any such system. - */ -void -_tseekdir (_TDIR * dirp, long lPos) -{ - errno = 0; - - if (!dirp) - { - errno = EFAULT; - return; - } - - if (lPos < -1) - { - /* Seeking to an invalid position. */ - errno = EINVAL; - return; - } - else if (lPos == -1) - { - /* Seek past end. */ - if (dirp->dd_handle != -1) - { - _findclose (dirp->dd_handle); - } - dirp->dd_handle = -1; - dirp->dd_stat = -1; - } - else - { - /* Rewind and read forward to the appropriate index. */ - _trewinddir (dirp); - - while ((dirp->dd_stat < lPos) && _treaddir (dirp)) - ; - } -} diff --git a/lib/win32/glib-2.20.4/build/win32/dirent/dirent.h b/lib/win32/glib-2.20.4/build/win32/dirent/dirent.h deleted file mode 100644 index a6989a1ee3231..0000000000000 --- a/lib/win32/glib-2.20.4/build/win32/dirent/dirent.h +++ /dev/null @@ -1,127 +0,0 @@ -/* - * DIRENT.H (formerly DIRLIB.H) - * This file has no copyright assigned and is placed in the Public Domain. - * This file is a part of the mingw-runtime package. - * No warranty is given; refer to the file DISCLAIMER within the package. - * - */ -#ifndef _DIRENT_H_ -#define _DIRENT_H_ - -#include -#include - -#ifndef RC_INVOKED - -#ifdef __cplusplus -extern "C" { -#endif - -struct dirent -{ - long d_ino; /* Always zero. */ - unsigned short d_reclen; /* Always zero. */ - unsigned short d_namlen; /* Length of name in d_name. */ - char d_name[FILENAME_MAX]; /* File name. */ -}; - -#ifdef _WIN64 -#define INTPTR __int64 -#else -#define INTPTR long -#endif - -/* - * This is an internal data structure. Good programmers will not use it - * except as an argument to one of the functions below. - * dd_stat field is now int (was short in older versions). - */ -typedef struct -{ - /* disk transfer area for this dir */ - struct _finddata_t dd_dta; - - /* dirent struct to return from dir (NOTE: this makes this thread - * safe as long as only one thread uses a particular DIR struct at - * a time) */ - struct dirent dd_dir; - - /* _findnext handle */ - INTPTR dd_handle; - - /* - * Status of search: - * 0 = not started yet (next entry to read is first entry) - * -1 = off the end - * positive = 0 based index of next entry - */ - int dd_stat; - - /* given path for dir with search pattern (struct is extended) */ - char dd_name[1]; -} DIR; - -DIR* __cdecl opendir (const char*); -struct dirent* __cdecl readdir (DIR*); -int __cdecl closedir (DIR*); -void __cdecl rewinddir (DIR*); -long __cdecl telldir (DIR*); -void __cdecl seekdir (DIR*, long); - - -/* wide char versions */ - -struct _wdirent -{ - long d_ino; /* Always zero. */ - unsigned short d_reclen; /* Always zero. */ - unsigned short d_namlen; /* Length of name in d_name. */ - wchar_t d_name[FILENAME_MAX]; /* File name. */ -}; - -/* - * This is an internal data structure. Good programmers will not use it - * except as an argument to one of the functions below. - */ -typedef struct -{ - /* disk transfer area for this dir */ - struct _wfinddata_t dd_dta; - - /* dirent struct to return from dir (NOTE: this makes this thread - * safe as long as only one thread uses a particular DIR struct at - * a time) */ - struct _wdirent dd_dir; - - /* _findnext handle */ - INTPTR dd_handle; - - /* - * Status of search: - * 0 = not started yet (next entry to read is first entry) - * -1 = off the end - * positive = 0 based index of next entry - */ - int dd_stat; - - /* given path for dir with search pattern (struct is extended) */ - wchar_t dd_name[1]; -} _WDIR; - - - -_WDIR* __cdecl _wopendir (const wchar_t*); -struct _wdirent* __cdecl _wreaddir (_WDIR*); -int __cdecl _wclosedir (_WDIR*); -void __cdecl _wrewinddir (_WDIR*); -long __cdecl _wtelldir (_WDIR*); -void __cdecl _wseekdir (_WDIR*, long); - - -#ifdef __cplusplus -} -#endif - -#endif /* Not RC_INVOKED */ - -#endif /* Not _DIRENT_H_ */ diff --git a/lib/win32/glib-2.20.4/build/win32/dirent/makefile.msc b/lib/win32/glib-2.20.4/build/win32/dirent/makefile.msc deleted file mode 100644 index 00f2e34adbdb0..0000000000000 --- a/lib/win32/glib-2.20.4/build/win32/dirent/makefile.msc +++ /dev/null @@ -1,16 +0,0 @@ -TOP = ..\..\..\.. - -!INCLUDE $(TOP)\glib\build\win32\make.msc - -dirent_OBJECTS = dirent.obj wdirent.obj - -INCLUDES = -I. - -all : dirent.lib - -dirent.lib : $(dirent_OBJECTS) - lib /out:dirent.lib /nodefaultlib $(dirent_OBJECTS) - -clean:: - del /f $(dirent_OBJECTS) - del /f dirent.lib diff --git a/lib/win32/glib-2.20.4/build/win32/dirent/wdirent.c b/lib/win32/glib-2.20.4/build/win32/dirent/wdirent.c deleted file mode 100644 index 4b8cc5054bca0..0000000000000 --- a/lib/win32/glib-2.20.4/build/win32/dirent/wdirent.c +++ /dev/null @@ -1,3 +0,0 @@ -#define _UNICODE 1 -#define UNICODE 1 -#include "dirent.c" diff --git a/lib/win32/glib-2.20.4/build/win32/make.msc b/lib/win32/glib-2.20.4/build/win32/make.msc deleted file mode 100644 index 91835a9e97749..0000000000000 --- a/lib/win32/glib-2.20.4/build/win32/make.msc +++ /dev/null @@ -1,181 +0,0 @@ -# Note that this file is hardly maintained, hardly usable without -# manual editing, and not really part of a recommended way to build -# GLib and related software with Microsoft's compilers. Only a few -# persons use a build setup that involves this file. - -# Common makefile definitions for building GLib, GTk+, and various -# software that use these libraries with msvc on Win32 - -# Debug builds shoud link with msvcrtd release build with msvcrt. -!IFNDEF DEBUG -# Full optimization: -OPTIMIZE = -Ox -CRUNTIME = -MD -# Line number debug info only -DEBUGINFO = -Zd -LINKDEBUG = -!ELSE -# Debugging: -OPTIMIZE = -CRUNTIME = -MDd -DEBUGINFO = -Zi -DG_ENABLE_DEBUG=1 -LINKDEBUG = /debug /nodefaultlib:msvcrt.lib -!ENDIF - -LDFLAGS = /link /machine:ix86 $(LINKDEBUG) - -!IFNDEF TOP -TOP = .. -!ENDIF - -# paths and version numbers -!INCLUDE module.defs - -################ -# CFLAGS and LIBS for the packages in module.defs. -# In alphabetical order. - -# Note that these CFLAGS and LIBS refer to stuff in "source" -# directories. This is for historical reasons, and only useable if you -# have the GLib, Pango, etc sources. If you use the prebuilt developer -# packages, you should fix these to instead refer to the place where -# you unzipped the developer packages. Easiest of all, run pkg-config -# --cflags gtk+-2.0 (for instance), and paste its output as the -# definition of GTK2_CFLAGS. Etc. - -ATK_CFLAGS = -I $(ATK) -ATK_LIBS = $(ATK)\atk\atk-$(ATK_VER).lib - -CAIRO_CFLAGS = -I $(CAIRO)\cairo\src -I $(CAIRO)\libpixman\src -I $(CAIRO) $(FONTCONFIG_CFLAGS) $(FREETYPE2_CFLAGS) -CAIRO_LIBS = $(CAIRO)\cairo\src\libcairo-$(CAIRO_VER).lib - -DIRENT_CFLAGS = -I $(GLIB)\build\win32\dirent -DIRENT_LIBS = $(GLIB)\build\win32\dirent\dirent.lib - -# Don't know if Freetype2, FriBiDi and some others actually can be -# built with MSVC, but one can produce an import library even if the -# DLL was built with gcc. - -FREETYPE2_CFLAGS = -I $(FREETYPE2)\include -FREETYPE2_LIBS = $(FREETYPE2)\obj\freetype-$(FREETYPE2_VER).lib - -GDK_PIXBUF_CFLAGS = -I $(GDK_PIXBUF) -GDK_PIXBUF_LIBS = $(GTK2)\gdk-pixbuf\gdk_pixbuf-$(GDK_PIXBUF_VER).lib - -GIMP_CFLAGS = -I $(GIMP) -GIMP_PLUGIN_LIBS = $(GIMP)\libgimp\gimp-$(GIMP_VER).lib $(GIMP)\libgimp\gimpui-$(GIMP_VER).lib - -# overide definition to use it as callable path -GLIB = $(TOP)\glib - -GLIB_CFLAGS = -I $(GLIB) -I $(GLIB)\glib -I $(GLIB)\gmodule $(INTL_CFLAGS) -GLIB_LIBS = $(GLIB)\glib\glib-$(GLIB_VER).lib $(GLIB)\gmodule\gmodule-$(GLIB_VER).lib $(GLIB)\gobject\gobject-$(GLIB_VER).lib -GTHREAD_LIBS = $(GLIB)\gthread\gthread-$(GLIB_VER).lib - -GNOMECANVAS_CFLAGS = -I $(GNOMECANVAS) -GNOMECANVAS_LIBS = $(GNOMECANVAS)\libgnomecanvas\libgnomecanvas-$(GNOMECANVAS_VER).lib - -GNOMEPRINT_CFLAGS = -I $(GNOMEPRINT) -GNOMEPRINT_LIBS = $(GNOMEPRINT)\libgnomeprint\gnome-print-$(GNOMEPRINT_VER).lib - -GNOMEPRINTUI_CFLAGS = -I $(GNOMEPRINTUI) -GNOMEPRINTUI_LIBS = $(GNOMEPRINTUI)\libgnomeprintui\gnome-printui-$(GNOMEPRINTUI_VER).lib - -GTK_CFLAGS = -I$(GTK)\gdk -I$(GTK)\gdk -I$(GTK) -GTK_LIBS = $(GTK)\gtk\gtk.lib $(GTK)\gdk\gdk.lib - -GTK2_CFLAGS = $(GLIB_CFLAGS) $(ATK_CFLAGS) -I$(GTK2)\gdk -I$(GTK2)\gdk -I$(GTK2) -I$(PANGO) -I$(ATK) -GTK2_LIBS = $(GTK2)\gtk\gtk-win32-$(GTK2_VER).lib $(GTK2)\gdk\gdk-win32-$(GTK2_VER).lib $(GTK2)\gdk-pixbuf\gdk_pixbuf-$(GTK2_VER).lib $(PANGO_LIBS) - -GTKGLAREA_CFLAGS = -I $(GTKGLAREA) -GTKGLAREA_CFLAGS = -I $(GTKGLAREA) -GTKGLAREA_LIBS = $(GTKGLAREA)\gtkgl\gtkgl-$(GTKGLAREA_VER).lib - -LIBART_CFLAGS = -I$(LIBART)\.. -FIlibart_lgpl/art_config.h -LIBART_LIBS = $(LIBART)\libart.lib - -INTL_CFLAGS = -I $(INTL) -INTL_LIBS = $(INTL)\intl.lib - -LIBICONV_CFLAGS = -I $(LIBICONV)\include -LIBICONV_LIBS = $(LIBICONV)\lib\iconv.lib - -LIBXML_CFLAGS = -I $(LIBXML) -LIBXML_LIBS = $(LIBXML)\xml-$(LIBXML_VER).lib - -LIBXML2_CFLAGS = $(LIBICONV_CFLAGS) -I $(LIBXML2)\include -LIBXML2_LIBS = $(LIBXML2)\libxml2.lib - -LIBXSLT_CFLAGS = -I $(LIBXSLT) -LIBXSLT_LIBS = $(LIBXSLT)\libxslt\libxslt.lib - -JPEG_CFLAGS = -I $(JPEG) -JPEG_LIBS = $(JPEG)\libjpeg.lib - -OPENGL_CFLAGS = # None needed, headers bundled with the compiler -OPENGL_LIBS = opengl32.lib lglu32.lib - -PANGO_CFLAGS = -I $(PANGO) -PANGO_LIBS = $(PANGO)\pango\pango-$(PANGO_VER).lib -PANGOWIN32_LIBS = $(PANGO_LIBS) $(PANGO)\pango\pangowin32-$(PANGO_VER).lib -PANGOFT2_LIBS = $(PANGO_LIBS) $(PANGO)\pango\pangoft2-$(PANGO_VER).lib - -PNG_CFLAGS = -I $(PNG) $(ZLIB_CFLAGS) -PNG_LIBS = $(PNG)\png.lib $(ZLIB_LIBS) - -RSVG_CFLAGS = -I $(RSVG)\.. -RSVG_LIBS = $(RSVG)\librsvg-$(RSVG_VER).lib - -SVG_CFLAGS = -I $(SVG)\src -SVG_LIBS = $(SVG)\src\libsvg-$(SVG_VER).lib - -TIFF_CFLAGS = -I $(TIFF)\libtiff -# Use single import library for both libtiff DLL versions (with or -# without LZW code). The user selects which DLL to use. -TIFF_NOLZW_LIBS = $(TIFF)\libtiff\tiff.lib $(JPEG_LIBS) $(ZLIB_LIBS) user32.lib -TIFF_LZW_LIBS = $(TIFF_NOLZW_LIBS) -TIFF_LIBS = $(TIFF_NOLZW_LIBS) - -ZLIB_CFLAGS = -I $(ZLIB) -ZLIB_LIBS = $(ZLIB)\zlib.lib - -################ -# Compiler to use. - -CCOMPILER = cl -CC = $(CCOMPILER) -G5 -GF $(CRUNTIME) -W3 -nologo - -################ -# The including makefile should define INCLUDES, DEFINES and -# DEPCFLAGS. INCLUDES are the includes related to the module being -# built. DEFINES similarly. DEPCFLAGS should be set to a set of -# GLIB_CFLAGS, GTK_CFLAGS etc corresponding to what other modules we -# depend on. - -CFLAGS = $(OPTIMIZE) $(DEBUGINFO) $(INCLUDES) $(DEFINES) $(DEPCFLAGS) - -.c.i : - $(CC) $(CFLAGS) -E $< >$@ - -# The default target should be "all" - -default: all - -clean:: - -del *.obj - -del *.res - -del *.i - -del *.exe - -del *.dll - -del *.lib - -del *.err - -del *.map - -del *.sym - -del *.exp - -del *.lk1 - -del *.mk1 - -del *.pdb - -del *.ilk - -# Needed by hacker rule to make makefile.msc from makefile.msc.in: -SED = e:\cygwin\bin\sed diff --git a/lib/win32/glib-2.20.4/build/win32/module.defs b/lib/win32/glib-2.20.4/build/win32/module.defs deleted file mode 100644 index dfebcddc7b86c..0000000000000 --- a/lib/win32/glib-2.20.4/build/win32/module.defs +++ /dev/null @@ -1,113 +0,0 @@ -# Note that this file is hardly maintained, hardly usable without -# manual editing, and not really part of a recommended way to build -# GLib and related software with Microsoft's compilers. Only a few -# persons use a build setup that involves this file. - -# This file is included by makefiles for both GNU Make (for gcc -# (mingw) builds, and NMAKE (for MSVC builds). - -MODULE_DEFS_INCLUDED=1 - -################ -# The version macros define what versions of libraries to use. - -# The version numbers are defined unconditionally. If you want to -# produce a newer version of one of these libraries, the new number -# should be defined in the specific project makefile _after_ including -# this file (or make.{mingw,msc}). These version numbers are used in -# the names of some import libraries. - -# Please note that there are two (or three) ways to build the GLib -# (and GTK+ etc) libraries on Win32: Either using the same -# auto*/configure mechanism to generate makefiles as on Unix, and -# libtool to handle DLL creation. This currently only works for gcc, -# and even then it is hellish to set up to work 100% correctly. For -# people using that, this file is totally irrelevant. - -# Or, use hand-written makefiles, either for MSVC (these are called -# makefile.msc and maintained by Hans Breuer), or for gcc -# (makefile.mingw, by Tor Lillqvist). Only for GLib are the -# makefile.mingw files believed to be up-to-date, for other modules -# they have been left to rot after Tor started using the -# autoconfiscated way of building. - -# The stuff here uses the same name for (import) libraries as on Unix, -# as libtool uses those, and the semi-official developer packages are -# built using libtool. - -ATK_VER = 1.0 -CAIRO_VER = 0.3 -FREETYPE2_VER = 2.0 -GIMP_VER = 1.2 -GDK_PIXBUF_VER = 2.0 -GLIB_VER = 2.0 -GTKGLAREA_VER = 1.2.2 -GTK2_VER = 2.0 -LIBGLADE_VER = 0.14 -LIBICONV_VER = 1.7 -LIBXML_VER = 1.8.7 -LIBXML2_VER = 2.4.2 -PANGO_VER = 1.0 -POPT_VER = 1.4 -SVG_VER = 0.1 -RSVG_VER = 2.4 - -################ -# Locations of various source directories. TOP is defined in make.{mingw,msc} - -# First stuff that is in the GNOME CVS repository. -# In alphabetical order. - -ATK = $(TOP)/atk -CAIRO = $(TOP)\cairo -GIMP = $(TOP)/gimp -GLIB = $(TOP)/glib -GNOMECANVAS = $(TOP)\libgnomecanvas -GNOMECANVAS_VER = 2.9 - -# GTK+ 1.3.0, gtk-1-3-win32-production branch. Rename directory -# to gtk+p after initial checkout from CVS. -GTK = $(TOP)/gtk+p -# GTK+ 2.0 -GTK2 = $(TOP)/gtk+ -GNOMEPRINT = $(TOP)\libgnomeprint -GNOMEPRINT_VER = 2.8 -GDK_PIXBUF = $(GTK) -LIBGLADE = $(TOP)/libglade -LIBXML = $(TOP)/libxml-$(LIBXML_VER) -PANGO = $(TOP)/pango - -GNOMEPRINTUI = $(TOP)\libgnomeprintui -GNOMEPRINTUI_VER = 2.2 - -# Aux programs -GLIB_GENMARSHAL = $(GLIB)/gobject/glib-genmarshal - -# Stuff from other places. - -# Note this was is specific to what tml happened to have on his disk -# at some time in history. To really be able to recompile something -# that uses for instance libjpeg, you should download a suitable -# binary "developer" distribution of it, unpack it into some location, -# and edit this file correspondingly. You should not take the versions -# mentioned here too literally, use the latest version you can find, -# or the ones the current GTK+ 2.0 for Windows uses. - -FREETYPE2 = $(TOP)/freetype2 -GTKEXTRA = $(TOP)/gtk+extra -GTKGLAREA = $(TOP)/gtkglarea -INTL = $(TOP)/gettext-0.10.40/intl -JPEG = $(TOP)/jpeg-6b -LIBART = $(TOP)/libart_lgpl -LIBICONV = $(TOP)/libiconv-$(LIBICONV_VER) -LIBXSLT = $(TOP)/libxslt -PNG = $(TOP)/libpng-1.2.0 -RSVG = $(TOP)\librsvg -SVG = $(TOP)\libsvg -TIFF = $(TOP)/tiff-v3.4 -ZLIB = $(TOP)/zlib-1.1.3 - -# Headers from Microsoft's PlatformSDK (that aren't present in -# mingw) are needed by a just a few packages when compiling with gcc. -# This is just where tml has it installed. -PLATFORMSDK = i:/src/psdk diff --git a/lib/win32/glib-2.20.4/build/win32/vs10/glib.vcxproj b/lib/win32/glib-2.20.4/build/win32/vs10/glib.vcxproj deleted file mode 100644 index 3d4352eb082fc..0000000000000 --- a/lib/win32/glib-2.20.4/build/win32/vs10/glib.vcxproj +++ /dev/null @@ -1,169 +0,0 @@ - - - - - Debug - Win32 - - - Release - Win32 - - - - {12BCA020-EABF-429E-876A-A476BC9C10C0} - glib - Win32Proj - - - - StaticLibrary - MultiByte - true - - - StaticLibrary - MultiByte - - - - - - - - - - - - - - - <_ProjectFileVersion>10.0.30319.1 - $(SolutionDir)libs\$(TargetName)\$(Configuration)\ - $(SolutionDir)objs\$(TargetName)\$(Configuration)\ - $(SolutionDir)libs\$(TargetName)\$(ConfigurationName)\ - $(SolutionDir)objs\$(TargetName)\$(ConfigurationName)\ - - - - if exist ..\..\..\config.h goto DONE_CONFIG_H -copy ..\..\..\config.h.win32 ..\..\..\config.h -:DONE_CONFIG_H -if exist ..\..\..\glibconfig.h goto DONE_GLIBCONFIG_H -copy ..\..\..\glibconfig.h.win32 ..\..\..\glibconfig.h -:DONE_GLIBCONFIG_H - - - - Disabled - ../../..;..\..\..\..\pcre\;../../../glib;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;USE_SYSTEM_PCRE;GLIB_COMPILATION;HAVE_CONFIG_H;G_LOG_DOMAIN="Glib";G_ENABLE_DEBUG;G_DISABLE_DEPRECATED;PCRE_STATIC;LINK_SIZE=2;MAX_NAME_SIZE=32;MAX_NAME_COUNT=10000;NEWLINE=-1;POSIX_MALLOC_THRESHOLD=10;MATCH_LIMIT=10000000;MATCH_LIMIT_RECURSION=10000000;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - false - - - Level3 - EditAndContinue - CompileAsC - 4018;4001;4005;%(DisableSpecificWarnings) - msvc_recommended_pragmas.h;%(ForcedIncludeFiles) - - - - - - - - - Full - Speed - false - ../../..;..\..\..\..\pcre\;../../../glib;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;USE_SYSTEM_PCRE;GLIB_COMPILATION;HAVE_CONFIG_H;G_LOG_DOMAIN="Glib";G_DISABLE_DEPRECATED;PCRE_STATIC;LINK_SIZE=2;MAX_NAME_SIZE=32;MAX_NAME_COUNT=10000;NEWLINE=-1;POSIX_MALLOC_THRESHOLD=10;MATCH_LIMIT=10000000;MATCH_LIMIT_RECURSION=10000000;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) - MultiThreaded - false - - - Level3 - ProgramDatabase - CompileAsC - 4018;4001;4005;%(DisableSpecificWarnings) - msvc_recommended_pragmas.h;%(ForcedIncludeFiles) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LIBDIR=/irrelevant/lib;%(PreprocessorDefinitions) - LIBDIR=/irrelevant/lib;%(PreprocessorDefinitions) - - - - - - - - - - - \ No newline at end of file diff --git a/lib/win32/glib-2.20.4/build/win32/vs10/glib.vcxproj.filters b/lib/win32/glib-2.20.4/build/win32/vs10/glib.vcxproj.filters deleted file mode 100644 index b265f084bb615..0000000000000 --- a/lib/win32/glib-2.20.4/build/win32/vs10/glib.vcxproj.filters +++ /dev/null @@ -1,212 +0,0 @@ - - - - - {4FC737F1-C7A5-4376-A066-2A32D752A2FF} - cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx - - - {1ed47448-e160-4e44-95aa-0524ff4c78bd} - - - {1a140da8-2a8e-46d4-90f8-b8b88147fc9d} - - - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files\libcharset - - - Source Files\gnulib - - - Source Files\gnulib - - - Source Files\gnulib - - - Source Files\gnulib - - - Source Files\gnulib - - - \ No newline at end of file diff --git a/lib/win32/glib-2.20.4/build/win32/vs9/glib.sln b/lib/win32/glib-2.20.4/build/win32/vs9/glib.sln deleted file mode 100644 index 7b850e68d7f66..0000000000000 --- a/lib/win32/glib-2.20.4/build/win32/vs9/glib.sln +++ /dev/null @@ -1,25 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 10.00 -# Visual C++ Express 2008 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "glib", "glib.vcproj", "{12BCA020-EABF-429E-876A-A476BC9C10C0}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Win32 = Debug|Win32 - Debug|x64 = Debug|x64 - Release|Win32 = Release|Win32 - Release|x64 = Release|x64 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {12BCA020-EABF-429E-876A-A476BC9C10C0}.Debug|Win32.ActiveCfg = Debug|Win32 - {12BCA020-EABF-429E-876A-A476BC9C10C0}.Debug|Win32.Build.0 = Debug|Win32 - {12BCA020-EABF-429E-876A-A476BC9C10C0}.Debug|x64.ActiveCfg = Debug|x64 - {12BCA020-EABF-429E-876A-A476BC9C10C0}.Debug|x64.Build.0 = Debug|x64 - {12BCA020-EABF-429E-876A-A476BC9C10C0}.Release|Win32.ActiveCfg = Release|Win32 - {12BCA020-EABF-429E-876A-A476BC9C10C0}.Release|Win32.Build.0 = Release|Win32 - {12BCA020-EABF-429E-876A-A476BC9C10C0}.Release|x64.ActiveCfg = Release|x64 - {12BCA020-EABF-429E-876A-A476BC9C10C0}.Release|x64.Build.0 = Release|x64 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/lib/win32/glib-2.20.4/build/win32/vs9/glib.vcproj b/lib/win32/glib-2.20.4/build/win32/vs9/glib.vcproj deleted file mode 100644 index a672d3217d208..0000000000000 --- a/lib/win32/glib-2.20.4/build/win32/vs9/glib.vcproj +++ /dev/null @@ -1,451 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/lib/win32/glib-2.20.4/config.h b/lib/win32/glib-2.20.4/config.h deleted file mode 100644 index ea8ab6e1a261a..0000000000000 --- a/lib/win32/glib-2.20.4/config.h +++ /dev/null @@ -1,743 +0,0 @@ -/* config.h.win32.in Merged from two versions generated by configure for gcc and MSVC. */ -/* config.h. Generated by configure. */ -/* config.h.in. Generated from configure.in by autoheader. */ - -/* define if asm blocks can use numeric local labels */ -/* #undef ASM_NUMERIC_LABELS */ - -/* poll doesn't work on devices */ -#define BROKEN_POLL 1 - -/* Define to one of `_getb67', `GETB67', `getb67' for Cray-2 and Cray-YMP - systems. This function is required for `alloca.c' support on those systems. - */ -/* #undef CRAY_STACKSEG_END */ - -/* Define to 1 if using `alloca.c'. */ -/* #undef C_ALLOCA */ - -/* Whether to disable memory pools */ -/* #undef DISABLE_MEM_POOLS */ - -/* Whether to enable GC friendliness by default */ -/* #undef ENABLE_GC_FRIENDLY_DEFAULT */ - -/* always defined to indicate that i18n is enabled */ -//#define ENABLE_NLS 1 -#undef ENABLE_NLS - -/* Define the gettext package to be used */ -#define GETTEXT_PACKAGE "glib20" - -/* Define to the GLIB binary age */ -#define GLIB_BINARY_AGE 2004 - -/* Byte contents of gmutex */ -/* #undef GLIB_BYTE_CONTENTS_GMUTEX */ - -/* Define to the GLIB interface age */ -#define GLIB_INTERFACE_AGE 4 - -/* Define the location where the catalogs will be installed */ -#define GLIB_LOCALE_DIR "NONE/share/locale" - -/* Define to the GLIB major version */ -#define GLIB_MAJOR_VERSION 2 - -/* Define to the GLIB micro version */ -#define GLIB_MICRO_VERSION 4 - -/* Define to the GLIB minor version */ -#define GLIB_MINOR_VERSION 20 - -/* The size of gmutex, as computed by sizeof. */ -/* #undef GLIB_SIZEOF_GMUTEX */ - -/* The size of system_thread, as computed by sizeof. */ -#define GLIB_SIZEOF_SYSTEM_THREAD 4 - -/* alpha atomic implementation */ -/* #undef G_ATOMIC_ALPHA */ - -/* arm atomic implementation */ -/* #undef G_ATOMIC_ARM */ - -/* i486 atomic implementation */ -#ifndef _MSC_VER -#define G_ATOMIC_I486 1 -#endif /* _MSC_VER */ - -/* ia64 atomic implementation */ -/* #undef G_ATOMIC_IA64 */ - -/* powerpc atomic implementation */ -/* #undef G_ATOMIC_POWERPC */ - -/* s390 atomic implementation */ -/* #undef G_ATOMIC_S390 */ - -/* sparcv9 atomic implementation */ -/* #undef G_ATOMIC_SPARCV9 */ - -/* x86_64 atomic implementation */ -/* #undef G_ATOMIC_X86_64 */ - -/* Have inline keyword */ -#ifndef _MSC_VER -#define G_HAVE_INLINE 1 -#else /* _MSC_VER */ -/* #undef G_HAVE_INLINE */ -#endif /* _MSC_VER */ - -/* Have __inline keyword */ -#define G_HAVE___INLINE 1 - -/* Have __inline__ keyword */ -#if !defined(_MSC_VER) && !defined(__DMC__) -#define G_HAVE___INLINE__ 1 -#else /* _MSC_VER or __DMC__ */ -/* #undef G_HAVE___INLINE__ */ -#endif /* _MSC_VER or __DMC__ */ - -/* Source file containing theread implementation */ -#define G_THREAD_SOURCE "gthread-win32.c" - -/* A 'va_copy' style function */ -#ifndef _MSC_VER -#define G_VA_COPY va_copy -#else /* _MSC_VER */ -/* #undef G_VA_COPY */ -#endif /* _MSC_VER */ - -/* 'va_lists' cannot be copies as values */ -/* #undef G_VA_COPY_AS_ARRAY */ - -/* Define to 1 if you have `alloca', as a function or macro. */ -#define HAVE_ALLOCA 1 - -/* Define to 1 if you have and it should be used (not on Ultrix). - */ -/* #undef HAVE_ALLOCA_H */ - -/* Define to 1 if you have the `atexit' function. */ -#define HAVE_ATEXIT 1 - -/* Define to 1 if you have the header file. */ -/* #undef HAVE_ATTR_XATTR_H */ - -/* Define to 1 if you have the `bind_textdomain_codeset' function. */ -#define HAVE_BIND_TEXTDOMAIN_CODESET 1 - -/* Define if you have a version of the snprintf function with semantics as - specified by the ISO C99 standard. */ -/* #undef HAVE_C99_SNPRINTF */ - -/* Define if you have a version of the vsnprintf function with semantics as - specified by the ISO C99 standard. */ -/* #undef HAVE_C99_VSNPRINTF */ - -/* define to 1 if Carbon is available */ -/* #undef HAVE_CARBON */ - -/* Define to 1 if you have the `chown' function. */ -/* #undef HAVE_CHOWN */ - -/* Define to 1 if you have the `clock_gettime' function. */ -/* #undef HAVE_CLOCK_GETTIME */ - -/* Have nl_langinfo (CODESET) */ -/* #undef HAVE_CODESET */ - -/* Define to 1 if you have the header file. */ -/* #undef HAVE_CRT_EXTERNS_H */ - -/* Define to 1 if you have the `dcgettext' function. */ -#define HAVE_DCGETTEXT 1 - -/* Define to 1 if you have the header file. */ -#ifndef _MSC_VER -#define HAVE_DIRENT_H 1 -#else -/* #undef HAVE_DIRENT_H */ -#endif - -/* Define to 1 if you have the header file. */ -/* #undef HAVE_DLFCN_H */ - -/* Define to 1 if you don't have `vprintf' but do have `_doprnt.' */ -/* #undef HAVE_DOPRNT */ - -/* define for working do while(0) macros */ -#define HAVE_DOWHILE_MACROS 1 - -/* Define to 1 if you have the `endmntent' function. */ -/* #undef HAVE_ENDMNTENT */ - -/* Define if we have FAM */ -/* #undef HAVE_FAM */ - -/* Define to 1 if you have the header file. */ -/* #undef HAVE_FAM_H */ - -/* Define if we have FAMNoExists in fam */ -/* #undef HAVE_FAM_NO_EXISTS */ - -/* Define to 1 if you have the `fchmod' function. */ -/* #undef HAVE_FCHMOD */ - -/* Define to 1 if you have the `fchown' function. */ -/* #undef HAVE_FCHOWN */ - -/* Define to 1 if you have the `fdwalk' function. */ -/* #undef HAVE_FDWALK */ - -/* Define to 1 if you have the header file. */ -#define HAVE_FLOAT_H 1 - -/* Define to 1 if you have the header file. */ -/* #undef HAVE_FSTAB_H */ - -/* Define to 1 if you have the `getcwd' function. */ -#define HAVE_GETCWD 1 - -/* Define to 1 if you have the `getc_unlocked' function. */ -/* #undef HAVE_GETC_UNLOCKED */ - -/* Define to 1 if you have the `getgrgid' function. */ -/* #undef HAVE_GETGRGID */ - -/* Define to 1 if you have the `getmntent_r' function. */ -/* #undef HAVE_GETMNTENT_R */ - -/* Define to 1 if you have the `getmntinfo' function. */ -/* #undef HAVE_GETMNTINFO */ - -/* Define to 1 if you have the `getpwuid' function. */ -/* #undef HAVE_GETPWUID */ - -/* Define if the GNU gettext() function is already present or preinstalled. */ -#define HAVE_GETTEXT 1 - -/* Define to 1 if you have the `gmtime_r' function. */ -/* #undef HAVE_GMTIME_R */ - -/* define to use system printf */ -/* #undef HAVE_GOOD_PRINTF */ - -/* Define to 1 if you have the header file. */ -/* #undef HAVE_GRP_H */ - -/* Define to 1 if you have the `hasmntopt' function. */ -/* #undef HAVE_HASMNTOPT */ - -/* define to support printing 64-bit integers with format I64 */ -#define HAVE_INT64_AND_I64 1 - -/* Define if you have the 'intmax_t' type in or . */ -#ifndef _MSC_VER -#define HAVE_INTMAX_T 1 -#else /* _MSC_VER */ -/* #undef HAVE_INTMAX_T */ -#endif /* _MSC_VER */ - -/* Define to 1 if you have the header file. */ -#ifndef _MSC_VER -#define HAVE_INTTYPES_H 1 -#else /* _MSC_VER */ -/* #undef HAVE_INTTYPES_H */ -#endif /* _MSC_VER */ - -/* Define if exists, doesn't clash with , and - declares uintmax_t. */ -#ifndef _MSC_VER -#define HAVE_INTTYPES_H_WITH_UINTMAX 1 -#else /* _MSC_VER */ -/* #undef HAVE_INTTYPES_H_WITH_UINTMAX */ -#endif /* _MSC_VER */ - -/* Define if you have and nl_langinfo(CODESET). */ -/* #undef HAVE_LANGINFO_CODESET */ - -/* Define to 1 if you have the `lchown' function. */ -/* #undef HAVE_LCHOWN */ - -/* Define if your file defines LC_MESSAGES. */ -/* #undef HAVE_LC_MESSAGES */ - -/* Define to 1 if you have the header file. */ -#define HAVE_LIMITS_H 1 - -/* Define to 1 if you have the `link' function. */ -/* #undef HAVE_LINK */ - -/* Define to 1 if you have the header file. */ -#define HAVE_LOCALE_H 1 - -/* Define to 1 if you have the `localtime_r' function. */ -/* #undef HAVE_LOCALTIME_R */ - -/* Define if you have the 'long double' type. */ -#define HAVE_LONG_DOUBLE 1 - -/* Define if you have the 'long long' type. */ -#ifndef _MSC_VER -#define HAVE_LONG_LONG 1 -#else /* _MSC_VER */ -/* #undef HAVE_LONG_LONG */ -#endif /* _MSC_VER */ - -/* define if system printf can print long long */ -#define HAVE_LONG_LONG_FORMAT 1 - -/* Define to 1 if you have the `lstat' function. */ -/* #undef HAVE_LSTAT */ - -/* Define to 1 if you have the header file. */ -#define HAVE_MALLOC_H 1 - -/* Define to 1 if you have the `memalign' function. */ -/* #undef HAVE_MEMALIGN */ - -/* Define to 1 if you have the `memmove' function. */ -#define HAVE_MEMMOVE 1 - -/* Define to 1 if you have the header file. */ -#define HAVE_MEMORY_H 1 - -/* Define to 1 if you have the `mmap' system call. */ -/* #undef HAVE_MMAP */ - -/* Define to 1 if you have the header file. */ -/* #undef HAVE_MNTENT_H */ - -/* Have a monotonic clock */ -/* #undef HAVE_MONOTONIC_CLOCK */ - -/* Define to 1 if you have the `nanosleep' function. */ -/* #undef HAVE_NANOSLEEP */ - -/* Have non-POSIX function getgrgid_r */ -/* #undef HAVE_NONPOSIX_GETGRGID_R */ - -/* Have non-POSIX function getpwuid_r */ -/* #undef HAVE_NONPOSIX_GETPWUID_R */ - -/* Define to 1 if you have the `nsleep' function. */ -/* #undef HAVE_NSLEEP */ - -/* Define to 1 if you have the `on_exit' function. */ -/* #undef HAVE_ON_EXIT */ - -/* Define to 1 if you have the `poll' function. */ -/* #undef HAVE_POLL */ - -/* Have POSIX function getgrgid_r */ -/* #undef HAVE_POSIX_GETGRGID_R */ - -/* Have POSIX function getpwuid_r */ -/* #undef HAVE_POSIX_GETPWUID_R */ - -/* Define to 1 if you have the `posix_memalign' function. */ -/* #undef HAVE_POSIX_MEMALIGN */ - -/* Have function pthread_attr_setstacksize */ -/* #undef HAVE_PTHREAD_ATTR_SETSTACKSIZE */ - -/* Define to 1 if the system has the type `ptrdiff_t'. */ -#define HAVE_PTRDIFF_T 1 - -/* Define to 1 if you have the 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 header file. */ -/* #undef HAVE_SCHED_H */ - -/* Define to 1 if libselinux is available */ -/* #undef HAVE_SELINUX */ - -/* Define to 1 if you have the header file. */ -/* #undef HAVE_SELINUX_SELINUX_H */ - -/* Define to 1 if you have the `setenv' function. */ -/* #undef HAVE_SETENV */ - -/* Define to 1 if you have the `setlocale' function. */ -#define HAVE_SETLOCALE 1 - -/* Define to 1 if you have the `setmntent' function. */ -/* #undef HAVE_SETMNTENT */ - -/* Define to 1 if you have the `snprintf' function. */ -#ifndef _MSC_VER -#define HAVE_SNPRINTF 1 -#ifdef __DMC__ -#define snprintf _snprintf -#endif -#else /* _MSC_VER */ -/* #undef HAVE_SNPRINTF */ -#endif /* _MSC_VER */ - -/* Define to 1 if you have the `statfs' function. */ -/* #undef HAVE_STATFS */ - -/* Define to 1 if you have the `statvfs' function. */ -/* #undef HAVE_STATVFS */ - -/* Define to 1 if you have the header file. */ -#define HAVE_STDDEF_H 1 - -/* Define to 1 if you have the header file. */ -#ifndef _MSC_VER -#define HAVE_STDINT_H 1 -#else /* _MSC_VER */ -/* #undef HAVE_STDINT_H */ -#endif /* _MSC_VER */ - -/* Define if exists, doesn't clash with , and - declares uintmax_t. */ -#ifndef _MSC_VER -#define HAVE_STDINT_H_WITH_UINTMAX 1 -#else /* _MSC_VER */ -/* #undef HAVE_STDINT_H_WITH_UINTMAX */ -#endif /* _MSC_VER */ - -/* Define to 1 if you have the header file. */ -#define HAVE_STDLIB_H 1 - -/* Define to 1 if you have the `stpcpy' function. */ -/* #undef HAVE_STPCPY */ - -/* Define to 1 if you have the `strcasecmp' function. */ -#if !defined(_MSC_VER) && !defined(__DMC__) -#define HAVE_STRCASECMP 1 -#else /* _MSC_VER or __DMC__ */ -/* #undef HAVE_STRCASECMP */ -#endif /* _MSC_VER or __DMC__ */ - -/* Define to 1 if you have the `strerror' function. */ -#define HAVE_STRERROR 1 - -/* Define to 1 if you have the header file. */ -#if !defined(_MSC_VER) && !defined(__DMC__) -#define HAVE_STRINGS_H 1 -#else /* _MSC_VER or __DMC__ */ -/* #undef HAVE_STRINGS_H */ -#endif /* _MSC_VER or __DMC__ */ - -/* Define to 1 if you have the header file. */ -#define HAVE_STRING_H 1 - -/* Have functions strlcpy and strlcat */ -/* #undef HAVE_STRLCPY */ - -/* Define to 1 if you have the `strncasecmp' function. */ -#if !defined(_MSC_VER) && !defined(__DMC__) -#define HAVE_STRNCASECMP 1 -#else /* _MSC_VER or __DMC__ */ -/* #undef HAVE_STRNCASECMP */ -#endif /* _MSC_VER or __DMC__ */ - -/* Define to 1 if you have the `strsignal' function. */ -/* #undef HAVE_STRSIGNAL */ - -/* Define to 1 if `f_bavail' is member of `struct statfs'. */ -/* #undef HAVE_STRUCT_STATFS_F_BAVAIL */ - -/* Define to 1 if `f_fstypename' is member of `struct statfs'. */ -/* #undef HAVE_STRUCT_STATFS_F_FSTYPENAME */ - -/* Define to 1 if `f_basetype' is member of `struct statvfs'. */ -/* #undef HAVE_STRUCT_STATVFS_F_BASETYPE */ - -/* Define to 1 if `st_atimensec' is member of `struct stat'. */ -/* #undef HAVE_STRUCT_STAT_ST_ATIMENSEC */ - -/* Define to 1 if `st_atim.tv_nsec' is member of `struct stat'. */ -/* #undef HAVE_STRUCT_STAT_ST_ATIM_TV_NSEC */ - -/* Define to 1 if `st_blksize' is member of `struct stat'. */ -/* #undef HAVE_STRUCT_STAT_ST_BLKSIZE */ - -/* Define to 1 if `st_blocks' is member of `struct stat'. */ -/* #undef HAVE_STRUCT_STAT_ST_BLOCKS */ - -/* Define to 1 if `st_ctimensec' is member of `struct stat'. */ -/* #undef HAVE_STRUCT_STAT_ST_CTIMENSEC */ - -/* Define to 1 if `st_ctim.tv_nsec' is member of `struct stat'. */ -/* #undef HAVE_STRUCT_STAT_ST_CTIM_TV_NSEC */ - -/* Define to 1 if `st_mtimensec' is member of `struct stat'. */ -/* #undef HAVE_STRUCT_STAT_ST_MTIMENSEC */ - -/* Define to 1 if `st_mtim.tv_nsec' is member of `struct stat'. */ -/* #undef HAVE_STRUCT_STAT_ST_MTIM_TV_NSEC */ - -/* Define to 1 if you have the `symlink' function. */ -/* #undef HAVE_SYMLINK */ - -/* Define to 1 if you have the header file. */ -/* #undef HAVE_SYS_INOTIFY_H */ - -/* Define to 1 if you have the header file. */ -/* #undef HAVE_SYS_MNTCTL_H */ - -/* Define to 1 if you have the header file. */ -/* #undef HAVE_SYS_MNTTAB_H */ - -/* Define to 1 if you have the header file. */ -/* #undef HAVE_SYS_MOUNT_H */ - -/* Define to 1 if you have the header file. */ -#if !defined(_MSC_VER) && !defined(__DMC__) -#define HAVE_SYS_PARAM_H 1 -#else /* _MSC_VER or __DMC__ */ -/* #undef HAVE_SYS_PARAM_H */ -#endif /* _MSC_VER or __DMC__ */ - -/* Define to 1 if you have the header file. */ -/* #undef HAVE_SYS_POLL_H */ - -/* Define to 1 if you have the header file. */ -/* #undef HAVE_SYS_RESOURCE_H */ - -/* found fd_set in sys/select.h */ -/* #undef HAVE_SYS_SELECT_H */ - -/* Define to 1 if you have the header file. */ -/* #undef HAVE_SYS_STATFS_H */ - -/* Define to 1 if you have the header file. */ -/* #undef HAVE_SYS_STATVFS_H */ - -/* Define to 1 if you have the header file. */ -#define HAVE_SYS_STAT_H 1 - -/* Define to 1 if you have the header file. */ -/* #undef HAVE_SYS_SYSCTL_H */ - -/* Define to 1 if you have the header file. */ -/* #undef HAVE_SYS_TIMES_H */ - -/* Define to 1 if you have the header file. */ -#ifndef _MSC_VER -#define HAVE_SYS_TIME_H 1 -#else /* _MSC_VER */ -/* #undef HAVE_SYS_TIME_H */ -#endif /* _MSC_VER */ - -/* Define to 1 if you have the header file. */ -#define HAVE_SYS_TYPES_H 1 - -/* Define to 1 if you have the header file. */ -/* #undef HAVE_SYS_VFSTAB_H */ - -/* Define to 1 if you have the header file. */ -/* #undef HAVE_SYS_VFS_H */ - -/* Define to 1 if you have the header file. */ -/* #undef HAVE_SYS_VMOUNT_H */ - -/* Define to 1 if you have the header file. */ -/* #undef HAVE_SYS_WAIT_H */ - -/* Define to 1 if you have the header file. */ -/* #undef HAVE_SYS_XATTR_H */ - -/* Define to 1 if you have the `timegm' function. */ -/* #undef HAVE_TIMEGM */ - -/* Define to 1 if you have the header file. */ -#ifndef _MSC_VER -#define HAVE_UNISTD_H 1 -#else /* _MSC_VER */ -/* #undef HAVE_UNISTD_H */ -#endif /* _MSC_VER */ - -/* Define if your printf function family supports positional parameters as - specified by Unix98. */ -/* #undef HAVE_UNIX98_PRINTF */ - -/* Define to 1 if you have the `unsetenv' function. */ -/* #undef HAVE_UNSETENV */ - -/* Define to 1 if you have the `utimes' function. */ -/* #undef HAVE_UTIMES */ - -/* Define to 1 if you have the `valloc' function. */ -/* #undef HAVE_VALLOC */ - -/* Define to 1 if you have the header file. */ -#if !defined(_MSC_VER) && !defined(__DMC__) -#define HAVE_VALUES_H 1 -#else /* _MSC_VER or __DMC__ */ -/* #undef HAVE_VALUES_H */ -#endif /* _MSC_VER or __DMC__ */ - -/* Define to 1 if you have the `vasprintf' function. */ -#define HAVE_VASPRINTF 1 - -/* Define to 1 if you have the `vprintf' function. */ -#define HAVE_VPRINTF 1 - -/* Define to 1 if you have the `vsnprintf' function. */ -#ifndef _MSC_VER -#define HAVE_VSNPRINTF 1 -#ifdef __DMC__ -#define vsnprintf _vsnprintf -#endif -#else /* _MSC_VER */ -/* #undef HAVE_VSNPRINTF */ -#endif /* _MSC_VER */ - -/* Define if you have the 'wchar_t' type. */ -#define HAVE_WCHAR_T 1 - -/* Define to 1 if you have the `wcslen' function. */ -#define HAVE_WCSLEN 1 - -/* Define if you have the 'wint_t' type. */ -#define HAVE_WINT_T 1 - -/* Have a working bcopy */ -/* #undef HAVE_WORKING_BCOPY */ - -/* Define to 1 if xattr is available */ -/* #undef HAVE_XATTR */ - -/* Define to 1 if xattr API uses XATTR_NOFOLLOW */ -/* #undef HAVE_XATTR_NOFOLLOW */ - -/* Define to 1 if you have the `_NSGetEnviron' function. */ -/* #undef HAVE__NSGETENVIRON */ - -/* Do we cache iconv descriptors */ -#define NEED_ICONV_CACHE 1 - -/* didn't find fd_set */ -#define NO_FD_SET 1 - -/* Define to 1 if your C compiler doesn't accept -c and -o together. */ -/* #undef NO_MINUS_C_MINUS_O */ - -/* global 'sys_errlist' not found */ -#define NO_SYS_ERRLIST 1 - -/* global 'sys_siglist' not found */ -#define NO_SYS_SIGLIST 1 - -/* global 'sys_siglist' not declared */ -#define NO_SYS_SIGLIST_DECL 1 - -/* Define to the address where bug reports for this package should be sent. */ -#define PACKAGE_BUGREPORT "http://bugzilla.gnome.org/enter_bug.cgi?product=glib" - -/* Define to the full name of this package. */ -#define PACKAGE_NAME "glib" - -/* Define to the full name and version of this package. */ -#define PACKAGE_STRING "glib 2.20.4" - -/* Define to the one symbol short name of this package. */ -#define PACKAGE_TARNAME "glib" - -/* Define to the version of this package. */ -#define PACKAGE_VERSION "2.20.4" - -/* Maximum POSIX RT priority */ -/* #undef POSIX_MAX_PRIORITY */ - -/* define if posix_memalign() can allocate any size */ -/* #undef POSIX_MEMALIGN_WITH_COMPLIANT_ALLOCS */ - -/* Minimum POSIX RT priority */ -/* #undef POSIX_MIN_PRIORITY */ - -/* The POSIX RT yield function */ -/* #undef POSIX_YIELD_FUNC */ - -/* whether realloc (NULL,) works */ -#define REALLOC_0_WORKS 1 - -/* Define if you have correct malloc prototypes */ -#ifndef _MSC_VER -#define SANE_MALLOC_PROTOS 1 -#else /* _MSC_VER */ -/* #undef SANE_MALLOC_PROTOS */ -#endif /* _MSC_VER */ - -/* The size of `char', as computed by sizeof. */ -#define SIZEOF_CHAR 1 - -/* The size of `int', as computed by sizeof. */ -#define SIZEOF_INT 4 - -/* The size of `long', as computed by sizeof. */ -#define SIZEOF_LONG 4 - -/* The size of `long long', as computed by sizeof. */ -#ifndef _MSC_VER -#define SIZEOF_LONG_LONG 8 -#else /* _MSC_VER */ -#define SIZEOF_LONG_LONG 0 -#endif /* _MSC_VER */ - -/* The size of `short', as computed by sizeof. */ -#define SIZEOF_SHORT 2 - -/* The size of `size_t', as computed by sizeof. */ -#define SIZEOF_SIZE_T 4 - -/* The size of `void *', as computed by sizeof. */ -#define SIZEOF_VOID_P 4 - -/* The size of `__int64', as computed by sizeof. */ -#define SIZEOF___INT64 8 - -/* If using the C implementation of alloca, define if you know the - direction of stack growth for your system; otherwise it will be - automatically deduced at runtime. - STACK_DIRECTION > 0 => grows toward higher addresses - STACK_DIRECTION < 0 => grows toward lower addresses - STACK_DIRECTION = 0 => direction of growth unknown */ -/* #undef STACK_DIRECTION */ - -/* Number of arguments to statfs() */ -/* #undef STATFS_ARGS */ - -/* Define to 1 if you have the ANSI C header files. */ -#define STDC_HEADERS 1 - -/* Using GNU libiconv */ -/* #undef USE_LIBICONV_GNU */ - -/* Using a native implementation of iconv in a separate library */ -#define USE_LIBICONV_NATIVE 1 - -/* using the system-supplied PCRE library */ -/* #undef USE_SYSTEM_PCRE */ - -/* Define to 1 if your processor stores words with the most significant byte - first (like Motorola and SPARC, unlike Intel and VAX). */ -/* #undef WORDS_BIGENDIAN */ - -/* Number of bits in a file offset, on hosts where this is settable. */ -/* #undef _FILE_OFFSET_BITS */ - -/* Define for large files, on AIX-style hosts. */ -/* #undef _LARGE_FILES */ - -/* Define to empty if `const' does not conform to ANSI C. */ -/* #undef const */ - -/* Define to long or long long if and don't define. */ -/* #undef intmax_t */ - -/* Define to empty if the C compiler doesn't support this keyword. */ -/* #undef signed */ - -/* Define to `unsigned int' if does not define. */ -/* #undef size_t */ diff --git a/lib/win32/glib-2.20.4/glib/Makefile.am b/lib/win32/glib-2.20.4/glib/Makefile.am deleted file mode 100644 index c6f20bbc9b257..0000000000000 --- a/lib/win32/glib-2.20.4/glib/Makefile.am +++ /dev/null @@ -1,364 +0,0 @@ -## Process this file with automake to produce Makefile.in -include $(top_srcdir)/Makefile.decl - -if HAVE_GOOD_PRINTF -else -PRINTF_SUBDIR = gnulib -printf_la = gnulib/libgnulib.la -endif - -if ENABLE_REGEX -if USE_SYSTEM_PCRE -else -MAYBE_PCRE = pcre -endif -gregex_c = gregex.c -gregex_h = gregex.h -else -gregex_c = -gregex_h = -endif - -SUBDIRS = libcharset $(PRINTF_SUBDIR) $(MAYBE_PCRE) update-pcre . tests - -DIST_SUBDIRS = libcharset gnulib pcre update-pcre tests - -AM_CPPFLAGS = \ - -I$(top_srcdir) \ - $(pcre_inc) \ - -DG_LOG_DOMAIN=\"GLib\" \ - $(GLIB_DEBUG_FLAGS) \ - -DG_DISABLE_DEPRECATED \ - -DGLIB_COMPILATION \ - -DPCRE_STATIC - -glib.def: glib.symbols - (echo -e EXPORTS; $(CPP) -P -DINCLUDE_VARIABLES -DINCLUDE_INTERNAL_SYMBOLS -DG_OS_WIN32 -DALL_FILES - <$(srcdir)/glib.symbols | sed -e '/^$$/d' -e 's/^/ /' -e 's/G_GNUC_[^ ]*//g') > glib.def - -galias.h: glib.symbols - $(PERL) $(srcdir)/makegalias.pl < $(srcdir)/glib.symbols > galias.h - -galiasdef.c: glib.symbols - $(PERL) $(srcdir)/makegalias.pl -def < $(srcdir)/glib.symbols > galiasdef.c - -if OS_LINUX -if HAVE_GNUC_VISIBILITY -TESTS_ENVIRONMENT = GLIB_DEBUG_FLAGS="$(GLIB_DEBUG_FLAGS)" -TESTS = abicheck.sh pltcheck.sh -endif -endif - -BUILT_SOURCES = galias.h galiasdef.c - -MIRRORING_TAB_SOURCE = \ - glib-mirroring-tab/Makefile \ - glib-mirroring-tab/gen-mirroring-tab.c \ - glib-mirroring-tab/packtab.h \ - glib-mirroring-tab/packtab.c - -# The compilation of GRegex can be disabled, but the source files must -# be distributed. -EXTRA_DIST += \ - makefile.msc.in \ - glib.rc.in \ - gen-unicode-tables.pl \ - gen-script-table.pl \ - makegalias.pl \ - abicheck.sh \ - pltcheck.sh \ - glib.symbols \ - gregex.c \ - gregex.h \ - win_iconv.c \ - $(MIRRORING_TAB_SOURCE) - -# These may be in the builddir too -BUILT_EXTRA_DIST = \ - makefile.msc \ - glib.rc \ - galias.h \ - galiasdef.c - -lib_LTLIBRARIES = libglib-2.0.la - -if OS_WIN32_AND_DLL_COMPILATION -if MS_LIB_AVAILABLE -noinst_DATA = glib-2.0.lib - -install_ms_lib_cmd = $(INSTALL) glib-2.0.lib $(DESTDIR)$(libdir) -uninstall_ms_lib_cmd = -rm $(DESTDIR)$(libdir)/glib-2.0.lib -endif -endif - -install-ms-lib: - $(install_ms_lib_cmd) - -uninstall-ms-lib: - $(uninstall_ms_lib_cmd) - -libglib_2_0_la_SOURCES = \ - garray.c \ - gasyncqueue.c \ - gatomic.c \ - gbacktrace.c \ - gbase64.c \ - gbookmarkfile.c \ - gbsearcharray.h \ - gcache.c \ - gchecksum.c \ - gcompletion.c \ - gconvert.c \ - gdataset.c \ - gdatasetprivate.h \ - gdate.c \ - gdir.c \ - gerror.c \ - gfileutils.c \ - ghash.c \ - ghook.c \ - giochannel.c \ - gkeyfile.c \ - glibintl.h \ - glist.c \ - gmain.c \ - gmappedfile.c \ - gmarkup.c \ - gmem.c \ - gmessages.c \ - gmirroringtable.h \ - gnode.c \ - goption.c \ - gpattern.c \ - gpoll.c \ - gprimes.c \ - gqsort.c \ - gqueue.c \ - grel.c \ - grand.c \ - $(gregex_c) \ - gscanner.c \ - gscripttable.h \ - gsequence.c \ - gshell.c \ - gslice.c \ - gslist.c \ - gstdio.c \ - gstrfuncs.c \ - gstring.c \ - gtestutils.c \ - gthread.c \ - gthreadprivate.h \ - gthreadpool.c \ - gtimer.c \ - gtree.c \ - guniprop.c \ - gutf8.c \ - gunibreak.h \ - gunibreak.c \ - gunichartables.h \ - gunicollate.c \ - gunicomp.h \ - gunidecomp.h \ - gunidecomp.c \ - gunicodeprivate.h \ - gurifuncs.c \ - gutils.c \ - gdebug.h \ - gprintf.c \ - gprintfint.h - -EXTRA_libglib_2_0_la_SOURCES = \ - giounix.c \ - giowin32.c \ - gspawn.c \ - gspawn-win32.c \ - gwin32.c - -glibincludedir=$(includedir)/glib-2.0 -glibinclude_HEADERS = \ - glib-object.h \ - glib.h - -glibsubincludedir=$(includedir)/glib-2.0/glib -glibsubinclude_HEADERS = \ - galloca.h \ - garray.h \ - gasyncqueue.h \ - gatomic.h \ - gbacktrace.h \ - gbase64.h \ - gbookmarkfile.h \ - gcache.h \ - gchecksum.h \ - gcompletion.h \ - gconvert.h \ - gdataset.h \ - gdate.h \ - gdir.h \ - gerror.h \ - gfileutils.h \ - ghash.h \ - ghook.h \ - gi18n.h \ - gi18n-lib.h \ - giochannel.h \ - gkeyfile.h \ - glist.h \ - gmacros.h \ - gmain.h \ - gmappedfile.h \ - gmarkup.h \ - gmem.h \ - gmessages.h \ - gnode.h \ - goption.h \ - gpattern.h \ - gpoll.h \ - gprimes.h \ - gqsort.h \ - gquark.h \ - gqueue.h \ - grand.h \ - $(gregex_h) \ - grel.h \ - gscanner.h \ - gsequence.h \ - gshell.h \ - gslice.h \ - gslist.h \ - gspawn.h \ - gstdio.h \ - gstrfuncs.h \ - gtestutils.h \ - gstring.h \ - gthread.h \ - gthreadpool.h \ - gtimer.h \ - gtree.h \ - gtypes.h \ - gunicode.h \ - gurifuncs.h \ - gutils.h \ - gwin32.h \ - gprintf.h - -install-data-local: install-ms-lib install-def-file - @if test -f $(glibincludedir)/glist.h ; then \ - echo "*** Old headers found in $(glibincludedir). You should remove the" ; \ - echo "*** contents of this directory and type 'make install' again." ; \ - false ; \ - fi - -uninstall-local: uninstall-ms-lib uninstall-def-file - -if PLATFORM_WIN32 -no_undefined = -no-undefined -endif - -if OS_WIN32_AND_DLL_COMPILATION -export_symbols = -export-symbols glib.def - -glib_win32_res = glib-win32-res.o -glib_win32_res_ldflag = -Wl,$(glib_win32_res) - -glib_def = glib.def - -install-def-file: - $(INSTALL) glib.def $(DESTDIR)$(libdir)/glib-2.0.def - -uninstall-def-file: - -rm $(DESTDIR)$(libdir)/glib-2.0.def -else -install-def-file: -uninstall-def-file: - -export_symbols = $(LIBTOOL_EXPORT_OPTIONS) -endif - -if ENABLE_REGEX -if USE_SYSTEM_PCRE -pcre_lib = $(PCRE_LIBS) -pcre_inc = $(PCRE_CFLAGS) -else -pcre_lib = pcre/libpcre.la -pcre_inc = -endif -else -pcre_lib = -pcre_inc = -endif - -libglib_2_0_la_LIBADD = libcharset/libcharset.la $(printf_la) @GIO@ @GSPAWN@ @PLATFORMDEP@ @ICONV_LIBS@ @G_LIBS_EXTRA@ $(pcre_lib) -libglib_2_0_la_DEPENDENCIES = libcharset/libcharset.la $(printf_la) @GIO@ @GSPAWN@ @PLATFORMDEP@ $(glib_win32_res) $(glib_def) - -libglib_2_0_la_LDFLAGS = \ - $(glib_win32_res_ldflag) \ - -version-info $(LT_CURRENT):$(LT_REVISION):$(LT_AGE) \ - -export-dynamic $(no_undefined) $(export_symbols) - -INSTALL_PROGS= - -gspawn-win32-helper-console.c: - echo '#define HELPER_CONSOLE' >$@ - echo '#include "gspawn-win32-helper.c"' >>$@ - -gspawn-win64-helper.c: - echo '#include "gspawn-win32-helper.c"' >$@ - -gspawn-win64-helper-console.c: - echo '#define HELPER_CONSOLE' >$@ - echo '#include "gspawn-win32-helper.c"' >>$@ - -if OS_WIN32 -if OS_WIN32_X64 -INSTALL_PROGS += gspawn-win64-helper gspawn-win64-helper-console -gspawn_win64_helper_LDADD = libglib-2.0.la -gspawn_win64_helper_LDFLAGS = -mwindows -gspawn_win64_helper_console_LDADD = libglib-2.0.la -else -INSTALL_PROGS += gspawn-win32-helper gspawn-win32-helper-console -gspawn_win32_helper_LDADD = libglib-2.0.la -gspawn_win32_helper_LDFLAGS = -mwindows -gspawn_win32_helper_console_LDADD = libglib-2.0.la -endif -endif - -glib-win32-res.o: glib.rc - $(WINDRES) glib.rc $@ - -bin_PROGRAMS = ${INSTALL_PROGS} - -if OS_UNIX - -INSTALL_PROGS += gtester -gtester_SOURCES = gtester.c -gtester_LDADD = libglib-2.0.la - -auto_config_binscripts = gtester-report -bin_SCRIPTS = ${auto_config_binscripts} -EXTRA_DIST += ${auto_config_binscripts} - -CONFIGVARS = \ - "bindir" : "${bindir}", \ - "glib-version" : "${GLIB_VERSION}" - -install-exec-hook: - for sf in ${auto_config_binscripts} ; do \ - mv -f "$(DESTDIR)$(bindir)/$$sf" "$(DESTDIR)$(bindir)/$$sf".tmp \ - && sed < "$(DESTDIR)$(bindir)/$$sf".tmp > "$(DESTDIR)$(bindir)/$$sf" \ - -e '1,24s|^ *#@PKGINSTALL_CONFIGVARS_IN24LINES@| ${CONFIGVARS}|' \ - -e '1,1s|#! /usr/bin/env python\([0-9]\+\(\.[0-9]\+\)\?\)\?|#!${PYTHON}|' \ - || exit $$? ; \ - rm -f "$(DESTDIR)$(bindir)/$$sf".tmp ; \ - done - -endif - -glib-2.0.lib: libglib-2.0.la glib.def - lib -machine:@LIB_EXE_MACHINE_FLAG@ -name:libglib-2.0-$(LT_CURRENT_MINUS_AGE).dll -def:glib.def -out:$@ - -dist-hook: $(BUILT_EXTRA_DIST) - files='$(BUILT_EXTRA_DIST)'; \ - for f in $$files; do \ - if test -f $$f; then d=.; else d=$(srcdir); fi; \ - cp $$d/$$f $(distdir) || exit 1; done diff --git a/lib/win32/glib-2.20.4/glib/Makefile.in b/lib/win32/glib-2.20.4/glib/Makefile.in deleted file mode 100644 index f1716c06680d4..0000000000000 --- a/lib/win32/glib-2.20.4/glib/Makefile.in +++ /dev/null @@ -1,1528 +0,0 @@ -# Makefile.in generated by automake 1.11 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@ - -# GLIB - Library of useful C routines - - - - - -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@ -DIST_COMMON = $(am__glibsubinclude_HEADERS_DIST) \ - $(glibinclude_HEADERS) $(srcdir)/Makefile.am \ - $(srcdir)/Makefile.in $(srcdir)/glib.rc.in \ - $(srcdir)/makefile.msc.in $(top_srcdir)/Makefile.decl -@OS_WIN32_TRUE@@OS_WIN32_X64_TRUE@am__append_1 = gspawn-win64-helper gspawn-win64-helper-console -@OS_WIN32_TRUE@@OS_WIN32_X64_FALSE@am__append_2 = gspawn-win32-helper gspawn-win32-helper-console -bin_PROGRAMS = $(am__EXEEXT_4) -@OS_UNIX_TRUE@am__append_3 = gtester -@OS_UNIX_TRUE@am__append_4 = ${auto_config_binscripts} -subdir = glib -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ - $(top_srcdir)/acglib.m4 \ - $(top_srcdir)/glib/libcharset/codeset.m4 \ - $(top_srcdir)/glib/libcharset/glibc21.m4 \ - $(top_srcdir)/m4macros/glib-gettext.m4 \ - $(top_srcdir)/configure.in -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs -CONFIG_HEADER = $(top_builddir)/config.h -CONFIG_CLEAN_FILES = makefile.msc glib.rc -CONFIG_CLEAN_VPATH_FILES = -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)$(libdir)" "$(DESTDIR)$(bindir)" \ - "$(DESTDIR)$(bindir)" "$(DESTDIR)$(glibincludedir)" \ - "$(DESTDIR)$(glibsubincludedir)" -LTLIBRARIES = $(lib_LTLIBRARIES) -am__DEPENDENCIES_1 = -@ENABLE_REGEX_TRUE@@USE_SYSTEM_PCRE_FALSE@am__DEPENDENCIES_2 = \ -@ENABLE_REGEX_TRUE@@USE_SYSTEM_PCRE_FALSE@ pcre/libpcre.la -@ENABLE_REGEX_TRUE@@USE_SYSTEM_PCRE_TRUE@am__DEPENDENCIES_2 = $(am__DEPENDENCIES_1) -am__libglib_2_0_la_SOURCES_DIST = garray.c gasyncqueue.c gatomic.c \ - gbacktrace.c gbase64.c gbookmarkfile.c gbsearcharray.h \ - gcache.c gchecksum.c gcompletion.c gconvert.c gdataset.c \ - gdatasetprivate.h gdate.c gdir.c gerror.c gfileutils.c ghash.c \ - ghook.c giochannel.c gkeyfile.c glibintl.h glist.c gmain.c \ - gmappedfile.c gmarkup.c gmem.c gmessages.c gmirroringtable.h \ - gnode.c goption.c gpattern.c gpoll.c gprimes.c gqsort.c \ - gqueue.c grel.c grand.c gregex.c gscanner.c gscripttable.h \ - gsequence.c gshell.c gslice.c gslist.c gstdio.c gstrfuncs.c \ - gstring.c gtestutils.c gthread.c gthreadprivate.h \ - gthreadpool.c gtimer.c gtree.c guniprop.c gutf8.c gunibreak.h \ - gunibreak.c gunichartables.h gunicollate.c gunicomp.h \ - gunidecomp.h gunidecomp.c gunicodeprivate.h gurifuncs.c \ - gutils.c gdebug.h gprintf.c gprintfint.h -@ENABLE_REGEX_TRUE@am__objects_1 = gregex.lo -am_libglib_2_0_la_OBJECTS = garray.lo gasyncqueue.lo gatomic.lo \ - gbacktrace.lo gbase64.lo gbookmarkfile.lo gcache.lo \ - gchecksum.lo gcompletion.lo gconvert.lo gdataset.lo gdate.lo \ - gdir.lo gerror.lo gfileutils.lo ghash.lo ghook.lo \ - giochannel.lo gkeyfile.lo glist.lo gmain.lo gmappedfile.lo \ - gmarkup.lo gmem.lo gmessages.lo gnode.lo goption.lo \ - gpattern.lo gpoll.lo gprimes.lo gqsort.lo gqueue.lo grel.lo \ - grand.lo $(am__objects_1) gscanner.lo gsequence.lo gshell.lo \ - gslice.lo gslist.lo gstdio.lo gstrfuncs.lo gstring.lo \ - gtestutils.lo gthread.lo gthreadpool.lo gtimer.lo gtree.lo \ - guniprop.lo gutf8.lo gunibreak.lo gunicollate.lo gunidecomp.lo \ - gurifuncs.lo gutils.lo gprintf.lo -libglib_2_0_la_OBJECTS = $(am_libglib_2_0_la_OBJECTS) -libglib_2_0_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ - $(libglib_2_0_la_LDFLAGS) $(LDFLAGS) -o $@ -@OS_WIN32_TRUE@@OS_WIN32_X64_TRUE@am__EXEEXT_1 = gspawn-win64-helper$(EXEEXT) \ -@OS_WIN32_TRUE@@OS_WIN32_X64_TRUE@ gspawn-win64-helper-console$(EXEEXT) -@OS_WIN32_TRUE@@OS_WIN32_X64_FALSE@am__EXEEXT_2 = gspawn-win32-helper$(EXEEXT) \ -@OS_WIN32_TRUE@@OS_WIN32_X64_FALSE@ gspawn-win32-helper-console$(EXEEXT) -@OS_UNIX_TRUE@am__EXEEXT_3 = gtester$(EXEEXT) -am__EXEEXT_4 = $(am__EXEEXT_1) $(am__EXEEXT_2) $(am__EXEEXT_3) -PROGRAMS = $(bin_PROGRAMS) -gspawn_win32_helper_SOURCES = gspawn-win32-helper.c -gspawn_win32_helper_OBJECTS = gspawn-win32-helper.$(OBJEXT) -@OS_WIN32_TRUE@@OS_WIN32_X64_FALSE@gspawn_win32_helper_DEPENDENCIES = \ -@OS_WIN32_TRUE@@OS_WIN32_X64_FALSE@ libglib-2.0.la -gspawn_win32_helper_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ - $(gspawn_win32_helper_LDFLAGS) $(LDFLAGS) -o $@ -gspawn_win32_helper_console_SOURCES = gspawn-win32-helper-console.c -gspawn_win32_helper_console_OBJECTS = \ - gspawn-win32-helper-console.$(OBJEXT) -@OS_WIN32_TRUE@@OS_WIN32_X64_FALSE@gspawn_win32_helper_console_DEPENDENCIES = \ -@OS_WIN32_TRUE@@OS_WIN32_X64_FALSE@ libglib-2.0.la -gspawn_win64_helper_SOURCES = gspawn-win64-helper.c -gspawn_win64_helper_OBJECTS = gspawn-win64-helper.$(OBJEXT) -@OS_WIN32_TRUE@@OS_WIN32_X64_TRUE@gspawn_win64_helper_DEPENDENCIES = \ -@OS_WIN32_TRUE@@OS_WIN32_X64_TRUE@ libglib-2.0.la -gspawn_win64_helper_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ - $(gspawn_win64_helper_LDFLAGS) $(LDFLAGS) -o $@ -gspawn_win64_helper_console_SOURCES = gspawn-win64-helper-console.c -gspawn_win64_helper_console_OBJECTS = \ - gspawn-win64-helper-console.$(OBJEXT) -@OS_WIN32_TRUE@@OS_WIN32_X64_TRUE@gspawn_win64_helper_console_DEPENDENCIES = \ -@OS_WIN32_TRUE@@OS_WIN32_X64_TRUE@ libglib-2.0.la -am__gtester_SOURCES_DIST = gtester.c -@OS_UNIX_TRUE@am_gtester_OBJECTS = gtester.$(OBJEXT) -gtester_OBJECTS = $(am_gtester_OBJECTS) -@OS_UNIX_TRUE@gtester_DEPENDENCIES = libglib-2.0.la -SCRIPTS = $(bin_SCRIPTS) -DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) -depcomp = $(SHELL) $(top_srcdir)/depcomp -am__depfiles_maybe = depfiles -am__mv = mv -f -COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ - $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ - $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -CCLD = $(CC) -LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ - $(LDFLAGS) -o $@ -SOURCES = $(libglib_2_0_la_SOURCES) $(EXTRA_libglib_2_0_la_SOURCES) \ - gspawn-win32-helper.c gspawn-win32-helper-console.c \ - gspawn-win64-helper.c gspawn-win64-helper-console.c \ - $(gtester_SOURCES) -DIST_SOURCES = $(am__libglib_2_0_la_SOURCES_DIST) \ - $(EXTRA_libglib_2_0_la_SOURCES) gspawn-win32-helper.c \ - gspawn-win32-helper-console.c gspawn-win64-helper.c \ - gspawn-win64-helper-console.c $(am__gtester_SOURCES_DIST) -RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ - html-recursive info-recursive install-data-recursive \ - install-dvi-recursive install-exec-recursive \ - install-html-recursive install-info-recursive \ - install-pdf-recursive install-ps-recursive install-recursive \ - installcheck-recursive installdirs-recursive pdf-recursive \ - ps-recursive uninstall-recursive -DATA = $(noinst_DATA) -am__glibsubinclude_HEADERS_DIST = galloca.h garray.h gasyncqueue.h \ - gatomic.h gbacktrace.h gbase64.h gbookmarkfile.h gcache.h \ - gchecksum.h gcompletion.h gconvert.h gdataset.h gdate.h gdir.h \ - gerror.h gfileutils.h ghash.h ghook.h gi18n.h gi18n-lib.h \ - giochannel.h gkeyfile.h glist.h gmacros.h gmain.h \ - gmappedfile.h gmarkup.h gmem.h gmessages.h gnode.h goption.h \ - gpattern.h gpoll.h gprimes.h gqsort.h gquark.h gqueue.h \ - grand.h gregex.h grel.h gscanner.h gsequence.h gshell.h \ - gslice.h gslist.h gspawn.h gstdio.h gstrfuncs.h gtestutils.h \ - gstring.h gthread.h gthreadpool.h gtimer.h gtree.h gtypes.h \ - gunicode.h gurifuncs.h gutils.h gwin32.h gprintf.h -HEADERS = $(glibinclude_HEADERS) $(glibsubinclude_HEADERS) -RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ - distclean-recursive maintainer-clean-recursive -AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ - $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ - distdir -ETAGS = etags -CTAGS = ctags -am__tty_colors = \ -red=; grn=; lgn=; blu=; std= -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -am__relativize = \ - dir0=`pwd`; \ - sed_first='s,^\([^/]*\)/.*$$,\1,'; \ - sed_rest='s,^[^/]*/*,,'; \ - sed_last='s,^.*/\([^/]*\)$$,\1,'; \ - sed_butlast='s,/*[^/]*$$,,'; \ - while test -n "$$dir1"; do \ - first=`echo "$$dir1" | sed -e "$$sed_first"`; \ - if test "$$first" != "."; then \ - if test "$$first" = ".."; then \ - dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ - dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ - else \ - first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ - if test "$$first2" = "$$first"; then \ - dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ - else \ - dir2="../$$dir2"; \ - fi; \ - dir0="$$dir0"/"$$first"; \ - fi; \ - fi; \ - dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ - done; \ - reldir="$$dir2" -ACLOCAL = @ACLOCAL@ -ALLOCA = @ALLOCA@ -AMTAR = @AMTAR@ -AR = @AR@ -AS = @AS@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -CATALOGS = @CATALOGS@ -CATOBJEXT = @CATOBJEXT@ -CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CFLAGS = @CFLAGS@ -CONFIG_STATUS_DEPENDENCIES = @CONFIG_STATUS_DEPENDENCIES@ -CPP = @CPP@ -CPPFLAGS = @CPPFLAGS@ -CXX = @CXX@ -CXXCPP = @CXXCPP@ -CXXDEPMODE = @CXXDEPMODE@ -CXXFLAGS = @CXXFLAGS@ -CYGPATH_W = @CYGPATH_W@ -DATADIRNAME = @DATADIRNAME@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -DISABLE_MEM_POOLS = @DISABLE_MEM_POOLS@ -DLLTOOL = @DLLTOOL@ -DSYMUTIL = @DSYMUTIL@ -DUMPBIN = @DUMPBIN@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -FAM_LIBS = @FAM_LIBS@ -FGREP = @FGREP@ -GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ -GIO = @GIO@ -GIO_MODULE_DIR = @GIO_MODULE_DIR@ -GLIBC21 = @GLIBC21@ -GLIB_BINARY_AGE = @GLIB_BINARY_AGE@ -GLIB_DEBUG_FLAGS = @GLIB_DEBUG_FLAGS@ -GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ -GLIB_GENMARSHAL = @GLIB_GENMARSHAL@ -GLIB_INTERFACE_AGE = @GLIB_INTERFACE_AGE@ -GLIB_MAJOR_VERSION = @GLIB_MAJOR_VERSION@ -GLIB_MICRO_VERSION = @GLIB_MICRO_VERSION@ -GLIB_MINOR_VERSION = @GLIB_MINOR_VERSION@ -GLIB_VERSION = @GLIB_VERSION@ -GLIB_WIN32_STATIC_COMPILATION_DEFINE = @GLIB_WIN32_STATIC_COMPILATION_DEFINE@ -GMOFILES = @GMOFILES@ -GMSGFMT = @GMSGFMT@ -GREP = @GREP@ -GSPAWN = @GSPAWN@ -GTHREAD_COMPILE_IMPL_DEFINES = @GTHREAD_COMPILE_IMPL_DEFINES@ -GTKDOC_CHECK = @GTKDOC_CHECK@ -G_LIBS_EXTRA = @G_LIBS_EXTRA@ -G_MODULE_BROKEN_RTLD_GLOBAL = @G_MODULE_BROKEN_RTLD_GLOBAL@ -G_MODULE_HAVE_DLERROR = @G_MODULE_HAVE_DLERROR@ -G_MODULE_IMPL = @G_MODULE_IMPL@ -G_MODULE_LDFLAGS = @G_MODULE_LDFLAGS@ -G_MODULE_LIBS = @G_MODULE_LIBS@ -G_MODULE_LIBS_EXTRA = @G_MODULE_LIBS_EXTRA@ -G_MODULE_NEED_USCORE = @G_MODULE_NEED_USCORE@ -G_MODULE_PLUGIN_LIBS = @G_MODULE_PLUGIN_LIBS@ -G_MODULE_SUPPORTED = @G_MODULE_SUPPORTED@ -G_THREAD_CFLAGS = @G_THREAD_CFLAGS@ -G_THREAD_LIBS = @G_THREAD_LIBS@ -G_THREAD_LIBS_EXTRA = @G_THREAD_LIBS_EXTRA@ -G_THREAD_LIBS_FOR_GTHREAD = @G_THREAD_LIBS_FOR_GTHREAD@ -HTML_DIR = @HTML_DIR@ -ICONV_LIBS = @ICONV_LIBS@ -INDENT = @INDENT@ -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -INSTOBJEXT = @INSTOBJEXT@ -INTLLIBS = @INTLLIBS@ -LD = @LD@ -LDFLAGS = @LDFLAGS@ -LIBOBJS = @LIBOBJS@ -LIBS = @LIBS@ -LIBTOOL = @LIBTOOL@ -LIBTOOL_EXPORT_OPTIONS = @LIBTOOL_EXPORT_OPTIONS@ -LIB_EXE_MACHINE_FLAG = @LIB_EXE_MACHINE_FLAG@ -LIPO = @LIPO@ -LN_S = @LN_S@ -LTLIBOBJS = @LTLIBOBJS@ -LT_AGE = @LT_AGE@ -LT_CURRENT = @LT_CURRENT@ -LT_CURRENT_MINUS_AGE = @LT_CURRENT_MINUS_AGE@ -LT_RELEASE = @LT_RELEASE@ -LT_REVISION = @LT_REVISION@ -MAINT = @MAINT@ -MAKEINFO = @MAKEINFO@ -MKDIR_P = @MKDIR_P@ -MKINSTALLDIRS = @MKINSTALLDIRS@ -MSGFMT = @MSGFMT@ -MSGFMT_OPTS = @MSGFMT_OPTS@ -NM = @NM@ -NMEDIT = @NMEDIT@ -OBJDUMP = @OBJDUMP@ -OBJEXT = @OBJEXT@ -OTOOL = @OTOOL@ -OTOOL64 = @OTOOL64@ -PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -PCRE_CFLAGS = @PCRE_CFLAGS@ -PCRE_LIBS = @PCRE_LIBS@ -PCRE_REQUIRES = @PCRE_REQUIRES@ -PCRE_WARN_CFLAGS = @PCRE_WARN_CFLAGS@ -PERL = @PERL@ -PERL_PATH = @PERL_PATH@ -PKG_CONFIG = @PKG_CONFIG@ -PLATFORMDEP = @PLATFORMDEP@ -POFILES = @POFILES@ -POSUB = @POSUB@ -PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ -PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ -PYTHON = @PYTHON@ -PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ -PYTHON_PLATFORM = @PYTHON_PLATFORM@ -PYTHON_PREFIX = @PYTHON_PREFIX@ -PYTHON_VERSION = @PYTHON_VERSION@ -RANLIB = @RANLIB@ -REBUILD = @REBUILD@ -SED = @SED@ -SELINUX_LIBS = @SELINUX_LIBS@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRIP = @STRIP@ -USE_NLS = @USE_NLS@ -VERSION = @VERSION@ -WINDRES = @WINDRES@ -XATTR_LIBS = @XATTR_LIBS@ -XGETTEXT = @XGETTEXT@ -XMLCATALOG = @XMLCATALOG@ -XML_CATALOG_FILE = @XML_CATALOG_FILE@ -XSLTPROC = @XSLTPROC@ -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@ -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_os = @build_os@ -build_vendor = @build_vendor@ -builddir = @builddir@ -datadir = @datadir@ -datarootdir = @datarootdir@ -docdir = @docdir@ -dvidir = @dvidir@ -exec_prefix = @exec_prefix@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -htmldir = @htmldir@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localedir = @localedir@ -localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -ms_librarian = @ms_librarian@ -oldincludedir = @oldincludedir@ -pdfdir = @pdfdir@ -pkgpyexecdir = @pkgpyexecdir@ -pkgpythondir = @pkgpythondir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -psdir = @psdir@ -pyexecdir = @pyexecdir@ -pythondir = @pythondir@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -srcdir = @srcdir@ -sysconfdir = @sysconfdir@ -target_alias = @target_alias@ -top_build_prefix = @top_build_prefix@ -top_builddir = @top_builddir@ -top_srcdir = @top_srcdir@ - -#GTESTER = gtester # for non-GLIB packages -GTESTER = $(top_builddir)/glib/gtester # for the GLIB package -GTESTER_REPORT = $(top_builddir)/glib/gtester-report # for the GLIB package - -# initialize variables for unconditional += appending - -# The compilation of GRegex can be disabled, but the source files must -# be distributed. -EXTRA_DIST = makefile.msc.in glib.rc.in gen-unicode-tables.pl \ - gen-script-table.pl makegalias.pl abicheck.sh pltcheck.sh \ - glib.symbols gregex.c gregex.h win_iconv.c \ - $(MIRRORING_TAB_SOURCE) $(am__append_4) -TEST_PROGS = -@HAVE_GOOD_PRINTF_FALSE@PRINTF_SUBDIR = gnulib -@HAVE_GOOD_PRINTF_FALSE@printf_la = gnulib/libgnulib.la -@ENABLE_REGEX_TRUE@@USE_SYSTEM_PCRE_FALSE@MAYBE_PCRE = pcre -@ENABLE_REGEX_FALSE@gregex_c = -@ENABLE_REGEX_TRUE@gregex_c = gregex.c -@ENABLE_REGEX_FALSE@gregex_h = -@ENABLE_REGEX_TRUE@gregex_h = gregex.h -SUBDIRS = libcharset $(PRINTF_SUBDIR) $(MAYBE_PCRE) update-pcre . tests -DIST_SUBDIRS = libcharset gnulib pcre update-pcre tests -AM_CPPFLAGS = \ - -I$(top_srcdir) \ - $(pcre_inc) \ - -DG_LOG_DOMAIN=\"GLib\" \ - $(GLIB_DEBUG_FLAGS) \ - -DG_DISABLE_DEPRECATED \ - -DGLIB_COMPILATION \ - -DPCRE_STATIC - -@HAVE_GNUC_VISIBILITY_TRUE@@OS_LINUX_TRUE@TESTS_ENVIRONMENT = GLIB_DEBUG_FLAGS="$(GLIB_DEBUG_FLAGS)" -@HAVE_GNUC_VISIBILITY_TRUE@@OS_LINUX_TRUE@TESTS = abicheck.sh pltcheck.sh -BUILT_SOURCES = galias.h galiasdef.c -MIRRORING_TAB_SOURCE = \ - glib-mirroring-tab/Makefile \ - glib-mirroring-tab/gen-mirroring-tab.c \ - glib-mirroring-tab/packtab.h \ - glib-mirroring-tab/packtab.c - - -# These may be in the builddir too -BUILT_EXTRA_DIST = \ - makefile.msc \ - glib.rc \ - galias.h \ - galiasdef.c - -lib_LTLIBRARIES = libglib-2.0.la -@MS_LIB_AVAILABLE_TRUE@@OS_WIN32_AND_DLL_COMPILATION_TRUE@noinst_DATA = glib-2.0.lib -@MS_LIB_AVAILABLE_TRUE@@OS_WIN32_AND_DLL_COMPILATION_TRUE@install_ms_lib_cmd = $(INSTALL) glib-2.0.lib $(DESTDIR)$(libdir) -@MS_LIB_AVAILABLE_TRUE@@OS_WIN32_AND_DLL_COMPILATION_TRUE@uninstall_ms_lib_cmd = -rm $(DESTDIR)$(libdir)/glib-2.0.lib -libglib_2_0_la_SOURCES = \ - garray.c \ - gasyncqueue.c \ - gatomic.c \ - gbacktrace.c \ - gbase64.c \ - gbookmarkfile.c \ - gbsearcharray.h \ - gcache.c \ - gchecksum.c \ - gcompletion.c \ - gconvert.c \ - gdataset.c \ - gdatasetprivate.h \ - gdate.c \ - gdir.c \ - gerror.c \ - gfileutils.c \ - ghash.c \ - ghook.c \ - giochannel.c \ - gkeyfile.c \ - glibintl.h \ - glist.c \ - gmain.c \ - gmappedfile.c \ - gmarkup.c \ - gmem.c \ - gmessages.c \ - gmirroringtable.h \ - gnode.c \ - goption.c \ - gpattern.c \ - gpoll.c \ - gprimes.c \ - gqsort.c \ - gqueue.c \ - grel.c \ - grand.c \ - $(gregex_c) \ - gscanner.c \ - gscripttable.h \ - gsequence.c \ - gshell.c \ - gslice.c \ - gslist.c \ - gstdio.c \ - gstrfuncs.c \ - gstring.c \ - gtestutils.c \ - gthread.c \ - gthreadprivate.h \ - gthreadpool.c \ - gtimer.c \ - gtree.c \ - guniprop.c \ - gutf8.c \ - gunibreak.h \ - gunibreak.c \ - gunichartables.h \ - gunicollate.c \ - gunicomp.h \ - gunidecomp.h \ - gunidecomp.c \ - gunicodeprivate.h \ - gurifuncs.c \ - gutils.c \ - gdebug.h \ - gprintf.c \ - gprintfint.h - -EXTRA_libglib_2_0_la_SOURCES = \ - giounix.c \ - giowin32.c \ - gspawn.c \ - gspawn-win32.c \ - gwin32.c - -glibincludedir = $(includedir)/glib-2.0 -glibinclude_HEADERS = \ - glib-object.h \ - glib.h - -glibsubincludedir = $(includedir)/glib-2.0/glib -glibsubinclude_HEADERS = \ - galloca.h \ - garray.h \ - gasyncqueue.h \ - gatomic.h \ - gbacktrace.h \ - gbase64.h \ - gbookmarkfile.h \ - gcache.h \ - gchecksum.h \ - gcompletion.h \ - gconvert.h \ - gdataset.h \ - gdate.h \ - gdir.h \ - gerror.h \ - gfileutils.h \ - ghash.h \ - ghook.h \ - gi18n.h \ - gi18n-lib.h \ - giochannel.h \ - gkeyfile.h \ - glist.h \ - gmacros.h \ - gmain.h \ - gmappedfile.h \ - gmarkup.h \ - gmem.h \ - gmessages.h \ - gnode.h \ - goption.h \ - gpattern.h \ - gpoll.h \ - gprimes.h \ - gqsort.h \ - gquark.h \ - gqueue.h \ - grand.h \ - $(gregex_h) \ - grel.h \ - gscanner.h \ - gsequence.h \ - gshell.h \ - gslice.h \ - gslist.h \ - gspawn.h \ - gstdio.h \ - gstrfuncs.h \ - gtestutils.h \ - gstring.h \ - gthread.h \ - gthreadpool.h \ - gtimer.h \ - gtree.h \ - gtypes.h \ - gunicode.h \ - gurifuncs.h \ - gutils.h \ - gwin32.h \ - gprintf.h - -@PLATFORM_WIN32_TRUE@no_undefined = -no-undefined -@OS_WIN32_AND_DLL_COMPILATION_FALSE@export_symbols = $(LIBTOOL_EXPORT_OPTIONS) -@OS_WIN32_AND_DLL_COMPILATION_TRUE@export_symbols = -export-symbols glib.def -@OS_WIN32_AND_DLL_COMPILATION_TRUE@glib_win32_res = glib-win32-res.o -@OS_WIN32_AND_DLL_COMPILATION_TRUE@glib_win32_res_ldflag = -Wl,$(glib_win32_res) -@OS_WIN32_AND_DLL_COMPILATION_TRUE@glib_def = glib.def -@ENABLE_REGEX_FALSE@pcre_lib = -@ENABLE_REGEX_TRUE@@USE_SYSTEM_PCRE_FALSE@pcre_lib = pcre/libpcre.la -@ENABLE_REGEX_TRUE@@USE_SYSTEM_PCRE_TRUE@pcre_lib = $(PCRE_LIBS) -@ENABLE_REGEX_FALSE@pcre_inc = -@ENABLE_REGEX_TRUE@@USE_SYSTEM_PCRE_FALSE@pcre_inc = -@ENABLE_REGEX_TRUE@@USE_SYSTEM_PCRE_TRUE@pcre_inc = $(PCRE_CFLAGS) -libglib_2_0_la_LIBADD = libcharset/libcharset.la $(printf_la) @GIO@ @GSPAWN@ @PLATFORMDEP@ @ICONV_LIBS@ @G_LIBS_EXTRA@ $(pcre_lib) -libglib_2_0_la_DEPENDENCIES = libcharset/libcharset.la $(printf_la) @GIO@ @GSPAWN@ @PLATFORMDEP@ $(glib_win32_res) $(glib_def) -libglib_2_0_la_LDFLAGS = \ - $(glib_win32_res_ldflag) \ - -version-info $(LT_CURRENT):$(LT_REVISION):$(LT_AGE) \ - -export-dynamic $(no_undefined) $(export_symbols) - -INSTALL_PROGS = $(am__append_1) $(am__append_2) $(am__append_3) -@OS_WIN32_TRUE@@OS_WIN32_X64_TRUE@gspawn_win64_helper_LDADD = libglib-2.0.la -@OS_WIN32_TRUE@@OS_WIN32_X64_TRUE@gspawn_win64_helper_LDFLAGS = -mwindows -@OS_WIN32_TRUE@@OS_WIN32_X64_TRUE@gspawn_win64_helper_console_LDADD = libglib-2.0.la -@OS_WIN32_TRUE@@OS_WIN32_X64_FALSE@gspawn_win32_helper_LDADD = libglib-2.0.la -@OS_WIN32_TRUE@@OS_WIN32_X64_FALSE@gspawn_win32_helper_LDFLAGS = -mwindows -@OS_WIN32_TRUE@@OS_WIN32_X64_FALSE@gspawn_win32_helper_console_LDADD = libglib-2.0.la -@OS_UNIX_TRUE@gtester_SOURCES = gtester.c -@OS_UNIX_TRUE@gtester_LDADD = libglib-2.0.la -@OS_UNIX_TRUE@auto_config_binscripts = gtester-report -@OS_UNIX_TRUE@bin_SCRIPTS = ${auto_config_binscripts} -@OS_UNIX_TRUE@CONFIGVARS = \ -@OS_UNIX_TRUE@ "bindir" : "${bindir}", \ -@OS_UNIX_TRUE@ "glib-version" : "${GLIB_VERSION}" - -all: $(BUILT_SOURCES) - $(MAKE) $(AM_MAKEFLAGS) all-recursive - -.SUFFIXES: -.SUFFIXES: .c .lo .o .obj -$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(top_srcdir)/Makefile.decl $(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) --gnu glib/Makefile'; \ - $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --gnu glib/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): -makefile.msc: $(top_builddir)/config.status $(srcdir)/makefile.msc.in - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ -glib.rc: $(top_builddir)/config.status $(srcdir)/glib.rc.in - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ -install-libLTLIBRARIES: $(lib_LTLIBRARIES) - @$(NORMAL_INSTALL) - test -z "$(libdir)" || $(MKDIR_P) "$(DESTDIR)$(libdir)" - @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ - list2=; for p in $$list; do \ - if test -f $$p; then \ - list2="$$list2 $$p"; \ - else :; fi; \ - done; \ - test -z "$$list2" || { \ - echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \ - $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \ - } - -uninstall-libLTLIBRARIES: - @$(NORMAL_UNINSTALL) - @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ - for p in $$list; do \ - $(am__strip_dir) \ - echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$f'"; \ - $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$f"; \ - done - -clean-libLTLIBRARIES: - -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES) - @list='$(lib_LTLIBRARIES)'; for p in $$list; do \ - dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ - test "$$dir" != "$$p" || dir=.; \ - echo "rm -f \"$${dir}/so_locations\""; \ - rm -f "$${dir}/so_locations"; \ - done -libglib-2.0.la: $(libglib_2_0_la_OBJECTS) $(libglib_2_0_la_DEPENDENCIES) - $(libglib_2_0_la_LINK) -rpath $(libdir) $(libglib_2_0_la_OBJECTS) $(libglib_2_0_la_LIBADD) $(LIBS) -install-binPROGRAMS: $(bin_PROGRAMS) - @$(NORMAL_INSTALL) - test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)" - @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ - for p in $$list; do echo "$$p $$p"; done | \ - sed 's/$(EXEEXT)$$//' | \ - while read p p1; do if test -f $$p || test -f $$p1; \ - then echo "$$p"; echo "$$p"; else :; fi; \ - done | \ - sed -e 'p;s,.*/,,;n;h' -e 's|.*|.|' \ - -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \ - sed 'N;N;N;s,\n, ,g' | \ - $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \ - { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ - if ($$2 == $$4) files[d] = files[d] " " $$1; \ - else { print "f", $$3 "/" $$4, $$1; } } \ - END { for (d in files) print "f", d, files[d] }' | \ - while read type dir files; do \ - if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ - test -z "$$files" || { \ - echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \ - $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \ - } \ - ; done - -uninstall-binPROGRAMS: - @$(NORMAL_UNINSTALL) - @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ - files=`for p in $$list; do echo "$$p"; done | \ - sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \ - -e 's/$$/$(EXEEXT)/' `; \ - test -n "$$list" || exit 0; \ - echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \ - cd "$(DESTDIR)$(bindir)" && rm -f $$files - -clean-binPROGRAMS: - @list='$(bin_PROGRAMS)'; test -n "$$list" || exit 0; \ - echo " rm -f" $$list; \ - rm -f $$list || exit $$?; \ - test -n "$(EXEEXT)" || exit 0; \ - list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ - echo " rm -f" $$list; \ - rm -f $$list -gspawn-win32-helper$(EXEEXT): $(gspawn_win32_helper_OBJECTS) $(gspawn_win32_helper_DEPENDENCIES) - @rm -f gspawn-win32-helper$(EXEEXT) - $(gspawn_win32_helper_LINK) $(gspawn_win32_helper_OBJECTS) $(gspawn_win32_helper_LDADD) $(LIBS) -gspawn-win32-helper-console$(EXEEXT): $(gspawn_win32_helper_console_OBJECTS) $(gspawn_win32_helper_console_DEPENDENCIES) - @rm -f gspawn-win32-helper-console$(EXEEXT) - $(LINK) $(gspawn_win32_helper_console_OBJECTS) $(gspawn_win32_helper_console_LDADD) $(LIBS) -gspawn-win64-helper$(EXEEXT): $(gspawn_win64_helper_OBJECTS) $(gspawn_win64_helper_DEPENDENCIES) - @rm -f gspawn-win64-helper$(EXEEXT) - $(gspawn_win64_helper_LINK) $(gspawn_win64_helper_OBJECTS) $(gspawn_win64_helper_LDADD) $(LIBS) -gspawn-win64-helper-console$(EXEEXT): $(gspawn_win64_helper_console_OBJECTS) $(gspawn_win64_helper_console_DEPENDENCIES) - @rm -f gspawn-win64-helper-console$(EXEEXT) - $(LINK) $(gspawn_win64_helper_console_OBJECTS) $(gspawn_win64_helper_console_LDADD) $(LIBS) -gtester$(EXEEXT): $(gtester_OBJECTS) $(gtester_DEPENDENCIES) - @rm -f gtester$(EXEEXT) - $(LINK) $(gtester_OBJECTS) $(gtester_LDADD) $(LIBS) -install-binSCRIPTS: $(bin_SCRIPTS) - @$(NORMAL_INSTALL) - test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)" - @list='$(bin_SCRIPTS)'; test -n "$(bindir)" || list=; \ - for p in $$list; do \ - if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ - if test -f "$$d$$p"; then echo "$$d$$p"; echo "$$p"; else :; fi; \ - done | \ - sed -e 'p;s,.*/,,;n' \ - -e 'h;s|.*|.|' \ - -e 'p;x;s,.*/,,;$(transform)' | sed 'N;N;N;s,\n, ,g' | \ - $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1; } \ - { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ - if ($$2 == $$4) { files[d] = files[d] " " $$1; \ - if (++n[d] == $(am__install_max)) { \ - print "f", d, files[d]; n[d] = 0; files[d] = "" } } \ - else { print "f", d "/" $$4, $$1 } } \ - END { for (d in files) print "f", d, files[d] }' | \ - while read type dir files; do \ - if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ - test -z "$$files" || { \ - echo " $(INSTALL_SCRIPT) $$files '$(DESTDIR)$(bindir)$$dir'"; \ - $(INSTALL_SCRIPT) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \ - } \ - ; done - -uninstall-binSCRIPTS: - @$(NORMAL_UNINSTALL) - @list='$(bin_SCRIPTS)'; test -n "$(bindir)" || exit 0; \ - files=`for p in $$list; do echo "$$p"; done | \ - sed -e 's,.*/,,;$(transform)'`; \ - test -n "$$list" || exit 0; \ - echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \ - cd "$(DESTDIR)$(bindir)" && rm -f $$files - -mostlyclean-compile: - -rm -f *.$(OBJEXT) - -distclean-compile: - -rm -f *.tab.c - -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/garray.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gasyncqueue.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gatomic.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gbacktrace.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gbase64.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gbookmarkfile.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gcache.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gchecksum.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gcompletion.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gconvert.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gdataset.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gdate.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gdir.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gerror.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gfileutils.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ghash.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ghook.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/giochannel.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/giounix.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/giowin32.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gkeyfile.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/glist.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gmain.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gmappedfile.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gmarkup.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gmem.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gmessages.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gnode.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/goption.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gpattern.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gpoll.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gprimes.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gprintf.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gqsort.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gqueue.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/grand.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gregex.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/grel.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gscanner.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gsequence.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gshell.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gslice.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gslist.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gspawn-win32-helper-console.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gspawn-win32-helper.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gspawn-win32.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gspawn-win64-helper-console.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gspawn-win64-helper.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gspawn.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gstdio.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gstrfuncs.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gstring.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gtester.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gtestutils.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gthread.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gthreadpool.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gtimer.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gtree.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gunibreak.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gunicollate.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gunidecomp.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/guniprop.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gurifuncs.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gutf8.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gutils.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gwin32.Plo@am__quote@ - -.c.o: -@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< - -.c.obj: -@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` - -.c.lo: -@am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< - -mostlyclean-libtool: - -rm -f *.lo - -clean-libtool: - -rm -rf .libs _libs -install-glibincludeHEADERS: $(glibinclude_HEADERS) - @$(NORMAL_INSTALL) - test -z "$(glibincludedir)" || $(MKDIR_P) "$(DESTDIR)$(glibincludedir)" - @list='$(glibinclude_HEADERS)'; test -n "$(glibincludedir)" || 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)$(glibincludedir)'"; \ - $(INSTALL_HEADER) $$files "$(DESTDIR)$(glibincludedir)" || exit $$?; \ - done - -uninstall-glibincludeHEADERS: - @$(NORMAL_UNINSTALL) - @list='$(glibinclude_HEADERS)'; test -n "$(glibincludedir)" || list=; \ - files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ - test -n "$$files" || exit 0; \ - echo " ( cd '$(DESTDIR)$(glibincludedir)' && rm -f" $$files ")"; \ - cd "$(DESTDIR)$(glibincludedir)" && rm -f $$files -install-glibsubincludeHEADERS: $(glibsubinclude_HEADERS) - @$(NORMAL_INSTALL) - test -z "$(glibsubincludedir)" || $(MKDIR_P) "$(DESTDIR)$(glibsubincludedir)" - @list='$(glibsubinclude_HEADERS)'; test -n "$(glibsubincludedir)" || 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)$(glibsubincludedir)'"; \ - $(INSTALL_HEADER) $$files "$(DESTDIR)$(glibsubincludedir)" || exit $$?; \ - done - -uninstall-glibsubincludeHEADERS: - @$(NORMAL_UNINSTALL) - @list='$(glibsubinclude_HEADERS)'; test -n "$(glibsubincludedir)" || list=; \ - files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ - test -n "$$files" || exit 0; \ - echo " ( cd '$(DESTDIR)$(glibsubincludedir)' && rm -f" $$files ")"; \ - cd "$(DESTDIR)$(glibsubincludedir)" && rm -f $$files - -# This directory's subdirectories are mostly independent; you can cd -# into them and run `make' without going through this Makefile. -# To change the values of `make' variables: instead of editing Makefiles, -# (1) if the variable is set in `config.status', edit `config.status' -# (which will cause the Makefiles to be regenerated when you run `make'); -# (2) otherwise, pass the desired values on the `make' command line. -$(RECURSIVE_TARGETS): - @failcom='exit 1'; \ - for f in x $$MAKEFLAGS; do \ - case $$f in \ - *=* | --[!k]*);; \ - *k*) failcom='fail=yes';; \ - esac; \ - done; \ - dot_seen=no; \ - target=`echo $@ | sed s/-recursive//`; \ - list='$(SUBDIRS)'; for subdir in $$list; do \ - echo "Making $$target in $$subdir"; \ - if test "$$subdir" = "."; then \ - dot_seen=yes; \ - local_target="$$target-am"; \ - else \ - local_target="$$target"; \ - fi; \ - ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ - || eval $$failcom; \ - done; \ - if test "$$dot_seen" = "no"; then \ - $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ - fi; test -z "$$fail" - -$(RECURSIVE_CLEAN_TARGETS): - @failcom='exit 1'; \ - for f in x $$MAKEFLAGS; do \ - case $$f in \ - *=* | --[!k]*);; \ - *k*) failcom='fail=yes';; \ - esac; \ - done; \ - dot_seen=no; \ - case "$@" in \ - distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ - *) list='$(SUBDIRS)' ;; \ - esac; \ - rev=''; for subdir in $$list; do \ - if test "$$subdir" = "."; then :; else \ - rev="$$subdir $$rev"; \ - fi; \ - done; \ - rev="$$rev ."; \ - target=`echo $@ | sed s/-recursive//`; \ - for subdir in $$rev; do \ - echo "Making $$target in $$subdir"; \ - if test "$$subdir" = "."; then \ - local_target="$$target-am"; \ - else \ - local_target="$$target"; \ - fi; \ - ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ - || eval $$failcom; \ - done && test -z "$$fail" -tags-recursive: - list='$(SUBDIRS)'; for subdir in $$list; do \ - test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ - done -ctags-recursive: - list='$(SUBDIRS)'; for subdir in $$list; do \ - test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ - done - -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: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - set x; \ - here=`pwd`; \ - if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ - include_option=--etags-include; \ - empty_fix=.; \ - else \ - include_option=--include; \ - empty_fix=; \ - fi; \ - list='$(SUBDIRS)'; for subdir in $$list; do \ - if test "$$subdir" = .; then :; else \ - test ! -f $$subdir/TAGS || \ - set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ - fi; \ - done; \ - 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; }; }'`; \ - 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: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - 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; }; }'`; \ - 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-TESTS: $(TESTS) - @failed=0; all=0; xfail=0; xpass=0; skip=0; \ - srcdir=$(srcdir); export srcdir; \ - list=' $(TESTS) '; \ - $(am__tty_colors); \ - if test -n "$$list"; then \ - for tst in $$list; do \ - if test -f ./$$tst; then dir=./; \ - elif test -f $$tst; then dir=; \ - else dir="$(srcdir)/"; fi; \ - if $(TESTS_ENVIRONMENT) $${dir}$$tst; then \ - all=`expr $$all + 1`; \ - case " $(XFAIL_TESTS) " in \ - *[\ \ ]$$tst[\ \ ]*) \ - xpass=`expr $$xpass + 1`; \ - failed=`expr $$failed + 1`; \ - col=$$red; res=XPASS; \ - ;; \ - *) \ - col=$$grn; res=PASS; \ - ;; \ - esac; \ - elif test $$? -ne 77; then \ - all=`expr $$all + 1`; \ - case " $(XFAIL_TESTS) " in \ - *[\ \ ]$$tst[\ \ ]*) \ - xfail=`expr $$xfail + 1`; \ - col=$$lgn; res=XFAIL; \ - ;; \ - *) \ - failed=`expr $$failed + 1`; \ - col=$$red; res=FAIL; \ - ;; \ - esac; \ - else \ - skip=`expr $$skip + 1`; \ - col=$$blu; res=SKIP; \ - fi; \ - echo "$${col}$$res$${std}: $$tst"; \ - done; \ - if test "$$all" -eq 1; then \ - tests="test"; \ - All=""; \ - else \ - tests="tests"; \ - All="All "; \ - fi; \ - if test "$$failed" -eq 0; then \ - if test "$$xfail" -eq 0; then \ - banner="$$All$$all $$tests passed"; \ - else \ - if test "$$xfail" -eq 1; then failures=failure; else failures=failures; fi; \ - banner="$$All$$all $$tests behaved as expected ($$xfail expected $$failures)"; \ - fi; \ - else \ - if test "$$xpass" -eq 0; then \ - banner="$$failed of $$all $$tests failed"; \ - else \ - if test "$$xpass" -eq 1; then passes=pass; else passes=passes; fi; \ - banner="$$failed of $$all $$tests did not behave as expected ($$xpass unexpected $$passes)"; \ - fi; \ - fi; \ - dashes="$$banner"; \ - skipped=""; \ - if test "$$skip" -ne 0; then \ - if test "$$skip" -eq 1; then \ - skipped="($$skip test was not run)"; \ - else \ - skipped="($$skip tests were not run)"; \ - fi; \ - test `echo "$$skipped" | wc -c` -le `echo "$$banner" | wc -c` || \ - dashes="$$skipped"; \ - fi; \ - report=""; \ - if test "$$failed" -ne 0 && test -n "$(PACKAGE_BUGREPORT)"; then \ - report="Please report to $(PACKAGE_BUGREPORT)"; \ - test `echo "$$report" | wc -c` -le `echo "$$banner" | wc -c` || \ - dashes="$$report"; \ - fi; \ - dashes=`echo "$$dashes" | sed s/./=/g`; \ - if test "$$failed" -eq 0; then \ - echo "$$grn$$dashes"; \ - else \ - echo "$$red$$dashes"; \ - fi; \ - echo "$$banner"; \ - test -z "$$skipped" || echo "$$skipped"; \ - test -z "$$report" || echo "$$report"; \ - echo "$$dashes$$std"; \ - test "$$failed" -eq 0; \ - else :; fi - -distdir: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - list='$(DISTFILES)'; \ - dist_files=`for file in $$list; do echo $$file; done | \ - sed -e "s|^$$srcdirstrip/||;t" \ - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ - case $$dist_files in \ - */*) $(MKDIR_P) `echo "$$dist_files" | \ - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ - sort -u` ;; \ - esac; \ - for file in $$dist_files; do \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - if test -d $$d/$$file; then \ - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test -d "$(distdir)/$$file"; then \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ - else \ - test -f "$(distdir)/$$file" \ - || cp -p $$d/$$file "$(distdir)/$$file" \ - || exit 1; \ - fi; \ - done - @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ - if test "$$subdir" = .; then :; else \ - test -d "$(distdir)/$$subdir" \ - || $(MKDIR_P) "$(distdir)/$$subdir" \ - || exit 1; \ - fi; \ - done - @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ - if test "$$subdir" = .; then :; else \ - dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ - $(am__relativize); \ - new_distdir=$$reldir; \ - dir1=$$subdir; dir2="$(top_distdir)"; \ - $(am__relativize); \ - new_top_distdir=$$reldir; \ - echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ - echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ - ($(am__cd) $$subdir && \ - $(MAKE) $(AM_MAKEFLAGS) \ - top_distdir="$$new_top_distdir" \ - distdir="$$new_distdir" \ - am__remove_distdir=: \ - am__skip_length_check=: \ - am__skip_mode_fix=: \ - distdir) \ - || exit 1; \ - fi; \ - done - $(MAKE) $(AM_MAKEFLAGS) \ - top_distdir="$(top_distdir)" distdir="$(distdir)" \ - dist-hook -check-am: all-am - $(MAKE) $(AM_MAKEFLAGS) check-TESTS check-local -check: $(BUILT_SOURCES) - $(MAKE) $(AM_MAKEFLAGS) check-recursive -all-am: Makefile $(LTLIBRARIES) $(PROGRAMS) $(SCRIPTS) $(DATA) \ - $(HEADERS) -install-binPROGRAMS: install-libLTLIBRARIES - -installdirs: installdirs-recursive -installdirs-am: - for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(bindir)" "$(DESTDIR)$(bindir)" "$(DESTDIR)$(glibincludedir)" "$(DESTDIR)$(glibsubincludedir)"; do \ - test -z "$$dir" || $(MKDIR_P) "$$dir"; \ - done -install: $(BUILT_SOURCES) - $(MAKE) $(AM_MAKEFLAGS) install-recursive -install-exec: install-exec-recursive -install-data: install-data-recursive -uninstall: uninstall-recursive - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-recursive -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." - -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES) -@OS_UNIX_FALSE@install-exec-hook: -clean: clean-recursive - -clean-am: clean-binPROGRAMS clean-generic clean-libLTLIBRARIES \ - clean-libtool mostlyclean-am - -distclean: distclean-recursive - -rm -rf ./$(DEPDIR) - -rm -f Makefile -distclean-am: clean-am distclean-compile distclean-generic \ - distclean-tags - -dvi: dvi-recursive - -dvi-am: - -html: html-recursive - -html-am: - -info: info-recursive - -info-am: - -install-data-am: install-data-local install-glibincludeHEADERS \ - install-glibsubincludeHEADERS - -install-dvi: install-dvi-recursive - -install-dvi-am: - -install-exec-am: install-binPROGRAMS install-binSCRIPTS \ - install-libLTLIBRARIES - @$(NORMAL_INSTALL) - $(MAKE) $(AM_MAKEFLAGS) install-exec-hook -install-html: install-html-recursive - -install-html-am: - -install-info: install-info-recursive - -install-info-am: - -install-man: - -install-pdf: install-pdf-recursive - -install-pdf-am: - -install-ps: install-ps-recursive - -install-ps-am: - -installcheck-am: - -maintainer-clean: maintainer-clean-recursive - -rm -rf ./$(DEPDIR) - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-recursive - -mostlyclean-am: mostlyclean-compile mostlyclean-generic \ - mostlyclean-libtool - -pdf: pdf-recursive - -pdf-am: - -ps: ps-recursive - -ps-am: - -uninstall-am: uninstall-binPROGRAMS uninstall-binSCRIPTS \ - uninstall-glibincludeHEADERS uninstall-glibsubincludeHEADERS \ - uninstall-libLTLIBRARIES uninstall-local - -.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) all check \ - check-am ctags-recursive install install-am install-exec-am \ - install-strip tags-recursive - -.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ - all all-am check check-TESTS check-am check-local clean \ - clean-binPROGRAMS clean-generic clean-libLTLIBRARIES \ - clean-libtool ctags ctags-recursive dist-hook distclean \ - distclean-compile distclean-generic distclean-libtool \ - distclean-tags distdir dvi dvi-am html html-am info info-am \ - install install-am install-binPROGRAMS install-binSCRIPTS \ - install-data install-data-am install-data-local install-dvi \ - install-dvi-am install-exec install-exec-am install-exec-hook \ - install-glibincludeHEADERS install-glibsubincludeHEADERS \ - install-html install-html-am install-info install-info-am \ - install-libLTLIBRARIES install-man install-pdf install-pdf-am \ - install-ps install-ps-am install-strip installcheck \ - installcheck-am installdirs installdirs-am maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-compile \ - mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - tags tags-recursive uninstall uninstall-am \ - uninstall-binPROGRAMS uninstall-binSCRIPTS \ - uninstall-glibincludeHEADERS uninstall-glibsubincludeHEADERS \ - uninstall-libLTLIBRARIES uninstall-local - - -### testing rules - -# test: run all tests in cwd and subdirs -test: ${TEST_PROGS} -@OS_UNIX_TRUE@ @test -z "${TEST_PROGS}" || ${GTESTER} --verbose ${TEST_PROGS} -@OS_UNIX_TRUE@ @ for subdir in $(SUBDIRS) . ; do \ -@OS_UNIX_TRUE@ test "$$subdir" = "." -o "$$subdir" = "po" || \ -@OS_UNIX_TRUE@ ( cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $@ ) || exit $? ; \ -@OS_UNIX_TRUE@ done - -# test-report: run tests in subdirs and generate report -# perf-report: run tests in subdirs with -m perf and generate report -# full-report: like test-report: with -m perf and -m slow -test-report perf-report full-report: ${TEST_PROGS} - @test -z "${TEST_PROGS}" || { \ - case $@ in \ - test-report) test_options="-k";; \ - perf-report) test_options="-k -m=perf";; \ - full-report) test_options="-k -m=perf -m=slow";; \ - esac ; \ - if test -z "$$GTESTER_LOGDIR" ; then \ - ${GTESTER} --verbose $$test_options -o test-report.xml ${TEST_PROGS} ; \ - elif test -n "${TEST_PROGS}" ; then \ - ${GTESTER} --verbose $$test_options -o `mktemp "$$GTESTER_LOGDIR/log-XXXXXX"` ${TEST_PROGS} ; \ - fi ; \ - } - @ ignore_logdir=true ; \ - if test -z "$$GTESTER_LOGDIR" ; then \ - GTESTER_LOGDIR=`mktemp -d "\`pwd\`/.testlogs-XXXXXX"`; export GTESTER_LOGDIR ; \ - ignore_logdir=false ; \ - fi ; \ - for subdir in $(SUBDIRS) . ; do \ - test "$$subdir" = "." -o "$$subdir" = "po" || \ - ( cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $@ ) || exit $? ; \ - done ; \ - $$ignore_logdir || { \ - echo '' > $@.xml ; \ - echo '' >> $@.xml ; \ - for lf in `ls -L "$$GTESTER_LOGDIR"/.` ; do \ - sed '1,1s/^?]*?>//' <"$$GTESTER_LOGDIR"/"$$lf" >> $@.xml ; \ - done ; \ - echo >> $@.xml ; \ - echo '' >> $@.xml ; \ - rm -rf "$$GTESTER_LOGDIR"/ ; \ - ${GTESTER_REPORT} --version 2>/dev/null 1>&2 ; test "$$?" != 0 || ${GTESTER_REPORT} $@.xml >$@.html ; \ - } -.PHONY: test test-report perf-report full-report -# run make test as part of make check -check-local: test - -glib.def: glib.symbols - (echo -e EXPORTS; $(CPP) -P -DINCLUDE_VARIABLES -DINCLUDE_INTERNAL_SYMBOLS -DG_OS_WIN32 -DALL_FILES - <$(srcdir)/glib.symbols | sed -e '/^$$/d' -e 's/^/ /' -e 's/G_GNUC_[^ ]*//g') > glib.def - -galias.h: glib.symbols - $(PERL) $(srcdir)/makegalias.pl < $(srcdir)/glib.symbols > galias.h - -galiasdef.c: glib.symbols - $(PERL) $(srcdir)/makegalias.pl -def < $(srcdir)/glib.symbols > galiasdef.c - -install-ms-lib: - $(install_ms_lib_cmd) - -uninstall-ms-lib: - $(uninstall_ms_lib_cmd) - -install-data-local: install-ms-lib install-def-file - @if test -f $(glibincludedir)/glist.h ; then \ - echo "*** Old headers found in $(glibincludedir). You should remove the" ; \ - echo "*** contents of this directory and type 'make install' again." ; \ - false ; \ - fi - -uninstall-local: uninstall-ms-lib uninstall-def-file - -@OS_WIN32_AND_DLL_COMPILATION_TRUE@install-def-file: -@OS_WIN32_AND_DLL_COMPILATION_TRUE@ $(INSTALL) glib.def $(DESTDIR)$(libdir)/glib-2.0.def - -@OS_WIN32_AND_DLL_COMPILATION_TRUE@uninstall-def-file: -@OS_WIN32_AND_DLL_COMPILATION_TRUE@ -rm $(DESTDIR)$(libdir)/glib-2.0.def -@OS_WIN32_AND_DLL_COMPILATION_FALSE@install-def-file: -@OS_WIN32_AND_DLL_COMPILATION_FALSE@uninstall-def-file: - -gspawn-win32-helper-console.c: - echo '#define HELPER_CONSOLE' >$@ - echo '#include "gspawn-win32-helper.c"' >>$@ - -gspawn-win64-helper.c: - echo '#include "gspawn-win32-helper.c"' >$@ - -gspawn-win64-helper-console.c: - echo '#define HELPER_CONSOLE' >$@ - echo '#include "gspawn-win32-helper.c"' >>$@ - -glib-win32-res.o: glib.rc - $(WINDRES) glib.rc $@ - -@OS_UNIX_TRUE@install-exec-hook: -@OS_UNIX_TRUE@ for sf in ${auto_config_binscripts} ; do \ -@OS_UNIX_TRUE@ mv -f "$(DESTDIR)$(bindir)/$$sf" "$(DESTDIR)$(bindir)/$$sf".tmp \ -@OS_UNIX_TRUE@ && sed < "$(DESTDIR)$(bindir)/$$sf".tmp > "$(DESTDIR)$(bindir)/$$sf" \ -@OS_UNIX_TRUE@ -e '1,24s|^ *#@PKGINSTALL_CONFIGVARS_IN24LINES@| ${CONFIGVARS}|' \ -@OS_UNIX_TRUE@ -e '1,1s|#! /usr/bin/env python\([0-9]\+\(\.[0-9]\+\)\?\)\?|#!${PYTHON}|' \ -@OS_UNIX_TRUE@ || exit $$? ; \ -@OS_UNIX_TRUE@ rm -f "$(DESTDIR)$(bindir)/$$sf".tmp ; \ -@OS_UNIX_TRUE@ done - -glib-2.0.lib: libglib-2.0.la glib.def - lib -machine:@LIB_EXE_MACHINE_FLAG@ -name:libglib-2.0-$(LT_CURRENT_MINUS_AGE).dll -def:glib.def -out:$@ - -dist-hook: $(BUILT_EXTRA_DIST) - files='$(BUILT_EXTRA_DIST)'; \ - for f in $$files; do \ - if test -f $$f; then d=.; else d=$(srcdir); fi; \ - cp $$d/$$f $(distdir) || exit 1; done - -# 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: diff --git a/lib/win32/glib-2.20.4/glib/galias.h b/lib/win32/glib-2.20.4/glib/galias.h deleted file mode 100644 index 9131fa69b3ea9..0000000000000 --- a/lib/win32/glib-2.20.4/glib/galias.h +++ /dev/null @@ -1,3886 +0,0 @@ -/* Generated by makegalias.pl */ - -#ifndef DISABLE_VISIBILITY - -#include "glibconfig.h" - -#ifdef G_HAVE_GNUC_VISIBILITY - -#define IN_FILE(x) 1 -#define IN_HEADER defined - -#if IN_HEADER(__G_ARRAY_H__) -#if IN_FILE(__G_ARRAY_C__) -extern __typeof (g_array_append_vals) IA__g_array_append_vals __attribute((visibility("hidden"))); -#define g_array_append_vals IA__g_array_append_vals - -extern __typeof (g_array_free) IA__g_array_free __attribute((visibility("hidden"))); -#define g_array_free IA__g_array_free - -extern __typeof (g_array_insert_vals) IA__g_array_insert_vals __attribute((visibility("hidden"))); -#define g_array_insert_vals IA__g_array_insert_vals - -extern __typeof (g_array_new) IA__g_array_new __attribute((visibility("hidden"))); -#define g_array_new IA__g_array_new - -extern __typeof (g_array_prepend_vals) IA__g_array_prepend_vals __attribute((visibility("hidden"))); -#define g_array_prepend_vals IA__g_array_prepend_vals - -extern __typeof (g_array_remove_index) IA__g_array_remove_index __attribute((visibility("hidden"))); -#define g_array_remove_index IA__g_array_remove_index - -extern __typeof (g_array_remove_index_fast) IA__g_array_remove_index_fast __attribute((visibility("hidden"))); -#define g_array_remove_index_fast IA__g_array_remove_index_fast - -extern __typeof (g_array_remove_range) IA__g_array_remove_range __attribute((visibility("hidden"))); -#define g_array_remove_range IA__g_array_remove_range - -extern __typeof (g_array_set_size) IA__g_array_set_size __attribute((visibility("hidden"))); -#define g_array_set_size IA__g_array_set_size - -extern __typeof (g_array_sized_new) IA__g_array_sized_new __attribute((visibility("hidden"))); -#define g_array_sized_new IA__g_array_sized_new - -extern __typeof (g_array_sort) IA__g_array_sort __attribute((visibility("hidden"))); -#define g_array_sort IA__g_array_sort - -extern __typeof (g_array_sort_with_data) IA__g_array_sort_with_data __attribute((visibility("hidden"))); -#define g_array_sort_with_data IA__g_array_sort_with_data - -extern __typeof (g_byte_array_append) IA__g_byte_array_append __attribute((visibility("hidden"))); -#define g_byte_array_append IA__g_byte_array_append - -extern __typeof (g_byte_array_free) IA__g_byte_array_free __attribute((visibility("hidden"))); -#define g_byte_array_free IA__g_byte_array_free - -extern __typeof (g_byte_array_new) IA__g_byte_array_new __attribute((visibility("hidden"))); -#define g_byte_array_new IA__g_byte_array_new - -extern __typeof (g_byte_array_prepend) IA__g_byte_array_prepend __attribute((visibility("hidden"))); -#define g_byte_array_prepend IA__g_byte_array_prepend - -extern __typeof (g_byte_array_remove_index) IA__g_byte_array_remove_index __attribute((visibility("hidden"))); -#define g_byte_array_remove_index IA__g_byte_array_remove_index - -extern __typeof (g_byte_array_remove_index_fast) IA__g_byte_array_remove_index_fast __attribute((visibility("hidden"))); -#define g_byte_array_remove_index_fast IA__g_byte_array_remove_index_fast - -extern __typeof (g_byte_array_remove_range) IA__g_byte_array_remove_range __attribute((visibility("hidden"))); -#define g_byte_array_remove_range IA__g_byte_array_remove_range - -extern __typeof (g_byte_array_set_size) IA__g_byte_array_set_size __attribute((visibility("hidden"))); -#define g_byte_array_set_size IA__g_byte_array_set_size - -extern __typeof (g_byte_array_sized_new) IA__g_byte_array_sized_new __attribute((visibility("hidden"))); -#define g_byte_array_sized_new IA__g_byte_array_sized_new - -extern __typeof (g_byte_array_sort) IA__g_byte_array_sort __attribute((visibility("hidden"))); -#define g_byte_array_sort IA__g_byte_array_sort - -extern __typeof (g_byte_array_sort_with_data) IA__g_byte_array_sort_with_data __attribute((visibility("hidden"))); -#define g_byte_array_sort_with_data IA__g_byte_array_sort_with_data - -extern __typeof (g_ptr_array_add) IA__g_ptr_array_add __attribute((visibility("hidden"))); -#define g_ptr_array_add IA__g_ptr_array_add - -extern __typeof (g_ptr_array_foreach) IA__g_ptr_array_foreach __attribute((visibility("hidden"))); -#define g_ptr_array_foreach IA__g_ptr_array_foreach - -extern __typeof (g_ptr_array_free) IA__g_ptr_array_free __attribute((visibility("hidden"))); -#define g_ptr_array_free IA__g_ptr_array_free - -extern __typeof (g_ptr_array_new) IA__g_ptr_array_new __attribute((visibility("hidden"))); -#define g_ptr_array_new IA__g_ptr_array_new - -extern __typeof (g_ptr_array_remove) IA__g_ptr_array_remove __attribute((visibility("hidden"))); -#define g_ptr_array_remove IA__g_ptr_array_remove - -extern __typeof (g_ptr_array_remove_fast) IA__g_ptr_array_remove_fast __attribute((visibility("hidden"))); -#define g_ptr_array_remove_fast IA__g_ptr_array_remove_fast - -extern __typeof (g_ptr_array_remove_index) IA__g_ptr_array_remove_index __attribute((visibility("hidden"))); -#define g_ptr_array_remove_index IA__g_ptr_array_remove_index - -extern __typeof (g_ptr_array_remove_index_fast) IA__g_ptr_array_remove_index_fast __attribute((visibility("hidden"))); -#define g_ptr_array_remove_index_fast IA__g_ptr_array_remove_index_fast - -extern __typeof (g_ptr_array_remove_range) IA__g_ptr_array_remove_range __attribute((visibility("hidden"))); -#define g_ptr_array_remove_range IA__g_ptr_array_remove_range - -extern __typeof (g_ptr_array_set_size) IA__g_ptr_array_set_size __attribute((visibility("hidden"))); -#define g_ptr_array_set_size IA__g_ptr_array_set_size - -extern __typeof (g_ptr_array_sized_new) IA__g_ptr_array_sized_new __attribute((visibility("hidden"))); -#define g_ptr_array_sized_new IA__g_ptr_array_sized_new - -extern __typeof (g_ptr_array_sort) IA__g_ptr_array_sort __attribute((visibility("hidden"))); -#define g_ptr_array_sort IA__g_ptr_array_sort - -extern __typeof (g_ptr_array_sort_with_data) IA__g_ptr_array_sort_with_data __attribute((visibility("hidden"))); -#define g_ptr_array_sort_with_data IA__g_ptr_array_sort_with_data - -#endif -#endif -#if IN_HEADER(__G_ASYNCQUEUE_H__) -#if IN_FILE(__G_ASYNCQUEUE_C__) -extern __typeof (g_async_queue_length) IA__g_async_queue_length __attribute((visibility("hidden"))); -#define g_async_queue_length IA__g_async_queue_length - -extern __typeof (g_async_queue_length_unlocked) IA__g_async_queue_length_unlocked __attribute((visibility("hidden"))); -#define g_async_queue_length_unlocked IA__g_async_queue_length_unlocked - -extern __typeof (g_async_queue_lock) IA__g_async_queue_lock __attribute((visibility("hidden"))); -#define g_async_queue_lock IA__g_async_queue_lock - -extern __typeof (g_async_queue_new) IA__g_async_queue_new __attribute((visibility("hidden"))); -#define g_async_queue_new IA__g_async_queue_new - -extern __typeof (g_async_queue_new_full) IA__g_async_queue_new_full __attribute((visibility("hidden"))); -#define g_async_queue_new_full IA__g_async_queue_new_full - -extern __typeof (g_async_queue_pop) IA__g_async_queue_pop __attribute((visibility("hidden"))); -#define g_async_queue_pop IA__g_async_queue_pop - -extern __typeof (g_async_queue_pop_unlocked) IA__g_async_queue_pop_unlocked __attribute((visibility("hidden"))); -#define g_async_queue_pop_unlocked IA__g_async_queue_pop_unlocked - -extern __typeof (g_async_queue_push) IA__g_async_queue_push __attribute((visibility("hidden"))); -#define g_async_queue_push IA__g_async_queue_push - -extern __typeof (g_async_queue_push_unlocked) IA__g_async_queue_push_unlocked __attribute((visibility("hidden"))); -#define g_async_queue_push_unlocked IA__g_async_queue_push_unlocked - -extern __typeof (g_async_queue_push_sorted) IA__g_async_queue_push_sorted __attribute((visibility("hidden"))); -#define g_async_queue_push_sorted IA__g_async_queue_push_sorted - -extern __typeof (g_async_queue_push_sorted_unlocked) IA__g_async_queue_push_sorted_unlocked __attribute((visibility("hidden"))); -#define g_async_queue_push_sorted_unlocked IA__g_async_queue_push_sorted_unlocked - -extern __typeof (g_async_queue_ref) IA__g_async_queue_ref __attribute((visibility("hidden"))); -#define g_async_queue_ref IA__g_async_queue_ref - -extern __typeof (g_async_queue_sort) IA__g_async_queue_sort __attribute((visibility("hidden"))); -#define g_async_queue_sort IA__g_async_queue_sort - -extern __typeof (g_async_queue_sort_unlocked) IA__g_async_queue_sort_unlocked __attribute((visibility("hidden"))); -#define g_async_queue_sort_unlocked IA__g_async_queue_sort_unlocked - -extern __typeof (g_async_queue_timed_pop) IA__g_async_queue_timed_pop __attribute((visibility("hidden"))); -#define g_async_queue_timed_pop IA__g_async_queue_timed_pop - -extern __typeof (g_async_queue_timed_pop_unlocked) IA__g_async_queue_timed_pop_unlocked __attribute((visibility("hidden"))); -#define g_async_queue_timed_pop_unlocked IA__g_async_queue_timed_pop_unlocked - -extern __typeof (g_async_queue_try_pop) IA__g_async_queue_try_pop __attribute((visibility("hidden"))); -#define g_async_queue_try_pop IA__g_async_queue_try_pop - -extern __typeof (g_async_queue_try_pop_unlocked) IA__g_async_queue_try_pop_unlocked __attribute((visibility("hidden"))); -#define g_async_queue_try_pop_unlocked IA__g_async_queue_try_pop_unlocked - -extern __typeof (g_async_queue_unlock) IA__g_async_queue_unlock __attribute((visibility("hidden"))); -#define g_async_queue_unlock IA__g_async_queue_unlock - -extern __typeof (g_async_queue_unref) IA__g_async_queue_unref __attribute((visibility("hidden"))); -#define g_async_queue_unref IA__g_async_queue_unref - -#ifndef G_DISABLE_DEPRECATED -extern __typeof (g_async_queue_ref_unlocked) IA__g_async_queue_ref_unlocked __attribute((visibility("hidden"))); -#define g_async_queue_ref_unlocked IA__g_async_queue_ref_unlocked - -extern __typeof (g_async_queue_unref_and_unlock) IA__g_async_queue_unref_and_unlock __attribute((visibility("hidden"))); -#define g_async_queue_unref_and_unlock IA__g_async_queue_unref_and_unlock - -#endif -#endif -#endif -#if IN_HEADER(__G_ATOMIC_H__) -#if IN_FILE(__G_ATOMIC_C__) -extern __typeof (g_atomic_int_add) IA__g_atomic_int_add __attribute((visibility("hidden"))); -#define g_atomic_int_add IA__g_atomic_int_add - -extern __typeof (g_atomic_int_compare_and_exchange) IA__g_atomic_int_compare_and_exchange __attribute((visibility("hidden"))); -#define g_atomic_int_compare_and_exchange IA__g_atomic_int_compare_and_exchange - -extern __typeof (g_atomic_int_exchange_and_add) IA__g_atomic_int_exchange_and_add __attribute((visibility("hidden"))); -#define g_atomic_int_exchange_and_add IA__g_atomic_int_exchange_and_add - -extern __typeof (g_atomic_pointer_compare_and_exchange) IA__g_atomic_pointer_compare_and_exchange __attribute((visibility("hidden"))); -#define g_atomic_pointer_compare_and_exchange IA__g_atomic_pointer_compare_and_exchange - -#endif -#endif -#if IN_HEADER(__G_BACKTRACE_H__) -#if IN_FILE(__G_BACKTRACE_C__) -extern __typeof (g_on_error_query) IA__g_on_error_query __attribute((visibility("hidden"))); -#define g_on_error_query IA__g_on_error_query - -extern __typeof (g_on_error_stack_trace) IA__g_on_error_stack_trace __attribute((visibility("hidden"))); -#define g_on_error_stack_trace IA__g_on_error_stack_trace - -#endif -#endif -#if IN_HEADER(__G_BASE64_H__) -#if IN_FILE(__G_BASE64_C__) -extern __typeof (g_base64_encode_step) IA__g_base64_encode_step __attribute((visibility("hidden"))); -#define g_base64_encode_step IA__g_base64_encode_step - -extern __typeof (g_base64_encode_close) IA__g_base64_encode_close __attribute((visibility("hidden"))); -#define g_base64_encode_close IA__g_base64_encode_close - -extern __typeof (g_base64_encode) IA__g_base64_encode __attribute((visibility("hidden"))) G_GNUC_MALLOC; -#define g_base64_encode IA__g_base64_encode - -extern __typeof (g_base64_decode_step) IA__g_base64_decode_step __attribute((visibility("hidden"))); -#define g_base64_decode_step IA__g_base64_decode_step - -extern __typeof (g_base64_decode) IA__g_base64_decode __attribute((visibility("hidden"))) G_GNUC_MALLOC; -#define g_base64_decode IA__g_base64_decode - -extern __typeof (g_base64_decode_inplace) IA__g_base64_decode_inplace __attribute((visibility("hidden"))); -#define g_base64_decode_inplace IA__g_base64_decode_inplace - -#endif -#endif -#if IN_HEADER(__G_BOOKMARK_FILE_H__) -#if IN_FILE(__G_BOOKMARK_FILE_C__) -extern __typeof (g_bookmark_file_error_quark) IA__g_bookmark_file_error_quark __attribute((visibility("hidden"))); -#define g_bookmark_file_error_quark IA__g_bookmark_file_error_quark - -extern __typeof (g_bookmark_file_new) IA__g_bookmark_file_new __attribute((visibility("hidden"))); -#define g_bookmark_file_new IA__g_bookmark_file_new - -extern __typeof (g_bookmark_file_free) IA__g_bookmark_file_free __attribute((visibility("hidden"))); -#define g_bookmark_file_free IA__g_bookmark_file_free - -extern __typeof (g_bookmark_file_load_from_file) IA__g_bookmark_file_load_from_file __attribute((visibility("hidden"))); -#define g_bookmark_file_load_from_file IA__g_bookmark_file_load_from_file - -extern __typeof (g_bookmark_file_load_from_data) IA__g_bookmark_file_load_from_data __attribute((visibility("hidden"))); -#define g_bookmark_file_load_from_data IA__g_bookmark_file_load_from_data - -extern __typeof (g_bookmark_file_load_from_data_dirs) IA__g_bookmark_file_load_from_data_dirs __attribute((visibility("hidden"))); -#define g_bookmark_file_load_from_data_dirs IA__g_bookmark_file_load_from_data_dirs - -extern __typeof (g_bookmark_file_to_data) IA__g_bookmark_file_to_data __attribute((visibility("hidden"))); -#define g_bookmark_file_to_data IA__g_bookmark_file_to_data - -extern __typeof (g_bookmark_file_to_file) IA__g_bookmark_file_to_file __attribute((visibility("hidden"))); -#define g_bookmark_file_to_file IA__g_bookmark_file_to_file - -extern __typeof (g_bookmark_file_set_title) IA__g_bookmark_file_set_title __attribute((visibility("hidden"))); -#define g_bookmark_file_set_title IA__g_bookmark_file_set_title - -extern __typeof (g_bookmark_file_get_title) IA__g_bookmark_file_get_title __attribute((visibility("hidden"))) G_GNUC_MALLOC; -#define g_bookmark_file_get_title IA__g_bookmark_file_get_title - -extern __typeof (g_bookmark_file_set_description) IA__g_bookmark_file_set_description __attribute((visibility("hidden"))); -#define g_bookmark_file_set_description IA__g_bookmark_file_set_description - -extern __typeof (g_bookmark_file_get_description) IA__g_bookmark_file_get_description __attribute((visibility("hidden"))) G_GNUC_MALLOC; -#define g_bookmark_file_get_description IA__g_bookmark_file_get_description - -extern __typeof (g_bookmark_file_set_mime_type) IA__g_bookmark_file_set_mime_type __attribute((visibility("hidden"))); -#define g_bookmark_file_set_mime_type IA__g_bookmark_file_set_mime_type - -extern __typeof (g_bookmark_file_get_mime_type) IA__g_bookmark_file_get_mime_type __attribute((visibility("hidden"))) G_GNUC_MALLOC; -#define g_bookmark_file_get_mime_type IA__g_bookmark_file_get_mime_type - -extern __typeof (g_bookmark_file_set_groups) IA__g_bookmark_file_set_groups __attribute((visibility("hidden"))); -#define g_bookmark_file_set_groups IA__g_bookmark_file_set_groups - -extern __typeof (g_bookmark_file_add_group) IA__g_bookmark_file_add_group __attribute((visibility("hidden"))); -#define g_bookmark_file_add_group IA__g_bookmark_file_add_group - -extern __typeof (g_bookmark_file_has_group) IA__g_bookmark_file_has_group __attribute((visibility("hidden"))); -#define g_bookmark_file_has_group IA__g_bookmark_file_has_group - -extern __typeof (g_bookmark_file_get_groups) IA__g_bookmark_file_get_groups __attribute((visibility("hidden"))) G_GNUC_MALLOC; -#define g_bookmark_file_get_groups IA__g_bookmark_file_get_groups - -extern __typeof (g_bookmark_file_add_application) IA__g_bookmark_file_add_application __attribute((visibility("hidden"))); -#define g_bookmark_file_add_application IA__g_bookmark_file_add_application - -extern __typeof (g_bookmark_file_has_application) IA__g_bookmark_file_has_application __attribute((visibility("hidden"))); -#define g_bookmark_file_has_application IA__g_bookmark_file_has_application - -extern __typeof (g_bookmark_file_get_applications) IA__g_bookmark_file_get_applications __attribute((visibility("hidden"))) G_GNUC_MALLOC; -#define g_bookmark_file_get_applications IA__g_bookmark_file_get_applications - -extern __typeof (g_bookmark_file_set_app_info) IA__g_bookmark_file_set_app_info __attribute((visibility("hidden"))); -#define g_bookmark_file_set_app_info IA__g_bookmark_file_set_app_info - -extern __typeof (g_bookmark_file_get_app_info) IA__g_bookmark_file_get_app_info __attribute((visibility("hidden"))); -#define g_bookmark_file_get_app_info IA__g_bookmark_file_get_app_info - -extern __typeof (g_bookmark_file_set_is_private) IA__g_bookmark_file_set_is_private __attribute((visibility("hidden"))); -#define g_bookmark_file_set_is_private IA__g_bookmark_file_set_is_private - -extern __typeof (g_bookmark_file_get_is_private) IA__g_bookmark_file_get_is_private __attribute((visibility("hidden"))); -#define g_bookmark_file_get_is_private IA__g_bookmark_file_get_is_private - -extern __typeof (g_bookmark_file_set_icon) IA__g_bookmark_file_set_icon __attribute((visibility("hidden"))); -#define g_bookmark_file_set_icon IA__g_bookmark_file_set_icon - -extern __typeof (g_bookmark_file_get_icon) IA__g_bookmark_file_get_icon __attribute((visibility("hidden"))); -#define g_bookmark_file_get_icon IA__g_bookmark_file_get_icon - -extern __typeof (g_bookmark_file_set_added) IA__g_bookmark_file_set_added __attribute((visibility("hidden"))); -#define g_bookmark_file_set_added IA__g_bookmark_file_set_added - -extern __typeof (g_bookmark_file_get_added) IA__g_bookmark_file_get_added __attribute((visibility("hidden"))); -#define g_bookmark_file_get_added IA__g_bookmark_file_get_added - -extern __typeof (g_bookmark_file_set_modified) IA__g_bookmark_file_set_modified __attribute((visibility("hidden"))); -#define g_bookmark_file_set_modified IA__g_bookmark_file_set_modified - -extern __typeof (g_bookmark_file_get_modified) IA__g_bookmark_file_get_modified __attribute((visibility("hidden"))); -#define g_bookmark_file_get_modified IA__g_bookmark_file_get_modified - -extern __typeof (g_bookmark_file_set_visited) IA__g_bookmark_file_set_visited __attribute((visibility("hidden"))); -#define g_bookmark_file_set_visited IA__g_bookmark_file_set_visited - -extern __typeof (g_bookmark_file_get_visited) IA__g_bookmark_file_get_visited __attribute((visibility("hidden"))); -#define g_bookmark_file_get_visited IA__g_bookmark_file_get_visited - -extern __typeof (g_bookmark_file_has_item) IA__g_bookmark_file_has_item __attribute((visibility("hidden"))); -#define g_bookmark_file_has_item IA__g_bookmark_file_has_item - -extern __typeof (g_bookmark_file_get_size) IA__g_bookmark_file_get_size __attribute((visibility("hidden"))); -#define g_bookmark_file_get_size IA__g_bookmark_file_get_size - -extern __typeof (g_bookmark_file_get_uris) IA__g_bookmark_file_get_uris __attribute((visibility("hidden"))) G_GNUC_MALLOC; -#define g_bookmark_file_get_uris IA__g_bookmark_file_get_uris - -extern __typeof (g_bookmark_file_remove_group) IA__g_bookmark_file_remove_group __attribute((visibility("hidden"))); -#define g_bookmark_file_remove_group IA__g_bookmark_file_remove_group - -extern __typeof (g_bookmark_file_remove_application) IA__g_bookmark_file_remove_application __attribute((visibility("hidden"))); -#define g_bookmark_file_remove_application IA__g_bookmark_file_remove_application - -extern __typeof (g_bookmark_file_remove_item) IA__g_bookmark_file_remove_item __attribute((visibility("hidden"))); -#define g_bookmark_file_remove_item IA__g_bookmark_file_remove_item - -extern __typeof (g_bookmark_file_move_item) IA__g_bookmark_file_move_item __attribute((visibility("hidden"))); -#define g_bookmark_file_move_item IA__g_bookmark_file_move_item - -#endif -#endif -#if IN_HEADER(__G_CACHE_H__) -#if IN_FILE(__G_CACHE_C__) -extern __typeof (g_cache_destroy) IA__g_cache_destroy __attribute((visibility("hidden"))); -#define g_cache_destroy IA__g_cache_destroy - -extern __typeof (g_cache_insert) IA__g_cache_insert __attribute((visibility("hidden"))); -#define g_cache_insert IA__g_cache_insert - -extern __typeof (g_cache_key_foreach) IA__g_cache_key_foreach __attribute((visibility("hidden"))); -#define g_cache_key_foreach IA__g_cache_key_foreach - -extern __typeof (g_cache_new) IA__g_cache_new __attribute((visibility("hidden"))); -#define g_cache_new IA__g_cache_new - -extern __typeof (g_cache_remove) IA__g_cache_remove __attribute((visibility("hidden"))); -#define g_cache_remove IA__g_cache_remove - -#ifndef G_DISABLE_DEPRECATED -extern __typeof (g_cache_value_foreach) IA__g_cache_value_foreach __attribute((visibility("hidden"))); -#define g_cache_value_foreach IA__g_cache_value_foreach - -#endif -#endif -#endif -#if IN_HEADER(__G_CHECKSUM_H__) -#if IN_FILE(__G_CHECKSUM_C__) -extern __typeof (g_checksum_type_get_length) IA__g_checksum_type_get_length __attribute((visibility("hidden"))); -#define g_checksum_type_get_length IA__g_checksum_type_get_length - -extern __typeof (g_checksum_new) IA__g_checksum_new __attribute((visibility("hidden"))); -#define g_checksum_new IA__g_checksum_new - -extern __typeof (g_checksum_copy) IA__g_checksum_copy __attribute((visibility("hidden"))); -#define g_checksum_copy IA__g_checksum_copy - -extern __typeof (g_checksum_free) IA__g_checksum_free __attribute((visibility("hidden"))); -#define g_checksum_free IA__g_checksum_free - -extern __typeof (g_checksum_update) IA__g_checksum_update __attribute((visibility("hidden"))); -#define g_checksum_update IA__g_checksum_update - -extern __typeof (g_checksum_reset) IA__g_checksum_reset __attribute((visibility("hidden"))); -#define g_checksum_reset IA__g_checksum_reset - -extern __typeof (g_checksum_get_string) IA__g_checksum_get_string __attribute((visibility("hidden"))); -#define g_checksum_get_string IA__g_checksum_get_string - -extern __typeof (g_checksum_get_digest) IA__g_checksum_get_digest __attribute((visibility("hidden"))); -#define g_checksum_get_digest IA__g_checksum_get_digest - -extern __typeof (g_compute_checksum_for_data) IA__g_compute_checksum_for_data __attribute((visibility("hidden"))); -#define g_compute_checksum_for_data IA__g_compute_checksum_for_data - -extern __typeof (g_compute_checksum_for_string) IA__g_compute_checksum_for_string __attribute((visibility("hidden"))); -#define g_compute_checksum_for_string IA__g_compute_checksum_for_string - -#endif -#endif -#if IN_HEADER(__G_COMPLETION_H__) -#if IN_FILE(__G_COMPLETION_C__) -extern __typeof (g_completion_add_items) IA__g_completion_add_items __attribute((visibility("hidden"))); -#define g_completion_add_items IA__g_completion_add_items - -extern __typeof (g_completion_clear_items) IA__g_completion_clear_items __attribute((visibility("hidden"))); -#define g_completion_clear_items IA__g_completion_clear_items - -extern __typeof (g_completion_complete) IA__g_completion_complete __attribute((visibility("hidden"))); -#define g_completion_complete IA__g_completion_complete - -extern __typeof (g_completion_complete_utf8) IA__g_completion_complete_utf8 __attribute((visibility("hidden"))); -#define g_completion_complete_utf8 IA__g_completion_complete_utf8 - -extern __typeof (g_completion_free) IA__g_completion_free __attribute((visibility("hidden"))); -#define g_completion_free IA__g_completion_free - -extern __typeof (g_completion_new) IA__g_completion_new __attribute((visibility("hidden"))); -#define g_completion_new IA__g_completion_new - -extern __typeof (g_completion_remove_items) IA__g_completion_remove_items __attribute((visibility("hidden"))); -#define g_completion_remove_items IA__g_completion_remove_items - -extern __typeof (g_completion_set_compare) IA__g_completion_set_compare __attribute((visibility("hidden"))); -#define g_completion_set_compare IA__g_completion_set_compare - -#endif -#endif -#if IN_HEADER(__G_CONVERT_H__) -#if IN_FILE(__G_CONVERT_C__) -extern __typeof (g_get_filename_charsets) IA__g_get_filename_charsets __attribute((visibility("hidden"))); -#define g_get_filename_charsets IA__g_get_filename_charsets - -extern __typeof (g_convert) IA__g_convert __attribute((visibility("hidden"))) G_GNUC_MALLOC; -#define g_convert IA__g_convert - -extern __typeof (g_convert_error_quark) IA__g_convert_error_quark __attribute((visibility("hidden"))); -#define g_convert_error_quark IA__g_convert_error_quark - -extern __typeof (g_convert_with_fallback) IA__g_convert_with_fallback __attribute((visibility("hidden"))) G_GNUC_MALLOC; -#define g_convert_with_fallback IA__g_convert_with_fallback - -extern __typeof (g_convert_with_iconv) IA__g_convert_with_iconv __attribute((visibility("hidden"))) G_GNUC_MALLOC; -#define g_convert_with_iconv IA__g_convert_with_iconv - -extern __typeof (g_iconv) IA__g_iconv __attribute((visibility("hidden"))); -#define g_iconv IA__g_iconv - -extern __typeof (g_iconv_close) IA__g_iconv_close __attribute((visibility("hidden"))); -#define g_iconv_close IA__g_iconv_close - -extern __typeof (g_iconv_open) IA__g_iconv_open __attribute((visibility("hidden"))); -#define g_iconv_open IA__g_iconv_open - -extern __typeof (g_locale_from_utf8) IA__g_locale_from_utf8 __attribute((visibility("hidden"))) G_GNUC_MALLOC; -#define g_locale_from_utf8 IA__g_locale_from_utf8 - -extern __typeof (g_locale_to_utf8) IA__g_locale_to_utf8 __attribute((visibility("hidden"))) G_GNUC_MALLOC; -#define g_locale_to_utf8 IA__g_locale_to_utf8 - -extern __typeof (g_filename_display_name) IA__g_filename_display_name __attribute((visibility("hidden"))) G_GNUC_MALLOC; -#define g_filename_display_name IA__g_filename_display_name - -extern __typeof (g_filename_display_basename) IA__g_filename_display_basename __attribute((visibility("hidden"))) G_GNUC_MALLOC; -#define g_filename_display_basename IA__g_filename_display_basename - -#ifndef _WIN64 -extern __typeof (g_filename_from_uri) IA__g_filename_from_uri __attribute((visibility("hidden"))) G_GNUC_MALLOC; -#define g_filename_from_uri IA__g_filename_from_uri - -extern __typeof (g_filename_from_utf8) IA__g_filename_from_utf8 __attribute((visibility("hidden"))) G_GNUC_MALLOC; -#define g_filename_from_utf8 IA__g_filename_from_utf8 - -extern __typeof (g_filename_to_uri) IA__g_filename_to_uri __attribute((visibility("hidden"))) G_GNUC_MALLOC; -#define g_filename_to_uri IA__g_filename_to_uri - -extern __typeof (g_filename_to_utf8) IA__g_filename_to_utf8 __attribute((visibility("hidden"))) G_GNUC_MALLOC; -#define g_filename_to_utf8 IA__g_filename_to_utf8 - -#endif -#ifdef G_OS_WIN32 -extern __typeof (g_filename_from_uri_utf8) IA__g_filename_from_uri_utf8 __attribute((visibility("hidden"))) G_GNUC_MALLOC; -#define g_filename_from_uri_utf8 IA__g_filename_from_uri_utf8 - -extern __typeof (g_filename_from_utf8_utf8) IA__g_filename_from_utf8_utf8 __attribute((visibility("hidden"))); -#define g_filename_from_utf8_utf8 IA__g_filename_from_utf8_utf8 - -extern __typeof (g_filename_to_uri_utf8) IA__g_filename_to_uri_utf8 __attribute((visibility("hidden"))) G_GNUC_MALLOC; -#define g_filename_to_uri_utf8 IA__g_filename_to_uri_utf8 - -extern __typeof (g_filename_to_utf8_utf8) IA__g_filename_to_utf8_utf8 __attribute((visibility("hidden"))); -#define g_filename_to_utf8_utf8 IA__g_filename_to_utf8_utf8 - -#endif -extern __typeof (g_uri_list_extract_uris) IA__g_uri_list_extract_uris __attribute((visibility("hidden"))) G_GNUC_MALLOC; -#define g_uri_list_extract_uris IA__g_uri_list_extract_uris - -#endif -#endif -#if IN_HEADER(__G_DATASET_H__) -#if IN_FILE(__G_DATASET_C__) -extern __typeof (g_datalist_clear) IA__g_datalist_clear __attribute((visibility("hidden"))); -#define g_datalist_clear IA__g_datalist_clear - -extern __typeof (g_datalist_foreach) IA__g_datalist_foreach __attribute((visibility("hidden"))); -#define g_datalist_foreach IA__g_datalist_foreach - -extern __typeof (g_datalist_get_flags) IA__g_datalist_get_flags __attribute((visibility("hidden"))); -#define g_datalist_get_flags IA__g_datalist_get_flags - -extern __typeof (g_datalist_id_get_data) IA__g_datalist_id_get_data __attribute((visibility("hidden"))); -#define g_datalist_id_get_data IA__g_datalist_id_get_data - -extern __typeof (g_datalist_id_remove_no_notify) IA__g_datalist_id_remove_no_notify __attribute((visibility("hidden"))); -#define g_datalist_id_remove_no_notify IA__g_datalist_id_remove_no_notify - -extern __typeof (g_datalist_id_set_data_full) IA__g_datalist_id_set_data_full __attribute((visibility("hidden"))); -#define g_datalist_id_set_data_full IA__g_datalist_id_set_data_full - -extern __typeof (g_datalist_set_flags) IA__g_datalist_set_flags __attribute((visibility("hidden"))); -#define g_datalist_set_flags IA__g_datalist_set_flags - -extern __typeof (g_datalist_unset_flags) IA__g_datalist_unset_flags __attribute((visibility("hidden"))); -#define g_datalist_unset_flags IA__g_datalist_unset_flags - -extern __typeof (g_datalist_init) IA__g_datalist_init __attribute((visibility("hidden"))); -#define g_datalist_init IA__g_datalist_init - -extern __typeof (g_dataset_destroy) IA__g_dataset_destroy __attribute((visibility("hidden"))); -#define g_dataset_destroy IA__g_dataset_destroy - -extern __typeof (g_dataset_foreach) IA__g_dataset_foreach __attribute((visibility("hidden"))); -#define g_dataset_foreach IA__g_dataset_foreach - -extern __typeof (g_dataset_id_get_data) IA__g_dataset_id_get_data __attribute((visibility("hidden"))); -#define g_dataset_id_get_data IA__g_dataset_id_get_data - -extern __typeof (g_dataset_id_remove_no_notify) IA__g_dataset_id_remove_no_notify __attribute((visibility("hidden"))); -#define g_dataset_id_remove_no_notify IA__g_dataset_id_remove_no_notify - -extern __typeof (g_dataset_id_set_data_full) IA__g_dataset_id_set_data_full __attribute((visibility("hidden"))); -#define g_dataset_id_set_data_full IA__g_dataset_id_set_data_full - -#endif -#endif -#if IN_HEADER(__G_QUARK_H__) -#if IN_FILE(__G_DATASET_C__) -extern __typeof (g_quark_from_static_string) IA__g_quark_from_static_string __attribute((visibility("hidden"))); -#define g_quark_from_static_string IA__g_quark_from_static_string - -extern __typeof (g_quark_from_string) IA__g_quark_from_string __attribute((visibility("hidden"))); -#define g_quark_from_string IA__g_quark_from_string - -extern __typeof (g_quark_to_string) IA__g_quark_to_string __attribute((visibility("hidden"))) G_GNUC_CONST; -#define g_quark_to_string IA__g_quark_to_string - -extern __typeof (g_quark_try_string) IA__g_quark_try_string __attribute((visibility("hidden"))); -#define g_quark_try_string IA__g_quark_try_string - -extern __typeof (g_intern_string) IA__g_intern_string __attribute((visibility("hidden"))); -#define g_intern_string IA__g_intern_string - -extern __typeof (g_intern_static_string) IA__g_intern_static_string __attribute((visibility("hidden"))); -#define g_intern_static_string IA__g_intern_static_string - -#endif -#endif -#if IN_HEADER(__G_DATE_H__) -#if IN_FILE(__G_DATE_C__) -extern __typeof (g_date_add_days) IA__g_date_add_days __attribute((visibility("hidden"))); -#define g_date_add_days IA__g_date_add_days - -extern __typeof (g_date_add_months) IA__g_date_add_months __attribute((visibility("hidden"))); -#define g_date_add_months IA__g_date_add_months - -extern __typeof (g_date_add_years) IA__g_date_add_years __attribute((visibility("hidden"))); -#define g_date_add_years IA__g_date_add_years - -extern __typeof (g_date_clamp) IA__g_date_clamp __attribute((visibility("hidden"))); -#define g_date_clamp IA__g_date_clamp - -extern __typeof (g_date_clear) IA__g_date_clear __attribute((visibility("hidden"))); -#define g_date_clear IA__g_date_clear - -extern __typeof (g_date_compare) IA__g_date_compare __attribute((visibility("hidden"))); -#define g_date_compare IA__g_date_compare - -extern __typeof (g_date_days_between) IA__g_date_days_between __attribute((visibility("hidden"))); -#define g_date_days_between IA__g_date_days_between - -extern __typeof (g_date_free) IA__g_date_free __attribute((visibility("hidden"))); -#define g_date_free IA__g_date_free - -extern __typeof (g_date_get_day) IA__g_date_get_day __attribute((visibility("hidden"))); -#define g_date_get_day IA__g_date_get_day - -extern __typeof (g_date_get_day_of_year) IA__g_date_get_day_of_year __attribute((visibility("hidden"))); -#define g_date_get_day_of_year IA__g_date_get_day_of_year - -extern __typeof (g_date_get_days_in_month) IA__g_date_get_days_in_month __attribute((visibility("hidden"))); -#define g_date_get_days_in_month IA__g_date_get_days_in_month - -extern __typeof (g_date_get_iso8601_week_of_year) IA__g_date_get_iso8601_week_of_year __attribute((visibility("hidden"))); -#define g_date_get_iso8601_week_of_year IA__g_date_get_iso8601_week_of_year - -extern __typeof (g_date_get_julian) IA__g_date_get_julian __attribute((visibility("hidden"))); -#define g_date_get_julian IA__g_date_get_julian - -extern __typeof (g_date_get_monday_week_of_year) IA__g_date_get_monday_week_of_year __attribute((visibility("hidden"))); -#define g_date_get_monday_week_of_year IA__g_date_get_monday_week_of_year - -extern __typeof (g_date_get_monday_weeks_in_year) IA__g_date_get_monday_weeks_in_year __attribute((visibility("hidden"))) G_GNUC_CONST; -#define g_date_get_monday_weeks_in_year IA__g_date_get_monday_weeks_in_year - -extern __typeof (g_date_get_month) IA__g_date_get_month __attribute((visibility("hidden"))); -#define g_date_get_month IA__g_date_get_month - -extern __typeof (g_date_get_sunday_week_of_year) IA__g_date_get_sunday_week_of_year __attribute((visibility("hidden"))); -#define g_date_get_sunday_week_of_year IA__g_date_get_sunday_week_of_year - -extern __typeof (g_date_get_sunday_weeks_in_year) IA__g_date_get_sunday_weeks_in_year __attribute((visibility("hidden"))) G_GNUC_CONST; -#define g_date_get_sunday_weeks_in_year IA__g_date_get_sunday_weeks_in_year - -extern __typeof (g_date_get_weekday) IA__g_date_get_weekday __attribute((visibility("hidden"))); -#define g_date_get_weekday IA__g_date_get_weekday - -extern __typeof (g_date_get_year) IA__g_date_get_year __attribute((visibility("hidden"))); -#define g_date_get_year IA__g_date_get_year - -extern __typeof (g_date_is_first_of_month) IA__g_date_is_first_of_month __attribute((visibility("hidden"))); -#define g_date_is_first_of_month IA__g_date_is_first_of_month - -extern __typeof (g_date_is_last_of_month) IA__g_date_is_last_of_month __attribute((visibility("hidden"))); -#define g_date_is_last_of_month IA__g_date_is_last_of_month - -extern __typeof (g_date_is_leap_year) IA__g_date_is_leap_year __attribute((visibility("hidden"))) G_GNUC_CONST; -#define g_date_is_leap_year IA__g_date_is_leap_year - -extern __typeof (g_date_new) IA__g_date_new __attribute((visibility("hidden"))); -#define g_date_new IA__g_date_new - -extern __typeof (g_date_new_dmy) IA__g_date_new_dmy __attribute((visibility("hidden"))); -#define g_date_new_dmy IA__g_date_new_dmy - -extern __typeof (g_date_new_julian) IA__g_date_new_julian __attribute((visibility("hidden"))); -#define g_date_new_julian IA__g_date_new_julian - -extern __typeof (g_date_order) IA__g_date_order __attribute((visibility("hidden"))); -#define g_date_order IA__g_date_order - -extern __typeof (g_date_set_day) IA__g_date_set_day __attribute((visibility("hidden"))); -#define g_date_set_day IA__g_date_set_day - -extern __typeof (g_date_set_dmy) IA__g_date_set_dmy __attribute((visibility("hidden"))); -#define g_date_set_dmy IA__g_date_set_dmy - -extern __typeof (g_date_set_julian) IA__g_date_set_julian __attribute((visibility("hidden"))); -#define g_date_set_julian IA__g_date_set_julian - -extern __typeof (g_date_set_month) IA__g_date_set_month __attribute((visibility("hidden"))); -#define g_date_set_month IA__g_date_set_month - -extern __typeof (g_date_set_parse) IA__g_date_set_parse __attribute((visibility("hidden"))); -#define g_date_set_parse IA__g_date_set_parse - -#ifndef G_DISABLE_DEPRECATED -extern __typeof (g_date_set_time) IA__g_date_set_time __attribute((visibility("hidden"))); -#define g_date_set_time IA__g_date_set_time - -#endif -extern __typeof (g_date_set_time_t) IA__g_date_set_time_t __attribute((visibility("hidden"))); -#define g_date_set_time_t IA__g_date_set_time_t - -extern __typeof (g_date_set_time_val) IA__g_date_set_time_val __attribute((visibility("hidden"))); -#define g_date_set_time_val IA__g_date_set_time_val - -extern __typeof (g_date_set_year) IA__g_date_set_year __attribute((visibility("hidden"))); -#define g_date_set_year IA__g_date_set_year - -extern __typeof (g_date_strftime) IA__g_date_strftime __attribute((visibility("hidden"))); -#define g_date_strftime IA__g_date_strftime - -extern __typeof (g_date_subtract_days) IA__g_date_subtract_days __attribute((visibility("hidden"))); -#define g_date_subtract_days IA__g_date_subtract_days - -extern __typeof (g_date_subtract_months) IA__g_date_subtract_months __attribute((visibility("hidden"))); -#define g_date_subtract_months IA__g_date_subtract_months - -extern __typeof (g_date_subtract_years) IA__g_date_subtract_years __attribute((visibility("hidden"))); -#define g_date_subtract_years IA__g_date_subtract_years - -extern __typeof (g_date_to_struct_tm) IA__g_date_to_struct_tm __attribute((visibility("hidden"))); -#define g_date_to_struct_tm IA__g_date_to_struct_tm - -extern __typeof (g_date_valid) IA__g_date_valid __attribute((visibility("hidden"))); -#define g_date_valid IA__g_date_valid - -extern __typeof (g_date_valid_day) IA__g_date_valid_day __attribute((visibility("hidden"))) G_GNUC_CONST; -#define g_date_valid_day IA__g_date_valid_day - -extern __typeof (g_date_valid_dmy) IA__g_date_valid_dmy __attribute((visibility("hidden"))); -#define g_date_valid_dmy IA__g_date_valid_dmy - -extern __typeof (g_date_valid_julian) IA__g_date_valid_julian __attribute((visibility("hidden"))) G_GNUC_CONST; -#define g_date_valid_julian IA__g_date_valid_julian - -extern __typeof (g_date_valid_month) IA__g_date_valid_month __attribute((visibility("hidden"))) G_GNUC_CONST; -#define g_date_valid_month IA__g_date_valid_month - -extern __typeof (g_date_valid_weekday) IA__g_date_valid_weekday __attribute((visibility("hidden"))) G_GNUC_CONST; -#define g_date_valid_weekday IA__g_date_valid_weekday - -extern __typeof (g_date_valid_year) IA__g_date_valid_year __attribute((visibility("hidden"))) G_GNUC_CONST; -#define g_date_valid_year IA__g_date_valid_year - -#endif -#endif -#if IN_HEADER(__G_DIR_H__) -#if IN_FILE(__G_DIR_C__) -extern __typeof (g_dir_close) IA__g_dir_close __attribute((visibility("hidden"))); -#define g_dir_close IA__g_dir_close - -#ifndef _WIN64 -extern __typeof (g_dir_open) IA__g_dir_open __attribute((visibility("hidden"))); -#define g_dir_open IA__g_dir_open - -extern __typeof (g_dir_read_name) IA__g_dir_read_name __attribute((visibility("hidden"))); -#define g_dir_read_name IA__g_dir_read_name - -#endif -#ifdef G_OS_WIN32 -extern __typeof (g_dir_open_utf8) IA__g_dir_open_utf8 __attribute((visibility("hidden"))); -#define g_dir_open_utf8 IA__g_dir_open_utf8 - -extern __typeof (g_dir_read_name_utf8) IA__g_dir_read_name_utf8 __attribute((visibility("hidden"))); -#define g_dir_read_name_utf8 IA__g_dir_read_name_utf8 - -#endif -extern __typeof (g_dir_rewind) IA__g_dir_rewind __attribute((visibility("hidden"))); -#define g_dir_rewind IA__g_dir_rewind - -#endif -#endif -#if IN_HEADER(__G_ERROR_H__) -#if IN_FILE(__G_ERROR_C__) -extern __typeof (g_clear_error) IA__g_clear_error __attribute((visibility("hidden"))); -#define g_clear_error IA__g_clear_error - -extern __typeof (g_error_copy) IA__g_error_copy __attribute((visibility("hidden"))); -#define g_error_copy IA__g_error_copy - -extern __typeof (g_error_free) IA__g_error_free __attribute((visibility("hidden"))); -#define g_error_free IA__g_error_free - -extern __typeof (g_error_matches) IA__g_error_matches __attribute((visibility("hidden"))); -#define g_error_matches IA__g_error_matches - -extern __typeof (g_error_new) IA__g_error_new __attribute((visibility("hidden"))) G_GNUC_PRINTF(3,4); -#define g_error_new IA__g_error_new - -extern __typeof (g_error_new_literal) IA__g_error_new_literal __attribute((visibility("hidden"))); -#define g_error_new_literal IA__g_error_new_literal - -extern __typeof (g_propagate_error) IA__g_propagate_error __attribute((visibility("hidden"))); -#define g_propagate_error IA__g_propagate_error - -extern __typeof (g_set_error) IA__g_set_error __attribute((visibility("hidden"))) G_GNUC_PRINTF(4,5); -#define g_set_error IA__g_set_error - -extern __typeof (g_set_error_literal) IA__g_set_error_literal __attribute((visibility("hidden"))); -#define g_set_error_literal IA__g_set_error_literal - -extern __typeof (g_prefix_error) IA__g_prefix_error __attribute((visibility("hidden"))) G_GNUC_PRINTF(2,3); -#define g_prefix_error IA__g_prefix_error - -extern __typeof (g_propagate_prefixed_error) IA__g_propagate_prefixed_error __attribute((visibility("hidden"))) G_GNUC_PRINTF(3,4); -#define g_propagate_prefixed_error IA__g_propagate_prefixed_error - -#endif -#endif -#if IN_HEADER(__G_FILEUTILS_H__) -#if IN_FILE(__G_FILEUTILS_C__) -extern __typeof (g_build_filename) IA__g_build_filename __attribute((visibility("hidden"))) G_GNUC_MALLOC G_GNUC_NULL_TERMINATED; -#define g_build_filename IA__g_build_filename - -extern __typeof (g_build_filenamev) IA__g_build_filenamev __attribute((visibility("hidden"))) G_GNUC_MALLOC; -#define g_build_filenamev IA__g_build_filenamev - -extern __typeof (g_build_path) IA__g_build_path __attribute((visibility("hidden"))) G_GNUC_MALLOC G_GNUC_NULL_TERMINATED; -#define g_build_path IA__g_build_path - -extern __typeof (g_build_pathv) IA__g_build_pathv __attribute((visibility("hidden"))) G_GNUC_MALLOC; -#define g_build_pathv IA__g_build_pathv - -extern __typeof (g_file_error_from_errno) IA__g_file_error_from_errno __attribute((visibility("hidden"))); -#define g_file_error_from_errno IA__g_file_error_from_errno - -extern __typeof (g_file_error_quark) IA__g_file_error_quark __attribute((visibility("hidden"))); -#define g_file_error_quark IA__g_file_error_quark - -#ifndef _WIN64 -extern __typeof (g_file_get_contents) IA__g_file_get_contents __attribute((visibility("hidden"))); -#define g_file_get_contents IA__g_file_get_contents - -#endif -extern __typeof (g_file_set_contents) IA__g_file_set_contents __attribute((visibility("hidden"))); -#define g_file_set_contents IA__g_file_set_contents - -#ifndef _WIN64 -extern __typeof (g_file_open_tmp) IA__g_file_open_tmp __attribute((visibility("hidden"))); -#define g_file_open_tmp IA__g_file_open_tmp - -extern __typeof (g_file_test) IA__g_file_test __attribute((visibility("hidden"))); -#define g_file_test IA__g_file_test - -#endif -extern __typeof (g_file_read_link) IA__g_file_read_link __attribute((visibility("hidden"))); -#define g_file_read_link IA__g_file_read_link - -extern __typeof (g_format_size_for_display) IA__g_format_size_for_display __attribute((visibility("hidden"))); -#define g_format_size_for_display IA__g_format_size_for_display - -#ifndef _WIN64 -extern __typeof (g_mkstemp) IA__g_mkstemp __attribute((visibility("hidden"))); -#define g_mkstemp IA__g_mkstemp - -#endif -extern __typeof (g_mkdir_with_parents) IA__g_mkdir_with_parents __attribute((visibility("hidden"))); -#define g_mkdir_with_parents IA__g_mkdir_with_parents - -#ifdef G_OS_WIN32 -extern __typeof (g_file_get_contents_utf8) IA__g_file_get_contents_utf8 __attribute((visibility("hidden"))); -#define g_file_get_contents_utf8 IA__g_file_get_contents_utf8 - -extern __typeof (g_file_open_tmp_utf8) IA__g_file_open_tmp_utf8 __attribute((visibility("hidden"))); -#define g_file_open_tmp_utf8 IA__g_file_open_tmp_utf8 - -extern __typeof (g_file_test_utf8) IA__g_file_test_utf8 __attribute((visibility("hidden"))); -#define g_file_test_utf8 IA__g_file_test_utf8 - -extern __typeof (g_mkstemp_utf8) IA__g_mkstemp_utf8 __attribute((visibility("hidden"))); -#define g_mkstemp_utf8 IA__g_mkstemp_utf8 - -#endif -#endif -#endif -#if IN_HEADER(__G_HASH_H__) -#if IN_FILE(__G_HASH_C__) -extern __typeof (g_hash_table_destroy) IA__g_hash_table_destroy __attribute((visibility("hidden"))); -#define g_hash_table_destroy IA__g_hash_table_destroy - -extern __typeof (g_hash_table_unref) IA__g_hash_table_unref __attribute((visibility("hidden"))); -#define g_hash_table_unref IA__g_hash_table_unref - -extern __typeof (g_hash_table_ref) IA__g_hash_table_ref __attribute((visibility("hidden"))); -#define g_hash_table_ref IA__g_hash_table_ref - -extern __typeof (g_hash_table_find) IA__g_hash_table_find __attribute((visibility("hidden"))); -#define g_hash_table_find IA__g_hash_table_find - -extern __typeof (g_hash_table_foreach) IA__g_hash_table_foreach __attribute((visibility("hidden"))); -#define g_hash_table_foreach IA__g_hash_table_foreach - -extern __typeof (g_hash_table_foreach_remove) IA__g_hash_table_foreach_remove __attribute((visibility("hidden"))); -#define g_hash_table_foreach_remove IA__g_hash_table_foreach_remove - -extern __typeof (g_hash_table_foreach_steal) IA__g_hash_table_foreach_steal __attribute((visibility("hidden"))); -#define g_hash_table_foreach_steal IA__g_hash_table_foreach_steal - -extern __typeof (g_hash_table_get_keys) IA__g_hash_table_get_keys __attribute((visibility("hidden"))); -#define g_hash_table_get_keys IA__g_hash_table_get_keys - -extern __typeof (g_hash_table_get_values) IA__g_hash_table_get_values __attribute((visibility("hidden"))); -#define g_hash_table_get_values IA__g_hash_table_get_values - -extern __typeof (g_hash_table_insert) IA__g_hash_table_insert __attribute((visibility("hidden"))); -#define g_hash_table_insert IA__g_hash_table_insert - -extern __typeof (g_hash_table_lookup) IA__g_hash_table_lookup __attribute((visibility("hidden"))); -#define g_hash_table_lookup IA__g_hash_table_lookup - -extern __typeof (g_hash_table_lookup_extended) IA__g_hash_table_lookup_extended __attribute((visibility("hidden"))); -#define g_hash_table_lookup_extended IA__g_hash_table_lookup_extended - -extern __typeof (g_hash_table_new) IA__g_hash_table_new __attribute((visibility("hidden"))); -#define g_hash_table_new IA__g_hash_table_new - -extern __typeof (g_hash_table_new_full) IA__g_hash_table_new_full __attribute((visibility("hidden"))); -#define g_hash_table_new_full IA__g_hash_table_new_full - -extern __typeof (g_hash_table_remove) IA__g_hash_table_remove __attribute((visibility("hidden"))); -#define g_hash_table_remove IA__g_hash_table_remove - -extern __typeof (g_hash_table_remove_all) IA__g_hash_table_remove_all __attribute((visibility("hidden"))); -#define g_hash_table_remove_all IA__g_hash_table_remove_all - -extern __typeof (g_hash_table_replace) IA__g_hash_table_replace __attribute((visibility("hidden"))); -#define g_hash_table_replace IA__g_hash_table_replace - -extern __typeof (g_hash_table_size) IA__g_hash_table_size __attribute((visibility("hidden"))); -#define g_hash_table_size IA__g_hash_table_size - -extern __typeof (g_hash_table_steal) IA__g_hash_table_steal __attribute((visibility("hidden"))); -#define g_hash_table_steal IA__g_hash_table_steal - -extern __typeof (g_hash_table_steal_all) IA__g_hash_table_steal_all __attribute((visibility("hidden"))); -#define g_hash_table_steal_all IA__g_hash_table_steal_all - -extern __typeof (g_hash_table_iter_init) IA__g_hash_table_iter_init __attribute((visibility("hidden"))); -#define g_hash_table_iter_init IA__g_hash_table_iter_init - -extern __typeof (g_hash_table_iter_next) IA__g_hash_table_iter_next __attribute((visibility("hidden"))); -#define g_hash_table_iter_next IA__g_hash_table_iter_next - -extern __typeof (g_hash_table_iter_get_hash_table) IA__g_hash_table_iter_get_hash_table __attribute((visibility("hidden"))); -#define g_hash_table_iter_get_hash_table IA__g_hash_table_iter_get_hash_table - -extern __typeof (g_hash_table_iter_remove) IA__g_hash_table_iter_remove __attribute((visibility("hidden"))); -#define g_hash_table_iter_remove IA__g_hash_table_iter_remove - -extern __typeof (g_hash_table_iter_steal) IA__g_hash_table_iter_steal __attribute((visibility("hidden"))); -#define g_hash_table_iter_steal IA__g_hash_table_iter_steal - -#endif -#endif -#if IN_HEADER(__G_HOOK_H__) -#if IN_FILE(__G_HOOK_C__) -extern __typeof (g_hook_alloc) IA__g_hook_alloc __attribute((visibility("hidden"))); -#define g_hook_alloc IA__g_hook_alloc - -extern __typeof (g_hook_compare_ids) IA__g_hook_compare_ids __attribute((visibility("hidden"))); -#define g_hook_compare_ids IA__g_hook_compare_ids - -extern __typeof (g_hook_destroy) IA__g_hook_destroy __attribute((visibility("hidden"))); -#define g_hook_destroy IA__g_hook_destroy - -extern __typeof (g_hook_destroy_link) IA__g_hook_destroy_link __attribute((visibility("hidden"))); -#define g_hook_destroy_link IA__g_hook_destroy_link - -extern __typeof (g_hook_find) IA__g_hook_find __attribute((visibility("hidden"))); -#define g_hook_find IA__g_hook_find - -extern __typeof (g_hook_find_data) IA__g_hook_find_data __attribute((visibility("hidden"))); -#define g_hook_find_data IA__g_hook_find_data - -extern __typeof (g_hook_find_func) IA__g_hook_find_func __attribute((visibility("hidden"))); -#define g_hook_find_func IA__g_hook_find_func - -extern __typeof (g_hook_find_func_data) IA__g_hook_find_func_data __attribute((visibility("hidden"))); -#define g_hook_find_func_data IA__g_hook_find_func_data - -extern __typeof (g_hook_first_valid) IA__g_hook_first_valid __attribute((visibility("hidden"))); -#define g_hook_first_valid IA__g_hook_first_valid - -extern __typeof (g_hook_free) IA__g_hook_free __attribute((visibility("hidden"))); -#define g_hook_free IA__g_hook_free - -extern __typeof (g_hook_get) IA__g_hook_get __attribute((visibility("hidden"))); -#define g_hook_get IA__g_hook_get - -extern __typeof (g_hook_insert_before) IA__g_hook_insert_before __attribute((visibility("hidden"))); -#define g_hook_insert_before IA__g_hook_insert_before - -extern __typeof (g_hook_insert_sorted) IA__g_hook_insert_sorted __attribute((visibility("hidden"))); -#define g_hook_insert_sorted IA__g_hook_insert_sorted - -extern __typeof (g_hook_list_clear) IA__g_hook_list_clear __attribute((visibility("hidden"))); -#define g_hook_list_clear IA__g_hook_list_clear - -extern __typeof (g_hook_list_init) IA__g_hook_list_init __attribute((visibility("hidden"))); -#define g_hook_list_init IA__g_hook_list_init - -extern __typeof (g_hook_list_invoke) IA__g_hook_list_invoke __attribute((visibility("hidden"))); -#define g_hook_list_invoke IA__g_hook_list_invoke - -extern __typeof (g_hook_list_invoke_check) IA__g_hook_list_invoke_check __attribute((visibility("hidden"))); -#define g_hook_list_invoke_check IA__g_hook_list_invoke_check - -extern __typeof (g_hook_list_marshal) IA__g_hook_list_marshal __attribute((visibility("hidden"))); -#define g_hook_list_marshal IA__g_hook_list_marshal - -extern __typeof (g_hook_list_marshal_check) IA__g_hook_list_marshal_check __attribute((visibility("hidden"))); -#define g_hook_list_marshal_check IA__g_hook_list_marshal_check - -extern __typeof (g_hook_next_valid) IA__g_hook_next_valid __attribute((visibility("hidden"))); -#define g_hook_next_valid IA__g_hook_next_valid - -extern __typeof (g_hook_prepend) IA__g_hook_prepend __attribute((visibility("hidden"))); -#define g_hook_prepend IA__g_hook_prepend - -extern __typeof (g_hook_ref) IA__g_hook_ref __attribute((visibility("hidden"))); -#define g_hook_ref IA__g_hook_ref - -extern __typeof (g_hook_unref) IA__g_hook_unref __attribute((visibility("hidden"))); -#define g_hook_unref IA__g_hook_unref - -#endif -#endif -#if IN_HEADER(__G_IOCHANNEL_H__) -#if IN_FILE(__G_IOCHANNEL_C__) -extern __typeof (g_io_add_watch) IA__g_io_add_watch __attribute((visibility("hidden"))); -#define g_io_add_watch IA__g_io_add_watch - -extern __typeof (g_io_add_watch_full) IA__g_io_add_watch_full __attribute((visibility("hidden"))); -#define g_io_add_watch_full IA__g_io_add_watch_full - -extern __typeof (g_io_create_watch) IA__g_io_create_watch __attribute((visibility("hidden"))); -#define g_io_create_watch IA__g_io_create_watch - -extern __typeof (g_io_channel_error_from_errno) IA__g_io_channel_error_from_errno __attribute((visibility("hidden"))); -#define g_io_channel_error_from_errno IA__g_io_channel_error_from_errno - -extern __typeof (g_io_channel_error_quark) IA__g_io_channel_error_quark __attribute((visibility("hidden"))); -#define g_io_channel_error_quark IA__g_io_channel_error_quark - -extern __typeof (g_io_channel_flush) IA__g_io_channel_flush __attribute((visibility("hidden"))); -#define g_io_channel_flush IA__g_io_channel_flush - -extern __typeof (g_io_channel_get_buffer_condition) IA__g_io_channel_get_buffer_condition __attribute((visibility("hidden"))); -#define g_io_channel_get_buffer_condition IA__g_io_channel_get_buffer_condition - -extern __typeof (g_io_channel_get_buffered) IA__g_io_channel_get_buffered __attribute((visibility("hidden"))); -#define g_io_channel_get_buffered IA__g_io_channel_get_buffered - -extern __typeof (g_io_channel_get_buffer_size) IA__g_io_channel_get_buffer_size __attribute((visibility("hidden"))); -#define g_io_channel_get_buffer_size IA__g_io_channel_get_buffer_size - -extern __typeof (g_io_channel_get_close_on_unref) IA__g_io_channel_get_close_on_unref __attribute((visibility("hidden"))); -#define g_io_channel_get_close_on_unref IA__g_io_channel_get_close_on_unref - -extern __typeof (g_io_channel_get_encoding) IA__g_io_channel_get_encoding __attribute((visibility("hidden"))); -#define g_io_channel_get_encoding IA__g_io_channel_get_encoding - -extern __typeof (g_io_channel_get_flags) IA__g_io_channel_get_flags __attribute((visibility("hidden"))); -#define g_io_channel_get_flags IA__g_io_channel_get_flags - -extern __typeof (g_io_channel_get_line_term) IA__g_io_channel_get_line_term __attribute((visibility("hidden"))); -#define g_io_channel_get_line_term IA__g_io_channel_get_line_term - -extern __typeof (g_io_channel_init) IA__g_io_channel_init __attribute((visibility("hidden"))); -#define g_io_channel_init IA__g_io_channel_init - -extern __typeof (g_io_channel_read_chars) IA__g_io_channel_read_chars __attribute((visibility("hidden"))); -#define g_io_channel_read_chars IA__g_io_channel_read_chars - -extern __typeof (g_io_channel_read_line) IA__g_io_channel_read_line __attribute((visibility("hidden"))); -#define g_io_channel_read_line IA__g_io_channel_read_line - -extern __typeof (g_io_channel_read_line_string) IA__g_io_channel_read_line_string __attribute((visibility("hidden"))); -#define g_io_channel_read_line_string IA__g_io_channel_read_line_string - -extern __typeof (g_io_channel_read_to_end) IA__g_io_channel_read_to_end __attribute((visibility("hidden"))); -#define g_io_channel_read_to_end IA__g_io_channel_read_to_end - -extern __typeof (g_io_channel_read_unichar) IA__g_io_channel_read_unichar __attribute((visibility("hidden"))); -#define g_io_channel_read_unichar IA__g_io_channel_read_unichar - -extern __typeof (g_io_channel_ref) IA__g_io_channel_ref __attribute((visibility("hidden"))); -#define g_io_channel_ref IA__g_io_channel_ref - -extern __typeof (g_io_channel_seek_position) IA__g_io_channel_seek_position __attribute((visibility("hidden"))); -#define g_io_channel_seek_position IA__g_io_channel_seek_position - -extern __typeof (g_io_channel_set_buffered) IA__g_io_channel_set_buffered __attribute((visibility("hidden"))); -#define g_io_channel_set_buffered IA__g_io_channel_set_buffered - -extern __typeof (g_io_channel_set_buffer_size) IA__g_io_channel_set_buffer_size __attribute((visibility("hidden"))); -#define g_io_channel_set_buffer_size IA__g_io_channel_set_buffer_size - -extern __typeof (g_io_channel_set_close_on_unref) IA__g_io_channel_set_close_on_unref __attribute((visibility("hidden"))); -#define g_io_channel_set_close_on_unref IA__g_io_channel_set_close_on_unref - -extern __typeof (g_io_channel_set_encoding) IA__g_io_channel_set_encoding __attribute((visibility("hidden"))); -#define g_io_channel_set_encoding IA__g_io_channel_set_encoding - -extern __typeof (g_io_channel_set_flags) IA__g_io_channel_set_flags __attribute((visibility("hidden"))); -#define g_io_channel_set_flags IA__g_io_channel_set_flags - -extern __typeof (g_io_channel_set_line_term) IA__g_io_channel_set_line_term __attribute((visibility("hidden"))); -#define g_io_channel_set_line_term IA__g_io_channel_set_line_term - -extern __typeof (g_io_channel_shutdown) IA__g_io_channel_shutdown __attribute((visibility("hidden"))); -#define g_io_channel_shutdown IA__g_io_channel_shutdown - -extern __typeof (g_io_channel_unref) IA__g_io_channel_unref __attribute((visibility("hidden"))); -#define g_io_channel_unref IA__g_io_channel_unref - -#ifndef G_DISABLE_DEPRECATED -extern __typeof (g_io_channel_close) IA__g_io_channel_close __attribute((visibility("hidden"))); -#define g_io_channel_close IA__g_io_channel_close - -extern __typeof (g_io_channel_read) IA__g_io_channel_read __attribute((visibility("hidden"))); -#define g_io_channel_read IA__g_io_channel_read - -extern __typeof (g_io_channel_seek) IA__g_io_channel_seek __attribute((visibility("hidden"))); -#define g_io_channel_seek IA__g_io_channel_seek - -extern __typeof (g_io_channel_write) IA__g_io_channel_write __attribute((visibility("hidden"))); -#define g_io_channel_write IA__g_io_channel_write - -#endif -extern __typeof (g_io_channel_write_chars) IA__g_io_channel_write_chars __attribute((visibility("hidden"))); -#define g_io_channel_write_chars IA__g_io_channel_write_chars - -extern __typeof (g_io_channel_write_unichar) IA__g_io_channel_write_unichar __attribute((visibility("hidden"))); -#define g_io_channel_write_unichar IA__g_io_channel_write_unichar - -#endif -#endif -#if IN_HEADER(__G_IOCHANNEL_H__) -#if IN_FILE(__G_IO_UNIX_C__) -#ifdef G_OS_UNIX -extern __typeof (g_io_channel_unix_get_fd) IA__g_io_channel_unix_get_fd __attribute((visibility("hidden"))); -#define g_io_channel_unix_get_fd IA__g_io_channel_unix_get_fd - -extern __typeof (g_io_channel_unix_new) IA__g_io_channel_unix_new __attribute((visibility("hidden"))); -#define g_io_channel_unix_new IA__g_io_channel_unix_new - -extern __typeof (g_io_channel_new_file) IA__g_io_channel_new_file __attribute((visibility("hidden"))); -#define g_io_channel_new_file IA__g_io_channel_new_file - -#endif -#endif -#endif -#if IN_HEADER(__G_IOCHANNEL_H__) -#if IN_FILE(__G_IO_WIN32_C__) -#ifdef G_OS_WIN32 -extern __typeof (g_io_channel_unix_get_fd) IA__g_io_channel_unix_get_fd __attribute((visibility("hidden"))); -#define g_io_channel_unix_get_fd IA__g_io_channel_unix_get_fd - -extern __typeof (g_io_channel_unix_new) IA__g_io_channel_unix_new __attribute((visibility("hidden"))); -#define g_io_channel_unix_new IA__g_io_channel_unix_new - -#ifndef _WIN64 -extern __typeof (g_io_channel_new_file) IA__g_io_channel_new_file __attribute((visibility("hidden"))); -#define g_io_channel_new_file IA__g_io_channel_new_file - -#endif -extern __typeof (g_io_channel_new_file_utf8) IA__g_io_channel_new_file_utf8 __attribute((visibility("hidden"))); -#define g_io_channel_new_file_utf8 IA__g_io_channel_new_file_utf8 - -extern __typeof (g_io_channel_win32_get_fd) IA__g_io_channel_win32_get_fd __attribute((visibility("hidden"))); -#define g_io_channel_win32_get_fd IA__g_io_channel_win32_get_fd - -extern __typeof (g_io_channel_win32_make_pollfd) IA__g_io_channel_win32_make_pollfd __attribute((visibility("hidden"))); -#define g_io_channel_win32_make_pollfd IA__g_io_channel_win32_make_pollfd - -extern __typeof (g_io_channel_win32_new_fd) IA__g_io_channel_win32_new_fd __attribute((visibility("hidden"))); -#define g_io_channel_win32_new_fd IA__g_io_channel_win32_new_fd - -extern __typeof (g_io_channel_win32_new_messages) IA__g_io_channel_win32_new_messages __attribute((visibility("hidden"))); -#define g_io_channel_win32_new_messages IA__g_io_channel_win32_new_messages - -extern __typeof (g_io_channel_win32_new_socket) IA__g_io_channel_win32_new_socket __attribute((visibility("hidden"))); -#define g_io_channel_win32_new_socket IA__g_io_channel_win32_new_socket - -#ifndef _WIN64 -extern __typeof (g_io_channel_win32_new_stream_socket) IA__g_io_channel_win32_new_stream_socket __attribute((visibility("hidden"))); -#define g_io_channel_win32_new_stream_socket IA__g_io_channel_win32_new_stream_socket - -#endif -extern __typeof (g_io_channel_win32_poll) IA__g_io_channel_win32_poll __attribute((visibility("hidden"))); -#define g_io_channel_win32_poll IA__g_io_channel_win32_poll - -extern __typeof (g_io_channel_win32_set_debug) IA__g_io_channel_win32_set_debug __attribute((visibility("hidden"))); -#define g_io_channel_win32_set_debug IA__g_io_channel_win32_set_debug - -#endif -#endif -#endif -#if IN_HEADER(__G_KEY_FILE_H__) -#if IN_FILE(__G_KEY_FILE_C__) -extern __typeof (g_key_file_error_quark) IA__g_key_file_error_quark __attribute((visibility("hidden"))); -#define g_key_file_error_quark IA__g_key_file_error_quark - -extern __typeof (g_key_file_free) IA__g_key_file_free __attribute((visibility("hidden"))); -#define g_key_file_free IA__g_key_file_free - -extern __typeof (g_key_file_get_boolean) IA__g_key_file_get_boolean __attribute((visibility("hidden"))); -#define g_key_file_get_boolean IA__g_key_file_get_boolean - -extern __typeof (g_key_file_get_boolean_list) IA__g_key_file_get_boolean_list __attribute((visibility("hidden"))) G_GNUC_MALLOC; -#define g_key_file_get_boolean_list IA__g_key_file_get_boolean_list - -extern __typeof (g_key_file_get_comment) IA__g_key_file_get_comment __attribute((visibility("hidden"))) G_GNUC_MALLOC; -#define g_key_file_get_comment IA__g_key_file_get_comment - -extern __typeof (g_key_file_get_groups) IA__g_key_file_get_groups __attribute((visibility("hidden"))) G_GNUC_MALLOC; -#define g_key_file_get_groups IA__g_key_file_get_groups - -extern __typeof (g_key_file_get_double) IA__g_key_file_get_double __attribute((visibility("hidden"))); -#define g_key_file_get_double IA__g_key_file_get_double - -extern __typeof (g_key_file_get_double_list) IA__g_key_file_get_double_list __attribute((visibility("hidden"))) G_GNUC_MALLOC; -#define g_key_file_get_double_list IA__g_key_file_get_double_list - -extern __typeof (g_key_file_get_integer) IA__g_key_file_get_integer __attribute((visibility("hidden"))); -#define g_key_file_get_integer IA__g_key_file_get_integer - -extern __typeof (g_key_file_get_integer_list) IA__g_key_file_get_integer_list __attribute((visibility("hidden"))) G_GNUC_MALLOC; -#define g_key_file_get_integer_list IA__g_key_file_get_integer_list - -extern __typeof (g_key_file_get_keys) IA__g_key_file_get_keys __attribute((visibility("hidden"))) G_GNUC_MALLOC; -#define g_key_file_get_keys IA__g_key_file_get_keys - -extern __typeof (g_key_file_get_locale_string) IA__g_key_file_get_locale_string __attribute((visibility("hidden"))) G_GNUC_MALLOC; -#define g_key_file_get_locale_string IA__g_key_file_get_locale_string - -extern __typeof (g_key_file_get_locale_string_list) IA__g_key_file_get_locale_string_list __attribute((visibility("hidden"))) G_GNUC_MALLOC; -#define g_key_file_get_locale_string_list IA__g_key_file_get_locale_string_list - -extern __typeof (g_key_file_get_start_group) IA__g_key_file_get_start_group __attribute((visibility("hidden"))) G_GNUC_MALLOC; -#define g_key_file_get_start_group IA__g_key_file_get_start_group - -extern __typeof (g_key_file_get_string) IA__g_key_file_get_string __attribute((visibility("hidden"))) G_GNUC_MALLOC; -#define g_key_file_get_string IA__g_key_file_get_string - -extern __typeof (g_key_file_get_string_list) IA__g_key_file_get_string_list __attribute((visibility("hidden"))) G_GNUC_MALLOC; -#define g_key_file_get_string_list IA__g_key_file_get_string_list - -extern __typeof (g_key_file_get_value) IA__g_key_file_get_value __attribute((visibility("hidden"))) G_GNUC_MALLOC; -#define g_key_file_get_value IA__g_key_file_get_value - -extern __typeof (g_key_file_has_group) IA__g_key_file_has_group __attribute((visibility("hidden"))); -#define g_key_file_has_group IA__g_key_file_has_group - -extern __typeof (g_key_file_has_key) IA__g_key_file_has_key __attribute((visibility("hidden"))); -#define g_key_file_has_key IA__g_key_file_has_key - -extern __typeof (g_key_file_load_from_dirs) IA__g_key_file_load_from_dirs __attribute((visibility("hidden"))); -#define g_key_file_load_from_dirs IA__g_key_file_load_from_dirs - -extern __typeof (g_key_file_load_from_data) IA__g_key_file_load_from_data __attribute((visibility("hidden"))); -#define g_key_file_load_from_data IA__g_key_file_load_from_data - -extern __typeof (g_key_file_load_from_data_dirs) IA__g_key_file_load_from_data_dirs __attribute((visibility("hidden"))); -#define g_key_file_load_from_data_dirs IA__g_key_file_load_from_data_dirs - -extern __typeof (g_key_file_load_from_file) IA__g_key_file_load_from_file __attribute((visibility("hidden"))); -#define g_key_file_load_from_file IA__g_key_file_load_from_file - -extern __typeof (g_key_file_new) IA__g_key_file_new __attribute((visibility("hidden"))); -#define g_key_file_new IA__g_key_file_new - -extern __typeof (g_key_file_remove_comment) IA__g_key_file_remove_comment __attribute((visibility("hidden"))); -#define g_key_file_remove_comment IA__g_key_file_remove_comment - -extern __typeof (g_key_file_remove_group) IA__g_key_file_remove_group __attribute((visibility("hidden"))); -#define g_key_file_remove_group IA__g_key_file_remove_group - -extern __typeof (g_key_file_remove_key) IA__g_key_file_remove_key __attribute((visibility("hidden"))); -#define g_key_file_remove_key IA__g_key_file_remove_key - -extern __typeof (g_key_file_set_boolean) IA__g_key_file_set_boolean __attribute((visibility("hidden"))); -#define g_key_file_set_boolean IA__g_key_file_set_boolean - -extern __typeof (g_key_file_set_boolean_list) IA__g_key_file_set_boolean_list __attribute((visibility("hidden"))); -#define g_key_file_set_boolean_list IA__g_key_file_set_boolean_list - -extern __typeof (g_key_file_set_comment) IA__g_key_file_set_comment __attribute((visibility("hidden"))); -#define g_key_file_set_comment IA__g_key_file_set_comment - -extern __typeof (g_key_file_set_double) IA__g_key_file_set_double __attribute((visibility("hidden"))); -#define g_key_file_set_double IA__g_key_file_set_double - -extern __typeof (g_key_file_set_double_list) IA__g_key_file_set_double_list __attribute((visibility("hidden"))); -#define g_key_file_set_double_list IA__g_key_file_set_double_list - -extern __typeof (g_key_file_set_integer) IA__g_key_file_set_integer __attribute((visibility("hidden"))); -#define g_key_file_set_integer IA__g_key_file_set_integer - -extern __typeof (g_key_file_set_integer_list) IA__g_key_file_set_integer_list __attribute((visibility("hidden"))); -#define g_key_file_set_integer_list IA__g_key_file_set_integer_list - -extern __typeof (g_key_file_set_list_separator) IA__g_key_file_set_list_separator __attribute((visibility("hidden"))); -#define g_key_file_set_list_separator IA__g_key_file_set_list_separator - -extern __typeof (g_key_file_set_locale_string) IA__g_key_file_set_locale_string __attribute((visibility("hidden"))); -#define g_key_file_set_locale_string IA__g_key_file_set_locale_string - -extern __typeof (g_key_file_set_locale_string_list) IA__g_key_file_set_locale_string_list __attribute((visibility("hidden"))); -#define g_key_file_set_locale_string_list IA__g_key_file_set_locale_string_list - -extern __typeof (g_key_file_set_string) IA__g_key_file_set_string __attribute((visibility("hidden"))); -#define g_key_file_set_string IA__g_key_file_set_string - -extern __typeof (g_key_file_set_string_list) IA__g_key_file_set_string_list __attribute((visibility("hidden"))); -#define g_key_file_set_string_list IA__g_key_file_set_string_list - -extern __typeof (g_key_file_set_value) IA__g_key_file_set_value __attribute((visibility("hidden"))); -#define g_key_file_set_value IA__g_key_file_set_value - -extern __typeof (g_key_file_to_data) IA__g_key_file_to_data __attribute((visibility("hidden"))) G_GNUC_MALLOC; -#define g_key_file_to_data IA__g_key_file_to_data - -#endif -#endif -#if IN_HEADER(__G_LIST_H__) -#if IN_FILE(__G_LIST_C__) -extern __typeof (g_list_alloc) IA__g_list_alloc __attribute((visibility("hidden"))); -#define g_list_alloc IA__g_list_alloc - -extern __typeof (g_list_append) IA__g_list_append __attribute((visibility("hidden"))); -#define g_list_append IA__g_list_append - -extern __typeof (g_list_concat) IA__g_list_concat __attribute((visibility("hidden"))); -#define g_list_concat IA__g_list_concat - -extern __typeof (g_list_copy) IA__g_list_copy __attribute((visibility("hidden"))); -#define g_list_copy IA__g_list_copy - -extern __typeof (g_list_delete_link) IA__g_list_delete_link __attribute((visibility("hidden"))); -#define g_list_delete_link IA__g_list_delete_link - -extern __typeof (g_list_find) IA__g_list_find __attribute((visibility("hidden"))); -#define g_list_find IA__g_list_find - -extern __typeof (g_list_find_custom) IA__g_list_find_custom __attribute((visibility("hidden"))); -#define g_list_find_custom IA__g_list_find_custom - -extern __typeof (g_list_first) IA__g_list_first __attribute((visibility("hidden"))); -#define g_list_first IA__g_list_first - -extern __typeof (g_list_foreach) IA__g_list_foreach __attribute((visibility("hidden"))); -#define g_list_foreach IA__g_list_foreach - -extern __typeof (g_list_free) IA__g_list_free __attribute((visibility("hidden"))); -#define g_list_free IA__g_list_free - -extern __typeof (g_list_free_1) IA__g_list_free_1 __attribute((visibility("hidden"))); -#define g_list_free_1 IA__g_list_free_1 - -extern __typeof (g_list_index) IA__g_list_index __attribute((visibility("hidden"))); -#define g_list_index IA__g_list_index - -extern __typeof (g_list_insert) IA__g_list_insert __attribute((visibility("hidden"))); -#define g_list_insert IA__g_list_insert - -extern __typeof (g_list_insert_before) IA__g_list_insert_before __attribute((visibility("hidden"))); -#define g_list_insert_before IA__g_list_insert_before - -extern __typeof (g_list_insert_sorted) IA__g_list_insert_sorted __attribute((visibility("hidden"))); -#define g_list_insert_sorted IA__g_list_insert_sorted - -extern __typeof (g_list_insert_sorted_with_data) IA__g_list_insert_sorted_with_data __attribute((visibility("hidden"))); -#define g_list_insert_sorted_with_data IA__g_list_insert_sorted_with_data - -extern __typeof (g_list_last) IA__g_list_last __attribute((visibility("hidden"))); -#define g_list_last IA__g_list_last - -extern __typeof (g_list_length) IA__g_list_length __attribute((visibility("hidden"))); -#define g_list_length IA__g_list_length - -extern __typeof (g_list_nth) IA__g_list_nth __attribute((visibility("hidden"))); -#define g_list_nth IA__g_list_nth - -extern __typeof (g_list_nth_data) IA__g_list_nth_data __attribute((visibility("hidden"))); -#define g_list_nth_data IA__g_list_nth_data - -extern __typeof (g_list_nth_prev) IA__g_list_nth_prev __attribute((visibility("hidden"))); -#define g_list_nth_prev IA__g_list_nth_prev - -#ifndef G_DISABLE_DEPRECATED -extern __typeof (g_list_pop_allocator) IA__g_list_pop_allocator __attribute((visibility("hidden"))); -#define g_list_pop_allocator IA__g_list_pop_allocator - -#endif -extern __typeof (g_list_position) IA__g_list_position __attribute((visibility("hidden"))); -#define g_list_position IA__g_list_position - -extern __typeof (g_list_prepend) IA__g_list_prepend __attribute((visibility("hidden"))); -#define g_list_prepend IA__g_list_prepend - -#ifndef G_DISABLE_DEPRECATED -extern __typeof (g_list_push_allocator) IA__g_list_push_allocator __attribute((visibility("hidden"))); -#define g_list_push_allocator IA__g_list_push_allocator - -#endif -extern __typeof (g_list_remove) IA__g_list_remove __attribute((visibility("hidden"))); -#define g_list_remove IA__g_list_remove - -extern __typeof (g_list_remove_all) IA__g_list_remove_all __attribute((visibility("hidden"))); -#define g_list_remove_all IA__g_list_remove_all - -extern __typeof (g_list_remove_link) IA__g_list_remove_link __attribute((visibility("hidden"))); -#define g_list_remove_link IA__g_list_remove_link - -extern __typeof (g_list_reverse) IA__g_list_reverse __attribute((visibility("hidden"))); -#define g_list_reverse IA__g_list_reverse - -extern __typeof (g_list_sort) IA__g_list_sort __attribute((visibility("hidden"))); -#define g_list_sort IA__g_list_sort - -extern __typeof (g_list_sort_with_data) IA__g_list_sort_with_data __attribute((visibility("hidden"))); -#define g_list_sort_with_data IA__g_list_sort_with_data - -#endif -#endif -#if IN_HEADER(__G_MAIN_H__) -#if IN_FILE(__G_MAIN_C__) -extern __typeof (g_child_watch_add) IA__g_child_watch_add __attribute((visibility("hidden"))); -#define g_child_watch_add IA__g_child_watch_add - -extern __typeof (g_child_watch_add_full) IA__g_child_watch_add_full __attribute((visibility("hidden"))); -#define g_child_watch_add_full IA__g_child_watch_add_full - -extern __typeof (g_child_watch_source_new) IA__g_child_watch_source_new __attribute((visibility("hidden"))); -#define g_child_watch_source_new IA__g_child_watch_source_new - -extern __typeof (g_get_current_time) IA__g_get_current_time __attribute((visibility("hidden"))); -#define g_get_current_time IA__g_get_current_time - -extern __typeof (g_main_context_acquire) IA__g_main_context_acquire __attribute((visibility("hidden"))); -#define g_main_context_acquire IA__g_main_context_acquire - -extern __typeof (g_main_context_add_poll) IA__g_main_context_add_poll __attribute((visibility("hidden"))); -#define g_main_context_add_poll IA__g_main_context_add_poll - -extern __typeof (g_main_context_check) IA__g_main_context_check __attribute((visibility("hidden"))); -#define g_main_context_check IA__g_main_context_check - -extern __typeof (g_main_context_default) IA__g_main_context_default __attribute((visibility("hidden"))); -#define g_main_context_default IA__g_main_context_default - -extern __typeof (g_main_context_dispatch) IA__g_main_context_dispatch __attribute((visibility("hidden"))); -#define g_main_context_dispatch IA__g_main_context_dispatch - -extern __typeof (g_main_context_find_source_by_funcs_user_data) IA__g_main_context_find_source_by_funcs_user_data __attribute((visibility("hidden"))); -#define g_main_context_find_source_by_funcs_user_data IA__g_main_context_find_source_by_funcs_user_data - -extern __typeof (g_main_context_find_source_by_id) IA__g_main_context_find_source_by_id __attribute((visibility("hidden"))); -#define g_main_context_find_source_by_id IA__g_main_context_find_source_by_id - -extern __typeof (g_main_context_find_source_by_user_data) IA__g_main_context_find_source_by_user_data __attribute((visibility("hidden"))); -#define g_main_context_find_source_by_user_data IA__g_main_context_find_source_by_user_data - -extern __typeof (g_main_context_get_poll_func) IA__g_main_context_get_poll_func __attribute((visibility("hidden"))); -#define g_main_context_get_poll_func IA__g_main_context_get_poll_func - -extern __typeof (g_main_context_is_owner) IA__g_main_context_is_owner __attribute((visibility("hidden"))); -#define g_main_context_is_owner IA__g_main_context_is_owner - -extern __typeof (g_main_context_iteration) IA__g_main_context_iteration __attribute((visibility("hidden"))); -#define g_main_context_iteration IA__g_main_context_iteration - -extern __typeof (g_main_context_new) IA__g_main_context_new __attribute((visibility("hidden"))); -#define g_main_context_new IA__g_main_context_new - -extern __typeof (g_main_context_pending) IA__g_main_context_pending __attribute((visibility("hidden"))); -#define g_main_context_pending IA__g_main_context_pending - -extern __typeof (g_main_context_prepare) IA__g_main_context_prepare __attribute((visibility("hidden"))); -#define g_main_context_prepare IA__g_main_context_prepare - -extern __typeof (g_main_context_query) IA__g_main_context_query __attribute((visibility("hidden"))); -#define g_main_context_query IA__g_main_context_query - -extern __typeof (g_main_context_ref) IA__g_main_context_ref __attribute((visibility("hidden"))); -#define g_main_context_ref IA__g_main_context_ref - -extern __typeof (g_main_context_release) IA__g_main_context_release __attribute((visibility("hidden"))); -#define g_main_context_release IA__g_main_context_release - -extern __typeof (g_main_context_remove_poll) IA__g_main_context_remove_poll __attribute((visibility("hidden"))); -#define g_main_context_remove_poll IA__g_main_context_remove_poll - -extern __typeof (g_main_context_set_poll_func) IA__g_main_context_set_poll_func __attribute((visibility("hidden"))); -#define g_main_context_set_poll_func IA__g_main_context_set_poll_func - -extern __typeof (g_main_context_unref) IA__g_main_context_unref __attribute((visibility("hidden"))); -#define g_main_context_unref IA__g_main_context_unref - -extern __typeof (g_main_context_wait) IA__g_main_context_wait __attribute((visibility("hidden"))); -#define g_main_context_wait IA__g_main_context_wait - -extern __typeof (g_main_context_wakeup) IA__g_main_context_wakeup __attribute((visibility("hidden"))); -#define g_main_context_wakeup IA__g_main_context_wakeup - -extern __typeof (g_main_depth) IA__g_main_depth __attribute((visibility("hidden"))); -#define g_main_depth IA__g_main_depth - -extern __typeof (g_main_current_source) IA__g_main_current_source __attribute((visibility("hidden"))); -#define g_main_current_source IA__g_main_current_source - -extern __typeof (g_main_loop_get_context) IA__g_main_loop_get_context __attribute((visibility("hidden"))); -#define g_main_loop_get_context IA__g_main_loop_get_context - -extern __typeof (g_main_loop_is_running) IA__g_main_loop_is_running __attribute((visibility("hidden"))); -#define g_main_loop_is_running IA__g_main_loop_is_running - -extern __typeof (g_main_loop_new) IA__g_main_loop_new __attribute((visibility("hidden"))); -#define g_main_loop_new IA__g_main_loop_new - -extern __typeof (g_main_loop_quit) IA__g_main_loop_quit __attribute((visibility("hidden"))); -#define g_main_loop_quit IA__g_main_loop_quit - -extern __typeof (g_main_loop_ref) IA__g_main_loop_ref __attribute((visibility("hidden"))); -#define g_main_loop_ref IA__g_main_loop_ref - -extern __typeof (g_main_loop_run) IA__g_main_loop_run __attribute((visibility("hidden"))); -#define g_main_loop_run IA__g_main_loop_run - -extern __typeof (g_main_loop_unref) IA__g_main_loop_unref __attribute((visibility("hidden"))); -#define g_main_loop_unref IA__g_main_loop_unref - -extern __typeof (g_source_add_poll) IA__g_source_add_poll __attribute((visibility("hidden"))); -#define g_source_add_poll IA__g_source_add_poll - -extern __typeof (g_source_attach) IA__g_source_attach __attribute((visibility("hidden"))); -#define g_source_attach IA__g_source_attach - -extern __typeof (g_source_destroy) IA__g_source_destroy __attribute((visibility("hidden"))); -#define g_source_destroy IA__g_source_destroy - -extern __typeof (g_source_get_can_recurse) IA__g_source_get_can_recurse __attribute((visibility("hidden"))); -#define g_source_get_can_recurse IA__g_source_get_can_recurse - -extern __typeof (g_source_get_context) IA__g_source_get_context __attribute((visibility("hidden"))); -#define g_source_get_context IA__g_source_get_context - -extern __typeof (g_source_get_current_time) IA__g_source_get_current_time __attribute((visibility("hidden"))); -#define g_source_get_current_time IA__g_source_get_current_time - -extern __typeof (g_source_get_id) IA__g_source_get_id __attribute((visibility("hidden"))); -#define g_source_get_id IA__g_source_get_id - -extern __typeof (g_source_get_priority) IA__g_source_get_priority __attribute((visibility("hidden"))); -#define g_source_get_priority IA__g_source_get_priority - -extern __typeof (g_source_new) IA__g_source_new __attribute((visibility("hidden"))); -#define g_source_new IA__g_source_new - -extern __typeof (g_source_ref) IA__g_source_ref __attribute((visibility("hidden"))); -#define g_source_ref IA__g_source_ref - -extern __typeof (g_source_remove) IA__g_source_remove __attribute((visibility("hidden"))); -#define g_source_remove IA__g_source_remove - -extern __typeof (g_source_remove_by_funcs_user_data) IA__g_source_remove_by_funcs_user_data __attribute((visibility("hidden"))); -#define g_source_remove_by_funcs_user_data IA__g_source_remove_by_funcs_user_data - -extern __typeof (g_source_remove_by_user_data) IA__g_source_remove_by_user_data __attribute((visibility("hidden"))); -#define g_source_remove_by_user_data IA__g_source_remove_by_user_data - -extern __typeof (g_source_remove_poll) IA__g_source_remove_poll __attribute((visibility("hidden"))); -#define g_source_remove_poll IA__g_source_remove_poll - -extern __typeof (g_source_set_callback) IA__g_source_set_callback __attribute((visibility("hidden"))); -#define g_source_set_callback IA__g_source_set_callback - -extern __typeof (g_source_set_callback_indirect) IA__g_source_set_callback_indirect __attribute((visibility("hidden"))); -#define g_source_set_callback_indirect IA__g_source_set_callback_indirect - -extern __typeof (g_source_set_can_recurse) IA__g_source_set_can_recurse __attribute((visibility("hidden"))); -#define g_source_set_can_recurse IA__g_source_set_can_recurse - -extern __typeof (g_source_set_funcs) IA__g_source_set_funcs __attribute((visibility("hidden"))); -#define g_source_set_funcs IA__g_source_set_funcs - -extern __typeof (g_source_is_destroyed) IA__g_source_is_destroyed __attribute((visibility("hidden"))); -#define g_source_is_destroyed IA__g_source_is_destroyed - -extern __typeof (g_source_set_priority) IA__g_source_set_priority __attribute((visibility("hidden"))); -#define g_source_set_priority IA__g_source_set_priority - -extern __typeof (g_source_unref) IA__g_source_unref __attribute((visibility("hidden"))); -#define g_source_unref IA__g_source_unref - -extern __typeof (g_idle_add) IA__g_idle_add __attribute((visibility("hidden"))); -#define g_idle_add IA__g_idle_add - -extern __typeof (g_idle_add_full) IA__g_idle_add_full __attribute((visibility("hidden"))); -#define g_idle_add_full IA__g_idle_add_full - -extern __typeof (g_idle_remove_by_data) IA__g_idle_remove_by_data __attribute((visibility("hidden"))); -#define g_idle_remove_by_data IA__g_idle_remove_by_data - -extern __typeof (g_idle_source_new) IA__g_idle_source_new __attribute((visibility("hidden"))); -#define g_idle_source_new IA__g_idle_source_new - -extern __typeof (g_timeout_add) IA__g_timeout_add __attribute((visibility("hidden"))); -#define g_timeout_add IA__g_timeout_add - -extern __typeof (g_timeout_add_seconds) IA__g_timeout_add_seconds __attribute((visibility("hidden"))); -#define g_timeout_add_seconds IA__g_timeout_add_seconds - -extern __typeof (g_timeout_add_full) IA__g_timeout_add_full __attribute((visibility("hidden"))); -#define g_timeout_add_full IA__g_timeout_add_full - -extern __typeof (g_timeout_add_seconds_full) IA__g_timeout_add_seconds_full __attribute((visibility("hidden"))); -#define g_timeout_add_seconds_full IA__g_timeout_add_seconds_full - -extern __typeof (g_timeout_source_new) IA__g_timeout_source_new __attribute((visibility("hidden"))); -#define g_timeout_source_new IA__g_timeout_source_new - -extern __typeof (g_timeout_source_new_seconds) IA__g_timeout_source_new_seconds __attribute((visibility("hidden"))); -#define g_timeout_source_new_seconds IA__g_timeout_source_new_seconds - -#endif -#endif -#if IN_HEADER(__G_MAPPED_FILE_H__) -#if IN_FILE(__G_MAPPED_FILE_C__) -extern __typeof (g_mapped_file_new) IA__g_mapped_file_new __attribute((visibility("hidden"))) G_GNUC_MALLOC; -#define g_mapped_file_new IA__g_mapped_file_new - -extern __typeof (g_mapped_file_get_length) IA__g_mapped_file_get_length __attribute((visibility("hidden"))); -#define g_mapped_file_get_length IA__g_mapped_file_get_length - -extern __typeof (g_mapped_file_get_contents) IA__g_mapped_file_get_contents __attribute((visibility("hidden"))); -#define g_mapped_file_get_contents IA__g_mapped_file_get_contents - -extern __typeof (g_mapped_file_free) IA__g_mapped_file_free __attribute((visibility("hidden"))); -#define g_mapped_file_free IA__g_mapped_file_free - -#endif -#endif -#if IN_HEADER(__G_MARKUP_H__) -#if IN_FILE(__G_MARKUP_C__) -extern __typeof (g_markup_error_quark) IA__g_markup_error_quark __attribute((visibility("hidden"))); -#define g_markup_error_quark IA__g_markup_error_quark - -extern __typeof (g_markup_escape_text) IA__g_markup_escape_text __attribute((visibility("hidden"))); -#define g_markup_escape_text IA__g_markup_escape_text - -extern __typeof (g_markup_parse_context_end_parse) IA__g_markup_parse_context_end_parse __attribute((visibility("hidden"))); -#define g_markup_parse_context_end_parse IA__g_markup_parse_context_end_parse - -extern __typeof (g_markup_parse_context_free) IA__g_markup_parse_context_free __attribute((visibility("hidden"))); -#define g_markup_parse_context_free IA__g_markup_parse_context_free - -extern __typeof (g_markup_parse_context_get_element) IA__g_markup_parse_context_get_element __attribute((visibility("hidden"))); -#define g_markup_parse_context_get_element IA__g_markup_parse_context_get_element - -extern __typeof (g_markup_parse_context_get_element_stack) IA__g_markup_parse_context_get_element_stack __attribute((visibility("hidden"))); -#define g_markup_parse_context_get_element_stack IA__g_markup_parse_context_get_element_stack - -extern __typeof (g_markup_parse_context_get_position) IA__g_markup_parse_context_get_position __attribute((visibility("hidden"))); -#define g_markup_parse_context_get_position IA__g_markup_parse_context_get_position - -extern __typeof (g_markup_parse_context_get_user_data) IA__g_markup_parse_context_get_user_data __attribute((visibility("hidden"))); -#define g_markup_parse_context_get_user_data IA__g_markup_parse_context_get_user_data - -extern __typeof (g_markup_parse_context_new) IA__g_markup_parse_context_new __attribute((visibility("hidden"))); -#define g_markup_parse_context_new IA__g_markup_parse_context_new - -extern __typeof (g_markup_parse_context_parse) IA__g_markup_parse_context_parse __attribute((visibility("hidden"))); -#define g_markup_parse_context_parse IA__g_markup_parse_context_parse - -extern __typeof (g_markup_parse_context_push) IA__g_markup_parse_context_push __attribute((visibility("hidden"))); -#define g_markup_parse_context_push IA__g_markup_parse_context_push - -extern __typeof (g_markup_parse_context_pop) IA__g_markup_parse_context_pop __attribute((visibility("hidden"))); -#define g_markup_parse_context_pop IA__g_markup_parse_context_pop - -extern __typeof (g_markup_printf_escaped) IA__g_markup_printf_escaped __attribute((visibility("hidden"))) G_GNUC_PRINTF(1,2); -#define g_markup_printf_escaped IA__g_markup_printf_escaped - -extern __typeof (g_markup_vprintf_escaped) IA__g_markup_vprintf_escaped __attribute((visibility("hidden"))); -#define g_markup_vprintf_escaped IA__g_markup_vprintf_escaped - -extern __typeof (g_markup_collect_attributes) IA__g_markup_collect_attributes __attribute((visibility("hidden"))); -#define g_markup_collect_attributes IA__g_markup_collect_attributes - -#endif -#endif -#if IN_HEADER(__G_MEM_H__) -#if IN_FILE(__G_MEM_C__) -extern __typeof (g_free) IA__g_free __attribute((visibility("hidden"))); -#define g_free IA__g_free - -extern __typeof (g_malloc) IA__g_malloc __attribute((visibility("hidden"))) G_GNUC_MALLOC; -#define g_malloc IA__g_malloc - -extern __typeof (g_malloc0) IA__g_malloc0 __attribute((visibility("hidden"))) G_GNUC_MALLOC; -#define g_malloc0 IA__g_malloc0 - -extern __typeof (g_mem_is_system_malloc) IA__g_mem_is_system_malloc __attribute((visibility("hidden"))); -#define g_mem_is_system_malloc IA__g_mem_is_system_malloc - -extern __typeof (g_mem_profile) IA__g_mem_profile __attribute((visibility("hidden"))); -#define g_mem_profile IA__g_mem_profile - -extern __typeof (g_mem_set_vtable) IA__g_mem_set_vtable __attribute((visibility("hidden"))); -#define g_mem_set_vtable IA__g_mem_set_vtable - -extern __typeof (g_realloc) IA__g_realloc __attribute((visibility("hidden"))); -#define g_realloc IA__g_realloc - -extern __typeof (g_try_malloc) IA__g_try_malloc __attribute((visibility("hidden"))) G_GNUC_MALLOC; -#define g_try_malloc IA__g_try_malloc - -extern __typeof (g_try_malloc0) IA__g_try_malloc0 __attribute((visibility("hidden"))) G_GNUC_MALLOC; -#define g_try_malloc0 IA__g_try_malloc0 - -extern __typeof (g_try_realloc) IA__g_try_realloc __attribute((visibility("hidden"))); -#define g_try_realloc IA__g_try_realloc - -#ifndef G_DISABLE_DEPRECATED -extern __typeof (g_allocator_free) IA__g_allocator_free __attribute((visibility("hidden"))); -#define g_allocator_free IA__g_allocator_free - -extern __typeof (g_allocator_new) IA__g_allocator_new __attribute((visibility("hidden"))); -#define g_allocator_new IA__g_allocator_new - -extern __typeof (g_mem_chunk_alloc) IA__g_mem_chunk_alloc __attribute((visibility("hidden"))); -#define g_mem_chunk_alloc IA__g_mem_chunk_alloc - -extern __typeof (g_mem_chunk_alloc0) IA__g_mem_chunk_alloc0 __attribute((visibility("hidden"))); -#define g_mem_chunk_alloc0 IA__g_mem_chunk_alloc0 - -extern __typeof (g_mem_chunk_clean) IA__g_mem_chunk_clean __attribute((visibility("hidden"))); -#define g_mem_chunk_clean IA__g_mem_chunk_clean - -extern __typeof (g_mem_chunk_destroy) IA__g_mem_chunk_destroy __attribute((visibility("hidden"))); -#define g_mem_chunk_destroy IA__g_mem_chunk_destroy - -extern __typeof (g_mem_chunk_free) IA__g_mem_chunk_free __attribute((visibility("hidden"))); -#define g_mem_chunk_free IA__g_mem_chunk_free - -extern __typeof (g_mem_chunk_info) IA__g_mem_chunk_info __attribute((visibility("hidden"))); -#define g_mem_chunk_info IA__g_mem_chunk_info - -extern __typeof (g_mem_chunk_new) IA__g_mem_chunk_new __attribute((visibility("hidden"))); -#define g_mem_chunk_new IA__g_mem_chunk_new - -extern __typeof (g_mem_chunk_print) IA__g_mem_chunk_print __attribute((visibility("hidden"))); -#define g_mem_chunk_print IA__g_mem_chunk_print - -extern __typeof (g_mem_chunk_reset) IA__g_mem_chunk_reset __attribute((visibility("hidden"))); -#define g_mem_chunk_reset IA__g_mem_chunk_reset - -extern __typeof (g_blow_chunks) IA__g_blow_chunks __attribute((visibility("hidden"))); -#define g_blow_chunks IA__g_blow_chunks - -#endif -#endif -#endif -#if IN_HEADER(__G_SLICE_H__) -#if IN_FILE(__G_SLICE_C__) -extern __typeof (g_slice_alloc) IA__g_slice_alloc __attribute((visibility("hidden"))) G_GNUC_MALLOC; -#define g_slice_alloc IA__g_slice_alloc - -extern __typeof (g_slice_alloc0) IA__g_slice_alloc0 __attribute((visibility("hidden"))) G_GNUC_MALLOC; -#define g_slice_alloc0 IA__g_slice_alloc0 - -extern __typeof (g_slice_copy) IA__g_slice_copy __attribute((visibility("hidden"))) G_GNUC_MALLOC; -#define g_slice_copy IA__g_slice_copy - -extern __typeof (g_slice_free1) IA__g_slice_free1 __attribute((visibility("hidden"))); -#define g_slice_free1 IA__g_slice_free1 - -extern __typeof (g_slice_free_chain_with_offset) IA__g_slice_free_chain_with_offset __attribute((visibility("hidden"))); -#define g_slice_free_chain_with_offset IA__g_slice_free_chain_with_offset - -extern __typeof (g_slice_set_config) IA__g_slice_set_config __attribute((visibility("hidden"))); -#define g_slice_set_config IA__g_slice_set_config - -extern __typeof (g_slice_get_config) IA__g_slice_get_config __attribute((visibility("hidden"))); -#define g_slice_get_config IA__g_slice_get_config - -extern __typeof (g_slice_get_config_state) IA__g_slice_get_config_state __attribute((visibility("hidden"))); -#define g_slice_get_config_state IA__g_slice_get_config_state - -#ifdef G_ENABLE_DEBUG -#endif -#endif -#endif -#if IN_HEADER(__G_MESSAGES_H__) -#if IN_FILE(__G_MESSAGES_C__) -extern __typeof (g_printf_string_upper_bound) IA__g_printf_string_upper_bound __attribute((visibility("hidden"))); -#define g_printf_string_upper_bound IA__g_printf_string_upper_bound - -extern __typeof (g_log) IA__g_log __attribute((visibility("hidden"))) G_GNUC_PRINTF(3,4); -#define g_log IA__g_log - -extern __typeof (g_log_default_handler) IA__g_log_default_handler __attribute((visibility("hidden"))); -#define g_log_default_handler IA__g_log_default_handler - -extern __typeof (g_log_remove_handler) IA__g_log_remove_handler __attribute((visibility("hidden"))); -#define g_log_remove_handler IA__g_log_remove_handler - -extern __typeof (g_log_set_always_fatal) IA__g_log_set_always_fatal __attribute((visibility("hidden"))); -#define g_log_set_always_fatal IA__g_log_set_always_fatal - -extern __typeof (g_log_set_default_handler) IA__g_log_set_default_handler __attribute((visibility("hidden"))); -#define g_log_set_default_handler IA__g_log_set_default_handler - -extern __typeof (g_log_set_fatal_mask) IA__g_log_set_fatal_mask __attribute((visibility("hidden"))); -#define g_log_set_fatal_mask IA__g_log_set_fatal_mask - -extern __typeof (g_log_set_handler) IA__g_log_set_handler __attribute((visibility("hidden"))); -#define g_log_set_handler IA__g_log_set_handler - -extern __typeof (g_logv) IA__g_logv __attribute((visibility("hidden"))); -#define g_logv IA__g_logv - -extern __typeof (g_return_if_fail_warning) IA__g_return_if_fail_warning __attribute((visibility("hidden"))); -#define g_return_if_fail_warning IA__g_return_if_fail_warning - -extern __typeof (g_warn_message) IA__g_warn_message __attribute((visibility("hidden"))); -#define g_warn_message IA__g_warn_message - -#ifndef G_DISABLE_DEPRECATED -extern __typeof (g_assert_warning) IA__g_assert_warning __attribute((visibility("hidden"))) G_GNUC_NORETURN; -#define g_assert_warning IA__g_assert_warning - -#endif -extern __typeof (g_print) IA__g_print __attribute((visibility("hidden"))) G_GNUC_PRINTF(1,2); -#define g_print IA__g_print - -extern __typeof (g_printerr) IA__g_printerr __attribute((visibility("hidden"))) G_GNUC_PRINTF(1,2); -#define g_printerr IA__g_printerr - -extern __typeof (g_set_printerr_handler) IA__g_set_printerr_handler __attribute((visibility("hidden"))); -#define g_set_printerr_handler IA__g_set_printerr_handler - -extern __typeof (g_set_print_handler) IA__g_set_print_handler __attribute((visibility("hidden"))); -#define g_set_print_handler IA__g_set_print_handler - -#endif -#endif -#if IN_HEADER(__G_NODE_H__) -#if IN_FILE(__G_NODE_C__) -extern __typeof (g_node_child_index) IA__g_node_child_index __attribute((visibility("hidden"))); -#define g_node_child_index IA__g_node_child_index - -extern __typeof (g_node_child_position) IA__g_node_child_position __attribute((visibility("hidden"))); -#define g_node_child_position IA__g_node_child_position - -extern __typeof (g_node_children_foreach) IA__g_node_children_foreach __attribute((visibility("hidden"))); -#define g_node_children_foreach IA__g_node_children_foreach - -extern __typeof (g_node_copy) IA__g_node_copy __attribute((visibility("hidden"))); -#define g_node_copy IA__g_node_copy - -extern __typeof (g_node_copy_deep) IA__g_node_copy_deep __attribute((visibility("hidden"))); -#define g_node_copy_deep IA__g_node_copy_deep - -extern __typeof (g_node_depth) IA__g_node_depth __attribute((visibility("hidden"))); -#define g_node_depth IA__g_node_depth - -extern __typeof (g_node_destroy) IA__g_node_destroy __attribute((visibility("hidden"))); -#define g_node_destroy IA__g_node_destroy - -extern __typeof (g_node_find) IA__g_node_find __attribute((visibility("hidden"))); -#define g_node_find IA__g_node_find - -extern __typeof (g_node_find_child) IA__g_node_find_child __attribute((visibility("hidden"))); -#define g_node_find_child IA__g_node_find_child - -extern __typeof (g_node_first_sibling) IA__g_node_first_sibling __attribute((visibility("hidden"))); -#define g_node_first_sibling IA__g_node_first_sibling - -extern __typeof (g_node_get_root) IA__g_node_get_root __attribute((visibility("hidden"))); -#define g_node_get_root IA__g_node_get_root - -extern __typeof (g_node_insert) IA__g_node_insert __attribute((visibility("hidden"))); -#define g_node_insert IA__g_node_insert - -extern __typeof (g_node_insert_after) IA__g_node_insert_after __attribute((visibility("hidden"))); -#define g_node_insert_after IA__g_node_insert_after - -extern __typeof (g_node_insert_before) IA__g_node_insert_before __attribute((visibility("hidden"))); -#define g_node_insert_before IA__g_node_insert_before - -extern __typeof (g_node_is_ancestor) IA__g_node_is_ancestor __attribute((visibility("hidden"))); -#define g_node_is_ancestor IA__g_node_is_ancestor - -extern __typeof (g_node_last_child) IA__g_node_last_child __attribute((visibility("hidden"))); -#define g_node_last_child IA__g_node_last_child - -extern __typeof (g_node_last_sibling) IA__g_node_last_sibling __attribute((visibility("hidden"))); -#define g_node_last_sibling IA__g_node_last_sibling - -extern __typeof (g_node_max_height) IA__g_node_max_height __attribute((visibility("hidden"))); -#define g_node_max_height IA__g_node_max_height - -extern __typeof (g_node_n_children) IA__g_node_n_children __attribute((visibility("hidden"))); -#define g_node_n_children IA__g_node_n_children - -extern __typeof (g_node_new) IA__g_node_new __attribute((visibility("hidden"))); -#define g_node_new IA__g_node_new - -extern __typeof (g_node_n_nodes) IA__g_node_n_nodes __attribute((visibility("hidden"))); -#define g_node_n_nodes IA__g_node_n_nodes - -extern __typeof (g_node_nth_child) IA__g_node_nth_child __attribute((visibility("hidden"))); -#define g_node_nth_child IA__g_node_nth_child - -#ifndef G_DISABLE_DEPRECATED -extern __typeof (g_node_pop_allocator) IA__g_node_pop_allocator __attribute((visibility("hidden"))); -#define g_node_pop_allocator IA__g_node_pop_allocator - -#endif -extern __typeof (g_node_prepend) IA__g_node_prepend __attribute((visibility("hidden"))); -#define g_node_prepend IA__g_node_prepend - -#ifndef G_DISABLE_DEPRECATED -extern __typeof (g_node_push_allocator) IA__g_node_push_allocator __attribute((visibility("hidden"))); -#define g_node_push_allocator IA__g_node_push_allocator - -#endif -extern __typeof (g_node_reverse_children) IA__g_node_reverse_children __attribute((visibility("hidden"))); -#define g_node_reverse_children IA__g_node_reverse_children - -extern __typeof (g_node_traverse) IA__g_node_traverse __attribute((visibility("hidden"))); -#define g_node_traverse IA__g_node_traverse - -extern __typeof (g_node_unlink) IA__g_node_unlink __attribute((visibility("hidden"))); -#define g_node_unlink IA__g_node_unlink - -#endif -#endif -#if IN_HEADER(__G_OPTION_H__) -#if IN_FILE(__G_OPTION_C__) -extern __typeof (g_option_context_add_group) IA__g_option_context_add_group __attribute((visibility("hidden"))); -#define g_option_context_add_group IA__g_option_context_add_group - -extern __typeof (g_option_context_add_main_entries) IA__g_option_context_add_main_entries __attribute((visibility("hidden"))); -#define g_option_context_add_main_entries IA__g_option_context_add_main_entries - -extern __typeof (g_option_error_quark) IA__g_option_error_quark __attribute((visibility("hidden"))); -#define g_option_error_quark IA__g_option_error_quark - -extern __typeof (g_option_context_free) IA__g_option_context_free __attribute((visibility("hidden"))); -#define g_option_context_free IA__g_option_context_free - -extern __typeof (g_option_context_get_description) IA__g_option_context_get_description __attribute((visibility("hidden"))); -#define g_option_context_get_description IA__g_option_context_get_description - -extern __typeof (g_option_context_get_help_enabled) IA__g_option_context_get_help_enabled __attribute((visibility("hidden"))); -#define g_option_context_get_help_enabled IA__g_option_context_get_help_enabled - -extern __typeof (g_option_context_get_ignore_unknown_options) IA__g_option_context_get_ignore_unknown_options __attribute((visibility("hidden"))); -#define g_option_context_get_ignore_unknown_options IA__g_option_context_get_ignore_unknown_options - -extern __typeof (g_option_context_get_main_group) IA__g_option_context_get_main_group __attribute((visibility("hidden"))); -#define g_option_context_get_main_group IA__g_option_context_get_main_group - -extern __typeof (g_option_context_get_summary) IA__g_option_context_get_summary __attribute((visibility("hidden"))); -#define g_option_context_get_summary IA__g_option_context_get_summary - -extern __typeof (g_option_context_new) IA__g_option_context_new __attribute((visibility("hidden"))); -#define g_option_context_new IA__g_option_context_new - -extern __typeof (g_option_context_parse) IA__g_option_context_parse __attribute((visibility("hidden"))); -#define g_option_context_parse IA__g_option_context_parse - -extern __typeof (g_option_context_set_description) IA__g_option_context_set_description __attribute((visibility("hidden"))); -#define g_option_context_set_description IA__g_option_context_set_description - -extern __typeof (g_option_context_set_help_enabled) IA__g_option_context_set_help_enabled __attribute((visibility("hidden"))); -#define g_option_context_set_help_enabled IA__g_option_context_set_help_enabled - -extern __typeof (g_option_context_set_ignore_unknown_options) IA__g_option_context_set_ignore_unknown_options __attribute((visibility("hidden"))); -#define g_option_context_set_ignore_unknown_options IA__g_option_context_set_ignore_unknown_options - -extern __typeof (g_option_context_set_main_group) IA__g_option_context_set_main_group __attribute((visibility("hidden"))); -#define g_option_context_set_main_group IA__g_option_context_set_main_group - -extern __typeof (g_option_context_set_summary) IA__g_option_context_set_summary __attribute((visibility("hidden"))); -#define g_option_context_set_summary IA__g_option_context_set_summary - -extern __typeof (g_option_context_set_translate_func) IA__g_option_context_set_translate_func __attribute((visibility("hidden"))); -#define g_option_context_set_translate_func IA__g_option_context_set_translate_func - -extern __typeof (g_option_context_set_translation_domain) IA__g_option_context_set_translation_domain __attribute((visibility("hidden"))); -#define g_option_context_set_translation_domain IA__g_option_context_set_translation_domain - -extern __typeof (g_option_context_get_help) IA__g_option_context_get_help __attribute((visibility("hidden"))); -#define g_option_context_get_help IA__g_option_context_get_help - -extern __typeof (g_option_group_add_entries) IA__g_option_group_add_entries __attribute((visibility("hidden"))); -#define g_option_group_add_entries IA__g_option_group_add_entries - -extern __typeof (g_option_group_free) IA__g_option_group_free __attribute((visibility("hidden"))); -#define g_option_group_free IA__g_option_group_free - -extern __typeof (g_option_group_new) IA__g_option_group_new __attribute((visibility("hidden"))); -#define g_option_group_new IA__g_option_group_new - -extern __typeof (g_option_group_set_error_hook) IA__g_option_group_set_error_hook __attribute((visibility("hidden"))); -#define g_option_group_set_error_hook IA__g_option_group_set_error_hook - -extern __typeof (g_option_group_set_parse_hooks) IA__g_option_group_set_parse_hooks __attribute((visibility("hidden"))); -#define g_option_group_set_parse_hooks IA__g_option_group_set_parse_hooks - -extern __typeof (g_option_group_set_translate_func) IA__g_option_group_set_translate_func __attribute((visibility("hidden"))); -#define g_option_group_set_translate_func IA__g_option_group_set_translate_func - -extern __typeof (g_option_group_set_translation_domain) IA__g_option_group_set_translation_domain __attribute((visibility("hidden"))); -#define g_option_group_set_translation_domain IA__g_option_group_set_translation_domain - -#endif -#endif -#if IN_HEADER(__G_PATTERN_H__) -#if IN_FILE(__G_PATTERN_C__) -extern __typeof (g_pattern_match) IA__g_pattern_match __attribute((visibility("hidden"))); -#define g_pattern_match IA__g_pattern_match - -extern __typeof (g_pattern_match_simple) IA__g_pattern_match_simple __attribute((visibility("hidden"))); -#define g_pattern_match_simple IA__g_pattern_match_simple - -extern __typeof (g_pattern_match_string) IA__g_pattern_match_string __attribute((visibility("hidden"))); -#define g_pattern_match_string IA__g_pattern_match_string - -extern __typeof (g_pattern_spec_equal) IA__g_pattern_spec_equal __attribute((visibility("hidden"))); -#define g_pattern_spec_equal IA__g_pattern_spec_equal - -extern __typeof (g_pattern_spec_free) IA__g_pattern_spec_free __attribute((visibility("hidden"))); -#define g_pattern_spec_free IA__g_pattern_spec_free - -extern __typeof (g_pattern_spec_new) IA__g_pattern_spec_new __attribute((visibility("hidden"))); -#define g_pattern_spec_new IA__g_pattern_spec_new - -#endif -#endif -#if IN_HEADER(__G_POLL_H__) -#if IN_FILE(__G_POLL_C__) -extern __typeof (g_poll) IA__g_poll __attribute((visibility("hidden"))); -#define g_poll IA__g_poll - -#endif -#endif -#if IN_HEADER(__G_PRIMES_H__) -#if IN_FILE(__G_PRIMES_C__) -extern __typeof (g_spaced_primes_closest) IA__g_spaced_primes_closest __attribute((visibility("hidden"))) G_GNUC_CONST; -#define g_spaced_primes_closest IA__g_spaced_primes_closest - -#endif -#endif -#if IN_HEADER(__G_PRINTF_H__) -#if IN_FILE(__G_PRINTF_C__) -extern __typeof (g_fprintf) IA__g_fprintf __attribute((visibility("hidden"))) G_GNUC_PRINTF(2,3); -#define g_fprintf IA__g_fprintf - -extern __typeof (g_printf) IA__g_printf __attribute((visibility("hidden"))) G_GNUC_PRINTF(1,2); -#define g_printf IA__g_printf - -extern __typeof (g_sprintf) IA__g_sprintf __attribute((visibility("hidden"))) G_GNUC_PRINTF(2,3); -#define g_sprintf IA__g_sprintf - -extern __typeof (g_vasprintf) IA__g_vasprintf __attribute((visibility("hidden"))); -#define g_vasprintf IA__g_vasprintf - -extern __typeof (g_vfprintf) IA__g_vfprintf __attribute((visibility("hidden"))); -#define g_vfprintf IA__g_vfprintf - -extern __typeof (g_vprintf) IA__g_vprintf __attribute((visibility("hidden"))); -#define g_vprintf IA__g_vprintf - -extern __typeof (g_vsprintf) IA__g_vsprintf __attribute((visibility("hidden"))); -#define g_vsprintf IA__g_vsprintf - -#endif -#endif -#if IN_HEADER(__G_UTILS_H__) -#if IN_FILE(__G_PRINTF_C__) -extern __typeof (g_snprintf) IA__g_snprintf __attribute((visibility("hidden"))) G_GNUC_PRINTF(3,4); -#define g_snprintf IA__g_snprintf - -extern __typeof (g_vsnprintf) IA__g_vsnprintf __attribute((visibility("hidden"))); -#define g_vsnprintf IA__g_vsnprintf - -#endif -#endif -#if IN_HEADER(__G_QSORT_H__) -#if IN_FILE(__G_QSORT_C__) -extern __typeof (g_qsort_with_data) IA__g_qsort_with_data __attribute((visibility("hidden"))); -#define g_qsort_with_data IA__g_qsort_with_data - -#endif -#endif -#if IN_HEADER(__G_QUEUE_H__) -#if IN_FILE(__G_QUEUE_C__) -extern __typeof (g_queue_clear) IA__g_queue_clear __attribute((visibility("hidden"))); -#define g_queue_clear IA__g_queue_clear - -extern __typeof (g_queue_copy) IA__g_queue_copy __attribute((visibility("hidden"))); -#define g_queue_copy IA__g_queue_copy - -extern __typeof (g_queue_delete_link) IA__g_queue_delete_link __attribute((visibility("hidden"))); -#define g_queue_delete_link IA__g_queue_delete_link - -extern __typeof (g_queue_find) IA__g_queue_find __attribute((visibility("hidden"))); -#define g_queue_find IA__g_queue_find - -extern __typeof (g_queue_find_custom) IA__g_queue_find_custom __attribute((visibility("hidden"))); -#define g_queue_find_custom IA__g_queue_find_custom - -extern __typeof (g_queue_foreach) IA__g_queue_foreach __attribute((visibility("hidden"))); -#define g_queue_foreach IA__g_queue_foreach - -extern __typeof (g_queue_free) IA__g_queue_free __attribute((visibility("hidden"))); -#define g_queue_free IA__g_queue_free - -extern __typeof (g_queue_get_length) IA__g_queue_get_length __attribute((visibility("hidden"))); -#define g_queue_get_length IA__g_queue_get_length - -extern __typeof (g_queue_index) IA__g_queue_index __attribute((visibility("hidden"))); -#define g_queue_index IA__g_queue_index - -extern __typeof (g_queue_init) IA__g_queue_init __attribute((visibility("hidden"))); -#define g_queue_init IA__g_queue_init - -extern __typeof (g_queue_insert_after) IA__g_queue_insert_after __attribute((visibility("hidden"))); -#define g_queue_insert_after IA__g_queue_insert_after - -extern __typeof (g_queue_insert_before) IA__g_queue_insert_before __attribute((visibility("hidden"))); -#define g_queue_insert_before IA__g_queue_insert_before - -extern __typeof (g_queue_insert_sorted) IA__g_queue_insert_sorted __attribute((visibility("hidden"))); -#define g_queue_insert_sorted IA__g_queue_insert_sorted - -extern __typeof (g_queue_is_empty) IA__g_queue_is_empty __attribute((visibility("hidden"))); -#define g_queue_is_empty IA__g_queue_is_empty - -extern __typeof (g_queue_link_index) IA__g_queue_link_index __attribute((visibility("hidden"))); -#define g_queue_link_index IA__g_queue_link_index - -extern __typeof (g_queue_new) IA__g_queue_new __attribute((visibility("hidden"))); -#define g_queue_new IA__g_queue_new - -extern __typeof (g_queue_peek_head) IA__g_queue_peek_head __attribute((visibility("hidden"))); -#define g_queue_peek_head IA__g_queue_peek_head - -extern __typeof (g_queue_peek_head_link) IA__g_queue_peek_head_link __attribute((visibility("hidden"))); -#define g_queue_peek_head_link IA__g_queue_peek_head_link - -extern __typeof (g_queue_peek_nth) IA__g_queue_peek_nth __attribute((visibility("hidden"))); -#define g_queue_peek_nth IA__g_queue_peek_nth - -extern __typeof (g_queue_peek_nth_link) IA__g_queue_peek_nth_link __attribute((visibility("hidden"))); -#define g_queue_peek_nth_link IA__g_queue_peek_nth_link - -extern __typeof (g_queue_peek_tail) IA__g_queue_peek_tail __attribute((visibility("hidden"))); -#define g_queue_peek_tail IA__g_queue_peek_tail - -extern __typeof (g_queue_peek_tail_link) IA__g_queue_peek_tail_link __attribute((visibility("hidden"))); -#define g_queue_peek_tail_link IA__g_queue_peek_tail_link - -extern __typeof (g_queue_pop_head) IA__g_queue_pop_head __attribute((visibility("hidden"))); -#define g_queue_pop_head IA__g_queue_pop_head - -extern __typeof (g_queue_pop_head_link) IA__g_queue_pop_head_link __attribute((visibility("hidden"))); -#define g_queue_pop_head_link IA__g_queue_pop_head_link - -extern __typeof (g_queue_pop_nth) IA__g_queue_pop_nth __attribute((visibility("hidden"))); -#define g_queue_pop_nth IA__g_queue_pop_nth - -extern __typeof (g_queue_pop_nth_link) IA__g_queue_pop_nth_link __attribute((visibility("hidden"))); -#define g_queue_pop_nth_link IA__g_queue_pop_nth_link - -extern __typeof (g_queue_pop_tail) IA__g_queue_pop_tail __attribute((visibility("hidden"))); -#define g_queue_pop_tail IA__g_queue_pop_tail - -extern __typeof (g_queue_pop_tail_link) IA__g_queue_pop_tail_link __attribute((visibility("hidden"))); -#define g_queue_pop_tail_link IA__g_queue_pop_tail_link - -extern __typeof (g_queue_push_head) IA__g_queue_push_head __attribute((visibility("hidden"))); -#define g_queue_push_head IA__g_queue_push_head - -extern __typeof (g_queue_push_head_link) IA__g_queue_push_head_link __attribute((visibility("hidden"))); -#define g_queue_push_head_link IA__g_queue_push_head_link - -extern __typeof (g_queue_push_nth) IA__g_queue_push_nth __attribute((visibility("hidden"))); -#define g_queue_push_nth IA__g_queue_push_nth - -extern __typeof (g_queue_push_nth_link) IA__g_queue_push_nth_link __attribute((visibility("hidden"))); -#define g_queue_push_nth_link IA__g_queue_push_nth_link - -extern __typeof (g_queue_push_tail) IA__g_queue_push_tail __attribute((visibility("hidden"))); -#define g_queue_push_tail IA__g_queue_push_tail - -extern __typeof (g_queue_push_tail_link) IA__g_queue_push_tail_link __attribute((visibility("hidden"))); -#define g_queue_push_tail_link IA__g_queue_push_tail_link - -extern __typeof (g_queue_remove) IA__g_queue_remove __attribute((visibility("hidden"))); -#define g_queue_remove IA__g_queue_remove - -extern __typeof (g_queue_remove_all) IA__g_queue_remove_all __attribute((visibility("hidden"))); -#define g_queue_remove_all IA__g_queue_remove_all - -extern __typeof (g_queue_reverse) IA__g_queue_reverse __attribute((visibility("hidden"))); -#define g_queue_reverse IA__g_queue_reverse - -extern __typeof (g_queue_sort) IA__g_queue_sort __attribute((visibility("hidden"))); -#define g_queue_sort IA__g_queue_sort - -extern __typeof (g_queue_unlink) IA__g_queue_unlink __attribute((visibility("hidden"))); -#define g_queue_unlink IA__g_queue_unlink - -#endif -#endif -#if IN_HEADER(__G_RAND_H__) -#if IN_FILE(__G_RAND_C__) -extern __typeof (g_rand_copy) IA__g_rand_copy __attribute((visibility("hidden"))); -#define g_rand_copy IA__g_rand_copy - -extern __typeof (g_rand_double) IA__g_rand_double __attribute((visibility("hidden"))); -#define g_rand_double IA__g_rand_double - -extern __typeof (g_rand_double_range) IA__g_rand_double_range __attribute((visibility("hidden"))); -#define g_rand_double_range IA__g_rand_double_range - -extern __typeof (g_rand_free) IA__g_rand_free __attribute((visibility("hidden"))); -#define g_rand_free IA__g_rand_free - -extern __typeof (g_rand_int) IA__g_rand_int __attribute((visibility("hidden"))); -#define g_rand_int IA__g_rand_int - -extern __typeof (g_rand_int_range) IA__g_rand_int_range __attribute((visibility("hidden"))); -#define g_rand_int_range IA__g_rand_int_range - -extern __typeof (g_rand_new) IA__g_rand_new __attribute((visibility("hidden"))); -#define g_rand_new IA__g_rand_new - -extern __typeof (g_rand_new_with_seed) IA__g_rand_new_with_seed __attribute((visibility("hidden"))); -#define g_rand_new_with_seed IA__g_rand_new_with_seed - -extern __typeof (g_rand_new_with_seed_array) IA__g_rand_new_with_seed_array __attribute((visibility("hidden"))); -#define g_rand_new_with_seed_array IA__g_rand_new_with_seed_array - -extern __typeof (g_random_double) IA__g_random_double __attribute((visibility("hidden"))); -#define g_random_double IA__g_random_double - -extern __typeof (g_random_double_range) IA__g_random_double_range __attribute((visibility("hidden"))); -#define g_random_double_range IA__g_random_double_range - -extern __typeof (g_random_int) IA__g_random_int __attribute((visibility("hidden"))); -#define g_random_int IA__g_random_int - -extern __typeof (g_random_int_range) IA__g_random_int_range __attribute((visibility("hidden"))); -#define g_random_int_range IA__g_random_int_range - -extern __typeof (g_random_set_seed) IA__g_random_set_seed __attribute((visibility("hidden"))); -#define g_random_set_seed IA__g_random_set_seed - -extern __typeof (g_rand_set_seed) IA__g_rand_set_seed __attribute((visibility("hidden"))); -#define g_rand_set_seed IA__g_rand_set_seed - -extern __typeof (g_rand_set_seed_array) IA__g_rand_set_seed_array __attribute((visibility("hidden"))); -#define g_rand_set_seed_array IA__g_rand_set_seed_array - -#endif -#endif -#if IN_HEADER(__G_REL_H__) -#if IN_FILE(__G_REL_C__) -extern __typeof (g_relation_count) IA__g_relation_count __attribute((visibility("hidden"))); -#define g_relation_count IA__g_relation_count - -extern __typeof (g_relation_delete) IA__g_relation_delete __attribute((visibility("hidden"))); -#define g_relation_delete IA__g_relation_delete - -extern __typeof (g_relation_destroy) IA__g_relation_destroy __attribute((visibility("hidden"))); -#define g_relation_destroy IA__g_relation_destroy - -extern __typeof (g_relation_exists) IA__g_relation_exists __attribute((visibility("hidden"))); -#define g_relation_exists IA__g_relation_exists - -extern __typeof (g_relation_index) IA__g_relation_index __attribute((visibility("hidden"))); -#define g_relation_index IA__g_relation_index - -extern __typeof (g_relation_insert) IA__g_relation_insert __attribute((visibility("hidden"))); -#define g_relation_insert IA__g_relation_insert - -extern __typeof (g_relation_new) IA__g_relation_new __attribute((visibility("hidden"))); -#define g_relation_new IA__g_relation_new - -extern __typeof (g_relation_print) IA__g_relation_print __attribute((visibility("hidden"))); -#define g_relation_print IA__g_relation_print - -extern __typeof (g_relation_select) IA__g_relation_select __attribute((visibility("hidden"))); -#define g_relation_select IA__g_relation_select - -extern __typeof (g_tuples_destroy) IA__g_tuples_destroy __attribute((visibility("hidden"))); -#define g_tuples_destroy IA__g_tuples_destroy - -extern __typeof (g_tuples_index) IA__g_tuples_index __attribute((visibility("hidden"))); -#define g_tuples_index IA__g_tuples_index - -#endif -#endif -#if IN_HEADER(__G_SCANNER_H__) -#if IN_FILE(__G_SCANNER_C__) -extern __typeof (g_scanner_cur_line) IA__g_scanner_cur_line __attribute((visibility("hidden"))); -#define g_scanner_cur_line IA__g_scanner_cur_line - -extern __typeof (g_scanner_cur_position) IA__g_scanner_cur_position __attribute((visibility("hidden"))); -#define g_scanner_cur_position IA__g_scanner_cur_position - -extern __typeof (g_scanner_cur_token) IA__g_scanner_cur_token __attribute((visibility("hidden"))); -#define g_scanner_cur_token IA__g_scanner_cur_token - -extern __typeof (g_scanner_cur_value) IA__g_scanner_cur_value __attribute((visibility("hidden"))); -#define g_scanner_cur_value IA__g_scanner_cur_value - -extern __typeof (g_scanner_destroy) IA__g_scanner_destroy __attribute((visibility("hidden"))); -#define g_scanner_destroy IA__g_scanner_destroy - -extern __typeof (g_scanner_eof) IA__g_scanner_eof __attribute((visibility("hidden"))); -#define g_scanner_eof IA__g_scanner_eof - -extern __typeof (g_scanner_error) IA__g_scanner_error __attribute((visibility("hidden"))) G_GNUC_PRINTF(2,3); -#define g_scanner_error IA__g_scanner_error - -extern __typeof (g_scanner_get_next_token) IA__g_scanner_get_next_token __attribute((visibility("hidden"))); -#define g_scanner_get_next_token IA__g_scanner_get_next_token - -extern __typeof (g_scanner_input_file) IA__g_scanner_input_file __attribute((visibility("hidden"))); -#define g_scanner_input_file IA__g_scanner_input_file - -extern __typeof (g_scanner_input_text) IA__g_scanner_input_text __attribute((visibility("hidden"))); -#define g_scanner_input_text IA__g_scanner_input_text - -extern __typeof (g_scanner_lookup_symbol) IA__g_scanner_lookup_symbol __attribute((visibility("hidden"))); -#define g_scanner_lookup_symbol IA__g_scanner_lookup_symbol - -extern __typeof (g_scanner_new) IA__g_scanner_new __attribute((visibility("hidden"))); -#define g_scanner_new IA__g_scanner_new - -extern __typeof (g_scanner_peek_next_token) IA__g_scanner_peek_next_token __attribute((visibility("hidden"))); -#define g_scanner_peek_next_token IA__g_scanner_peek_next_token - -extern __typeof (g_scanner_scope_add_symbol) IA__g_scanner_scope_add_symbol __attribute((visibility("hidden"))); -#define g_scanner_scope_add_symbol IA__g_scanner_scope_add_symbol - -extern __typeof (g_scanner_scope_foreach_symbol) IA__g_scanner_scope_foreach_symbol __attribute((visibility("hidden"))); -#define g_scanner_scope_foreach_symbol IA__g_scanner_scope_foreach_symbol - -extern __typeof (g_scanner_scope_lookup_symbol) IA__g_scanner_scope_lookup_symbol __attribute((visibility("hidden"))); -#define g_scanner_scope_lookup_symbol IA__g_scanner_scope_lookup_symbol - -extern __typeof (g_scanner_scope_remove_symbol) IA__g_scanner_scope_remove_symbol __attribute((visibility("hidden"))); -#define g_scanner_scope_remove_symbol IA__g_scanner_scope_remove_symbol - -extern __typeof (g_scanner_set_scope) IA__g_scanner_set_scope __attribute((visibility("hidden"))); -#define g_scanner_set_scope IA__g_scanner_set_scope - -extern __typeof (g_scanner_sync_file_offset) IA__g_scanner_sync_file_offset __attribute((visibility("hidden"))); -#define g_scanner_sync_file_offset IA__g_scanner_sync_file_offset - -extern __typeof (g_scanner_unexp_token) IA__g_scanner_unexp_token __attribute((visibility("hidden"))); -#define g_scanner_unexp_token IA__g_scanner_unexp_token - -extern __typeof (g_scanner_warn) IA__g_scanner_warn __attribute((visibility("hidden"))) G_GNUC_PRINTF(2,3); -#define g_scanner_warn IA__g_scanner_warn - -#endif -#endif -#if IN_HEADER(__G_SEQUENCE_H__) -#if IN_FILE(__G_SEQUENCE_C__) -extern __typeof (g_sequence_new) IA__g_sequence_new __attribute((visibility("hidden"))); -#define g_sequence_new IA__g_sequence_new - -extern __typeof (g_sequence_free) IA__g_sequence_free __attribute((visibility("hidden"))); -#define g_sequence_free IA__g_sequence_free - -extern __typeof (g_sequence_get_length) IA__g_sequence_get_length __attribute((visibility("hidden"))); -#define g_sequence_get_length IA__g_sequence_get_length - -extern __typeof (g_sequence_foreach) IA__g_sequence_foreach __attribute((visibility("hidden"))); -#define g_sequence_foreach IA__g_sequence_foreach - -extern __typeof (g_sequence_foreach_range) IA__g_sequence_foreach_range __attribute((visibility("hidden"))); -#define g_sequence_foreach_range IA__g_sequence_foreach_range - -extern __typeof (g_sequence_sort) IA__g_sequence_sort __attribute((visibility("hidden"))); -#define g_sequence_sort IA__g_sequence_sort - -extern __typeof (g_sequence_sort_iter) IA__g_sequence_sort_iter __attribute((visibility("hidden"))); -#define g_sequence_sort_iter IA__g_sequence_sort_iter - -extern __typeof (g_sequence_get_begin_iter) IA__g_sequence_get_begin_iter __attribute((visibility("hidden"))); -#define g_sequence_get_begin_iter IA__g_sequence_get_begin_iter - -extern __typeof (g_sequence_get_end_iter) IA__g_sequence_get_end_iter __attribute((visibility("hidden"))); -#define g_sequence_get_end_iter IA__g_sequence_get_end_iter - -extern __typeof (g_sequence_get_iter_at_pos) IA__g_sequence_get_iter_at_pos __attribute((visibility("hidden"))); -#define g_sequence_get_iter_at_pos IA__g_sequence_get_iter_at_pos - -extern __typeof (g_sequence_append) IA__g_sequence_append __attribute((visibility("hidden"))); -#define g_sequence_append IA__g_sequence_append - -extern __typeof (g_sequence_prepend) IA__g_sequence_prepend __attribute((visibility("hidden"))); -#define g_sequence_prepend IA__g_sequence_prepend - -extern __typeof (g_sequence_insert_before) IA__g_sequence_insert_before __attribute((visibility("hidden"))); -#define g_sequence_insert_before IA__g_sequence_insert_before - -extern __typeof (g_sequence_move) IA__g_sequence_move __attribute((visibility("hidden"))); -#define g_sequence_move IA__g_sequence_move - -extern __typeof (g_sequence_swap) IA__g_sequence_swap __attribute((visibility("hidden"))); -#define g_sequence_swap IA__g_sequence_swap - -extern __typeof (g_sequence_insert_sorted) IA__g_sequence_insert_sorted __attribute((visibility("hidden"))); -#define g_sequence_insert_sorted IA__g_sequence_insert_sorted - -extern __typeof (g_sequence_insert_sorted_iter) IA__g_sequence_insert_sorted_iter __attribute((visibility("hidden"))); -#define g_sequence_insert_sorted_iter IA__g_sequence_insert_sorted_iter - -extern __typeof (g_sequence_sort_changed) IA__g_sequence_sort_changed __attribute((visibility("hidden"))); -#define g_sequence_sort_changed IA__g_sequence_sort_changed - -extern __typeof (g_sequence_sort_changed_iter) IA__g_sequence_sort_changed_iter __attribute((visibility("hidden"))); -#define g_sequence_sort_changed_iter IA__g_sequence_sort_changed_iter - -extern __typeof (g_sequence_remove) IA__g_sequence_remove __attribute((visibility("hidden"))); -#define g_sequence_remove IA__g_sequence_remove - -extern __typeof (g_sequence_remove_range) IA__g_sequence_remove_range __attribute((visibility("hidden"))); -#define g_sequence_remove_range IA__g_sequence_remove_range - -extern __typeof (g_sequence_move_range) IA__g_sequence_move_range __attribute((visibility("hidden"))); -#define g_sequence_move_range IA__g_sequence_move_range - -extern __typeof (g_sequence_search) IA__g_sequence_search __attribute((visibility("hidden"))); -#define g_sequence_search IA__g_sequence_search - -extern __typeof (g_sequence_search_iter) IA__g_sequence_search_iter __attribute((visibility("hidden"))); -#define g_sequence_search_iter IA__g_sequence_search_iter - -extern __typeof (g_sequence_get) IA__g_sequence_get __attribute((visibility("hidden"))); -#define g_sequence_get IA__g_sequence_get - -extern __typeof (g_sequence_set) IA__g_sequence_set __attribute((visibility("hidden"))); -#define g_sequence_set IA__g_sequence_set - -extern __typeof (g_sequence_iter_is_begin) IA__g_sequence_iter_is_begin __attribute((visibility("hidden"))); -#define g_sequence_iter_is_begin IA__g_sequence_iter_is_begin - -extern __typeof (g_sequence_iter_is_end) IA__g_sequence_iter_is_end __attribute((visibility("hidden"))); -#define g_sequence_iter_is_end IA__g_sequence_iter_is_end - -extern __typeof (g_sequence_iter_next) IA__g_sequence_iter_next __attribute((visibility("hidden"))); -#define g_sequence_iter_next IA__g_sequence_iter_next - -extern __typeof (g_sequence_iter_prev) IA__g_sequence_iter_prev __attribute((visibility("hidden"))); -#define g_sequence_iter_prev IA__g_sequence_iter_prev - -extern __typeof (g_sequence_iter_get_position) IA__g_sequence_iter_get_position __attribute((visibility("hidden"))); -#define g_sequence_iter_get_position IA__g_sequence_iter_get_position - -extern __typeof (g_sequence_iter_move) IA__g_sequence_iter_move __attribute((visibility("hidden"))); -#define g_sequence_iter_move IA__g_sequence_iter_move - -extern __typeof (g_sequence_iter_get_sequence) IA__g_sequence_iter_get_sequence __attribute((visibility("hidden"))); -#define g_sequence_iter_get_sequence IA__g_sequence_iter_get_sequence - -extern __typeof (g_sequence_iter_compare) IA__g_sequence_iter_compare __attribute((visibility("hidden"))); -#define g_sequence_iter_compare IA__g_sequence_iter_compare - -extern __typeof (g_sequence_range_get_midpoint) IA__g_sequence_range_get_midpoint __attribute((visibility("hidden"))); -#define g_sequence_range_get_midpoint IA__g_sequence_range_get_midpoint - -#endif -#endif -#if IN_HEADER(__G_SHELL_H__) -#if IN_FILE(__G_SHELL_C__) -extern __typeof (g_shell_error_quark) IA__g_shell_error_quark __attribute((visibility("hidden"))); -#define g_shell_error_quark IA__g_shell_error_quark - -extern __typeof (g_shell_parse_argv) IA__g_shell_parse_argv __attribute((visibility("hidden"))); -#define g_shell_parse_argv IA__g_shell_parse_argv - -extern __typeof (g_shell_quote) IA__g_shell_quote __attribute((visibility("hidden"))); -#define g_shell_quote IA__g_shell_quote - -extern __typeof (g_shell_unquote) IA__g_shell_unquote __attribute((visibility("hidden"))); -#define g_shell_unquote IA__g_shell_unquote - -#endif -#endif -#if IN_HEADER(__G_SLIST_H__) -#if IN_FILE(__G_SLIST_C__) -extern __typeof (g_slist_alloc) IA__g_slist_alloc __attribute((visibility("hidden"))); -#define g_slist_alloc IA__g_slist_alloc - -extern __typeof (g_slist_append) IA__g_slist_append __attribute((visibility("hidden"))); -#define g_slist_append IA__g_slist_append - -extern __typeof (g_slist_concat) IA__g_slist_concat __attribute((visibility("hidden"))); -#define g_slist_concat IA__g_slist_concat - -extern __typeof (g_slist_copy) IA__g_slist_copy __attribute((visibility("hidden"))); -#define g_slist_copy IA__g_slist_copy - -extern __typeof (g_slist_delete_link) IA__g_slist_delete_link __attribute((visibility("hidden"))); -#define g_slist_delete_link IA__g_slist_delete_link - -extern __typeof (g_slist_find) IA__g_slist_find __attribute((visibility("hidden"))); -#define g_slist_find IA__g_slist_find - -extern __typeof (g_slist_find_custom) IA__g_slist_find_custom __attribute((visibility("hidden"))); -#define g_slist_find_custom IA__g_slist_find_custom - -extern __typeof (g_slist_foreach) IA__g_slist_foreach __attribute((visibility("hidden"))); -#define g_slist_foreach IA__g_slist_foreach - -extern __typeof (g_slist_free) IA__g_slist_free __attribute((visibility("hidden"))); -#define g_slist_free IA__g_slist_free - -extern __typeof (g_slist_free_1) IA__g_slist_free_1 __attribute((visibility("hidden"))); -#define g_slist_free_1 IA__g_slist_free_1 - -extern __typeof (g_slist_index) IA__g_slist_index __attribute((visibility("hidden"))); -#define g_slist_index IA__g_slist_index - -extern __typeof (g_slist_insert) IA__g_slist_insert __attribute((visibility("hidden"))); -#define g_slist_insert IA__g_slist_insert - -extern __typeof (g_slist_insert_before) IA__g_slist_insert_before __attribute((visibility("hidden"))); -#define g_slist_insert_before IA__g_slist_insert_before - -extern __typeof (g_slist_insert_sorted) IA__g_slist_insert_sorted __attribute((visibility("hidden"))); -#define g_slist_insert_sorted IA__g_slist_insert_sorted - -extern __typeof (g_slist_insert_sorted_with_data) IA__g_slist_insert_sorted_with_data __attribute((visibility("hidden"))); -#define g_slist_insert_sorted_with_data IA__g_slist_insert_sorted_with_data - -extern __typeof (g_slist_last) IA__g_slist_last __attribute((visibility("hidden"))); -#define g_slist_last IA__g_slist_last - -extern __typeof (g_slist_length) IA__g_slist_length __attribute((visibility("hidden"))); -#define g_slist_length IA__g_slist_length - -extern __typeof (g_slist_nth) IA__g_slist_nth __attribute((visibility("hidden"))); -#define g_slist_nth IA__g_slist_nth - -extern __typeof (g_slist_nth_data) IA__g_slist_nth_data __attribute((visibility("hidden"))); -#define g_slist_nth_data IA__g_slist_nth_data - -#ifndef G_DISABLE_DEPRECATED -extern __typeof (g_slist_pop_allocator) IA__g_slist_pop_allocator __attribute((visibility("hidden"))); -#define g_slist_pop_allocator IA__g_slist_pop_allocator - -#endif -extern __typeof (g_slist_position) IA__g_slist_position __attribute((visibility("hidden"))); -#define g_slist_position IA__g_slist_position - -extern __typeof (g_slist_prepend) IA__g_slist_prepend __attribute((visibility("hidden"))); -#define g_slist_prepend IA__g_slist_prepend - -#ifndef G_DISABLE_DEPRECATED -extern __typeof (g_slist_push_allocator) IA__g_slist_push_allocator __attribute((visibility("hidden"))); -#define g_slist_push_allocator IA__g_slist_push_allocator - -#endif -extern __typeof (g_slist_remove) IA__g_slist_remove __attribute((visibility("hidden"))); -#define g_slist_remove IA__g_slist_remove - -extern __typeof (g_slist_remove_all) IA__g_slist_remove_all __attribute((visibility("hidden"))); -#define g_slist_remove_all IA__g_slist_remove_all - -extern __typeof (g_slist_remove_link) IA__g_slist_remove_link __attribute((visibility("hidden"))); -#define g_slist_remove_link IA__g_slist_remove_link - -extern __typeof (g_slist_reverse) IA__g_slist_reverse __attribute((visibility("hidden"))); -#define g_slist_reverse IA__g_slist_reverse - -extern __typeof (g_slist_sort) IA__g_slist_sort __attribute((visibility("hidden"))); -#define g_slist_sort IA__g_slist_sort - -extern __typeof (g_slist_sort_with_data) IA__g_slist_sort_with_data __attribute((visibility("hidden"))); -#define g_slist_sort_with_data IA__g_slist_sort_with_data - -#endif -#endif -#if IN_HEADER(__G_SPAWN_H__) -#if IN_FILE(__G_SPAWN_C__) -#ifndef _WIN64 -extern __typeof (g_spawn_async) IA__g_spawn_async __attribute((visibility("hidden"))); -#define g_spawn_async IA__g_spawn_async - -extern __typeof (g_spawn_async_with_pipes) IA__g_spawn_async_with_pipes __attribute((visibility("hidden"))); -#define g_spawn_async_with_pipes IA__g_spawn_async_with_pipes - -#endif -extern __typeof (g_spawn_close_pid) IA__g_spawn_close_pid __attribute((visibility("hidden"))); -#define g_spawn_close_pid IA__g_spawn_close_pid - -#ifndef _WIN64 -extern __typeof (g_spawn_command_line_async) IA__g_spawn_command_line_async __attribute((visibility("hidden"))); -#define g_spawn_command_line_async IA__g_spawn_command_line_async - -extern __typeof (g_spawn_command_line_sync) IA__g_spawn_command_line_sync __attribute((visibility("hidden"))); -#define g_spawn_command_line_sync IA__g_spawn_command_line_sync - -#endif -extern __typeof (g_spawn_error_quark) IA__g_spawn_error_quark __attribute((visibility("hidden"))); -#define g_spawn_error_quark IA__g_spawn_error_quark - -#ifndef _WIN64 -extern __typeof (g_spawn_sync) IA__g_spawn_sync __attribute((visibility("hidden"))); -#define g_spawn_sync IA__g_spawn_sync - -#endif -#ifdef G_OS_WIN32 -extern __typeof (g_spawn_async_utf8) IA__g_spawn_async_utf8 __attribute((visibility("hidden"))); -#define g_spawn_async_utf8 IA__g_spawn_async_utf8 - -extern __typeof (g_spawn_async_with_pipes_utf8) IA__g_spawn_async_with_pipes_utf8 __attribute((visibility("hidden"))); -#define g_spawn_async_with_pipes_utf8 IA__g_spawn_async_with_pipes_utf8 - -extern __typeof (g_spawn_command_line_async_utf8) IA__g_spawn_command_line_async_utf8 __attribute((visibility("hidden"))); -#define g_spawn_command_line_async_utf8 IA__g_spawn_command_line_async_utf8 - -extern __typeof (g_spawn_command_line_sync_utf8) IA__g_spawn_command_line_sync_utf8 __attribute((visibility("hidden"))); -#define g_spawn_command_line_sync_utf8 IA__g_spawn_command_line_sync_utf8 - -extern __typeof (g_spawn_sync_utf8) IA__g_spawn_sync_utf8 __attribute((visibility("hidden"))); -#define g_spawn_sync_utf8 IA__g_spawn_sync_utf8 - -#endif -#endif -#endif -#if IN_HEADER(__G_STDIO_H__) -#if IN_FILE(__G_STDIO_C__) -#if !defined(G_OS_UNIX) || defined(G_STDIO_NO_WRAP_ON_UNIX) -extern __typeof (g_chmod) IA__g_chmod __attribute((visibility("hidden"))); -#define g_chmod IA__g_chmod - -extern __typeof (g_open) IA__g_open __attribute((visibility("hidden"))); -#define g_open IA__g_open - -extern __typeof (g_creat) IA__g_creat __attribute((visibility("hidden"))); -#define g_creat IA__g_creat - -extern __typeof (g_rename) IA__g_rename __attribute((visibility("hidden"))); -#define g_rename IA__g_rename - -extern __typeof (g_mkdir) IA__g_mkdir __attribute((visibility("hidden"))); -#define g_mkdir IA__g_mkdir - -extern __typeof (g_stat) IA__g_stat __attribute((visibility("hidden"))); -#define g_stat IA__g_stat - -extern __typeof (g_lstat) IA__g_lstat __attribute((visibility("hidden"))); -#define g_lstat IA__g_lstat - -extern __typeof (g_remove) IA__g_remove __attribute((visibility("hidden"))); -#define g_remove IA__g_remove - -extern __typeof (g_fopen) IA__g_fopen __attribute((visibility("hidden"))); -#define g_fopen IA__g_fopen - -extern __typeof (g_freopen) IA__g_freopen __attribute((visibility("hidden"))); -#define g_freopen IA__g_freopen - -extern __typeof (g_utime) IA__g_utime __attribute((visibility("hidden"))); -#define g_utime IA__g_utime - -#endif -extern __typeof (g_access) IA__g_access __attribute((visibility("hidden"))); -#define g_access IA__g_access - -extern __typeof (g_chdir) IA__g_chdir __attribute((visibility("hidden"))); -#define g_chdir IA__g_chdir - -extern __typeof (g_unlink) IA__g_unlink __attribute((visibility("hidden"))); -#define g_unlink IA__g_unlink - -extern __typeof (g_rmdir) IA__g_rmdir __attribute((visibility("hidden"))); -#define g_rmdir IA__g_rmdir - -#endif -#endif -#if IN_HEADER(__G_STRFUNCS_H__) -#if IN_FILE(__G_STRFUNCS_C__) -extern __typeof (g_ascii_digit_value) IA__g_ascii_digit_value __attribute((visibility("hidden"))) G_GNUC_CONST; -#define g_ascii_digit_value IA__g_ascii_digit_value - -extern __typeof (g_ascii_dtostr) IA__g_ascii_dtostr __attribute((visibility("hidden"))); -#define g_ascii_dtostr IA__g_ascii_dtostr - -extern __typeof (g_ascii_formatd) IA__g_ascii_formatd __attribute((visibility("hidden"))); -#define g_ascii_formatd IA__g_ascii_formatd - -extern __typeof (g_ascii_strdown) IA__g_ascii_strdown __attribute((visibility("hidden"))) G_GNUC_MALLOC; -#define g_ascii_strdown IA__g_ascii_strdown - -extern __typeof (g_ascii_strtod) IA__g_ascii_strtod __attribute((visibility("hidden"))); -#define g_ascii_strtod IA__g_ascii_strtod - -extern __typeof (g_ascii_strtoull) IA__g_ascii_strtoull __attribute((visibility("hidden"))); -#define g_ascii_strtoull IA__g_ascii_strtoull - -extern __typeof (g_ascii_strtoll) IA__g_ascii_strtoll __attribute((visibility("hidden"))); -#define g_ascii_strtoll IA__g_ascii_strtoll - -extern __typeof (g_ascii_strup) IA__g_ascii_strup __attribute((visibility("hidden"))) G_GNUC_MALLOC; -#define g_ascii_strup IA__g_ascii_strup - -extern __typeof (g_ascii_tolower) IA__g_ascii_tolower __attribute((visibility("hidden"))) G_GNUC_CONST; -#define g_ascii_tolower IA__g_ascii_tolower - -extern __typeof (g_ascii_toupper) IA__g_ascii_toupper __attribute((visibility("hidden"))) G_GNUC_CONST; -#define g_ascii_toupper IA__g_ascii_toupper - -extern __typeof (g_ascii_xdigit_value) IA__g_ascii_xdigit_value __attribute((visibility("hidden"))) G_GNUC_CONST; -#define g_ascii_xdigit_value IA__g_ascii_xdigit_value - -extern __typeof (g_ascii_strcasecmp) IA__g_ascii_strcasecmp __attribute((visibility("hidden"))); -#define g_ascii_strcasecmp IA__g_ascii_strcasecmp - -extern __typeof (g_ascii_strncasecmp) IA__g_ascii_strncasecmp __attribute((visibility("hidden"))); -#define g_ascii_strncasecmp IA__g_ascii_strncasecmp - -extern __typeof (g_memdup) IA__g_memdup __attribute((visibility("hidden"))) G_GNUC_MALLOC; -#define g_memdup IA__g_memdup - -extern __typeof (g_stpcpy) IA__g_stpcpy __attribute((visibility("hidden"))); -#define g_stpcpy IA__g_stpcpy - -extern __typeof (g_strcanon) IA__g_strcanon __attribute((visibility("hidden"))); -#define g_strcanon IA__g_strcanon - -extern __typeof (g_strchomp) IA__g_strchomp __attribute((visibility("hidden"))); -#define g_strchomp IA__g_strchomp - -extern __typeof (g_strchug) IA__g_strchug __attribute((visibility("hidden"))); -#define g_strchug IA__g_strchug - -extern __typeof (g_strcompress) IA__g_strcompress __attribute((visibility("hidden"))) G_GNUC_MALLOC; -#define g_strcompress IA__g_strcompress - -extern __typeof (g_strconcat) IA__g_strconcat __attribute((visibility("hidden"))) G_GNUC_MALLOC G_GNUC_NULL_TERMINATED; -#define g_strconcat IA__g_strconcat - -extern __typeof (g_strdelimit) IA__g_strdelimit __attribute((visibility("hidden"))); -#define g_strdelimit IA__g_strdelimit - -extern __typeof (g_strdup) IA__g_strdup __attribute((visibility("hidden"))) G_GNUC_MALLOC; -#define g_strdup IA__g_strdup - -extern __typeof (g_strdup_printf) IA__g_strdup_printf __attribute((visibility("hidden"))) G_GNUC_PRINTF(1,2) G_GNUC_MALLOC; -#define g_strdup_printf IA__g_strdup_printf - -extern __typeof (g_strdupv) IA__g_strdupv __attribute((visibility("hidden"))) G_GNUC_MALLOC; -#define g_strdupv IA__g_strdupv - -extern __typeof (g_strdup_vprintf) IA__g_strdup_vprintf __attribute((visibility("hidden"))) G_GNUC_MALLOC; -#define g_strdup_vprintf IA__g_strdup_vprintf - -extern __typeof (g_strerror) IA__g_strerror __attribute((visibility("hidden"))) G_GNUC_CONST; -#define g_strerror IA__g_strerror - -extern __typeof (g_strescape) IA__g_strescape __attribute((visibility("hidden"))) G_GNUC_MALLOC; -#define g_strescape IA__g_strescape - -extern __typeof (g_strfreev) IA__g_strfreev __attribute((visibility("hidden"))); -#define g_strfreev IA__g_strfreev - -extern __typeof (g_str_has_prefix) IA__g_str_has_prefix __attribute((visibility("hidden"))); -#define g_str_has_prefix IA__g_str_has_prefix - -extern __typeof (g_str_has_suffix) IA__g_str_has_suffix __attribute((visibility("hidden"))); -#define g_str_has_suffix IA__g_str_has_suffix - -extern __typeof (g_strjoin) IA__g_strjoin __attribute((visibility("hidden"))) G_GNUC_MALLOC G_GNUC_NULL_TERMINATED; -#define g_strjoin IA__g_strjoin - -extern __typeof (g_strjoinv) IA__g_strjoinv __attribute((visibility("hidden"))) G_GNUC_MALLOC; -#define g_strjoinv IA__g_strjoinv - -extern __typeof (g_strlcat) IA__g_strlcat __attribute((visibility("hidden"))); -#define g_strlcat IA__g_strlcat - -extern __typeof (g_strlcpy) IA__g_strlcpy __attribute((visibility("hidden"))); -#define g_strlcpy IA__g_strlcpy - -extern __typeof (g_strndup) IA__g_strndup __attribute((visibility("hidden"))) G_GNUC_MALLOC; -#define g_strndup IA__g_strndup - -extern __typeof (g_strnfill) IA__g_strnfill __attribute((visibility("hidden"))) G_GNUC_MALLOC; -#define g_strnfill IA__g_strnfill - -extern __typeof (g_strreverse) IA__g_strreverse __attribute((visibility("hidden"))); -#define g_strreverse IA__g_strreverse - -extern __typeof (g_strrstr) IA__g_strrstr __attribute((visibility("hidden"))); -#define g_strrstr IA__g_strrstr - -extern __typeof (g_strrstr_len) IA__g_strrstr_len __attribute((visibility("hidden"))); -#define g_strrstr_len IA__g_strrstr_len - -extern __typeof (g_strsignal) IA__g_strsignal __attribute((visibility("hidden"))) G_GNUC_CONST; -#define g_strsignal IA__g_strsignal - -extern __typeof (g_strsplit) IA__g_strsplit __attribute((visibility("hidden"))) G_GNUC_MALLOC; -#define g_strsplit IA__g_strsplit - -extern __typeof (g_strsplit_set) IA__g_strsplit_set __attribute((visibility("hidden"))) G_GNUC_MALLOC; -#define g_strsplit_set IA__g_strsplit_set - -extern __typeof (g_strstr_len) IA__g_strstr_len __attribute((visibility("hidden"))); -#define g_strstr_len IA__g_strstr_len - -extern __typeof (g_strtod) IA__g_strtod __attribute((visibility("hidden"))); -#define g_strtod IA__g_strtod - -#ifndef G_DISABLE_DEPRECATED -extern __typeof (g_strcasecmp) IA__g_strcasecmp __attribute((visibility("hidden"))); -#define g_strcasecmp IA__g_strcasecmp - -extern __typeof (g_strncasecmp) IA__g_strncasecmp __attribute((visibility("hidden"))); -#define g_strncasecmp IA__g_strncasecmp - -extern __typeof (g_strup) IA__g_strup __attribute((visibility("hidden"))); -#define g_strup IA__g_strup - -extern __typeof (g_strdown) IA__g_strdown __attribute((visibility("hidden"))); -#define g_strdown IA__g_strdown - -#endif -extern __typeof (g_strv_length) IA__g_strv_length __attribute((visibility("hidden"))); -#define g_strv_length IA__g_strv_length - -extern __typeof (g_strip_context) IA__g_strip_context __attribute((visibility("hidden"))) G_GNUC_FORMAT(1); -#define g_strip_context IA__g_strip_context - -extern __typeof (g_dgettext) IA__g_dgettext __attribute((visibility("hidden"))) G_GNUC_FORMAT(2); -#define g_dgettext IA__g_dgettext - -extern __typeof (g_dngettext) IA__g_dngettext __attribute((visibility("hidden"))) G_GNUC_FORMAT(3); -#define g_dngettext IA__g_dngettext - -extern __typeof (g_dpgettext) IA__g_dpgettext __attribute((visibility("hidden"))) G_GNUC_FORMAT(2); -#define g_dpgettext IA__g_dpgettext - -extern __typeof (g_dpgettext2) IA__g_dpgettext2 __attribute((visibility("hidden"))) G_GNUC_FORMAT(3); -#define g_dpgettext2 IA__g_dpgettext2 - -#endif -#endif -#if IN_HEADER(__G_URI_FUNCS_H__) -#if IN_FILE(__G_URI_FUNCS_C__) -extern __typeof (g_uri_unescape_string) IA__g_uri_unescape_string __attribute((visibility("hidden"))); -#define g_uri_unescape_string IA__g_uri_unescape_string - -extern __typeof (g_uri_unescape_segment) IA__g_uri_unescape_segment __attribute((visibility("hidden"))); -#define g_uri_unescape_segment IA__g_uri_unescape_segment - -extern __typeof (g_uri_parse_scheme) IA__g_uri_parse_scheme __attribute((visibility("hidden"))); -#define g_uri_parse_scheme IA__g_uri_parse_scheme - -extern __typeof (g_uri_escape_string) IA__g_uri_escape_string __attribute((visibility("hidden"))); -#define g_uri_escape_string IA__g_uri_escape_string - -#endif -#endif -#if IN_HEADER(__G_STRING_H__) -#if IN_FILE(__G_STRING_C__) -extern __typeof (g_string_append) IA__g_string_append __attribute((visibility("hidden"))); -#define g_string_append IA__g_string_append - -extern __typeof (g_string_append_len) IA__g_string_append_len __attribute((visibility("hidden"))); -#define g_string_append_len IA__g_string_append_len - -extern __typeof (g_string_append_printf) IA__g_string_append_printf __attribute((visibility("hidden"))) G_GNUC_PRINTF(2,3); -#define g_string_append_printf IA__g_string_append_printf - -extern __typeof (g_string_append_unichar) IA__g_string_append_unichar __attribute((visibility("hidden"))); -#define g_string_append_unichar IA__g_string_append_unichar - -extern __typeof (g_string_append_vprintf) IA__g_string_append_vprintf __attribute((visibility("hidden"))); -#define g_string_append_vprintf IA__g_string_append_vprintf - -extern __typeof (g_string_ascii_down) IA__g_string_ascii_down __attribute((visibility("hidden"))); -#define g_string_ascii_down IA__g_string_ascii_down - -extern __typeof (g_string_ascii_up) IA__g_string_ascii_up __attribute((visibility("hidden"))); -#define g_string_ascii_up IA__g_string_ascii_up - -extern __typeof (g_string_assign) IA__g_string_assign __attribute((visibility("hidden"))); -#define g_string_assign IA__g_string_assign - -extern __typeof (g_string_chunk_free) IA__g_string_chunk_free __attribute((visibility("hidden"))); -#define g_string_chunk_free IA__g_string_chunk_free - -extern __typeof (g_string_chunk_clear) IA__g_string_chunk_clear __attribute((visibility("hidden"))); -#define g_string_chunk_clear IA__g_string_chunk_clear - -extern __typeof (g_string_chunk_insert) IA__g_string_chunk_insert __attribute((visibility("hidden"))); -#define g_string_chunk_insert IA__g_string_chunk_insert - -extern __typeof (g_string_chunk_insert_const) IA__g_string_chunk_insert_const __attribute((visibility("hidden"))); -#define g_string_chunk_insert_const IA__g_string_chunk_insert_const - -extern __typeof (g_string_chunk_insert_len) IA__g_string_chunk_insert_len __attribute((visibility("hidden"))); -#define g_string_chunk_insert_len IA__g_string_chunk_insert_len - -extern __typeof (g_string_chunk_new) IA__g_string_chunk_new __attribute((visibility("hidden"))); -#define g_string_chunk_new IA__g_string_chunk_new - -extern __typeof (g_string_equal) IA__g_string_equal __attribute((visibility("hidden"))); -#define g_string_equal IA__g_string_equal - -extern __typeof (g_string_erase) IA__g_string_erase __attribute((visibility("hidden"))); -#define g_string_erase IA__g_string_erase - -extern __typeof (g_string_free) IA__g_string_free __attribute((visibility("hidden"))); -#define g_string_free IA__g_string_free - -extern __typeof (g_string_hash) IA__g_string_hash __attribute((visibility("hidden"))); -#define g_string_hash IA__g_string_hash - -extern __typeof (g_string_insert) IA__g_string_insert __attribute((visibility("hidden"))); -#define g_string_insert IA__g_string_insert - -extern __typeof (g_string_insert_c) IA__g_string_insert_c __attribute((visibility("hidden"))); -#define g_string_insert_c IA__g_string_insert_c - -extern __typeof (g_string_insert_len) IA__g_string_insert_len __attribute((visibility("hidden"))); -#define g_string_insert_len IA__g_string_insert_len - -extern __typeof (g_string_insert_unichar) IA__g_string_insert_unichar __attribute((visibility("hidden"))); -#define g_string_insert_unichar IA__g_string_insert_unichar - -extern __typeof (g_string_new) IA__g_string_new __attribute((visibility("hidden"))); -#define g_string_new IA__g_string_new - -extern __typeof (g_string_new_len) IA__g_string_new_len __attribute((visibility("hidden"))); -#define g_string_new_len IA__g_string_new_len - -extern __typeof (g_string_overwrite) IA__g_string_overwrite __attribute((visibility("hidden"))); -#define g_string_overwrite IA__g_string_overwrite - -extern __typeof (g_string_overwrite_len) IA__g_string_overwrite_len __attribute((visibility("hidden"))); -#define g_string_overwrite_len IA__g_string_overwrite_len - -extern __typeof (g_string_prepend) IA__g_string_prepend __attribute((visibility("hidden"))); -#define g_string_prepend IA__g_string_prepend - -extern __typeof (g_string_prepend_c) IA__g_string_prepend_c __attribute((visibility("hidden"))); -#define g_string_prepend_c IA__g_string_prepend_c - -extern __typeof (g_string_prepend_len) IA__g_string_prepend_len __attribute((visibility("hidden"))); -#define g_string_prepend_len IA__g_string_prepend_len - -extern __typeof (g_string_prepend_unichar) IA__g_string_prepend_unichar __attribute((visibility("hidden"))); -#define g_string_prepend_unichar IA__g_string_prepend_unichar - -extern __typeof (g_string_printf) IA__g_string_printf __attribute((visibility("hidden"))) G_GNUC_PRINTF(2,3); -#define g_string_printf IA__g_string_printf - -extern __typeof (g_string_set_size) IA__g_string_set_size __attribute((visibility("hidden"))); -#define g_string_set_size IA__g_string_set_size - -extern __typeof (g_string_sized_new) IA__g_string_sized_new __attribute((visibility("hidden"))); -#define g_string_sized_new IA__g_string_sized_new - -extern __typeof (g_string_truncate) IA__g_string_truncate __attribute((visibility("hidden"))); -#define g_string_truncate IA__g_string_truncate - -extern __typeof (g_string_append_uri_escaped) IA__g_string_append_uri_escaped __attribute((visibility("hidden"))); -#define g_string_append_uri_escaped IA__g_string_append_uri_escaped - -#ifndef G_DISABLE_DEPRECATED -extern __typeof (g_string_down) IA__g_string_down __attribute((visibility("hidden"))); -#define g_string_down IA__g_string_down - -extern __typeof (g_string_up) IA__g_string_up __attribute((visibility("hidden"))); -#define g_string_up IA__g_string_up - -#endif -extern __typeof (g_string_vprintf) IA__g_string_vprintf __attribute((visibility("hidden"))); -#define g_string_vprintf IA__g_string_vprintf - -extern __typeof (g_str_equal) IA__g_str_equal __attribute((visibility("hidden"))); -#define g_str_equal IA__g_str_equal - -extern __typeof (g_str_hash) IA__g_str_hash __attribute((visibility("hidden"))); -#define g_str_hash IA__g_str_hash - -#endif -#endif -#if IN_HEADER(__G_THREAD_H__) -#if IN_FILE(__G_THREAD_C__) -extern __typeof (g_once_impl) IA__g_once_impl __attribute((visibility("hidden"))); -#define g_once_impl IA__g_once_impl - -extern __typeof (g_once_init_enter_impl) IA__g_once_init_enter_impl __attribute((visibility("hidden"))); -#define g_once_init_enter_impl IA__g_once_init_enter_impl - -extern __typeof (g_once_init_leave) IA__g_once_init_leave __attribute((visibility("hidden"))); -#define g_once_init_leave IA__g_once_init_leave - -extern __typeof (g_thread_create_full) IA__g_thread_create_full __attribute((visibility("hidden"))); -#define g_thread_create_full IA__g_thread_create_full - -extern __typeof (g_thread_error_quark) IA__g_thread_error_quark __attribute((visibility("hidden"))); -#define g_thread_error_quark IA__g_thread_error_quark - -extern __typeof (g_thread_exit) IA__g_thread_exit __attribute((visibility("hidden"))); -#define g_thread_exit IA__g_thread_exit - -extern __typeof (g_thread_join) IA__g_thread_join __attribute((visibility("hidden"))); -#define g_thread_join IA__g_thread_join - -extern __typeof (g_thread_self) IA__g_thread_self __attribute((visibility("hidden"))); -#define g_thread_self IA__g_thread_self - -extern __typeof (g_thread_set_priority) IA__g_thread_set_priority __attribute((visibility("hidden"))); -#define g_thread_set_priority IA__g_thread_set_priority - -extern __typeof (g_static_mutex_free) IA__g_static_mutex_free __attribute((visibility("hidden"))); -#define g_static_mutex_free IA__g_static_mutex_free - -extern __typeof (g_static_mutex_get_mutex_impl) IA__g_static_mutex_get_mutex_impl __attribute((visibility("hidden"))); -#define g_static_mutex_get_mutex_impl IA__g_static_mutex_get_mutex_impl - -extern __typeof (g_static_mutex_init) IA__g_static_mutex_init __attribute((visibility("hidden"))); -#define g_static_mutex_init IA__g_static_mutex_init - -extern __typeof (g_static_private_free) IA__g_static_private_free __attribute((visibility("hidden"))); -#define g_static_private_free IA__g_static_private_free - -extern __typeof (g_static_private_get) IA__g_static_private_get __attribute((visibility("hidden"))); -#define g_static_private_get IA__g_static_private_get - -extern __typeof (g_static_private_init) IA__g_static_private_init __attribute((visibility("hidden"))); -#define g_static_private_init IA__g_static_private_init - -extern __typeof (g_static_private_set) IA__g_static_private_set __attribute((visibility("hidden"))); -#define g_static_private_set IA__g_static_private_set - -extern __typeof (g_static_rec_mutex_free) IA__g_static_rec_mutex_free __attribute((visibility("hidden"))); -#define g_static_rec_mutex_free IA__g_static_rec_mutex_free - -extern __typeof (g_static_rec_mutex_init) IA__g_static_rec_mutex_init __attribute((visibility("hidden"))); -#define g_static_rec_mutex_init IA__g_static_rec_mutex_init - -extern __typeof (g_static_rec_mutex_lock) IA__g_static_rec_mutex_lock __attribute((visibility("hidden"))); -#define g_static_rec_mutex_lock IA__g_static_rec_mutex_lock - -extern __typeof (g_static_rec_mutex_lock_full) IA__g_static_rec_mutex_lock_full __attribute((visibility("hidden"))); -#define g_static_rec_mutex_lock_full IA__g_static_rec_mutex_lock_full - -extern __typeof (g_static_rec_mutex_trylock) IA__g_static_rec_mutex_trylock __attribute((visibility("hidden"))); -#define g_static_rec_mutex_trylock IA__g_static_rec_mutex_trylock - -extern __typeof (g_static_rec_mutex_unlock) IA__g_static_rec_mutex_unlock __attribute((visibility("hidden"))); -#define g_static_rec_mutex_unlock IA__g_static_rec_mutex_unlock - -extern __typeof (g_static_rec_mutex_unlock_full) IA__g_static_rec_mutex_unlock_full __attribute((visibility("hidden"))); -#define g_static_rec_mutex_unlock_full IA__g_static_rec_mutex_unlock_full - -extern __typeof (g_static_rw_lock_free) IA__g_static_rw_lock_free __attribute((visibility("hidden"))); -#define g_static_rw_lock_free IA__g_static_rw_lock_free - -extern __typeof (g_static_rw_lock_init) IA__g_static_rw_lock_init __attribute((visibility("hidden"))); -#define g_static_rw_lock_init IA__g_static_rw_lock_init - -extern __typeof (g_static_rw_lock_reader_lock) IA__g_static_rw_lock_reader_lock __attribute((visibility("hidden"))); -#define g_static_rw_lock_reader_lock IA__g_static_rw_lock_reader_lock - -extern __typeof (g_static_rw_lock_reader_trylock) IA__g_static_rw_lock_reader_trylock __attribute((visibility("hidden"))); -#define g_static_rw_lock_reader_trylock IA__g_static_rw_lock_reader_trylock - -extern __typeof (g_static_rw_lock_reader_unlock) IA__g_static_rw_lock_reader_unlock __attribute((visibility("hidden"))); -#define g_static_rw_lock_reader_unlock IA__g_static_rw_lock_reader_unlock - -extern __typeof (g_static_rw_lock_writer_lock) IA__g_static_rw_lock_writer_lock __attribute((visibility("hidden"))); -#define g_static_rw_lock_writer_lock IA__g_static_rw_lock_writer_lock - -extern __typeof (g_static_rw_lock_writer_trylock) IA__g_static_rw_lock_writer_trylock __attribute((visibility("hidden"))); -#define g_static_rw_lock_writer_trylock IA__g_static_rw_lock_writer_trylock - -extern __typeof (g_static_rw_lock_writer_unlock) IA__g_static_rw_lock_writer_unlock __attribute((visibility("hidden"))); -#define g_static_rw_lock_writer_unlock IA__g_static_rw_lock_writer_unlock - -extern __typeof (g_thread_foreach) IA__g_thread_foreach __attribute((visibility("hidden"))); -#define g_thread_foreach IA__g_thread_foreach - -extern __typeof (g_thread_get_initialized) IA__g_thread_get_initialized __attribute((visibility("hidden"))); -#define g_thread_get_initialized IA__g_thread_get_initialized - -#endif -#endif -#if IN_HEADER(__G_THREADPOOL_H__) -#if IN_FILE(__G_THREADPOOL_C__) -extern __typeof (g_thread_pool_free) IA__g_thread_pool_free __attribute((visibility("hidden"))); -#define g_thread_pool_free IA__g_thread_pool_free - -extern __typeof (g_thread_pool_get_max_threads) IA__g_thread_pool_get_max_threads __attribute((visibility("hidden"))); -#define g_thread_pool_get_max_threads IA__g_thread_pool_get_max_threads - -extern __typeof (g_thread_pool_get_max_unused_threads) IA__g_thread_pool_get_max_unused_threads __attribute((visibility("hidden"))); -#define g_thread_pool_get_max_unused_threads IA__g_thread_pool_get_max_unused_threads - -extern __typeof (g_thread_pool_get_max_idle_time) IA__g_thread_pool_get_max_idle_time __attribute((visibility("hidden"))); -#define g_thread_pool_get_max_idle_time IA__g_thread_pool_get_max_idle_time - -extern __typeof (g_thread_pool_get_num_threads) IA__g_thread_pool_get_num_threads __attribute((visibility("hidden"))); -#define g_thread_pool_get_num_threads IA__g_thread_pool_get_num_threads - -extern __typeof (g_thread_pool_get_num_unused_threads) IA__g_thread_pool_get_num_unused_threads __attribute((visibility("hidden"))); -#define g_thread_pool_get_num_unused_threads IA__g_thread_pool_get_num_unused_threads - -extern __typeof (g_thread_pool_new) IA__g_thread_pool_new __attribute((visibility("hidden"))); -#define g_thread_pool_new IA__g_thread_pool_new - -extern __typeof (g_thread_pool_push) IA__g_thread_pool_push __attribute((visibility("hidden"))); -#define g_thread_pool_push IA__g_thread_pool_push - -extern __typeof (g_thread_pool_set_max_threads) IA__g_thread_pool_set_max_threads __attribute((visibility("hidden"))); -#define g_thread_pool_set_max_threads IA__g_thread_pool_set_max_threads - -extern __typeof (g_thread_pool_set_max_unused_threads) IA__g_thread_pool_set_max_unused_threads __attribute((visibility("hidden"))); -#define g_thread_pool_set_max_unused_threads IA__g_thread_pool_set_max_unused_threads - -extern __typeof (g_thread_pool_set_max_idle_time) IA__g_thread_pool_set_max_idle_time __attribute((visibility("hidden"))); -#define g_thread_pool_set_max_idle_time IA__g_thread_pool_set_max_idle_time - -extern __typeof (g_thread_pool_stop_unused_threads) IA__g_thread_pool_stop_unused_threads __attribute((visibility("hidden"))); -#define g_thread_pool_stop_unused_threads IA__g_thread_pool_stop_unused_threads - -extern __typeof (g_thread_pool_unprocessed) IA__g_thread_pool_unprocessed __attribute((visibility("hidden"))); -#define g_thread_pool_unprocessed IA__g_thread_pool_unprocessed - -extern __typeof (g_thread_pool_set_sort_function) IA__g_thread_pool_set_sort_function __attribute((visibility("hidden"))); -#define g_thread_pool_set_sort_function IA__g_thread_pool_set_sort_function - -#endif -#endif -#if IN_HEADER(__G_TEST_UTILS_H__) -#if IN_FILE(__G_TEST_UTILS_C__) -extern __typeof (g_assertion_message) IA__g_assertion_message __attribute((visibility("hidden"))) G_GNUC_NORETURN; -#define g_assertion_message IA__g_assertion_message - -extern __typeof (g_assertion_message_cmpnum) IA__g_assertion_message_cmpnum __attribute((visibility("hidden"))) G_GNUC_NORETURN; -#define g_assertion_message_cmpnum IA__g_assertion_message_cmpnum - -extern __typeof (g_assertion_message_cmpstr) IA__g_assertion_message_cmpstr __attribute((visibility("hidden"))) G_GNUC_NORETURN; -#define g_assertion_message_cmpstr IA__g_assertion_message_cmpstr - -extern __typeof (g_assertion_message_expr) IA__g_assertion_message_expr __attribute((visibility("hidden"))) G_GNUC_NORETURN; -#define g_assertion_message_expr IA__g_assertion_message_expr - -extern __typeof (g_assertion_message_error) IA__g_assertion_message_error __attribute((visibility("hidden"))) G_GNUC_NORETURN; -#define g_assertion_message_error IA__g_assertion_message_error - -extern __typeof (g_strcmp0) IA__g_strcmp0 __attribute((visibility("hidden"))); -#define g_strcmp0 IA__g_strcmp0 - -extern __typeof (g_test_add_data_func) IA__g_test_add_data_func __attribute((visibility("hidden"))); -#define g_test_add_data_func IA__g_test_add_data_func - -extern __typeof (g_test_add_func) IA__g_test_add_func __attribute((visibility("hidden"))); -#define g_test_add_func IA__g_test_add_func - -extern __typeof (g_test_add_vtable) IA__g_test_add_vtable __attribute((visibility("hidden"))); -#define g_test_add_vtable IA__g_test_add_vtable - -extern __typeof (g_test_bug) IA__g_test_bug __attribute((visibility("hidden"))); -#define g_test_bug IA__g_test_bug - -extern __typeof (g_test_bug_base) IA__g_test_bug_base __attribute((visibility("hidden"))); -#define g_test_bug_base IA__g_test_bug_base - -extern __typeof (g_test_create_case) IA__g_test_create_case __attribute((visibility("hidden"))); -#define g_test_create_case IA__g_test_create_case - -extern __typeof (g_test_create_suite) IA__g_test_create_suite __attribute((visibility("hidden"))); -#define g_test_create_suite IA__g_test_create_suite - -extern __typeof (g_test_get_root) IA__g_test_get_root __attribute((visibility("hidden"))); -#define g_test_get_root IA__g_test_get_root - -extern __typeof (g_test_init) IA__g_test_init __attribute((visibility("hidden"))); -#define g_test_init IA__g_test_init - -extern __typeof (g_test_log_buffer_free) IA__g_test_log_buffer_free __attribute((visibility("hidden"))); -#define g_test_log_buffer_free IA__g_test_log_buffer_free - -extern __typeof (g_test_log_buffer_new) IA__g_test_log_buffer_new __attribute((visibility("hidden"))); -#define g_test_log_buffer_new IA__g_test_log_buffer_new - -extern __typeof (g_test_log_buffer_pop) IA__g_test_log_buffer_pop __attribute((visibility("hidden"))); -#define g_test_log_buffer_pop IA__g_test_log_buffer_pop - -extern __typeof (g_test_log_buffer_push) IA__g_test_log_buffer_push __attribute((visibility("hidden"))); -#define g_test_log_buffer_push IA__g_test_log_buffer_push - -extern __typeof (g_test_log_msg_free) IA__g_test_log_msg_free __attribute((visibility("hidden"))); -#define g_test_log_msg_free IA__g_test_log_msg_free - -extern __typeof (g_test_log_type_name) IA__g_test_log_type_name __attribute((visibility("hidden"))); -#define g_test_log_type_name IA__g_test_log_type_name - -extern __typeof (g_test_maximized_result) IA__g_test_maximized_result __attribute((visibility("hidden"))); -#define g_test_maximized_result IA__g_test_maximized_result - -extern __typeof (g_test_message) IA__g_test_message __attribute((visibility("hidden"))); -#define g_test_message IA__g_test_message - -extern __typeof (g_test_minimized_result) IA__g_test_minimized_result __attribute((visibility("hidden"))); -#define g_test_minimized_result IA__g_test_minimized_result - -extern __typeof (g_test_queue_destroy) IA__g_test_queue_destroy __attribute((visibility("hidden"))); -#define g_test_queue_destroy IA__g_test_queue_destroy - -extern __typeof (g_test_queue_free) IA__g_test_queue_free __attribute((visibility("hidden"))); -#define g_test_queue_free IA__g_test_queue_free - -extern __typeof (g_test_rand_double) IA__g_test_rand_double __attribute((visibility("hidden"))); -#define g_test_rand_double IA__g_test_rand_double - -extern __typeof (g_test_rand_double_range) IA__g_test_rand_double_range __attribute((visibility("hidden"))); -#define g_test_rand_double_range IA__g_test_rand_double_range - -extern __typeof (g_test_rand_int) IA__g_test_rand_int __attribute((visibility("hidden"))); -#define g_test_rand_int IA__g_test_rand_int - -extern __typeof (g_test_rand_int_range) IA__g_test_rand_int_range __attribute((visibility("hidden"))); -#define g_test_rand_int_range IA__g_test_rand_int_range - -extern __typeof (g_test_run) IA__g_test_run __attribute((visibility("hidden"))); -#define g_test_run IA__g_test_run - -extern __typeof (g_test_run_suite) IA__g_test_run_suite __attribute((visibility("hidden"))); -#define g_test_run_suite IA__g_test_run_suite - -extern __typeof (g_test_suite_add) IA__g_test_suite_add __attribute((visibility("hidden"))); -#define g_test_suite_add IA__g_test_suite_add - -extern __typeof (g_test_suite_add_suite) IA__g_test_suite_add_suite __attribute((visibility("hidden"))); -#define g_test_suite_add_suite IA__g_test_suite_add_suite - -extern __typeof (g_test_timer_elapsed) IA__g_test_timer_elapsed __attribute((visibility("hidden"))); -#define g_test_timer_elapsed IA__g_test_timer_elapsed - -extern __typeof (g_test_timer_last) IA__g_test_timer_last __attribute((visibility("hidden"))); -#define g_test_timer_last IA__g_test_timer_last - -extern __typeof (g_test_timer_start) IA__g_test_timer_start __attribute((visibility("hidden"))); -#define g_test_timer_start IA__g_test_timer_start - -extern __typeof (g_test_trap_assertions) IA__g_test_trap_assertions __attribute((visibility("hidden"))); -#define g_test_trap_assertions IA__g_test_trap_assertions - -extern __typeof (g_test_trap_fork) IA__g_test_trap_fork __attribute((visibility("hidden"))); -#define g_test_trap_fork IA__g_test_trap_fork - -extern __typeof (g_test_trap_has_passed) IA__g_test_trap_has_passed __attribute((visibility("hidden"))); -#define g_test_trap_has_passed IA__g_test_trap_has_passed - -extern __typeof (g_test_trap_reached_timeout) IA__g_test_trap_reached_timeout __attribute((visibility("hidden"))); -#define g_test_trap_reached_timeout IA__g_test_trap_reached_timeout - -#endif -#endif -#if IN_HEADER(__G_TIMER_H__) -#if IN_FILE(__G_TIMER_C__) -extern __typeof (g_timer_continue) IA__g_timer_continue __attribute((visibility("hidden"))); -#define g_timer_continue IA__g_timer_continue - -extern __typeof (g_timer_destroy) IA__g_timer_destroy __attribute((visibility("hidden"))); -#define g_timer_destroy IA__g_timer_destroy - -extern __typeof (g_timer_elapsed) IA__g_timer_elapsed __attribute((visibility("hidden"))); -#define g_timer_elapsed IA__g_timer_elapsed - -extern __typeof (g_timer_new) IA__g_timer_new __attribute((visibility("hidden"))); -#define g_timer_new IA__g_timer_new - -extern __typeof (g_timer_reset) IA__g_timer_reset __attribute((visibility("hidden"))); -#define g_timer_reset IA__g_timer_reset - -extern __typeof (g_timer_start) IA__g_timer_start __attribute((visibility("hidden"))); -#define g_timer_start IA__g_timer_start - -extern __typeof (g_timer_stop) IA__g_timer_stop __attribute((visibility("hidden"))); -#define g_timer_stop IA__g_timer_stop - -extern __typeof (g_time_val_add) IA__g_time_val_add __attribute((visibility("hidden"))); -#define g_time_val_add IA__g_time_val_add - -extern __typeof (g_time_val_from_iso8601) IA__g_time_val_from_iso8601 __attribute((visibility("hidden"))); -#define g_time_val_from_iso8601 IA__g_time_val_from_iso8601 - -extern __typeof (g_time_val_to_iso8601) IA__g_time_val_to_iso8601 __attribute((visibility("hidden"))) G_GNUC_MALLOC; -#define g_time_val_to_iso8601 IA__g_time_val_to_iso8601 - -extern __typeof (g_usleep) IA__g_usleep __attribute((visibility("hidden"))); -#define g_usleep IA__g_usleep - -#endif -#endif -#if IN_HEADER(__G_TREE_H__) -#if IN_FILE(__G_TREE_C__) -extern __typeof (g_tree_destroy) IA__g_tree_destroy __attribute((visibility("hidden"))); -#define g_tree_destroy IA__g_tree_destroy - -extern __typeof (g_tree_foreach) IA__g_tree_foreach __attribute((visibility("hidden"))); -#define g_tree_foreach IA__g_tree_foreach - -extern __typeof (g_tree_height) IA__g_tree_height __attribute((visibility("hidden"))); -#define g_tree_height IA__g_tree_height - -extern __typeof (g_tree_insert) IA__g_tree_insert __attribute((visibility("hidden"))); -#define g_tree_insert IA__g_tree_insert - -extern __typeof (g_tree_lookup) IA__g_tree_lookup __attribute((visibility("hidden"))); -#define g_tree_lookup IA__g_tree_lookup - -extern __typeof (g_tree_lookup_extended) IA__g_tree_lookup_extended __attribute((visibility("hidden"))); -#define g_tree_lookup_extended IA__g_tree_lookup_extended - -extern __typeof (g_tree_new) IA__g_tree_new __attribute((visibility("hidden"))); -#define g_tree_new IA__g_tree_new - -extern __typeof (g_tree_new_full) IA__g_tree_new_full __attribute((visibility("hidden"))); -#define g_tree_new_full IA__g_tree_new_full - -extern __typeof (g_tree_new_with_data) IA__g_tree_new_with_data __attribute((visibility("hidden"))); -#define g_tree_new_with_data IA__g_tree_new_with_data - -extern __typeof (g_tree_nnodes) IA__g_tree_nnodes __attribute((visibility("hidden"))); -#define g_tree_nnodes IA__g_tree_nnodes - -extern __typeof (g_tree_remove) IA__g_tree_remove __attribute((visibility("hidden"))); -#define g_tree_remove IA__g_tree_remove - -extern __typeof (g_tree_replace) IA__g_tree_replace __attribute((visibility("hidden"))); -#define g_tree_replace IA__g_tree_replace - -extern __typeof (g_tree_search) IA__g_tree_search __attribute((visibility("hidden"))); -#define g_tree_search IA__g_tree_search - -extern __typeof (g_tree_steal) IA__g_tree_steal __attribute((visibility("hidden"))); -#define g_tree_steal IA__g_tree_steal - -#ifndef G_DISABLE_DEPRECATED -extern __typeof (g_tree_traverse) IA__g_tree_traverse __attribute((visibility("hidden"))); -#define g_tree_traverse IA__g_tree_traverse - -#endif -#endif -#endif -#if IN_HEADER(__G_UNICODE_H__) -#if IN_FILE(__G_UNIBREAK_C__) -extern __typeof (g_unichar_break_type) IA__g_unichar_break_type __attribute((visibility("hidden"))) G_GNUC_CONST; -#define g_unichar_break_type IA__g_unichar_break_type - -#endif -#endif -#if IN_HEADER(__G_UNICODE_H__) -#if IN_FILE(__G_UNICOLLATE_C__) -extern __typeof (g_utf8_collate) IA__g_utf8_collate __attribute((visibility("hidden"))); -#define g_utf8_collate IA__g_utf8_collate - -extern __typeof (g_utf8_collate_key) IA__g_utf8_collate_key __attribute((visibility("hidden"))) G_GNUC_MALLOC; -#define g_utf8_collate_key IA__g_utf8_collate_key - -extern __typeof (g_utf8_collate_key_for_filename) IA__g_utf8_collate_key_for_filename __attribute((visibility("hidden"))) G_GNUC_MALLOC; -#define g_utf8_collate_key_for_filename IA__g_utf8_collate_key_for_filename - -#endif -#endif -#if IN_HEADER(__G_UNICODE_H__) -#if IN_FILE(__G_UNIDECOMP_C__) -extern __typeof (g_unicode_canonical_decomposition) IA__g_unicode_canonical_decomposition __attribute((visibility("hidden"))) G_GNUC_MALLOC; -#define g_unicode_canonical_decomposition IA__g_unicode_canonical_decomposition - -extern __typeof (g_unicode_canonical_ordering) IA__g_unicode_canonical_ordering __attribute((visibility("hidden"))); -#define g_unicode_canonical_ordering IA__g_unicode_canonical_ordering - -extern __typeof (g_unichar_combining_class) IA__g_unichar_combining_class __attribute((visibility("hidden"))) G_GNUC_CONST; -#define g_unichar_combining_class IA__g_unichar_combining_class - -extern __typeof (g_utf8_normalize) IA__g_utf8_normalize __attribute((visibility("hidden"))); -#define g_utf8_normalize IA__g_utf8_normalize - -#endif -#endif -#if IN_HEADER(__G_UNICODE_H__) -#if IN_FILE(__G_UNIPROP_C__) -extern __typeof (g_unichar_isalnum) IA__g_unichar_isalnum __attribute((visibility("hidden"))) G_GNUC_CONST; -#define g_unichar_isalnum IA__g_unichar_isalnum - -extern __typeof (g_unichar_isalpha) IA__g_unichar_isalpha __attribute((visibility("hidden"))) G_GNUC_CONST; -#define g_unichar_isalpha IA__g_unichar_isalpha - -extern __typeof (g_unichar_iscntrl) IA__g_unichar_iscntrl __attribute((visibility("hidden"))) G_GNUC_CONST; -#define g_unichar_iscntrl IA__g_unichar_iscntrl - -extern __typeof (g_unichar_isdefined) IA__g_unichar_isdefined __attribute((visibility("hidden"))) G_GNUC_CONST; -#define g_unichar_isdefined IA__g_unichar_isdefined - -extern __typeof (g_unichar_isdigit) IA__g_unichar_isdigit __attribute((visibility("hidden"))) G_GNUC_CONST; -#define g_unichar_isdigit IA__g_unichar_isdigit - -extern __typeof (g_unichar_isgraph) IA__g_unichar_isgraph __attribute((visibility("hidden"))) G_GNUC_CONST; -#define g_unichar_isgraph IA__g_unichar_isgraph - -extern __typeof (g_unichar_islower) IA__g_unichar_islower __attribute((visibility("hidden"))) G_GNUC_CONST; -#define g_unichar_islower IA__g_unichar_islower - -extern __typeof (g_unichar_isprint) IA__g_unichar_isprint __attribute((visibility("hidden"))) G_GNUC_CONST; -#define g_unichar_isprint IA__g_unichar_isprint - -extern __typeof (g_unichar_ispunct) IA__g_unichar_ispunct __attribute((visibility("hidden"))) G_GNUC_CONST; -#define g_unichar_ispunct IA__g_unichar_ispunct - -extern __typeof (g_unichar_isspace) IA__g_unichar_isspace __attribute((visibility("hidden"))) G_GNUC_CONST; -#define g_unichar_isspace IA__g_unichar_isspace - -extern __typeof (g_unichar_istitle) IA__g_unichar_istitle __attribute((visibility("hidden"))) G_GNUC_CONST; -#define g_unichar_istitle IA__g_unichar_istitle - -extern __typeof (g_unichar_isupper) IA__g_unichar_isupper __attribute((visibility("hidden"))) G_GNUC_CONST; -#define g_unichar_isupper IA__g_unichar_isupper - -extern __typeof (g_unichar_iswide) IA__g_unichar_iswide __attribute((visibility("hidden"))) G_GNUC_CONST; -#define g_unichar_iswide IA__g_unichar_iswide - -extern __typeof (g_unichar_iswide_cjk) IA__g_unichar_iswide_cjk __attribute((visibility("hidden"))) G_GNUC_CONST; -#define g_unichar_iswide_cjk IA__g_unichar_iswide_cjk - -extern __typeof (g_unichar_isxdigit) IA__g_unichar_isxdigit __attribute((visibility("hidden"))) G_GNUC_CONST; -#define g_unichar_isxdigit IA__g_unichar_isxdigit - -extern __typeof (g_unichar_iszerowidth) IA__g_unichar_iszerowidth __attribute((visibility("hidden"))) G_GNUC_CONST; -#define g_unichar_iszerowidth IA__g_unichar_iszerowidth - -extern __typeof (g_unichar_tolower) IA__g_unichar_tolower __attribute((visibility("hidden"))) G_GNUC_CONST; -#define g_unichar_tolower IA__g_unichar_tolower - -extern __typeof (g_unichar_totitle) IA__g_unichar_totitle __attribute((visibility("hidden"))) G_GNUC_CONST; -#define g_unichar_totitle IA__g_unichar_totitle - -extern __typeof (g_unichar_toupper) IA__g_unichar_toupper __attribute((visibility("hidden"))) G_GNUC_CONST; -#define g_unichar_toupper IA__g_unichar_toupper - -extern __typeof (g_unichar_ismark) IA__g_unichar_ismark __attribute((visibility("hidden"))) G_GNUC_CONST; -#define g_unichar_ismark IA__g_unichar_ismark - -extern __typeof (g_unichar_get_mirror_char) IA__g_unichar_get_mirror_char __attribute((visibility("hidden"))); -#define g_unichar_get_mirror_char IA__g_unichar_get_mirror_char - -extern __typeof (g_unichar_get_script) IA__g_unichar_get_script __attribute((visibility("hidden"))); -#define g_unichar_get_script IA__g_unichar_get_script - -extern __typeof (g_unichar_digit_value) IA__g_unichar_digit_value __attribute((visibility("hidden"))) G_GNUC_CONST; -#define g_unichar_digit_value IA__g_unichar_digit_value - -extern __typeof (g_unichar_xdigit_value) IA__g_unichar_xdigit_value __attribute((visibility("hidden"))) G_GNUC_CONST; -#define g_unichar_xdigit_value IA__g_unichar_xdigit_value - -extern __typeof (g_unichar_type) IA__g_unichar_type __attribute((visibility("hidden"))) G_GNUC_CONST; -#define g_unichar_type IA__g_unichar_type - -extern __typeof (g_utf8_casefold) IA__g_utf8_casefold __attribute((visibility("hidden"))) G_GNUC_MALLOC; -#define g_utf8_casefold IA__g_utf8_casefold - -extern __typeof (g_utf8_strup) IA__g_utf8_strup __attribute((visibility("hidden"))) G_GNUC_MALLOC; -#define g_utf8_strup IA__g_utf8_strup - -extern __typeof (g_utf8_strdown) IA__g_utf8_strdown __attribute((visibility("hidden"))) G_GNUC_MALLOC; -#define g_utf8_strdown IA__g_utf8_strdown - -#endif -#endif -#if IN_HEADER(__G_UNICODE_H__) -#if IN_FILE(__G_UTF8_C__) -extern __typeof (g_get_charset) IA__g_get_charset __attribute((visibility("hidden"))); -#define g_get_charset IA__g_get_charset - -extern __typeof (g_ucs4_to_utf16) IA__g_ucs4_to_utf16 __attribute((visibility("hidden"))) G_GNUC_MALLOC; -#define g_ucs4_to_utf16 IA__g_ucs4_to_utf16 - -extern __typeof (g_ucs4_to_utf8) IA__g_ucs4_to_utf8 __attribute((visibility("hidden"))) G_GNUC_MALLOC; -#define g_ucs4_to_utf8 IA__g_ucs4_to_utf8 - -extern __typeof (g_utf16_to_ucs4) IA__g_utf16_to_ucs4 __attribute((visibility("hidden"))) G_GNUC_MALLOC; -#define g_utf16_to_ucs4 IA__g_utf16_to_ucs4 - -extern __typeof (g_utf16_to_utf8) IA__g_utf16_to_utf8 __attribute((visibility("hidden"))) G_GNUC_MALLOC; -#define g_utf16_to_utf8 IA__g_utf16_to_utf8 - -extern __typeof (g_utf8_find_next_char) IA__g_utf8_find_next_char __attribute((visibility("hidden"))); -#define g_utf8_find_next_char IA__g_utf8_find_next_char - -extern __typeof (g_utf8_find_prev_char) IA__g_utf8_find_prev_char __attribute((visibility("hidden"))); -#define g_utf8_find_prev_char IA__g_utf8_find_prev_char - -extern __typeof (g_utf8_get_char) IA__g_utf8_get_char __attribute((visibility("hidden"))); -#define g_utf8_get_char IA__g_utf8_get_char - -extern __typeof (g_utf8_get_char_validated) IA__g_utf8_get_char_validated __attribute((visibility("hidden"))); -#define g_utf8_get_char_validated IA__g_utf8_get_char_validated - -extern __typeof (g_utf8_offset_to_pointer) IA__g_utf8_offset_to_pointer __attribute((visibility("hidden"))); -#define g_utf8_offset_to_pointer IA__g_utf8_offset_to_pointer - -extern __typeof (g_utf8_pointer_to_offset) IA__g_utf8_pointer_to_offset __attribute((visibility("hidden"))); -#define g_utf8_pointer_to_offset IA__g_utf8_pointer_to_offset - -extern __typeof (g_utf8_prev_char) IA__g_utf8_prev_char __attribute((visibility("hidden"))); -#define g_utf8_prev_char IA__g_utf8_prev_char - -extern __typeof (g_utf8_strchr) IA__g_utf8_strchr __attribute((visibility("hidden"))); -#define g_utf8_strchr IA__g_utf8_strchr - -extern __typeof (g_utf8_strlen) IA__g_utf8_strlen __attribute((visibility("hidden"))); -#define g_utf8_strlen IA__g_utf8_strlen - -extern __typeof (g_utf8_strncpy) IA__g_utf8_strncpy __attribute((visibility("hidden"))); -#define g_utf8_strncpy IA__g_utf8_strncpy - -extern __typeof (g_utf8_strrchr) IA__g_utf8_strrchr __attribute((visibility("hidden"))); -#define g_utf8_strrchr IA__g_utf8_strrchr - -extern __typeof (g_utf8_strreverse) IA__g_utf8_strreverse __attribute((visibility("hidden"))); -#define g_utf8_strreverse IA__g_utf8_strreverse - -extern __typeof (g_utf8_to_ucs4) IA__g_utf8_to_ucs4 __attribute((visibility("hidden"))) G_GNUC_MALLOC; -#define g_utf8_to_ucs4 IA__g_utf8_to_ucs4 - -extern __typeof (g_utf8_to_ucs4_fast) IA__g_utf8_to_ucs4_fast __attribute((visibility("hidden"))) G_GNUC_MALLOC; -#define g_utf8_to_ucs4_fast IA__g_utf8_to_ucs4_fast - -extern __typeof (g_utf8_to_utf16) IA__g_utf8_to_utf16 __attribute((visibility("hidden"))) G_GNUC_MALLOC; -#define g_utf8_to_utf16 IA__g_utf8_to_utf16 - -extern __typeof (g_utf8_validate) IA__g_utf8_validate __attribute((visibility("hidden"))); -#define g_utf8_validate IA__g_utf8_validate - -extern __typeof (g_unichar_to_utf8) IA__g_unichar_to_utf8 __attribute((visibility("hidden"))); -#define g_unichar_to_utf8 IA__g_unichar_to_utf8 - -extern __typeof (g_unichar_validate) IA__g_unichar_validate __attribute((visibility("hidden"))); -#define g_unichar_validate IA__g_unichar_validate - -#endif -#endif -#if IN_HEADER(__GLIBINTL_H__) -#if IN_FILE(__G_UTILS_C__) -extern __typeof (glib_gettext) IA__glib_gettext __attribute((visibility("hidden"))) G_GNUC_FORMAT(1); -#define glib_gettext IA__glib_gettext - -#endif -#endif -#if IN_HEADER(__G_HASH_H__) -#if IN_FILE(__G_UTILS_C__) -extern __typeof (g_int_equal) IA__g_int_equal __attribute((visibility("hidden"))); -#define g_int_equal IA__g_int_equal - -extern __typeof (g_int_hash) IA__g_int_hash __attribute((visibility("hidden"))); -#define g_int_hash IA__g_int_hash - -extern __typeof (g_direct_equal) IA__g_direct_equal __attribute((visibility("hidden"))) G_GNUC_CONST; -#define g_direct_equal IA__g_direct_equal - -extern __typeof (g_direct_hash) IA__g_direct_hash __attribute((visibility("hidden"))) G_GNUC_CONST; -#define g_direct_hash IA__g_direct_hash - -#endif -#endif -#if IN_HEADER(__G_UTILS_H__) -#if IN_FILE(__G_UTILS_C__) -extern __typeof (g_atexit) IA__g_atexit __attribute((visibility("hidden"))); -#define g_atexit IA__g_atexit - -#ifndef G_DISABLE_DEPRECATED -extern __typeof (g_basename) IA__g_basename __attribute((visibility("hidden"))); -#define g_basename IA__g_basename - -#endif -extern __typeof (g_get_application_name) IA__g_get_application_name __attribute((visibility("hidden"))); -#define g_get_application_name IA__g_get_application_name - -#ifndef _WIN64 -extern __typeof (g_find_program_in_path) IA__g_find_program_in_path __attribute((visibility("hidden"))); -#define g_find_program_in_path IA__g_find_program_in_path - -extern __typeof (g_get_current_dir) IA__g_get_current_dir __attribute((visibility("hidden"))); -#define g_get_current_dir IA__g_get_current_dir - -extern __typeof (g_getenv) IA__g_getenv __attribute((visibility("hidden"))); -#define g_getenv IA__g_getenv - -extern __typeof (g_unsetenv) IA__g_unsetenv __attribute((visibility("hidden"))); -#define g_unsetenv IA__g_unsetenv - -extern __typeof (g_get_home_dir) IA__g_get_home_dir __attribute((visibility("hidden"))); -#define g_get_home_dir IA__g_get_home_dir - -#endif -extern __typeof (g_get_host_name) IA__g_get_host_name __attribute((visibility("hidden"))); -#define g_get_host_name IA__g_get_host_name - -#ifndef _WIN64 -extern __typeof (g_setenv) IA__g_setenv __attribute((visibility("hidden"))); -#define g_setenv IA__g_setenv - -#endif -extern __typeof (g_listenv) IA__g_listenv __attribute((visibility("hidden"))); -#define g_listenv IA__g_listenv - -#ifdef G_OS_WIN32 -extern __typeof (g_find_program_in_path_utf8) IA__g_find_program_in_path_utf8 __attribute((visibility("hidden"))); -#define g_find_program_in_path_utf8 IA__g_find_program_in_path_utf8 - -extern __typeof (g_get_current_dir_utf8) IA__g_get_current_dir_utf8 __attribute((visibility("hidden"))); -#define g_get_current_dir_utf8 IA__g_get_current_dir_utf8 - -extern __typeof (g_getenv_utf8) IA__g_getenv_utf8 __attribute((visibility("hidden"))); -#define g_getenv_utf8 IA__g_getenv_utf8 - -extern __typeof (g_unsetenv_utf8) IA__g_unsetenv_utf8 __attribute((visibility("hidden"))); -#define g_unsetenv_utf8 IA__g_unsetenv_utf8 - -extern __typeof (g_setenv_utf8) IA__g_setenv_utf8 __attribute((visibility("hidden"))); -#define g_setenv_utf8 IA__g_setenv_utf8 - -extern __typeof (g_get_home_dir_utf8) IA__g_get_home_dir_utf8 __attribute((visibility("hidden"))); -#define g_get_home_dir_utf8 IA__g_get_home_dir_utf8 - -#endif -extern __typeof (g_get_language_names) IA__g_get_language_names __attribute((visibility("hidden"))); -#define g_get_language_names IA__g_get_language_names - -extern __typeof (g_get_prgname) IA__g_get_prgname __attribute((visibility("hidden"))); -#define g_get_prgname IA__g_get_prgname - -#ifndef _WIN64 -extern __typeof (g_get_real_name) IA__g_get_real_name __attribute((visibility("hidden"))); -#define g_get_real_name IA__g_get_real_name - -#endif -#ifdef G_OS_WIN32 -extern __typeof (g_get_real_name_utf8) IA__g_get_real_name_utf8 __attribute((visibility("hidden"))); -#define g_get_real_name_utf8 IA__g_get_real_name_utf8 - -#endif -extern __typeof (g_get_system_config_dirs) IA__g_get_system_config_dirs __attribute((visibility("hidden"))); -#define g_get_system_config_dirs IA__g_get_system_config_dirs - -extern __typeof (g_get_system_data_dirs) IA__g_get_system_data_dirs __attribute((visibility("hidden"))); -#define g_get_system_data_dirs IA__g_get_system_data_dirs - -#ifdef G_OS_WIN32 -extern __typeof (g_win32_get_system_data_dirs_for_module) IA__g_win32_get_system_data_dirs_for_module __attribute((visibility("hidden"))); -#define g_win32_get_system_data_dirs_for_module IA__g_win32_get_system_data_dirs_for_module - -#endif -#ifndef _WIN64 -extern __typeof (g_get_tmp_dir) IA__g_get_tmp_dir __attribute((visibility("hidden"))); -#define g_get_tmp_dir IA__g_get_tmp_dir - -#endif -#ifdef G_OS_WIN32 -extern __typeof (g_get_tmp_dir_utf8) IA__g_get_tmp_dir_utf8 __attribute((visibility("hidden"))); -#define g_get_tmp_dir_utf8 IA__g_get_tmp_dir_utf8 - -#endif -extern __typeof (g_get_user_cache_dir) IA__g_get_user_cache_dir __attribute((visibility("hidden"))); -#define g_get_user_cache_dir IA__g_get_user_cache_dir - -extern __typeof (g_get_user_config_dir) IA__g_get_user_config_dir __attribute((visibility("hidden"))); -#define g_get_user_config_dir IA__g_get_user_config_dir - -extern __typeof (g_get_user_data_dir) IA__g_get_user_data_dir __attribute((visibility("hidden"))); -#define g_get_user_data_dir IA__g_get_user_data_dir - -extern __typeof (g_get_user_special_dir) IA__g_get_user_special_dir __attribute((visibility("hidden"))); -#define g_get_user_special_dir IA__g_get_user_special_dir - -#ifndef _WIN64 -extern __typeof (g_get_user_name) IA__g_get_user_name __attribute((visibility("hidden"))); -#define g_get_user_name IA__g_get_user_name - -#endif -#ifdef G_OS_WIN32 -extern __typeof (g_get_user_name_utf8) IA__g_get_user_name_utf8 __attribute((visibility("hidden"))); -#define g_get_user_name_utf8 IA__g_get_user_name_utf8 - -#endif -extern __typeof (glib_check_version) IA__glib_check_version __attribute((visibility("hidden"))); -#define glib_check_version IA__glib_check_version - -extern __typeof (g_nullify_pointer) IA__g_nullify_pointer __attribute((visibility("hidden"))); -#define g_nullify_pointer IA__g_nullify_pointer - -extern __typeof (g_parse_debug_string) IA__g_parse_debug_string __attribute((visibility("hidden"))); -#define g_parse_debug_string IA__g_parse_debug_string - -extern __typeof (g_path_get_basename) IA__g_path_get_basename __attribute((visibility("hidden"))) G_GNUC_MALLOC; -#define g_path_get_basename IA__g_path_get_basename - -extern __typeof (g_path_get_dirname) IA__g_path_get_dirname __attribute((visibility("hidden"))) G_GNUC_MALLOC; -#define g_path_get_dirname IA__g_path_get_dirname - -extern __typeof (g_path_is_absolute) IA__g_path_is_absolute __attribute((visibility("hidden"))); -#define g_path_is_absolute IA__g_path_is_absolute - -extern __typeof (g_path_skip_root) IA__g_path_skip_root __attribute((visibility("hidden"))); -#define g_path_skip_root IA__g_path_skip_root - -extern __typeof (g_set_application_name) IA__g_set_application_name __attribute((visibility("hidden"))); -#define g_set_application_name IA__g_set_application_name - -extern __typeof (g_set_prgname) IA__g_set_prgname __attribute((visibility("hidden"))); -#define g_set_prgname IA__g_set_prgname - -#endif -#endif -#if IN_HEADER(__G_REGEX_H__) -#if IN_FILE(__G_REGEX_C__) -extern __typeof (g_regex_error_quark) IA__g_regex_error_quark __attribute((visibility("hidden"))); -#define g_regex_error_quark IA__g_regex_error_quark - -extern __typeof (g_regex_new) IA__g_regex_new __attribute((visibility("hidden"))); -#define g_regex_new IA__g_regex_new - -extern __typeof (g_regex_ref) IA__g_regex_ref __attribute((visibility("hidden"))); -#define g_regex_ref IA__g_regex_ref - -extern __typeof (g_regex_unref) IA__g_regex_unref __attribute((visibility("hidden"))); -#define g_regex_unref IA__g_regex_unref - -extern __typeof (g_regex_get_pattern) IA__g_regex_get_pattern __attribute((visibility("hidden"))); -#define g_regex_get_pattern IA__g_regex_get_pattern - -extern __typeof (g_regex_get_max_backref) IA__g_regex_get_max_backref __attribute((visibility("hidden"))); -#define g_regex_get_max_backref IA__g_regex_get_max_backref - -extern __typeof (g_regex_get_capture_count) IA__g_regex_get_capture_count __attribute((visibility("hidden"))); -#define g_regex_get_capture_count IA__g_regex_get_capture_count - -extern __typeof (g_regex_get_string_number) IA__g_regex_get_string_number __attribute((visibility("hidden"))); -#define g_regex_get_string_number IA__g_regex_get_string_number - -extern __typeof (g_regex_escape_string) IA__g_regex_escape_string __attribute((visibility("hidden"))); -#define g_regex_escape_string IA__g_regex_escape_string - -extern __typeof (g_regex_match_simple) IA__g_regex_match_simple __attribute((visibility("hidden"))); -#define g_regex_match_simple IA__g_regex_match_simple - -extern __typeof (g_regex_match) IA__g_regex_match __attribute((visibility("hidden"))); -#define g_regex_match IA__g_regex_match - -extern __typeof (g_regex_match_full) IA__g_regex_match_full __attribute((visibility("hidden"))); -#define g_regex_match_full IA__g_regex_match_full - -extern __typeof (g_regex_match_all) IA__g_regex_match_all __attribute((visibility("hidden"))); -#define g_regex_match_all IA__g_regex_match_all - -extern __typeof (g_regex_match_all_full) IA__g_regex_match_all_full __attribute((visibility("hidden"))); -#define g_regex_match_all_full IA__g_regex_match_all_full - -extern __typeof (g_regex_split_simple) IA__g_regex_split_simple __attribute((visibility("hidden"))); -#define g_regex_split_simple IA__g_regex_split_simple - -extern __typeof (g_regex_split) IA__g_regex_split __attribute((visibility("hidden"))); -#define g_regex_split IA__g_regex_split - -extern __typeof (g_regex_split_full) IA__g_regex_split_full __attribute((visibility("hidden"))); -#define g_regex_split_full IA__g_regex_split_full - -extern __typeof (g_regex_replace) IA__g_regex_replace __attribute((visibility("hidden"))); -#define g_regex_replace IA__g_regex_replace - -extern __typeof (g_regex_replace_literal) IA__g_regex_replace_literal __attribute((visibility("hidden"))); -#define g_regex_replace_literal IA__g_regex_replace_literal - -extern __typeof (g_regex_replace_eval) IA__g_regex_replace_eval __attribute((visibility("hidden"))); -#define g_regex_replace_eval IA__g_regex_replace_eval - -extern __typeof (g_regex_check_replacement) IA__g_regex_check_replacement __attribute((visibility("hidden"))); -#define g_regex_check_replacement IA__g_regex_check_replacement - -extern __typeof (g_match_info_get_regex) IA__g_match_info_get_regex __attribute((visibility("hidden"))); -#define g_match_info_get_regex IA__g_match_info_get_regex - -extern __typeof (g_match_info_get_string) IA__g_match_info_get_string __attribute((visibility("hidden"))); -#define g_match_info_get_string IA__g_match_info_get_string - -extern __typeof (g_match_info_free) IA__g_match_info_free __attribute((visibility("hidden"))); -#define g_match_info_free IA__g_match_info_free - -extern __typeof (g_match_info_next) IA__g_match_info_next __attribute((visibility("hidden"))); -#define g_match_info_next IA__g_match_info_next - -extern __typeof (g_match_info_matches) IA__g_match_info_matches __attribute((visibility("hidden"))); -#define g_match_info_matches IA__g_match_info_matches - -extern __typeof (g_match_info_get_match_count) IA__g_match_info_get_match_count __attribute((visibility("hidden"))); -#define g_match_info_get_match_count IA__g_match_info_get_match_count - -extern __typeof (g_match_info_is_partial_match) IA__g_match_info_is_partial_match __attribute((visibility("hidden"))); -#define g_match_info_is_partial_match IA__g_match_info_is_partial_match - -extern __typeof (g_match_info_expand_references) IA__g_match_info_expand_references __attribute((visibility("hidden"))); -#define g_match_info_expand_references IA__g_match_info_expand_references - -extern __typeof (g_match_info_fetch) IA__g_match_info_fetch __attribute((visibility("hidden"))); -#define g_match_info_fetch IA__g_match_info_fetch - -extern __typeof (g_match_info_fetch_pos) IA__g_match_info_fetch_pos __attribute((visibility("hidden"))); -#define g_match_info_fetch_pos IA__g_match_info_fetch_pos - -extern __typeof (g_match_info_fetch_named) IA__g_match_info_fetch_named __attribute((visibility("hidden"))); -#define g_match_info_fetch_named IA__g_match_info_fetch_named - -extern __typeof (g_match_info_fetch_named_pos) IA__g_match_info_fetch_named_pos __attribute((visibility("hidden"))); -#define g_match_info_fetch_named_pos IA__g_match_info_fetch_named_pos - -extern __typeof (g_match_info_fetch_all) IA__g_match_info_fetch_all __attribute((visibility("hidden"))); -#define g_match_info_fetch_all IA__g_match_info_fetch_all - -#endif -#endif -#if IN_HEADER(__G_WIN32_H__) -#if IN_FILE(__G_WIN32_H__) -#ifdef G_OS_WIN32 -extern __typeof (g_win32_error_message) IA__g_win32_error_message __attribute((visibility("hidden"))); -#define g_win32_error_message IA__g_win32_error_message - -extern __typeof (g_win32_ftruncate) IA__g_win32_ftruncate __attribute((visibility("hidden"))); -#define g_win32_ftruncate IA__g_win32_ftruncate - -extern __typeof (g_win32_get_package_installation_directory_of_module) IA__g_win32_get_package_installation_directory_of_module __attribute((visibility("hidden"))); -#define g_win32_get_package_installation_directory_of_module IA__g_win32_get_package_installation_directory_of_module - -#ifndef _WIN64 -extern __typeof (g_win32_get_package_installation_directory) IA__g_win32_get_package_installation_directory __attribute((visibility("hidden"))); -#define g_win32_get_package_installation_directory IA__g_win32_get_package_installation_directory - -#endif -extern __typeof (g_win32_get_package_installation_directory_utf8) IA__g_win32_get_package_installation_directory_utf8 __attribute((visibility("hidden"))); -#define g_win32_get_package_installation_directory_utf8 IA__g_win32_get_package_installation_directory_utf8 - -#ifndef _WIN64 -extern __typeof (g_win32_get_package_installation_subdirectory) IA__g_win32_get_package_installation_subdirectory __attribute((visibility("hidden"))); -#define g_win32_get_package_installation_subdirectory IA__g_win32_get_package_installation_subdirectory - -#endif -extern __typeof (g_win32_get_package_installation_subdirectory_utf8) IA__g_win32_get_package_installation_subdirectory_utf8 __attribute((visibility("hidden"))); -#define g_win32_get_package_installation_subdirectory_utf8 IA__g_win32_get_package_installation_subdirectory_utf8 - -extern __typeof (g_win32_get_windows_version) IA__g_win32_get_windows_version __attribute((visibility("hidden"))); -#define g_win32_get_windows_version IA__g_win32_get_windows_version - -extern __typeof (g_win32_getlocale) IA__g_win32_getlocale __attribute((visibility("hidden"))); -#define g_win32_getlocale IA__g_win32_getlocale - -extern __typeof (g_win32_locale_filename_from_utf8) IA__g_win32_locale_filename_from_utf8 __attribute((visibility("hidden"))); -#define g_win32_locale_filename_from_utf8 IA__g_win32_locale_filename_from_utf8 - -#endif -#endif -#endif - -#endif /* G_HAVE_GNUC_VISIBILITY */ -#endif /* DISABLE_VISIBILITY */ diff --git a/lib/win32/glib-2.20.4/glib/galiasdef.c b/lib/win32/glib-2.20.4/glib/galiasdef.c deleted file mode 100644 index 8f1ec7ff5cce4..0000000000000 --- a/lib/win32/glib-2.20.4/glib/galiasdef.c +++ /dev/null @@ -1,3889 +0,0 @@ -/* Generated by makegalias.pl */ - -#ifndef DISABLE_VISIBILITY - -#include "glibconfig.h" - -#ifdef G_HAVE_GNUC_VISIBILITY - -#undef IN_FILE -#define IN_FILE defined - -#undef IN_HEADER -#define IN_HEADER(x) 1 - -#if IN_HEADER(__G_ARRAY_H__) -#if IN_FILE(__G_ARRAY_C__) -#undef g_array_append_vals -extern __typeof (g_array_append_vals) g_array_append_vals __attribute((alias("IA__g_array_append_vals"), visibility("default"))); - -#undef g_array_free -extern __typeof (g_array_free) g_array_free __attribute((alias("IA__g_array_free"), visibility("default"))); - -#undef g_array_insert_vals -extern __typeof (g_array_insert_vals) g_array_insert_vals __attribute((alias("IA__g_array_insert_vals"), visibility("default"))); - -#undef g_array_new -extern __typeof (g_array_new) g_array_new __attribute((alias("IA__g_array_new"), visibility("default"))); - -#undef g_array_prepend_vals -extern __typeof (g_array_prepend_vals) g_array_prepend_vals __attribute((alias("IA__g_array_prepend_vals"), visibility("default"))); - -#undef g_array_remove_index -extern __typeof (g_array_remove_index) g_array_remove_index __attribute((alias("IA__g_array_remove_index"), visibility("default"))); - -#undef g_array_remove_index_fast -extern __typeof (g_array_remove_index_fast) g_array_remove_index_fast __attribute((alias("IA__g_array_remove_index_fast"), visibility("default"))); - -#undef g_array_remove_range -extern __typeof (g_array_remove_range) g_array_remove_range __attribute((alias("IA__g_array_remove_range"), visibility("default"))); - -#undef g_array_set_size -extern __typeof (g_array_set_size) g_array_set_size __attribute((alias("IA__g_array_set_size"), visibility("default"))); - -#undef g_array_sized_new -extern __typeof (g_array_sized_new) g_array_sized_new __attribute((alias("IA__g_array_sized_new"), visibility("default"))); - -#undef g_array_sort -extern __typeof (g_array_sort) g_array_sort __attribute((alias("IA__g_array_sort"), visibility("default"))); - -#undef g_array_sort_with_data -extern __typeof (g_array_sort_with_data) g_array_sort_with_data __attribute((alias("IA__g_array_sort_with_data"), visibility("default"))); - -#undef g_byte_array_append -extern __typeof (g_byte_array_append) g_byte_array_append __attribute((alias("IA__g_byte_array_append"), visibility("default"))); - -#undef g_byte_array_free -extern __typeof (g_byte_array_free) g_byte_array_free __attribute((alias("IA__g_byte_array_free"), visibility("default"))); - -#undef g_byte_array_new -extern __typeof (g_byte_array_new) g_byte_array_new __attribute((alias("IA__g_byte_array_new"), visibility("default"))); - -#undef g_byte_array_prepend -extern __typeof (g_byte_array_prepend) g_byte_array_prepend __attribute((alias("IA__g_byte_array_prepend"), visibility("default"))); - -#undef g_byte_array_remove_index -extern __typeof (g_byte_array_remove_index) g_byte_array_remove_index __attribute((alias("IA__g_byte_array_remove_index"), visibility("default"))); - -#undef g_byte_array_remove_index_fast -extern __typeof (g_byte_array_remove_index_fast) g_byte_array_remove_index_fast __attribute((alias("IA__g_byte_array_remove_index_fast"), visibility("default"))); - -#undef g_byte_array_remove_range -extern __typeof (g_byte_array_remove_range) g_byte_array_remove_range __attribute((alias("IA__g_byte_array_remove_range"), visibility("default"))); - -#undef g_byte_array_set_size -extern __typeof (g_byte_array_set_size) g_byte_array_set_size __attribute((alias("IA__g_byte_array_set_size"), visibility("default"))); - -#undef g_byte_array_sized_new -extern __typeof (g_byte_array_sized_new) g_byte_array_sized_new __attribute((alias("IA__g_byte_array_sized_new"), visibility("default"))); - -#undef g_byte_array_sort -extern __typeof (g_byte_array_sort) g_byte_array_sort __attribute((alias("IA__g_byte_array_sort"), visibility("default"))); - -#undef g_byte_array_sort_with_data -extern __typeof (g_byte_array_sort_with_data) g_byte_array_sort_with_data __attribute((alias("IA__g_byte_array_sort_with_data"), visibility("default"))); - -#undef g_ptr_array_add -extern __typeof (g_ptr_array_add) g_ptr_array_add __attribute((alias("IA__g_ptr_array_add"), visibility("default"))); - -#undef g_ptr_array_foreach -extern __typeof (g_ptr_array_foreach) g_ptr_array_foreach __attribute((alias("IA__g_ptr_array_foreach"), visibility("default"))); - -#undef g_ptr_array_free -extern __typeof (g_ptr_array_free) g_ptr_array_free __attribute((alias("IA__g_ptr_array_free"), visibility("default"))); - -#undef g_ptr_array_new -extern __typeof (g_ptr_array_new) g_ptr_array_new __attribute((alias("IA__g_ptr_array_new"), visibility("default"))); - -#undef g_ptr_array_remove -extern __typeof (g_ptr_array_remove) g_ptr_array_remove __attribute((alias("IA__g_ptr_array_remove"), visibility("default"))); - -#undef g_ptr_array_remove_fast -extern __typeof (g_ptr_array_remove_fast) g_ptr_array_remove_fast __attribute((alias("IA__g_ptr_array_remove_fast"), visibility("default"))); - -#undef g_ptr_array_remove_index -extern __typeof (g_ptr_array_remove_index) g_ptr_array_remove_index __attribute((alias("IA__g_ptr_array_remove_index"), visibility("default"))); - -#undef g_ptr_array_remove_index_fast -extern __typeof (g_ptr_array_remove_index_fast) g_ptr_array_remove_index_fast __attribute((alias("IA__g_ptr_array_remove_index_fast"), visibility("default"))); - -#undef g_ptr_array_remove_range -extern __typeof (g_ptr_array_remove_range) g_ptr_array_remove_range __attribute((alias("IA__g_ptr_array_remove_range"), visibility("default"))); - -#undef g_ptr_array_set_size -extern __typeof (g_ptr_array_set_size) g_ptr_array_set_size __attribute((alias("IA__g_ptr_array_set_size"), visibility("default"))); - -#undef g_ptr_array_sized_new -extern __typeof (g_ptr_array_sized_new) g_ptr_array_sized_new __attribute((alias("IA__g_ptr_array_sized_new"), visibility("default"))); - -#undef g_ptr_array_sort -extern __typeof (g_ptr_array_sort) g_ptr_array_sort __attribute((alias("IA__g_ptr_array_sort"), visibility("default"))); - -#undef g_ptr_array_sort_with_data -extern __typeof (g_ptr_array_sort_with_data) g_ptr_array_sort_with_data __attribute((alias("IA__g_ptr_array_sort_with_data"), visibility("default"))); - -#endif -#endif -#if IN_HEADER(__G_ASYNCQUEUE_H__) -#if IN_FILE(__G_ASYNCQUEUE_C__) -#undef g_async_queue_length -extern __typeof (g_async_queue_length) g_async_queue_length __attribute((alias("IA__g_async_queue_length"), visibility("default"))); - -#undef g_async_queue_length_unlocked -extern __typeof (g_async_queue_length_unlocked) g_async_queue_length_unlocked __attribute((alias("IA__g_async_queue_length_unlocked"), visibility("default"))); - -#undef g_async_queue_lock -extern __typeof (g_async_queue_lock) g_async_queue_lock __attribute((alias("IA__g_async_queue_lock"), visibility("default"))); - -#undef g_async_queue_new -extern __typeof (g_async_queue_new) g_async_queue_new __attribute((alias("IA__g_async_queue_new"), visibility("default"))); - -#undef g_async_queue_new_full -extern __typeof (g_async_queue_new_full) g_async_queue_new_full __attribute((alias("IA__g_async_queue_new_full"), visibility("default"))); - -#undef g_async_queue_pop -extern __typeof (g_async_queue_pop) g_async_queue_pop __attribute((alias("IA__g_async_queue_pop"), visibility("default"))); - -#undef g_async_queue_pop_unlocked -extern __typeof (g_async_queue_pop_unlocked) g_async_queue_pop_unlocked __attribute((alias("IA__g_async_queue_pop_unlocked"), visibility("default"))); - -#undef g_async_queue_push -extern __typeof (g_async_queue_push) g_async_queue_push __attribute((alias("IA__g_async_queue_push"), visibility("default"))); - -#undef g_async_queue_push_unlocked -extern __typeof (g_async_queue_push_unlocked) g_async_queue_push_unlocked __attribute((alias("IA__g_async_queue_push_unlocked"), visibility("default"))); - -#undef g_async_queue_push_sorted -extern __typeof (g_async_queue_push_sorted) g_async_queue_push_sorted __attribute((alias("IA__g_async_queue_push_sorted"), visibility("default"))); - -#undef g_async_queue_push_sorted_unlocked -extern __typeof (g_async_queue_push_sorted_unlocked) g_async_queue_push_sorted_unlocked __attribute((alias("IA__g_async_queue_push_sorted_unlocked"), visibility("default"))); - -#undef g_async_queue_ref -extern __typeof (g_async_queue_ref) g_async_queue_ref __attribute((alias("IA__g_async_queue_ref"), visibility("default"))); - -#undef g_async_queue_sort -extern __typeof (g_async_queue_sort) g_async_queue_sort __attribute((alias("IA__g_async_queue_sort"), visibility("default"))); - -#undef g_async_queue_sort_unlocked -extern __typeof (g_async_queue_sort_unlocked) g_async_queue_sort_unlocked __attribute((alias("IA__g_async_queue_sort_unlocked"), visibility("default"))); - -#undef g_async_queue_timed_pop -extern __typeof (g_async_queue_timed_pop) g_async_queue_timed_pop __attribute((alias("IA__g_async_queue_timed_pop"), visibility("default"))); - -#undef g_async_queue_timed_pop_unlocked -extern __typeof (g_async_queue_timed_pop_unlocked) g_async_queue_timed_pop_unlocked __attribute((alias("IA__g_async_queue_timed_pop_unlocked"), visibility("default"))); - -#undef g_async_queue_try_pop -extern __typeof (g_async_queue_try_pop) g_async_queue_try_pop __attribute((alias("IA__g_async_queue_try_pop"), visibility("default"))); - -#undef g_async_queue_try_pop_unlocked -extern __typeof (g_async_queue_try_pop_unlocked) g_async_queue_try_pop_unlocked __attribute((alias("IA__g_async_queue_try_pop_unlocked"), visibility("default"))); - -#undef g_async_queue_unlock -extern __typeof (g_async_queue_unlock) g_async_queue_unlock __attribute((alias("IA__g_async_queue_unlock"), visibility("default"))); - -#undef g_async_queue_unref -extern __typeof (g_async_queue_unref) g_async_queue_unref __attribute((alias("IA__g_async_queue_unref"), visibility("default"))); - -#ifndef G_DISABLE_DEPRECATED -#undef g_async_queue_ref_unlocked -extern __typeof (g_async_queue_ref_unlocked) g_async_queue_ref_unlocked __attribute((alias("IA__g_async_queue_ref_unlocked"), visibility("default"))); - -#undef g_async_queue_unref_and_unlock -extern __typeof (g_async_queue_unref_and_unlock) g_async_queue_unref_and_unlock __attribute((alias("IA__g_async_queue_unref_and_unlock"), visibility("default"))); - -#endif -#endif -#endif -#if IN_HEADER(__G_ATOMIC_H__) -#if IN_FILE(__G_ATOMIC_C__) -#undef g_atomic_int_add -extern __typeof (g_atomic_int_add) g_atomic_int_add __attribute((alias("IA__g_atomic_int_add"), visibility("default"))); - -#undef g_atomic_int_compare_and_exchange -extern __typeof (g_atomic_int_compare_and_exchange) g_atomic_int_compare_and_exchange __attribute((alias("IA__g_atomic_int_compare_and_exchange"), visibility("default"))); - -#undef g_atomic_int_exchange_and_add -extern __typeof (g_atomic_int_exchange_and_add) g_atomic_int_exchange_and_add __attribute((alias("IA__g_atomic_int_exchange_and_add"), visibility("default"))); - -#undef g_atomic_pointer_compare_and_exchange -extern __typeof (g_atomic_pointer_compare_and_exchange) g_atomic_pointer_compare_and_exchange __attribute((alias("IA__g_atomic_pointer_compare_and_exchange"), visibility("default"))); - -#endif -#endif -#if IN_HEADER(__G_BACKTRACE_H__) -#if IN_FILE(__G_BACKTRACE_C__) -#undef g_on_error_query -extern __typeof (g_on_error_query) g_on_error_query __attribute((alias("IA__g_on_error_query"), visibility("default"))); - -#undef g_on_error_stack_trace -extern __typeof (g_on_error_stack_trace) g_on_error_stack_trace __attribute((alias("IA__g_on_error_stack_trace"), visibility("default"))); - -#endif -#endif -#if IN_HEADER(__G_BASE64_H__) -#if IN_FILE(__G_BASE64_C__) -#undef g_base64_encode_step -extern __typeof (g_base64_encode_step) g_base64_encode_step __attribute((alias("IA__g_base64_encode_step"), visibility("default"))); - -#undef g_base64_encode_close -extern __typeof (g_base64_encode_close) g_base64_encode_close __attribute((alias("IA__g_base64_encode_close"), visibility("default"))); - -#undef g_base64_encode -extern __typeof (g_base64_encode) g_base64_encode __attribute((alias("IA__g_base64_encode"), visibility("default"))); - -#undef g_base64_decode_step -extern __typeof (g_base64_decode_step) g_base64_decode_step __attribute((alias("IA__g_base64_decode_step"), visibility("default"))); - -#undef g_base64_decode -extern __typeof (g_base64_decode) g_base64_decode __attribute((alias("IA__g_base64_decode"), visibility("default"))); - -#undef g_base64_decode_inplace -extern __typeof (g_base64_decode_inplace) g_base64_decode_inplace __attribute((alias("IA__g_base64_decode_inplace"), visibility("default"))); - -#endif -#endif -#if IN_HEADER(__G_BOOKMARK_FILE_H__) -#if IN_FILE(__G_BOOKMARK_FILE_C__) -#undef g_bookmark_file_error_quark -extern __typeof (g_bookmark_file_error_quark) g_bookmark_file_error_quark __attribute((alias("IA__g_bookmark_file_error_quark"), visibility("default"))); - -#undef g_bookmark_file_new -extern __typeof (g_bookmark_file_new) g_bookmark_file_new __attribute((alias("IA__g_bookmark_file_new"), visibility("default"))); - -#undef g_bookmark_file_free -extern __typeof (g_bookmark_file_free) g_bookmark_file_free __attribute((alias("IA__g_bookmark_file_free"), visibility("default"))); - -#undef g_bookmark_file_load_from_file -extern __typeof (g_bookmark_file_load_from_file) g_bookmark_file_load_from_file __attribute((alias("IA__g_bookmark_file_load_from_file"), visibility("default"))); - -#undef g_bookmark_file_load_from_data -extern __typeof (g_bookmark_file_load_from_data) g_bookmark_file_load_from_data __attribute((alias("IA__g_bookmark_file_load_from_data"), visibility("default"))); - -#undef g_bookmark_file_load_from_data_dirs -extern __typeof (g_bookmark_file_load_from_data_dirs) g_bookmark_file_load_from_data_dirs __attribute((alias("IA__g_bookmark_file_load_from_data_dirs"), visibility("default"))); - -#undef g_bookmark_file_to_data -extern __typeof (g_bookmark_file_to_data) g_bookmark_file_to_data __attribute((alias("IA__g_bookmark_file_to_data"), visibility("default"))); - -#undef g_bookmark_file_to_file -extern __typeof (g_bookmark_file_to_file) g_bookmark_file_to_file __attribute((alias("IA__g_bookmark_file_to_file"), visibility("default"))); - -#undef g_bookmark_file_set_title -extern __typeof (g_bookmark_file_set_title) g_bookmark_file_set_title __attribute((alias("IA__g_bookmark_file_set_title"), visibility("default"))); - -#undef g_bookmark_file_get_title -extern __typeof (g_bookmark_file_get_title) g_bookmark_file_get_title __attribute((alias("IA__g_bookmark_file_get_title"), visibility("default"))); - -#undef g_bookmark_file_set_description -extern __typeof (g_bookmark_file_set_description) g_bookmark_file_set_description __attribute((alias("IA__g_bookmark_file_set_description"), visibility("default"))); - -#undef g_bookmark_file_get_description -extern __typeof (g_bookmark_file_get_description) g_bookmark_file_get_description __attribute((alias("IA__g_bookmark_file_get_description"), visibility("default"))); - -#undef g_bookmark_file_set_mime_type -extern __typeof (g_bookmark_file_set_mime_type) g_bookmark_file_set_mime_type __attribute((alias("IA__g_bookmark_file_set_mime_type"), visibility("default"))); - -#undef g_bookmark_file_get_mime_type -extern __typeof (g_bookmark_file_get_mime_type) g_bookmark_file_get_mime_type __attribute((alias("IA__g_bookmark_file_get_mime_type"), visibility("default"))); - -#undef g_bookmark_file_set_groups -extern __typeof (g_bookmark_file_set_groups) g_bookmark_file_set_groups __attribute((alias("IA__g_bookmark_file_set_groups"), visibility("default"))); - -#undef g_bookmark_file_add_group -extern __typeof (g_bookmark_file_add_group) g_bookmark_file_add_group __attribute((alias("IA__g_bookmark_file_add_group"), visibility("default"))); - -#undef g_bookmark_file_has_group -extern __typeof (g_bookmark_file_has_group) g_bookmark_file_has_group __attribute((alias("IA__g_bookmark_file_has_group"), visibility("default"))); - -#undef g_bookmark_file_get_groups -extern __typeof (g_bookmark_file_get_groups) g_bookmark_file_get_groups __attribute((alias("IA__g_bookmark_file_get_groups"), visibility("default"))); - -#undef g_bookmark_file_add_application -extern __typeof (g_bookmark_file_add_application) g_bookmark_file_add_application __attribute((alias("IA__g_bookmark_file_add_application"), visibility("default"))); - -#undef g_bookmark_file_has_application -extern __typeof (g_bookmark_file_has_application) g_bookmark_file_has_application __attribute((alias("IA__g_bookmark_file_has_application"), visibility("default"))); - -#undef g_bookmark_file_get_applications -extern __typeof (g_bookmark_file_get_applications) g_bookmark_file_get_applications __attribute((alias("IA__g_bookmark_file_get_applications"), visibility("default"))); - -#undef g_bookmark_file_set_app_info -extern __typeof (g_bookmark_file_set_app_info) g_bookmark_file_set_app_info __attribute((alias("IA__g_bookmark_file_set_app_info"), visibility("default"))); - -#undef g_bookmark_file_get_app_info -extern __typeof (g_bookmark_file_get_app_info) g_bookmark_file_get_app_info __attribute((alias("IA__g_bookmark_file_get_app_info"), visibility("default"))); - -#undef g_bookmark_file_set_is_private -extern __typeof (g_bookmark_file_set_is_private) g_bookmark_file_set_is_private __attribute((alias("IA__g_bookmark_file_set_is_private"), visibility("default"))); - -#undef g_bookmark_file_get_is_private -extern __typeof (g_bookmark_file_get_is_private) g_bookmark_file_get_is_private __attribute((alias("IA__g_bookmark_file_get_is_private"), visibility("default"))); - -#undef g_bookmark_file_set_icon -extern __typeof (g_bookmark_file_set_icon) g_bookmark_file_set_icon __attribute((alias("IA__g_bookmark_file_set_icon"), visibility("default"))); - -#undef g_bookmark_file_get_icon -extern __typeof (g_bookmark_file_get_icon) g_bookmark_file_get_icon __attribute((alias("IA__g_bookmark_file_get_icon"), visibility("default"))); - -#undef g_bookmark_file_set_added -extern __typeof (g_bookmark_file_set_added) g_bookmark_file_set_added __attribute((alias("IA__g_bookmark_file_set_added"), visibility("default"))); - -#undef g_bookmark_file_get_added -extern __typeof (g_bookmark_file_get_added) g_bookmark_file_get_added __attribute((alias("IA__g_bookmark_file_get_added"), visibility("default"))); - -#undef g_bookmark_file_set_modified -extern __typeof (g_bookmark_file_set_modified) g_bookmark_file_set_modified __attribute((alias("IA__g_bookmark_file_set_modified"), visibility("default"))); - -#undef g_bookmark_file_get_modified -extern __typeof (g_bookmark_file_get_modified) g_bookmark_file_get_modified __attribute((alias("IA__g_bookmark_file_get_modified"), visibility("default"))); - -#undef g_bookmark_file_set_visited -extern __typeof (g_bookmark_file_set_visited) g_bookmark_file_set_visited __attribute((alias("IA__g_bookmark_file_set_visited"), visibility("default"))); - -#undef g_bookmark_file_get_visited -extern __typeof (g_bookmark_file_get_visited) g_bookmark_file_get_visited __attribute((alias("IA__g_bookmark_file_get_visited"), visibility("default"))); - -#undef g_bookmark_file_has_item -extern __typeof (g_bookmark_file_has_item) g_bookmark_file_has_item __attribute((alias("IA__g_bookmark_file_has_item"), visibility("default"))); - -#undef g_bookmark_file_get_size -extern __typeof (g_bookmark_file_get_size) g_bookmark_file_get_size __attribute((alias("IA__g_bookmark_file_get_size"), visibility("default"))); - -#undef g_bookmark_file_get_uris -extern __typeof (g_bookmark_file_get_uris) g_bookmark_file_get_uris __attribute((alias("IA__g_bookmark_file_get_uris"), visibility("default"))); - -#undef g_bookmark_file_remove_group -extern __typeof (g_bookmark_file_remove_group) g_bookmark_file_remove_group __attribute((alias("IA__g_bookmark_file_remove_group"), visibility("default"))); - -#undef g_bookmark_file_remove_application -extern __typeof (g_bookmark_file_remove_application) g_bookmark_file_remove_application __attribute((alias("IA__g_bookmark_file_remove_application"), visibility("default"))); - -#undef g_bookmark_file_remove_item -extern __typeof (g_bookmark_file_remove_item) g_bookmark_file_remove_item __attribute((alias("IA__g_bookmark_file_remove_item"), visibility("default"))); - -#undef g_bookmark_file_move_item -extern __typeof (g_bookmark_file_move_item) g_bookmark_file_move_item __attribute((alias("IA__g_bookmark_file_move_item"), visibility("default"))); - -#endif -#endif -#if IN_HEADER(__G_CACHE_H__) -#if IN_FILE(__G_CACHE_C__) -#undef g_cache_destroy -extern __typeof (g_cache_destroy) g_cache_destroy __attribute((alias("IA__g_cache_destroy"), visibility("default"))); - -#undef g_cache_insert -extern __typeof (g_cache_insert) g_cache_insert __attribute((alias("IA__g_cache_insert"), visibility("default"))); - -#undef g_cache_key_foreach -extern __typeof (g_cache_key_foreach) g_cache_key_foreach __attribute((alias("IA__g_cache_key_foreach"), visibility("default"))); - -#undef g_cache_new -extern __typeof (g_cache_new) g_cache_new __attribute((alias("IA__g_cache_new"), visibility("default"))); - -#undef g_cache_remove -extern __typeof (g_cache_remove) g_cache_remove __attribute((alias("IA__g_cache_remove"), visibility("default"))); - -#ifndef G_DISABLE_DEPRECATED -#undef g_cache_value_foreach -extern __typeof (g_cache_value_foreach) g_cache_value_foreach __attribute((alias("IA__g_cache_value_foreach"), visibility("default"))); - -#endif -#endif -#endif -#if IN_HEADER(__G_CHECKSUM_H__) -#if IN_FILE(__G_CHECKSUM_C__) -#undef g_checksum_type_get_length -extern __typeof (g_checksum_type_get_length) g_checksum_type_get_length __attribute((alias("IA__g_checksum_type_get_length"), visibility("default"))); - -#undef g_checksum_new -extern __typeof (g_checksum_new) g_checksum_new __attribute((alias("IA__g_checksum_new"), visibility("default"))); - -#undef g_checksum_copy -extern __typeof (g_checksum_copy) g_checksum_copy __attribute((alias("IA__g_checksum_copy"), visibility("default"))); - -#undef g_checksum_free -extern __typeof (g_checksum_free) g_checksum_free __attribute((alias("IA__g_checksum_free"), visibility("default"))); - -#undef g_checksum_update -extern __typeof (g_checksum_update) g_checksum_update __attribute((alias("IA__g_checksum_update"), visibility("default"))); - -#undef g_checksum_reset -extern __typeof (g_checksum_reset) g_checksum_reset __attribute((alias("IA__g_checksum_reset"), visibility("default"))); - -#undef g_checksum_get_string -extern __typeof (g_checksum_get_string) g_checksum_get_string __attribute((alias("IA__g_checksum_get_string"), visibility("default"))); - -#undef g_checksum_get_digest -extern __typeof (g_checksum_get_digest) g_checksum_get_digest __attribute((alias("IA__g_checksum_get_digest"), visibility("default"))); - -#undef g_compute_checksum_for_data -extern __typeof (g_compute_checksum_for_data) g_compute_checksum_for_data __attribute((alias("IA__g_compute_checksum_for_data"), visibility("default"))); - -#undef g_compute_checksum_for_string -extern __typeof (g_compute_checksum_for_string) g_compute_checksum_for_string __attribute((alias("IA__g_compute_checksum_for_string"), visibility("default"))); - -#endif -#endif -#if IN_HEADER(__G_COMPLETION_H__) -#if IN_FILE(__G_COMPLETION_C__) -#undef g_completion_add_items -extern __typeof (g_completion_add_items) g_completion_add_items __attribute((alias("IA__g_completion_add_items"), visibility("default"))); - -#undef g_completion_clear_items -extern __typeof (g_completion_clear_items) g_completion_clear_items __attribute((alias("IA__g_completion_clear_items"), visibility("default"))); - -#undef g_completion_complete -extern __typeof (g_completion_complete) g_completion_complete __attribute((alias("IA__g_completion_complete"), visibility("default"))); - -#undef g_completion_complete_utf8 -extern __typeof (g_completion_complete_utf8) g_completion_complete_utf8 __attribute((alias("IA__g_completion_complete_utf8"), visibility("default"))); - -#undef g_completion_free -extern __typeof (g_completion_free) g_completion_free __attribute((alias("IA__g_completion_free"), visibility("default"))); - -#undef g_completion_new -extern __typeof (g_completion_new) g_completion_new __attribute((alias("IA__g_completion_new"), visibility("default"))); - -#undef g_completion_remove_items -extern __typeof (g_completion_remove_items) g_completion_remove_items __attribute((alias("IA__g_completion_remove_items"), visibility("default"))); - -#undef g_completion_set_compare -extern __typeof (g_completion_set_compare) g_completion_set_compare __attribute((alias("IA__g_completion_set_compare"), visibility("default"))); - -#endif -#endif -#if IN_HEADER(__G_CONVERT_H__) -#if IN_FILE(__G_CONVERT_C__) -#undef g_get_filename_charsets -extern __typeof (g_get_filename_charsets) g_get_filename_charsets __attribute((alias("IA__g_get_filename_charsets"), visibility("default"))); - -#undef g_convert -extern __typeof (g_convert) g_convert __attribute((alias("IA__g_convert"), visibility("default"))); - -#undef g_convert_error_quark -extern __typeof (g_convert_error_quark) g_convert_error_quark __attribute((alias("IA__g_convert_error_quark"), visibility("default"))); - -#undef g_convert_with_fallback -extern __typeof (g_convert_with_fallback) g_convert_with_fallback __attribute((alias("IA__g_convert_with_fallback"), visibility("default"))); - -#undef g_convert_with_iconv -extern __typeof (g_convert_with_iconv) g_convert_with_iconv __attribute((alias("IA__g_convert_with_iconv"), visibility("default"))); - -#undef g_iconv -extern __typeof (g_iconv) g_iconv __attribute((alias("IA__g_iconv"), visibility("default"))); - -#undef g_iconv_close -extern __typeof (g_iconv_close) g_iconv_close __attribute((alias("IA__g_iconv_close"), visibility("default"))); - -#undef g_iconv_open -extern __typeof (g_iconv_open) g_iconv_open __attribute((alias("IA__g_iconv_open"), visibility("default"))); - -#undef g_locale_from_utf8 -extern __typeof (g_locale_from_utf8) g_locale_from_utf8 __attribute((alias("IA__g_locale_from_utf8"), visibility("default"))); - -#undef g_locale_to_utf8 -extern __typeof (g_locale_to_utf8) g_locale_to_utf8 __attribute((alias("IA__g_locale_to_utf8"), visibility("default"))); - -#undef g_filename_display_name -extern __typeof (g_filename_display_name) g_filename_display_name __attribute((alias("IA__g_filename_display_name"), visibility("default"))); - -#undef g_filename_display_basename -extern __typeof (g_filename_display_basename) g_filename_display_basename __attribute((alias("IA__g_filename_display_basename"), visibility("default"))); - -#ifndef _WIN64 -#undef g_filename_from_uri -extern __typeof (g_filename_from_uri) g_filename_from_uri __attribute((alias("IA__g_filename_from_uri"), visibility("default"))); - -#undef g_filename_from_utf8 -extern __typeof (g_filename_from_utf8) g_filename_from_utf8 __attribute((alias("IA__g_filename_from_utf8"), visibility("default"))); - -#undef g_filename_to_uri -extern __typeof (g_filename_to_uri) g_filename_to_uri __attribute((alias("IA__g_filename_to_uri"), visibility("default"))); - -#undef g_filename_to_utf8 -extern __typeof (g_filename_to_utf8) g_filename_to_utf8 __attribute((alias("IA__g_filename_to_utf8"), visibility("default"))); - -#endif -#ifdef G_OS_WIN32 -#undef g_filename_from_uri_utf8 -extern __typeof (g_filename_from_uri_utf8) g_filename_from_uri_utf8 __attribute((alias("IA__g_filename_from_uri_utf8"), visibility("default"))); - -#undef g_filename_from_utf8_utf8 -extern __typeof (g_filename_from_utf8_utf8) g_filename_from_utf8_utf8 __attribute((alias("IA__g_filename_from_utf8_utf8"), visibility("default"))); - -#undef g_filename_to_uri_utf8 -extern __typeof (g_filename_to_uri_utf8) g_filename_to_uri_utf8 __attribute((alias("IA__g_filename_to_uri_utf8"), visibility("default"))); - -#undef g_filename_to_utf8_utf8 -extern __typeof (g_filename_to_utf8_utf8) g_filename_to_utf8_utf8 __attribute((alias("IA__g_filename_to_utf8_utf8"), visibility("default"))); - -#endif -#undef g_uri_list_extract_uris -extern __typeof (g_uri_list_extract_uris) g_uri_list_extract_uris __attribute((alias("IA__g_uri_list_extract_uris"), visibility("default"))); - -#endif -#endif -#if IN_HEADER(__G_DATASET_H__) -#if IN_FILE(__G_DATASET_C__) -#undef g_datalist_clear -extern __typeof (g_datalist_clear) g_datalist_clear __attribute((alias("IA__g_datalist_clear"), visibility("default"))); - -#undef g_datalist_foreach -extern __typeof (g_datalist_foreach) g_datalist_foreach __attribute((alias("IA__g_datalist_foreach"), visibility("default"))); - -#undef g_datalist_get_flags -extern __typeof (g_datalist_get_flags) g_datalist_get_flags __attribute((alias("IA__g_datalist_get_flags"), visibility("default"))); - -#undef g_datalist_id_get_data -extern __typeof (g_datalist_id_get_data) g_datalist_id_get_data __attribute((alias("IA__g_datalist_id_get_data"), visibility("default"))); - -#undef g_datalist_id_remove_no_notify -extern __typeof (g_datalist_id_remove_no_notify) g_datalist_id_remove_no_notify __attribute((alias("IA__g_datalist_id_remove_no_notify"), visibility("default"))); - -#undef g_datalist_id_set_data_full -extern __typeof (g_datalist_id_set_data_full) g_datalist_id_set_data_full __attribute((alias("IA__g_datalist_id_set_data_full"), visibility("default"))); - -#undef g_datalist_set_flags -extern __typeof (g_datalist_set_flags) g_datalist_set_flags __attribute((alias("IA__g_datalist_set_flags"), visibility("default"))); - -#undef g_datalist_unset_flags -extern __typeof (g_datalist_unset_flags) g_datalist_unset_flags __attribute((alias("IA__g_datalist_unset_flags"), visibility("default"))); - -#undef g_datalist_init -extern __typeof (g_datalist_init) g_datalist_init __attribute((alias("IA__g_datalist_init"), visibility("default"))); - -#undef g_dataset_destroy -extern __typeof (g_dataset_destroy) g_dataset_destroy __attribute((alias("IA__g_dataset_destroy"), visibility("default"))); - -#undef g_dataset_foreach -extern __typeof (g_dataset_foreach) g_dataset_foreach __attribute((alias("IA__g_dataset_foreach"), visibility("default"))); - -#undef g_dataset_id_get_data -extern __typeof (g_dataset_id_get_data) g_dataset_id_get_data __attribute((alias("IA__g_dataset_id_get_data"), visibility("default"))); - -#undef g_dataset_id_remove_no_notify -extern __typeof (g_dataset_id_remove_no_notify) g_dataset_id_remove_no_notify __attribute((alias("IA__g_dataset_id_remove_no_notify"), visibility("default"))); - -#undef g_dataset_id_set_data_full -extern __typeof (g_dataset_id_set_data_full) g_dataset_id_set_data_full __attribute((alias("IA__g_dataset_id_set_data_full"), visibility("default"))); - -#endif -#endif -#if IN_HEADER(__G_QUARK_H__) -#if IN_FILE(__G_DATASET_C__) -#undef g_quark_from_static_string -extern __typeof (g_quark_from_static_string) g_quark_from_static_string __attribute((alias("IA__g_quark_from_static_string"), visibility("default"))); - -#undef g_quark_from_string -extern __typeof (g_quark_from_string) g_quark_from_string __attribute((alias("IA__g_quark_from_string"), visibility("default"))); - -#undef g_quark_to_string -extern __typeof (g_quark_to_string) g_quark_to_string __attribute((alias("IA__g_quark_to_string"), visibility("default"))); - -#undef g_quark_try_string -extern __typeof (g_quark_try_string) g_quark_try_string __attribute((alias("IA__g_quark_try_string"), visibility("default"))); - -#undef g_intern_string -extern __typeof (g_intern_string) g_intern_string __attribute((alias("IA__g_intern_string"), visibility("default"))); - -#undef g_intern_static_string -extern __typeof (g_intern_static_string) g_intern_static_string __attribute((alias("IA__g_intern_static_string"), visibility("default"))); - -#endif -#endif -#if IN_HEADER(__G_DATE_H__) -#if IN_FILE(__G_DATE_C__) -#undef g_date_add_days -extern __typeof (g_date_add_days) g_date_add_days __attribute((alias("IA__g_date_add_days"), visibility("default"))); - -#undef g_date_add_months -extern __typeof (g_date_add_months) g_date_add_months __attribute((alias("IA__g_date_add_months"), visibility("default"))); - -#undef g_date_add_years -extern __typeof (g_date_add_years) g_date_add_years __attribute((alias("IA__g_date_add_years"), visibility("default"))); - -#undef g_date_clamp -extern __typeof (g_date_clamp) g_date_clamp __attribute((alias("IA__g_date_clamp"), visibility("default"))); - -#undef g_date_clear -extern __typeof (g_date_clear) g_date_clear __attribute((alias("IA__g_date_clear"), visibility("default"))); - -#undef g_date_compare -extern __typeof (g_date_compare) g_date_compare __attribute((alias("IA__g_date_compare"), visibility("default"))); - -#undef g_date_days_between -extern __typeof (g_date_days_between) g_date_days_between __attribute((alias("IA__g_date_days_between"), visibility("default"))); - -#undef g_date_free -extern __typeof (g_date_free) g_date_free __attribute((alias("IA__g_date_free"), visibility("default"))); - -#undef g_date_get_day -extern __typeof (g_date_get_day) g_date_get_day __attribute((alias("IA__g_date_get_day"), visibility("default"))); - -#undef g_date_get_day_of_year -extern __typeof (g_date_get_day_of_year) g_date_get_day_of_year __attribute((alias("IA__g_date_get_day_of_year"), visibility("default"))); - -#undef g_date_get_days_in_month -extern __typeof (g_date_get_days_in_month) g_date_get_days_in_month __attribute((alias("IA__g_date_get_days_in_month"), visibility("default"))); - -#undef g_date_get_iso8601_week_of_year -extern __typeof (g_date_get_iso8601_week_of_year) g_date_get_iso8601_week_of_year __attribute((alias("IA__g_date_get_iso8601_week_of_year"), visibility("default"))); - -#undef g_date_get_julian -extern __typeof (g_date_get_julian) g_date_get_julian __attribute((alias("IA__g_date_get_julian"), visibility("default"))); - -#undef g_date_get_monday_week_of_year -extern __typeof (g_date_get_monday_week_of_year) g_date_get_monday_week_of_year __attribute((alias("IA__g_date_get_monday_week_of_year"), visibility("default"))); - -#undef g_date_get_monday_weeks_in_year -extern __typeof (g_date_get_monday_weeks_in_year) g_date_get_monday_weeks_in_year __attribute((alias("IA__g_date_get_monday_weeks_in_year"), visibility("default"))); - -#undef g_date_get_month -extern __typeof (g_date_get_month) g_date_get_month __attribute((alias("IA__g_date_get_month"), visibility("default"))); - -#undef g_date_get_sunday_week_of_year -extern __typeof (g_date_get_sunday_week_of_year) g_date_get_sunday_week_of_year __attribute((alias("IA__g_date_get_sunday_week_of_year"), visibility("default"))); - -#undef g_date_get_sunday_weeks_in_year -extern __typeof (g_date_get_sunday_weeks_in_year) g_date_get_sunday_weeks_in_year __attribute((alias("IA__g_date_get_sunday_weeks_in_year"), visibility("default"))); - -#undef g_date_get_weekday -extern __typeof (g_date_get_weekday) g_date_get_weekday __attribute((alias("IA__g_date_get_weekday"), visibility("default"))); - -#undef g_date_get_year -extern __typeof (g_date_get_year) g_date_get_year __attribute((alias("IA__g_date_get_year"), visibility("default"))); - -#undef g_date_is_first_of_month -extern __typeof (g_date_is_first_of_month) g_date_is_first_of_month __attribute((alias("IA__g_date_is_first_of_month"), visibility("default"))); - -#undef g_date_is_last_of_month -extern __typeof (g_date_is_last_of_month) g_date_is_last_of_month __attribute((alias("IA__g_date_is_last_of_month"), visibility("default"))); - -#undef g_date_is_leap_year -extern __typeof (g_date_is_leap_year) g_date_is_leap_year __attribute((alias("IA__g_date_is_leap_year"), visibility("default"))); - -#undef g_date_new -extern __typeof (g_date_new) g_date_new __attribute((alias("IA__g_date_new"), visibility("default"))); - -#undef g_date_new_dmy -extern __typeof (g_date_new_dmy) g_date_new_dmy __attribute((alias("IA__g_date_new_dmy"), visibility("default"))); - -#undef g_date_new_julian -extern __typeof (g_date_new_julian) g_date_new_julian __attribute((alias("IA__g_date_new_julian"), visibility("default"))); - -#undef g_date_order -extern __typeof (g_date_order) g_date_order __attribute((alias("IA__g_date_order"), visibility("default"))); - -#undef g_date_set_day -extern __typeof (g_date_set_day) g_date_set_day __attribute((alias("IA__g_date_set_day"), visibility("default"))); - -#undef g_date_set_dmy -extern __typeof (g_date_set_dmy) g_date_set_dmy __attribute((alias("IA__g_date_set_dmy"), visibility("default"))); - -#undef g_date_set_julian -extern __typeof (g_date_set_julian) g_date_set_julian __attribute((alias("IA__g_date_set_julian"), visibility("default"))); - -#undef g_date_set_month -extern __typeof (g_date_set_month) g_date_set_month __attribute((alias("IA__g_date_set_month"), visibility("default"))); - -#undef g_date_set_parse -extern __typeof (g_date_set_parse) g_date_set_parse __attribute((alias("IA__g_date_set_parse"), visibility("default"))); - -#ifndef G_DISABLE_DEPRECATED -#undef g_date_set_time -extern __typeof (g_date_set_time) g_date_set_time __attribute((alias("IA__g_date_set_time"), visibility("default"))); - -#endif -#undef g_date_set_time_t -extern __typeof (g_date_set_time_t) g_date_set_time_t __attribute((alias("IA__g_date_set_time_t"), visibility("default"))); - -#undef g_date_set_time_val -extern __typeof (g_date_set_time_val) g_date_set_time_val __attribute((alias("IA__g_date_set_time_val"), visibility("default"))); - -#undef g_date_set_year -extern __typeof (g_date_set_year) g_date_set_year __attribute((alias("IA__g_date_set_year"), visibility("default"))); - -#undef g_date_strftime -extern __typeof (g_date_strftime) g_date_strftime __attribute((alias("IA__g_date_strftime"), visibility("default"))); - -#undef g_date_subtract_days -extern __typeof (g_date_subtract_days) g_date_subtract_days __attribute((alias("IA__g_date_subtract_days"), visibility("default"))); - -#undef g_date_subtract_months -extern __typeof (g_date_subtract_months) g_date_subtract_months __attribute((alias("IA__g_date_subtract_months"), visibility("default"))); - -#undef g_date_subtract_years -extern __typeof (g_date_subtract_years) g_date_subtract_years __attribute((alias("IA__g_date_subtract_years"), visibility("default"))); - -#undef g_date_to_struct_tm -extern __typeof (g_date_to_struct_tm) g_date_to_struct_tm __attribute((alias("IA__g_date_to_struct_tm"), visibility("default"))); - -#undef g_date_valid -extern __typeof (g_date_valid) g_date_valid __attribute((alias("IA__g_date_valid"), visibility("default"))); - -#undef g_date_valid_day -extern __typeof (g_date_valid_day) g_date_valid_day __attribute((alias("IA__g_date_valid_day"), visibility("default"))); - -#undef g_date_valid_dmy -extern __typeof (g_date_valid_dmy) g_date_valid_dmy __attribute((alias("IA__g_date_valid_dmy"), visibility("default"))); - -#undef g_date_valid_julian -extern __typeof (g_date_valid_julian) g_date_valid_julian __attribute((alias("IA__g_date_valid_julian"), visibility("default"))); - -#undef g_date_valid_month -extern __typeof (g_date_valid_month) g_date_valid_month __attribute((alias("IA__g_date_valid_month"), visibility("default"))); - -#undef g_date_valid_weekday -extern __typeof (g_date_valid_weekday) g_date_valid_weekday __attribute((alias("IA__g_date_valid_weekday"), visibility("default"))); - -#undef g_date_valid_year -extern __typeof (g_date_valid_year) g_date_valid_year __attribute((alias("IA__g_date_valid_year"), visibility("default"))); - -#endif -#endif -#if IN_HEADER(__G_DIR_H__) -#if IN_FILE(__G_DIR_C__) -#undef g_dir_close -extern __typeof (g_dir_close) g_dir_close __attribute((alias("IA__g_dir_close"), visibility("default"))); - -#ifndef _WIN64 -#undef g_dir_open -extern __typeof (g_dir_open) g_dir_open __attribute((alias("IA__g_dir_open"), visibility("default"))); - -#undef g_dir_read_name -extern __typeof (g_dir_read_name) g_dir_read_name __attribute((alias("IA__g_dir_read_name"), visibility("default"))); - -#endif -#ifdef G_OS_WIN32 -#undef g_dir_open_utf8 -extern __typeof (g_dir_open_utf8) g_dir_open_utf8 __attribute((alias("IA__g_dir_open_utf8"), visibility("default"))); - -#undef g_dir_read_name_utf8 -extern __typeof (g_dir_read_name_utf8) g_dir_read_name_utf8 __attribute((alias("IA__g_dir_read_name_utf8"), visibility("default"))); - -#endif -#undef g_dir_rewind -extern __typeof (g_dir_rewind) g_dir_rewind __attribute((alias("IA__g_dir_rewind"), visibility("default"))); - -#endif -#endif -#if IN_HEADER(__G_ERROR_H__) -#if IN_FILE(__G_ERROR_C__) -#undef g_clear_error -extern __typeof (g_clear_error) g_clear_error __attribute((alias("IA__g_clear_error"), visibility("default"))); - -#undef g_error_copy -extern __typeof (g_error_copy) g_error_copy __attribute((alias("IA__g_error_copy"), visibility("default"))); - -#undef g_error_free -extern __typeof (g_error_free) g_error_free __attribute((alias("IA__g_error_free"), visibility("default"))); - -#undef g_error_matches -extern __typeof (g_error_matches) g_error_matches __attribute((alias("IA__g_error_matches"), visibility("default"))); - -#undef g_error_new -extern __typeof (g_error_new) g_error_new __attribute((alias("IA__g_error_new"), visibility("default"))); - -#undef g_error_new_literal -extern __typeof (g_error_new_literal) g_error_new_literal __attribute((alias("IA__g_error_new_literal"), visibility("default"))); - -#undef g_propagate_error -extern __typeof (g_propagate_error) g_propagate_error __attribute((alias("IA__g_propagate_error"), visibility("default"))); - -#undef g_set_error -extern __typeof (g_set_error) g_set_error __attribute((alias("IA__g_set_error"), visibility("default"))); - -#undef g_set_error_literal -extern __typeof (g_set_error_literal) g_set_error_literal __attribute((alias("IA__g_set_error_literal"), visibility("default"))); - -#undef g_prefix_error -extern __typeof (g_prefix_error) g_prefix_error __attribute((alias("IA__g_prefix_error"), visibility("default"))); - -#undef g_propagate_prefixed_error -extern __typeof (g_propagate_prefixed_error) g_propagate_prefixed_error __attribute((alias("IA__g_propagate_prefixed_error"), visibility("default"))); - -#endif -#endif -#if IN_HEADER(__G_FILEUTILS_H__) -#if IN_FILE(__G_FILEUTILS_C__) -#undef g_build_filename -extern __typeof (g_build_filename) g_build_filename __attribute((alias("IA__g_build_filename"), visibility("default"))); - -#undef g_build_filenamev -extern __typeof (g_build_filenamev) g_build_filenamev __attribute((alias("IA__g_build_filenamev"), visibility("default"))); - -#undef g_build_path -extern __typeof (g_build_path) g_build_path __attribute((alias("IA__g_build_path"), visibility("default"))); - -#undef g_build_pathv -extern __typeof (g_build_pathv) g_build_pathv __attribute((alias("IA__g_build_pathv"), visibility("default"))); - -#undef g_file_error_from_errno -extern __typeof (g_file_error_from_errno) g_file_error_from_errno __attribute((alias("IA__g_file_error_from_errno"), visibility("default"))); - -#undef g_file_error_quark -extern __typeof (g_file_error_quark) g_file_error_quark __attribute((alias("IA__g_file_error_quark"), visibility("default"))); - -#ifndef _WIN64 -#undef g_file_get_contents -extern __typeof (g_file_get_contents) g_file_get_contents __attribute((alias("IA__g_file_get_contents"), visibility("default"))); - -#endif -#undef g_file_set_contents -extern __typeof (g_file_set_contents) g_file_set_contents __attribute((alias("IA__g_file_set_contents"), visibility("default"))); - -#ifndef _WIN64 -#undef g_file_open_tmp -extern __typeof (g_file_open_tmp) g_file_open_tmp __attribute((alias("IA__g_file_open_tmp"), visibility("default"))); - -#undef g_file_test -extern __typeof (g_file_test) g_file_test __attribute((alias("IA__g_file_test"), visibility("default"))); - -#endif -#undef g_file_read_link -extern __typeof (g_file_read_link) g_file_read_link __attribute((alias("IA__g_file_read_link"), visibility("default"))); - -#undef g_format_size_for_display -extern __typeof (g_format_size_for_display) g_format_size_for_display __attribute((alias("IA__g_format_size_for_display"), visibility("default"))); - -#ifndef _WIN64 -#undef g_mkstemp -extern __typeof (g_mkstemp) g_mkstemp __attribute((alias("IA__g_mkstemp"), visibility("default"))); - -#endif -#undef g_mkdir_with_parents -extern __typeof (g_mkdir_with_parents) g_mkdir_with_parents __attribute((alias("IA__g_mkdir_with_parents"), visibility("default"))); - -#ifdef G_OS_WIN32 -#undef g_file_get_contents_utf8 -extern __typeof (g_file_get_contents_utf8) g_file_get_contents_utf8 __attribute((alias("IA__g_file_get_contents_utf8"), visibility("default"))); - -#undef g_file_open_tmp_utf8 -extern __typeof (g_file_open_tmp_utf8) g_file_open_tmp_utf8 __attribute((alias("IA__g_file_open_tmp_utf8"), visibility("default"))); - -#undef g_file_test_utf8 -extern __typeof (g_file_test_utf8) g_file_test_utf8 __attribute((alias("IA__g_file_test_utf8"), visibility("default"))); - -#undef g_mkstemp_utf8 -extern __typeof (g_mkstemp_utf8) g_mkstemp_utf8 __attribute((alias("IA__g_mkstemp_utf8"), visibility("default"))); - -#endif -#endif -#endif -#if IN_HEADER(__G_HASH_H__) -#if IN_FILE(__G_HASH_C__) -#undef g_hash_table_destroy -extern __typeof (g_hash_table_destroy) g_hash_table_destroy __attribute((alias("IA__g_hash_table_destroy"), visibility("default"))); - -#undef g_hash_table_unref -extern __typeof (g_hash_table_unref) g_hash_table_unref __attribute((alias("IA__g_hash_table_unref"), visibility("default"))); - -#undef g_hash_table_ref -extern __typeof (g_hash_table_ref) g_hash_table_ref __attribute((alias("IA__g_hash_table_ref"), visibility("default"))); - -#undef g_hash_table_find -extern __typeof (g_hash_table_find) g_hash_table_find __attribute((alias("IA__g_hash_table_find"), visibility("default"))); - -#undef g_hash_table_foreach -extern __typeof (g_hash_table_foreach) g_hash_table_foreach __attribute((alias("IA__g_hash_table_foreach"), visibility("default"))); - -#undef g_hash_table_foreach_remove -extern __typeof (g_hash_table_foreach_remove) g_hash_table_foreach_remove __attribute((alias("IA__g_hash_table_foreach_remove"), visibility("default"))); - -#undef g_hash_table_foreach_steal -extern __typeof (g_hash_table_foreach_steal) g_hash_table_foreach_steal __attribute((alias("IA__g_hash_table_foreach_steal"), visibility("default"))); - -#undef g_hash_table_get_keys -extern __typeof (g_hash_table_get_keys) g_hash_table_get_keys __attribute((alias("IA__g_hash_table_get_keys"), visibility("default"))); - -#undef g_hash_table_get_values -extern __typeof (g_hash_table_get_values) g_hash_table_get_values __attribute((alias("IA__g_hash_table_get_values"), visibility("default"))); - -#undef g_hash_table_insert -extern __typeof (g_hash_table_insert) g_hash_table_insert __attribute((alias("IA__g_hash_table_insert"), visibility("default"))); - -#undef g_hash_table_lookup -extern __typeof (g_hash_table_lookup) g_hash_table_lookup __attribute((alias("IA__g_hash_table_lookup"), visibility("default"))); - -#undef g_hash_table_lookup_extended -extern __typeof (g_hash_table_lookup_extended) g_hash_table_lookup_extended __attribute((alias("IA__g_hash_table_lookup_extended"), visibility("default"))); - -#undef g_hash_table_new -extern __typeof (g_hash_table_new) g_hash_table_new __attribute((alias("IA__g_hash_table_new"), visibility("default"))); - -#undef g_hash_table_new_full -extern __typeof (g_hash_table_new_full) g_hash_table_new_full __attribute((alias("IA__g_hash_table_new_full"), visibility("default"))); - -#undef g_hash_table_remove -extern __typeof (g_hash_table_remove) g_hash_table_remove __attribute((alias("IA__g_hash_table_remove"), visibility("default"))); - -#undef g_hash_table_remove_all -extern __typeof (g_hash_table_remove_all) g_hash_table_remove_all __attribute((alias("IA__g_hash_table_remove_all"), visibility("default"))); - -#undef g_hash_table_replace -extern __typeof (g_hash_table_replace) g_hash_table_replace __attribute((alias("IA__g_hash_table_replace"), visibility("default"))); - -#undef g_hash_table_size -extern __typeof (g_hash_table_size) g_hash_table_size __attribute((alias("IA__g_hash_table_size"), visibility("default"))); - -#undef g_hash_table_steal -extern __typeof (g_hash_table_steal) g_hash_table_steal __attribute((alias("IA__g_hash_table_steal"), visibility("default"))); - -#undef g_hash_table_steal_all -extern __typeof (g_hash_table_steal_all) g_hash_table_steal_all __attribute((alias("IA__g_hash_table_steal_all"), visibility("default"))); - -#undef g_hash_table_iter_init -extern __typeof (g_hash_table_iter_init) g_hash_table_iter_init __attribute((alias("IA__g_hash_table_iter_init"), visibility("default"))); - -#undef g_hash_table_iter_next -extern __typeof (g_hash_table_iter_next) g_hash_table_iter_next __attribute((alias("IA__g_hash_table_iter_next"), visibility("default"))); - -#undef g_hash_table_iter_get_hash_table -extern __typeof (g_hash_table_iter_get_hash_table) g_hash_table_iter_get_hash_table __attribute((alias("IA__g_hash_table_iter_get_hash_table"), visibility("default"))); - -#undef g_hash_table_iter_remove -extern __typeof (g_hash_table_iter_remove) g_hash_table_iter_remove __attribute((alias("IA__g_hash_table_iter_remove"), visibility("default"))); - -#undef g_hash_table_iter_steal -extern __typeof (g_hash_table_iter_steal) g_hash_table_iter_steal __attribute((alias("IA__g_hash_table_iter_steal"), visibility("default"))); - -#endif -#endif -#if IN_HEADER(__G_HOOK_H__) -#if IN_FILE(__G_HOOK_C__) -#undef g_hook_alloc -extern __typeof (g_hook_alloc) g_hook_alloc __attribute((alias("IA__g_hook_alloc"), visibility("default"))); - -#undef g_hook_compare_ids -extern __typeof (g_hook_compare_ids) g_hook_compare_ids __attribute((alias("IA__g_hook_compare_ids"), visibility("default"))); - -#undef g_hook_destroy -extern __typeof (g_hook_destroy) g_hook_destroy __attribute((alias("IA__g_hook_destroy"), visibility("default"))); - -#undef g_hook_destroy_link -extern __typeof (g_hook_destroy_link) g_hook_destroy_link __attribute((alias("IA__g_hook_destroy_link"), visibility("default"))); - -#undef g_hook_find -extern __typeof (g_hook_find) g_hook_find __attribute((alias("IA__g_hook_find"), visibility("default"))); - -#undef g_hook_find_data -extern __typeof (g_hook_find_data) g_hook_find_data __attribute((alias("IA__g_hook_find_data"), visibility("default"))); - -#undef g_hook_find_func -extern __typeof (g_hook_find_func) g_hook_find_func __attribute((alias("IA__g_hook_find_func"), visibility("default"))); - -#undef g_hook_find_func_data -extern __typeof (g_hook_find_func_data) g_hook_find_func_data __attribute((alias("IA__g_hook_find_func_data"), visibility("default"))); - -#undef g_hook_first_valid -extern __typeof (g_hook_first_valid) g_hook_first_valid __attribute((alias("IA__g_hook_first_valid"), visibility("default"))); - -#undef g_hook_free -extern __typeof (g_hook_free) g_hook_free __attribute((alias("IA__g_hook_free"), visibility("default"))); - -#undef g_hook_get -extern __typeof (g_hook_get) g_hook_get __attribute((alias("IA__g_hook_get"), visibility("default"))); - -#undef g_hook_insert_before -extern __typeof (g_hook_insert_before) g_hook_insert_before __attribute((alias("IA__g_hook_insert_before"), visibility("default"))); - -#undef g_hook_insert_sorted -extern __typeof (g_hook_insert_sorted) g_hook_insert_sorted __attribute((alias("IA__g_hook_insert_sorted"), visibility("default"))); - -#undef g_hook_list_clear -extern __typeof (g_hook_list_clear) g_hook_list_clear __attribute((alias("IA__g_hook_list_clear"), visibility("default"))); - -#undef g_hook_list_init -extern __typeof (g_hook_list_init) g_hook_list_init __attribute((alias("IA__g_hook_list_init"), visibility("default"))); - -#undef g_hook_list_invoke -extern __typeof (g_hook_list_invoke) g_hook_list_invoke __attribute((alias("IA__g_hook_list_invoke"), visibility("default"))); - -#undef g_hook_list_invoke_check -extern __typeof (g_hook_list_invoke_check) g_hook_list_invoke_check __attribute((alias("IA__g_hook_list_invoke_check"), visibility("default"))); - -#undef g_hook_list_marshal -extern __typeof (g_hook_list_marshal) g_hook_list_marshal __attribute((alias("IA__g_hook_list_marshal"), visibility("default"))); - -#undef g_hook_list_marshal_check -extern __typeof (g_hook_list_marshal_check) g_hook_list_marshal_check __attribute((alias("IA__g_hook_list_marshal_check"), visibility("default"))); - -#undef g_hook_next_valid -extern __typeof (g_hook_next_valid) g_hook_next_valid __attribute((alias("IA__g_hook_next_valid"), visibility("default"))); - -#undef g_hook_prepend -extern __typeof (g_hook_prepend) g_hook_prepend __attribute((alias("IA__g_hook_prepend"), visibility("default"))); - -#undef g_hook_ref -extern __typeof (g_hook_ref) g_hook_ref __attribute((alias("IA__g_hook_ref"), visibility("default"))); - -#undef g_hook_unref -extern __typeof (g_hook_unref) g_hook_unref __attribute((alias("IA__g_hook_unref"), visibility("default"))); - -#endif -#endif -#if IN_HEADER(__G_IOCHANNEL_H__) -#if IN_FILE(__G_IOCHANNEL_C__) -#undef g_io_add_watch -extern __typeof (g_io_add_watch) g_io_add_watch __attribute((alias("IA__g_io_add_watch"), visibility("default"))); - -#undef g_io_add_watch_full -extern __typeof (g_io_add_watch_full) g_io_add_watch_full __attribute((alias("IA__g_io_add_watch_full"), visibility("default"))); - -#undef g_io_create_watch -extern __typeof (g_io_create_watch) g_io_create_watch __attribute((alias("IA__g_io_create_watch"), visibility("default"))); - -#undef g_io_channel_error_from_errno -extern __typeof (g_io_channel_error_from_errno) g_io_channel_error_from_errno __attribute((alias("IA__g_io_channel_error_from_errno"), visibility("default"))); - -#undef g_io_channel_error_quark -extern __typeof (g_io_channel_error_quark) g_io_channel_error_quark __attribute((alias("IA__g_io_channel_error_quark"), visibility("default"))); - -#undef g_io_channel_flush -extern __typeof (g_io_channel_flush) g_io_channel_flush __attribute((alias("IA__g_io_channel_flush"), visibility("default"))); - -#undef g_io_channel_get_buffer_condition -extern __typeof (g_io_channel_get_buffer_condition) g_io_channel_get_buffer_condition __attribute((alias("IA__g_io_channel_get_buffer_condition"), visibility("default"))); - -#undef g_io_channel_get_buffered -extern __typeof (g_io_channel_get_buffered) g_io_channel_get_buffered __attribute((alias("IA__g_io_channel_get_buffered"), visibility("default"))); - -#undef g_io_channel_get_buffer_size -extern __typeof (g_io_channel_get_buffer_size) g_io_channel_get_buffer_size __attribute((alias("IA__g_io_channel_get_buffer_size"), visibility("default"))); - -#undef g_io_channel_get_close_on_unref -extern __typeof (g_io_channel_get_close_on_unref) g_io_channel_get_close_on_unref __attribute((alias("IA__g_io_channel_get_close_on_unref"), visibility("default"))); - -#undef g_io_channel_get_encoding -extern __typeof (g_io_channel_get_encoding) g_io_channel_get_encoding __attribute((alias("IA__g_io_channel_get_encoding"), visibility("default"))); - -#undef g_io_channel_get_flags -extern __typeof (g_io_channel_get_flags) g_io_channel_get_flags __attribute((alias("IA__g_io_channel_get_flags"), visibility("default"))); - -#undef g_io_channel_get_line_term -extern __typeof (g_io_channel_get_line_term) g_io_channel_get_line_term __attribute((alias("IA__g_io_channel_get_line_term"), visibility("default"))); - -#undef g_io_channel_init -extern __typeof (g_io_channel_init) g_io_channel_init __attribute((alias("IA__g_io_channel_init"), visibility("default"))); - -#undef g_io_channel_read_chars -extern __typeof (g_io_channel_read_chars) g_io_channel_read_chars __attribute((alias("IA__g_io_channel_read_chars"), visibility("default"))); - -#undef g_io_channel_read_line -extern __typeof (g_io_channel_read_line) g_io_channel_read_line __attribute((alias("IA__g_io_channel_read_line"), visibility("default"))); - -#undef g_io_channel_read_line_string -extern __typeof (g_io_channel_read_line_string) g_io_channel_read_line_string __attribute((alias("IA__g_io_channel_read_line_string"), visibility("default"))); - -#undef g_io_channel_read_to_end -extern __typeof (g_io_channel_read_to_end) g_io_channel_read_to_end __attribute((alias("IA__g_io_channel_read_to_end"), visibility("default"))); - -#undef g_io_channel_read_unichar -extern __typeof (g_io_channel_read_unichar) g_io_channel_read_unichar __attribute((alias("IA__g_io_channel_read_unichar"), visibility("default"))); - -#undef g_io_channel_ref -extern __typeof (g_io_channel_ref) g_io_channel_ref __attribute((alias("IA__g_io_channel_ref"), visibility("default"))); - -#undef g_io_channel_seek_position -extern __typeof (g_io_channel_seek_position) g_io_channel_seek_position __attribute((alias("IA__g_io_channel_seek_position"), visibility("default"))); - -#undef g_io_channel_set_buffered -extern __typeof (g_io_channel_set_buffered) g_io_channel_set_buffered __attribute((alias("IA__g_io_channel_set_buffered"), visibility("default"))); - -#undef g_io_channel_set_buffer_size -extern __typeof (g_io_channel_set_buffer_size) g_io_channel_set_buffer_size __attribute((alias("IA__g_io_channel_set_buffer_size"), visibility("default"))); - -#undef g_io_channel_set_close_on_unref -extern __typeof (g_io_channel_set_close_on_unref) g_io_channel_set_close_on_unref __attribute((alias("IA__g_io_channel_set_close_on_unref"), visibility("default"))); - -#undef g_io_channel_set_encoding -extern __typeof (g_io_channel_set_encoding) g_io_channel_set_encoding __attribute((alias("IA__g_io_channel_set_encoding"), visibility("default"))); - -#undef g_io_channel_set_flags -extern __typeof (g_io_channel_set_flags) g_io_channel_set_flags __attribute((alias("IA__g_io_channel_set_flags"), visibility("default"))); - -#undef g_io_channel_set_line_term -extern __typeof (g_io_channel_set_line_term) g_io_channel_set_line_term __attribute((alias("IA__g_io_channel_set_line_term"), visibility("default"))); - -#undef g_io_channel_shutdown -extern __typeof (g_io_channel_shutdown) g_io_channel_shutdown __attribute((alias("IA__g_io_channel_shutdown"), visibility("default"))); - -#undef g_io_channel_unref -extern __typeof (g_io_channel_unref) g_io_channel_unref __attribute((alias("IA__g_io_channel_unref"), visibility("default"))); - -#ifndef G_DISABLE_DEPRECATED -#undef g_io_channel_close -extern __typeof (g_io_channel_close) g_io_channel_close __attribute((alias("IA__g_io_channel_close"), visibility("default"))); - -#undef g_io_channel_read -extern __typeof (g_io_channel_read) g_io_channel_read __attribute((alias("IA__g_io_channel_read"), visibility("default"))); - -#undef g_io_channel_seek -extern __typeof (g_io_channel_seek) g_io_channel_seek __attribute((alias("IA__g_io_channel_seek"), visibility("default"))); - -#undef g_io_channel_write -extern __typeof (g_io_channel_write) g_io_channel_write __attribute((alias("IA__g_io_channel_write"), visibility("default"))); - -#endif -#undef g_io_channel_write_chars -extern __typeof (g_io_channel_write_chars) g_io_channel_write_chars __attribute((alias("IA__g_io_channel_write_chars"), visibility("default"))); - -#undef g_io_channel_write_unichar -extern __typeof (g_io_channel_write_unichar) g_io_channel_write_unichar __attribute((alias("IA__g_io_channel_write_unichar"), visibility("default"))); - -#endif -#endif -#if IN_HEADER(__G_IOCHANNEL_H__) -#if IN_FILE(__G_IO_UNIX_C__) -#ifdef G_OS_UNIX -#undef g_io_channel_unix_get_fd -extern __typeof (g_io_channel_unix_get_fd) g_io_channel_unix_get_fd __attribute((alias("IA__g_io_channel_unix_get_fd"), visibility("default"))); - -#undef g_io_channel_unix_new -extern __typeof (g_io_channel_unix_new) g_io_channel_unix_new __attribute((alias("IA__g_io_channel_unix_new"), visibility("default"))); - -#undef g_io_channel_new_file -extern __typeof (g_io_channel_new_file) g_io_channel_new_file __attribute((alias("IA__g_io_channel_new_file"), visibility("default"))); - -#endif -#endif -#endif -#if IN_HEADER(__G_IOCHANNEL_H__) -#if IN_FILE(__G_IO_WIN32_C__) -#ifdef G_OS_WIN32 -#undef g_io_channel_unix_get_fd -extern __typeof (g_io_channel_unix_get_fd) g_io_channel_unix_get_fd __attribute((alias("IA__g_io_channel_unix_get_fd"), visibility("default"))); - -#undef g_io_channel_unix_new -extern __typeof (g_io_channel_unix_new) g_io_channel_unix_new __attribute((alias("IA__g_io_channel_unix_new"), visibility("default"))); - -#ifndef _WIN64 -#undef g_io_channel_new_file -extern __typeof (g_io_channel_new_file) g_io_channel_new_file __attribute((alias("IA__g_io_channel_new_file"), visibility("default"))); - -#endif -#undef g_io_channel_new_file_utf8 -extern __typeof (g_io_channel_new_file_utf8) g_io_channel_new_file_utf8 __attribute((alias("IA__g_io_channel_new_file_utf8"), visibility("default"))); - -#undef g_io_channel_win32_get_fd -extern __typeof (g_io_channel_win32_get_fd) g_io_channel_win32_get_fd __attribute((alias("IA__g_io_channel_win32_get_fd"), visibility("default"))); - -#undef g_io_channel_win32_make_pollfd -extern __typeof (g_io_channel_win32_make_pollfd) g_io_channel_win32_make_pollfd __attribute((alias("IA__g_io_channel_win32_make_pollfd"), visibility("default"))); - -#undef g_io_channel_win32_new_fd -extern __typeof (g_io_channel_win32_new_fd) g_io_channel_win32_new_fd __attribute((alias("IA__g_io_channel_win32_new_fd"), visibility("default"))); - -#undef g_io_channel_win32_new_messages -extern __typeof (g_io_channel_win32_new_messages) g_io_channel_win32_new_messages __attribute((alias("IA__g_io_channel_win32_new_messages"), visibility("default"))); - -#undef g_io_channel_win32_new_socket -extern __typeof (g_io_channel_win32_new_socket) g_io_channel_win32_new_socket __attribute((alias("IA__g_io_channel_win32_new_socket"), visibility("default"))); - -#ifndef _WIN64 -#undef g_io_channel_win32_new_stream_socket -extern __typeof (g_io_channel_win32_new_stream_socket) g_io_channel_win32_new_stream_socket __attribute((alias("IA__g_io_channel_win32_new_stream_socket"), visibility("default"))); - -#endif -#undef g_io_channel_win32_poll -extern __typeof (g_io_channel_win32_poll) g_io_channel_win32_poll __attribute((alias("IA__g_io_channel_win32_poll"), visibility("default"))); - -#undef g_io_channel_win32_set_debug -extern __typeof (g_io_channel_win32_set_debug) g_io_channel_win32_set_debug __attribute((alias("IA__g_io_channel_win32_set_debug"), visibility("default"))); - -#endif -#endif -#endif -#if IN_HEADER(__G_KEY_FILE_H__) -#if IN_FILE(__G_KEY_FILE_C__) -#undef g_key_file_error_quark -extern __typeof (g_key_file_error_quark) g_key_file_error_quark __attribute((alias("IA__g_key_file_error_quark"), visibility("default"))); - -#undef g_key_file_free -extern __typeof (g_key_file_free) g_key_file_free __attribute((alias("IA__g_key_file_free"), visibility("default"))); - -#undef g_key_file_get_boolean -extern __typeof (g_key_file_get_boolean) g_key_file_get_boolean __attribute((alias("IA__g_key_file_get_boolean"), visibility("default"))); - -#undef g_key_file_get_boolean_list -extern __typeof (g_key_file_get_boolean_list) g_key_file_get_boolean_list __attribute((alias("IA__g_key_file_get_boolean_list"), visibility("default"))); - -#undef g_key_file_get_comment -extern __typeof (g_key_file_get_comment) g_key_file_get_comment __attribute((alias("IA__g_key_file_get_comment"), visibility("default"))); - -#undef g_key_file_get_groups -extern __typeof (g_key_file_get_groups) g_key_file_get_groups __attribute((alias("IA__g_key_file_get_groups"), visibility("default"))); - -#undef g_key_file_get_double -extern __typeof (g_key_file_get_double) g_key_file_get_double __attribute((alias("IA__g_key_file_get_double"), visibility("default"))); - -#undef g_key_file_get_double_list -extern __typeof (g_key_file_get_double_list) g_key_file_get_double_list __attribute((alias("IA__g_key_file_get_double_list"), visibility("default"))); - -#undef g_key_file_get_integer -extern __typeof (g_key_file_get_integer) g_key_file_get_integer __attribute((alias("IA__g_key_file_get_integer"), visibility("default"))); - -#undef g_key_file_get_integer_list -extern __typeof (g_key_file_get_integer_list) g_key_file_get_integer_list __attribute((alias("IA__g_key_file_get_integer_list"), visibility("default"))); - -#undef g_key_file_get_keys -extern __typeof (g_key_file_get_keys) g_key_file_get_keys __attribute((alias("IA__g_key_file_get_keys"), visibility("default"))); - -#undef g_key_file_get_locale_string -extern __typeof (g_key_file_get_locale_string) g_key_file_get_locale_string __attribute((alias("IA__g_key_file_get_locale_string"), visibility("default"))); - -#undef g_key_file_get_locale_string_list -extern __typeof (g_key_file_get_locale_string_list) g_key_file_get_locale_string_list __attribute((alias("IA__g_key_file_get_locale_string_list"), visibility("default"))); - -#undef g_key_file_get_start_group -extern __typeof (g_key_file_get_start_group) g_key_file_get_start_group __attribute((alias("IA__g_key_file_get_start_group"), visibility("default"))); - -#undef g_key_file_get_string -extern __typeof (g_key_file_get_string) g_key_file_get_string __attribute((alias("IA__g_key_file_get_string"), visibility("default"))); - -#undef g_key_file_get_string_list -extern __typeof (g_key_file_get_string_list) g_key_file_get_string_list __attribute((alias("IA__g_key_file_get_string_list"), visibility("default"))); - -#undef g_key_file_get_value -extern __typeof (g_key_file_get_value) g_key_file_get_value __attribute((alias("IA__g_key_file_get_value"), visibility("default"))); - -#undef g_key_file_has_group -extern __typeof (g_key_file_has_group) g_key_file_has_group __attribute((alias("IA__g_key_file_has_group"), visibility("default"))); - -#undef g_key_file_has_key -extern __typeof (g_key_file_has_key) g_key_file_has_key __attribute((alias("IA__g_key_file_has_key"), visibility("default"))); - -#undef g_key_file_load_from_dirs -extern __typeof (g_key_file_load_from_dirs) g_key_file_load_from_dirs __attribute((alias("IA__g_key_file_load_from_dirs"), visibility("default"))); - -#undef g_key_file_load_from_data -extern __typeof (g_key_file_load_from_data) g_key_file_load_from_data __attribute((alias("IA__g_key_file_load_from_data"), visibility("default"))); - -#undef g_key_file_load_from_data_dirs -extern __typeof (g_key_file_load_from_data_dirs) g_key_file_load_from_data_dirs __attribute((alias("IA__g_key_file_load_from_data_dirs"), visibility("default"))); - -#undef g_key_file_load_from_file -extern __typeof (g_key_file_load_from_file) g_key_file_load_from_file __attribute((alias("IA__g_key_file_load_from_file"), visibility("default"))); - -#undef g_key_file_new -extern __typeof (g_key_file_new) g_key_file_new __attribute((alias("IA__g_key_file_new"), visibility("default"))); - -#undef g_key_file_remove_comment -extern __typeof (g_key_file_remove_comment) g_key_file_remove_comment __attribute((alias("IA__g_key_file_remove_comment"), visibility("default"))); - -#undef g_key_file_remove_group -extern __typeof (g_key_file_remove_group) g_key_file_remove_group __attribute((alias("IA__g_key_file_remove_group"), visibility("default"))); - -#undef g_key_file_remove_key -extern __typeof (g_key_file_remove_key) g_key_file_remove_key __attribute((alias("IA__g_key_file_remove_key"), visibility("default"))); - -#undef g_key_file_set_boolean -extern __typeof (g_key_file_set_boolean) g_key_file_set_boolean __attribute((alias("IA__g_key_file_set_boolean"), visibility("default"))); - -#undef g_key_file_set_boolean_list -extern __typeof (g_key_file_set_boolean_list) g_key_file_set_boolean_list __attribute((alias("IA__g_key_file_set_boolean_list"), visibility("default"))); - -#undef g_key_file_set_comment -extern __typeof (g_key_file_set_comment) g_key_file_set_comment __attribute((alias("IA__g_key_file_set_comment"), visibility("default"))); - -#undef g_key_file_set_double -extern __typeof (g_key_file_set_double) g_key_file_set_double __attribute((alias("IA__g_key_file_set_double"), visibility("default"))); - -#undef g_key_file_set_double_list -extern __typeof (g_key_file_set_double_list) g_key_file_set_double_list __attribute((alias("IA__g_key_file_set_double_list"), visibility("default"))); - -#undef g_key_file_set_integer -extern __typeof (g_key_file_set_integer) g_key_file_set_integer __attribute((alias("IA__g_key_file_set_integer"), visibility("default"))); - -#undef g_key_file_set_integer_list -extern __typeof (g_key_file_set_integer_list) g_key_file_set_integer_list __attribute((alias("IA__g_key_file_set_integer_list"), visibility("default"))); - -#undef g_key_file_set_list_separator -extern __typeof (g_key_file_set_list_separator) g_key_file_set_list_separator __attribute((alias("IA__g_key_file_set_list_separator"), visibility("default"))); - -#undef g_key_file_set_locale_string -extern __typeof (g_key_file_set_locale_string) g_key_file_set_locale_string __attribute((alias("IA__g_key_file_set_locale_string"), visibility("default"))); - -#undef g_key_file_set_locale_string_list -extern __typeof (g_key_file_set_locale_string_list) g_key_file_set_locale_string_list __attribute((alias("IA__g_key_file_set_locale_string_list"), visibility("default"))); - -#undef g_key_file_set_string -extern __typeof (g_key_file_set_string) g_key_file_set_string __attribute((alias("IA__g_key_file_set_string"), visibility("default"))); - -#undef g_key_file_set_string_list -extern __typeof (g_key_file_set_string_list) g_key_file_set_string_list __attribute((alias("IA__g_key_file_set_string_list"), visibility("default"))); - -#undef g_key_file_set_value -extern __typeof (g_key_file_set_value) g_key_file_set_value __attribute((alias("IA__g_key_file_set_value"), visibility("default"))); - -#undef g_key_file_to_data -extern __typeof (g_key_file_to_data) g_key_file_to_data __attribute((alias("IA__g_key_file_to_data"), visibility("default"))); - -#endif -#endif -#if IN_HEADER(__G_LIST_H__) -#if IN_FILE(__G_LIST_C__) -#undef g_list_alloc -extern __typeof (g_list_alloc) g_list_alloc __attribute((alias("IA__g_list_alloc"), visibility("default"))); - -#undef g_list_append -extern __typeof (g_list_append) g_list_append __attribute((alias("IA__g_list_append"), visibility("default"))); - -#undef g_list_concat -extern __typeof (g_list_concat) g_list_concat __attribute((alias("IA__g_list_concat"), visibility("default"))); - -#undef g_list_copy -extern __typeof (g_list_copy) g_list_copy __attribute((alias("IA__g_list_copy"), visibility("default"))); - -#undef g_list_delete_link -extern __typeof (g_list_delete_link) g_list_delete_link __attribute((alias("IA__g_list_delete_link"), visibility("default"))); - -#undef g_list_find -extern __typeof (g_list_find) g_list_find __attribute((alias("IA__g_list_find"), visibility("default"))); - -#undef g_list_find_custom -extern __typeof (g_list_find_custom) g_list_find_custom __attribute((alias("IA__g_list_find_custom"), visibility("default"))); - -#undef g_list_first -extern __typeof (g_list_first) g_list_first __attribute((alias("IA__g_list_first"), visibility("default"))); - -#undef g_list_foreach -extern __typeof (g_list_foreach) g_list_foreach __attribute((alias("IA__g_list_foreach"), visibility("default"))); - -#undef g_list_free -extern __typeof (g_list_free) g_list_free __attribute((alias("IA__g_list_free"), visibility("default"))); - -#undef g_list_free_1 -extern __typeof (g_list_free_1) g_list_free_1 __attribute((alias("IA__g_list_free_1"), visibility("default"))); - -#undef g_list_index -extern __typeof (g_list_index) g_list_index __attribute((alias("IA__g_list_index"), visibility("default"))); - -#undef g_list_insert -extern __typeof (g_list_insert) g_list_insert __attribute((alias("IA__g_list_insert"), visibility("default"))); - -#undef g_list_insert_before -extern __typeof (g_list_insert_before) g_list_insert_before __attribute((alias("IA__g_list_insert_before"), visibility("default"))); - -#undef g_list_insert_sorted -extern __typeof (g_list_insert_sorted) g_list_insert_sorted __attribute((alias("IA__g_list_insert_sorted"), visibility("default"))); - -#undef g_list_insert_sorted_with_data -extern __typeof (g_list_insert_sorted_with_data) g_list_insert_sorted_with_data __attribute((alias("IA__g_list_insert_sorted_with_data"), visibility("default"))); - -#undef g_list_last -extern __typeof (g_list_last) g_list_last __attribute((alias("IA__g_list_last"), visibility("default"))); - -#undef g_list_length -extern __typeof (g_list_length) g_list_length __attribute((alias("IA__g_list_length"), visibility("default"))); - -#undef g_list_nth -extern __typeof (g_list_nth) g_list_nth __attribute((alias("IA__g_list_nth"), visibility("default"))); - -#undef g_list_nth_data -extern __typeof (g_list_nth_data) g_list_nth_data __attribute((alias("IA__g_list_nth_data"), visibility("default"))); - -#undef g_list_nth_prev -extern __typeof (g_list_nth_prev) g_list_nth_prev __attribute((alias("IA__g_list_nth_prev"), visibility("default"))); - -#ifndef G_DISABLE_DEPRECATED -#undef g_list_pop_allocator -extern __typeof (g_list_pop_allocator) g_list_pop_allocator __attribute((alias("IA__g_list_pop_allocator"), visibility("default"))); - -#endif -#undef g_list_position -extern __typeof (g_list_position) g_list_position __attribute((alias("IA__g_list_position"), visibility("default"))); - -#undef g_list_prepend -extern __typeof (g_list_prepend) g_list_prepend __attribute((alias("IA__g_list_prepend"), visibility("default"))); - -#ifndef G_DISABLE_DEPRECATED -#undef g_list_push_allocator -extern __typeof (g_list_push_allocator) g_list_push_allocator __attribute((alias("IA__g_list_push_allocator"), visibility("default"))); - -#endif -#undef g_list_remove -extern __typeof (g_list_remove) g_list_remove __attribute((alias("IA__g_list_remove"), visibility("default"))); - -#undef g_list_remove_all -extern __typeof (g_list_remove_all) g_list_remove_all __attribute((alias("IA__g_list_remove_all"), visibility("default"))); - -#undef g_list_remove_link -extern __typeof (g_list_remove_link) g_list_remove_link __attribute((alias("IA__g_list_remove_link"), visibility("default"))); - -#undef g_list_reverse -extern __typeof (g_list_reverse) g_list_reverse __attribute((alias("IA__g_list_reverse"), visibility("default"))); - -#undef g_list_sort -extern __typeof (g_list_sort) g_list_sort __attribute((alias("IA__g_list_sort"), visibility("default"))); - -#undef g_list_sort_with_data -extern __typeof (g_list_sort_with_data) g_list_sort_with_data __attribute((alias("IA__g_list_sort_with_data"), visibility("default"))); - -#endif -#endif -#if IN_HEADER(__G_MAIN_H__) -#if IN_FILE(__G_MAIN_C__) -#undef g_child_watch_add -extern __typeof (g_child_watch_add) g_child_watch_add __attribute((alias("IA__g_child_watch_add"), visibility("default"))); - -#undef g_child_watch_add_full -extern __typeof (g_child_watch_add_full) g_child_watch_add_full __attribute((alias("IA__g_child_watch_add_full"), visibility("default"))); - -#undef g_child_watch_source_new -extern __typeof (g_child_watch_source_new) g_child_watch_source_new __attribute((alias("IA__g_child_watch_source_new"), visibility("default"))); - -#undef g_get_current_time -extern __typeof (g_get_current_time) g_get_current_time __attribute((alias("IA__g_get_current_time"), visibility("default"))); - -#undef g_main_context_acquire -extern __typeof (g_main_context_acquire) g_main_context_acquire __attribute((alias("IA__g_main_context_acquire"), visibility("default"))); - -#undef g_main_context_add_poll -extern __typeof (g_main_context_add_poll) g_main_context_add_poll __attribute((alias("IA__g_main_context_add_poll"), visibility("default"))); - -#undef g_main_context_check -extern __typeof (g_main_context_check) g_main_context_check __attribute((alias("IA__g_main_context_check"), visibility("default"))); - -#undef g_main_context_default -extern __typeof (g_main_context_default) g_main_context_default __attribute((alias("IA__g_main_context_default"), visibility("default"))); - -#undef g_main_context_dispatch -extern __typeof (g_main_context_dispatch) g_main_context_dispatch __attribute((alias("IA__g_main_context_dispatch"), visibility("default"))); - -#undef g_main_context_find_source_by_funcs_user_data -extern __typeof (g_main_context_find_source_by_funcs_user_data) g_main_context_find_source_by_funcs_user_data __attribute((alias("IA__g_main_context_find_source_by_funcs_user_data"), visibility("default"))); - -#undef g_main_context_find_source_by_id -extern __typeof (g_main_context_find_source_by_id) g_main_context_find_source_by_id __attribute((alias("IA__g_main_context_find_source_by_id"), visibility("default"))); - -#undef g_main_context_find_source_by_user_data -extern __typeof (g_main_context_find_source_by_user_data) g_main_context_find_source_by_user_data __attribute((alias("IA__g_main_context_find_source_by_user_data"), visibility("default"))); - -#undef g_main_context_get_poll_func -extern __typeof (g_main_context_get_poll_func) g_main_context_get_poll_func __attribute((alias("IA__g_main_context_get_poll_func"), visibility("default"))); - -#undef g_main_context_is_owner -extern __typeof (g_main_context_is_owner) g_main_context_is_owner __attribute((alias("IA__g_main_context_is_owner"), visibility("default"))); - -#undef g_main_context_iteration -extern __typeof (g_main_context_iteration) g_main_context_iteration __attribute((alias("IA__g_main_context_iteration"), visibility("default"))); - -#undef g_main_context_new -extern __typeof (g_main_context_new) g_main_context_new __attribute((alias("IA__g_main_context_new"), visibility("default"))); - -#undef g_main_context_pending -extern __typeof (g_main_context_pending) g_main_context_pending __attribute((alias("IA__g_main_context_pending"), visibility("default"))); - -#undef g_main_context_prepare -extern __typeof (g_main_context_prepare) g_main_context_prepare __attribute((alias("IA__g_main_context_prepare"), visibility("default"))); - -#undef g_main_context_query -extern __typeof (g_main_context_query) g_main_context_query __attribute((alias("IA__g_main_context_query"), visibility("default"))); - -#undef g_main_context_ref -extern __typeof (g_main_context_ref) g_main_context_ref __attribute((alias("IA__g_main_context_ref"), visibility("default"))); - -#undef g_main_context_release -extern __typeof (g_main_context_release) g_main_context_release __attribute((alias("IA__g_main_context_release"), visibility("default"))); - -#undef g_main_context_remove_poll -extern __typeof (g_main_context_remove_poll) g_main_context_remove_poll __attribute((alias("IA__g_main_context_remove_poll"), visibility("default"))); - -#undef g_main_context_set_poll_func -extern __typeof (g_main_context_set_poll_func) g_main_context_set_poll_func __attribute((alias("IA__g_main_context_set_poll_func"), visibility("default"))); - -#undef g_main_context_unref -extern __typeof (g_main_context_unref) g_main_context_unref __attribute((alias("IA__g_main_context_unref"), visibility("default"))); - -#undef g_main_context_wait -extern __typeof (g_main_context_wait) g_main_context_wait __attribute((alias("IA__g_main_context_wait"), visibility("default"))); - -#undef g_main_context_wakeup -extern __typeof (g_main_context_wakeup) g_main_context_wakeup __attribute((alias("IA__g_main_context_wakeup"), visibility("default"))); - -#undef g_main_depth -extern __typeof (g_main_depth) g_main_depth __attribute((alias("IA__g_main_depth"), visibility("default"))); - -#undef g_main_current_source -extern __typeof (g_main_current_source) g_main_current_source __attribute((alias("IA__g_main_current_source"), visibility("default"))); - -#undef g_main_loop_get_context -extern __typeof (g_main_loop_get_context) g_main_loop_get_context __attribute((alias("IA__g_main_loop_get_context"), visibility("default"))); - -#undef g_main_loop_is_running -extern __typeof (g_main_loop_is_running) g_main_loop_is_running __attribute((alias("IA__g_main_loop_is_running"), visibility("default"))); - -#undef g_main_loop_new -extern __typeof (g_main_loop_new) g_main_loop_new __attribute((alias("IA__g_main_loop_new"), visibility("default"))); - -#undef g_main_loop_quit -extern __typeof (g_main_loop_quit) g_main_loop_quit __attribute((alias("IA__g_main_loop_quit"), visibility("default"))); - -#undef g_main_loop_ref -extern __typeof (g_main_loop_ref) g_main_loop_ref __attribute((alias("IA__g_main_loop_ref"), visibility("default"))); - -#undef g_main_loop_run -extern __typeof (g_main_loop_run) g_main_loop_run __attribute((alias("IA__g_main_loop_run"), visibility("default"))); - -#undef g_main_loop_unref -extern __typeof (g_main_loop_unref) g_main_loop_unref __attribute((alias("IA__g_main_loop_unref"), visibility("default"))); - -#undef g_source_add_poll -extern __typeof (g_source_add_poll) g_source_add_poll __attribute((alias("IA__g_source_add_poll"), visibility("default"))); - -#undef g_source_attach -extern __typeof (g_source_attach) g_source_attach __attribute((alias("IA__g_source_attach"), visibility("default"))); - -#undef g_source_destroy -extern __typeof (g_source_destroy) g_source_destroy __attribute((alias("IA__g_source_destroy"), visibility("default"))); - -#undef g_source_get_can_recurse -extern __typeof (g_source_get_can_recurse) g_source_get_can_recurse __attribute((alias("IA__g_source_get_can_recurse"), visibility("default"))); - -#undef g_source_get_context -extern __typeof (g_source_get_context) g_source_get_context __attribute((alias("IA__g_source_get_context"), visibility("default"))); - -#undef g_source_get_current_time -extern __typeof (g_source_get_current_time) g_source_get_current_time __attribute((alias("IA__g_source_get_current_time"), visibility("default"))); - -#undef g_source_get_id -extern __typeof (g_source_get_id) g_source_get_id __attribute((alias("IA__g_source_get_id"), visibility("default"))); - -#undef g_source_get_priority -extern __typeof (g_source_get_priority) g_source_get_priority __attribute((alias("IA__g_source_get_priority"), visibility("default"))); - -#undef g_source_new -extern __typeof (g_source_new) g_source_new __attribute((alias("IA__g_source_new"), visibility("default"))); - -#undef g_source_ref -extern __typeof (g_source_ref) g_source_ref __attribute((alias("IA__g_source_ref"), visibility("default"))); - -#undef g_source_remove -extern __typeof (g_source_remove) g_source_remove __attribute((alias("IA__g_source_remove"), visibility("default"))); - -#undef g_source_remove_by_funcs_user_data -extern __typeof (g_source_remove_by_funcs_user_data) g_source_remove_by_funcs_user_data __attribute((alias("IA__g_source_remove_by_funcs_user_data"), visibility("default"))); - -#undef g_source_remove_by_user_data -extern __typeof (g_source_remove_by_user_data) g_source_remove_by_user_data __attribute((alias("IA__g_source_remove_by_user_data"), visibility("default"))); - -#undef g_source_remove_poll -extern __typeof (g_source_remove_poll) g_source_remove_poll __attribute((alias("IA__g_source_remove_poll"), visibility("default"))); - -#undef g_source_set_callback -extern __typeof (g_source_set_callback) g_source_set_callback __attribute((alias("IA__g_source_set_callback"), visibility("default"))); - -#undef g_source_set_callback_indirect -extern __typeof (g_source_set_callback_indirect) g_source_set_callback_indirect __attribute((alias("IA__g_source_set_callback_indirect"), visibility("default"))); - -#undef g_source_set_can_recurse -extern __typeof (g_source_set_can_recurse) g_source_set_can_recurse __attribute((alias("IA__g_source_set_can_recurse"), visibility("default"))); - -#undef g_source_set_funcs -extern __typeof (g_source_set_funcs) g_source_set_funcs __attribute((alias("IA__g_source_set_funcs"), visibility("default"))); - -#undef g_source_is_destroyed -extern __typeof (g_source_is_destroyed) g_source_is_destroyed __attribute((alias("IA__g_source_is_destroyed"), visibility("default"))); - -#undef g_source_set_priority -extern __typeof (g_source_set_priority) g_source_set_priority __attribute((alias("IA__g_source_set_priority"), visibility("default"))); - -#undef g_source_unref -extern __typeof (g_source_unref) g_source_unref __attribute((alias("IA__g_source_unref"), visibility("default"))); - -#undef g_idle_add -extern __typeof (g_idle_add) g_idle_add __attribute((alias("IA__g_idle_add"), visibility("default"))); - -#undef g_idle_add_full -extern __typeof (g_idle_add_full) g_idle_add_full __attribute((alias("IA__g_idle_add_full"), visibility("default"))); - -#undef g_idle_remove_by_data -extern __typeof (g_idle_remove_by_data) g_idle_remove_by_data __attribute((alias("IA__g_idle_remove_by_data"), visibility("default"))); - -#undef g_idle_source_new -extern __typeof (g_idle_source_new) g_idle_source_new __attribute((alias("IA__g_idle_source_new"), visibility("default"))); - -#undef g_timeout_add -extern __typeof (g_timeout_add) g_timeout_add __attribute((alias("IA__g_timeout_add"), visibility("default"))); - -#undef g_timeout_add_seconds -extern __typeof (g_timeout_add_seconds) g_timeout_add_seconds __attribute((alias("IA__g_timeout_add_seconds"), visibility("default"))); - -#undef g_timeout_add_full -extern __typeof (g_timeout_add_full) g_timeout_add_full __attribute((alias("IA__g_timeout_add_full"), visibility("default"))); - -#undef g_timeout_add_seconds_full -extern __typeof (g_timeout_add_seconds_full) g_timeout_add_seconds_full __attribute((alias("IA__g_timeout_add_seconds_full"), visibility("default"))); - -#undef g_timeout_source_new -extern __typeof (g_timeout_source_new) g_timeout_source_new __attribute((alias("IA__g_timeout_source_new"), visibility("default"))); - -#undef g_timeout_source_new_seconds -extern __typeof (g_timeout_source_new_seconds) g_timeout_source_new_seconds __attribute((alias("IA__g_timeout_source_new_seconds"), visibility("default"))); - -#endif -#endif -#if IN_HEADER(__G_MAPPED_FILE_H__) -#if IN_FILE(__G_MAPPED_FILE_C__) -#undef g_mapped_file_new -extern __typeof (g_mapped_file_new) g_mapped_file_new __attribute((alias("IA__g_mapped_file_new"), visibility("default"))); - -#undef g_mapped_file_get_length -extern __typeof (g_mapped_file_get_length) g_mapped_file_get_length __attribute((alias("IA__g_mapped_file_get_length"), visibility("default"))); - -#undef g_mapped_file_get_contents -extern __typeof (g_mapped_file_get_contents) g_mapped_file_get_contents __attribute((alias("IA__g_mapped_file_get_contents"), visibility("default"))); - -#undef g_mapped_file_free -extern __typeof (g_mapped_file_free) g_mapped_file_free __attribute((alias("IA__g_mapped_file_free"), visibility("default"))); - -#endif -#endif -#if IN_HEADER(__G_MARKUP_H__) -#if IN_FILE(__G_MARKUP_C__) -#undef g_markup_error_quark -extern __typeof (g_markup_error_quark) g_markup_error_quark __attribute((alias("IA__g_markup_error_quark"), visibility("default"))); - -#undef g_markup_escape_text -extern __typeof (g_markup_escape_text) g_markup_escape_text __attribute((alias("IA__g_markup_escape_text"), visibility("default"))); - -#undef g_markup_parse_context_end_parse -extern __typeof (g_markup_parse_context_end_parse) g_markup_parse_context_end_parse __attribute((alias("IA__g_markup_parse_context_end_parse"), visibility("default"))); - -#undef g_markup_parse_context_free -extern __typeof (g_markup_parse_context_free) g_markup_parse_context_free __attribute((alias("IA__g_markup_parse_context_free"), visibility("default"))); - -#undef g_markup_parse_context_get_element -extern __typeof (g_markup_parse_context_get_element) g_markup_parse_context_get_element __attribute((alias("IA__g_markup_parse_context_get_element"), visibility("default"))); - -#undef g_markup_parse_context_get_element_stack -extern __typeof (g_markup_parse_context_get_element_stack) g_markup_parse_context_get_element_stack __attribute((alias("IA__g_markup_parse_context_get_element_stack"), visibility("default"))); - -#undef g_markup_parse_context_get_position -extern __typeof (g_markup_parse_context_get_position) g_markup_parse_context_get_position __attribute((alias("IA__g_markup_parse_context_get_position"), visibility("default"))); - -#undef g_markup_parse_context_get_user_data -extern __typeof (g_markup_parse_context_get_user_data) g_markup_parse_context_get_user_data __attribute((alias("IA__g_markup_parse_context_get_user_data"), visibility("default"))); - -#undef g_markup_parse_context_new -extern __typeof (g_markup_parse_context_new) g_markup_parse_context_new __attribute((alias("IA__g_markup_parse_context_new"), visibility("default"))); - -#undef g_markup_parse_context_parse -extern __typeof (g_markup_parse_context_parse) g_markup_parse_context_parse __attribute((alias("IA__g_markup_parse_context_parse"), visibility("default"))); - -#undef g_markup_parse_context_push -extern __typeof (g_markup_parse_context_push) g_markup_parse_context_push __attribute((alias("IA__g_markup_parse_context_push"), visibility("default"))); - -#undef g_markup_parse_context_pop -extern __typeof (g_markup_parse_context_pop) g_markup_parse_context_pop __attribute((alias("IA__g_markup_parse_context_pop"), visibility("default"))); - -#undef g_markup_printf_escaped -extern __typeof (g_markup_printf_escaped) g_markup_printf_escaped __attribute((alias("IA__g_markup_printf_escaped"), visibility("default"))); - -#undef g_markup_vprintf_escaped -extern __typeof (g_markup_vprintf_escaped) g_markup_vprintf_escaped __attribute((alias("IA__g_markup_vprintf_escaped"), visibility("default"))); - -#undef g_markup_collect_attributes -extern __typeof (g_markup_collect_attributes) g_markup_collect_attributes __attribute((alias("IA__g_markup_collect_attributes"), visibility("default"))); - -#endif -#endif -#if IN_HEADER(__G_MEM_H__) -#if IN_FILE(__G_MEM_C__) -#undef g_free -extern __typeof (g_free) g_free __attribute((alias("IA__g_free"), visibility("default"))); - -#undef g_malloc -extern __typeof (g_malloc) g_malloc __attribute((alias("IA__g_malloc"), visibility("default"))); - -#undef g_malloc0 -extern __typeof (g_malloc0) g_malloc0 __attribute((alias("IA__g_malloc0"), visibility("default"))); - -#undef g_mem_is_system_malloc -extern __typeof (g_mem_is_system_malloc) g_mem_is_system_malloc __attribute((alias("IA__g_mem_is_system_malloc"), visibility("default"))); - -#undef g_mem_profile -extern __typeof (g_mem_profile) g_mem_profile __attribute((alias("IA__g_mem_profile"), visibility("default"))); - -#undef g_mem_set_vtable -extern __typeof (g_mem_set_vtable) g_mem_set_vtable __attribute((alias("IA__g_mem_set_vtable"), visibility("default"))); - -#undef g_realloc -extern __typeof (g_realloc) g_realloc __attribute((alias("IA__g_realloc"), visibility("default"))); - -#undef g_try_malloc -extern __typeof (g_try_malloc) g_try_malloc __attribute((alias("IA__g_try_malloc"), visibility("default"))); - -#undef g_try_malloc0 -extern __typeof (g_try_malloc0) g_try_malloc0 __attribute((alias("IA__g_try_malloc0"), visibility("default"))); - -#undef g_try_realloc -extern __typeof (g_try_realloc) g_try_realloc __attribute((alias("IA__g_try_realloc"), visibility("default"))); - -#ifndef G_DISABLE_DEPRECATED -#undef g_allocator_free -extern __typeof (g_allocator_free) g_allocator_free __attribute((alias("IA__g_allocator_free"), visibility("default"))); - -#undef g_allocator_new -extern __typeof (g_allocator_new) g_allocator_new __attribute((alias("IA__g_allocator_new"), visibility("default"))); - -#undef g_mem_chunk_alloc -extern __typeof (g_mem_chunk_alloc) g_mem_chunk_alloc __attribute((alias("IA__g_mem_chunk_alloc"), visibility("default"))); - -#undef g_mem_chunk_alloc0 -extern __typeof (g_mem_chunk_alloc0) g_mem_chunk_alloc0 __attribute((alias("IA__g_mem_chunk_alloc0"), visibility("default"))); - -#undef g_mem_chunk_clean -extern __typeof (g_mem_chunk_clean) g_mem_chunk_clean __attribute((alias("IA__g_mem_chunk_clean"), visibility("default"))); - -#undef g_mem_chunk_destroy -extern __typeof (g_mem_chunk_destroy) g_mem_chunk_destroy __attribute((alias("IA__g_mem_chunk_destroy"), visibility("default"))); - -#undef g_mem_chunk_free -extern __typeof (g_mem_chunk_free) g_mem_chunk_free __attribute((alias("IA__g_mem_chunk_free"), visibility("default"))); - -#undef g_mem_chunk_info -extern __typeof (g_mem_chunk_info) g_mem_chunk_info __attribute((alias("IA__g_mem_chunk_info"), visibility("default"))); - -#undef g_mem_chunk_new -extern __typeof (g_mem_chunk_new) g_mem_chunk_new __attribute((alias("IA__g_mem_chunk_new"), visibility("default"))); - -#undef g_mem_chunk_print -extern __typeof (g_mem_chunk_print) g_mem_chunk_print __attribute((alias("IA__g_mem_chunk_print"), visibility("default"))); - -#undef g_mem_chunk_reset -extern __typeof (g_mem_chunk_reset) g_mem_chunk_reset __attribute((alias("IA__g_mem_chunk_reset"), visibility("default"))); - -#undef g_blow_chunks -extern __typeof (g_blow_chunks) g_blow_chunks __attribute((alias("IA__g_blow_chunks"), visibility("default"))); - -#endif -#endif -#endif -#if IN_HEADER(__G_SLICE_H__) -#if IN_FILE(__G_SLICE_C__) -#undef g_slice_alloc -extern __typeof (g_slice_alloc) g_slice_alloc __attribute((alias("IA__g_slice_alloc"), visibility("default"))); - -#undef g_slice_alloc0 -extern __typeof (g_slice_alloc0) g_slice_alloc0 __attribute((alias("IA__g_slice_alloc0"), visibility("default"))); - -#undef g_slice_copy -extern __typeof (g_slice_copy) g_slice_copy __attribute((alias("IA__g_slice_copy"), visibility("default"))); - -#undef g_slice_free1 -extern __typeof (g_slice_free1) g_slice_free1 __attribute((alias("IA__g_slice_free1"), visibility("default"))); - -#undef g_slice_free_chain_with_offset -extern __typeof (g_slice_free_chain_with_offset) g_slice_free_chain_with_offset __attribute((alias("IA__g_slice_free_chain_with_offset"), visibility("default"))); - -#undef g_slice_set_config -extern __typeof (g_slice_set_config) g_slice_set_config __attribute((alias("IA__g_slice_set_config"), visibility("default"))); - -#undef g_slice_get_config -extern __typeof (g_slice_get_config) g_slice_get_config __attribute((alias("IA__g_slice_get_config"), visibility("default"))); - -#undef g_slice_get_config_state -extern __typeof (g_slice_get_config_state) g_slice_get_config_state __attribute((alias("IA__g_slice_get_config_state"), visibility("default"))); - -#ifdef G_ENABLE_DEBUG -#endif -#endif -#endif -#if IN_HEADER(__G_MESSAGES_H__) -#if IN_FILE(__G_MESSAGES_C__) -#undef g_printf_string_upper_bound -extern __typeof (g_printf_string_upper_bound) g_printf_string_upper_bound __attribute((alias("IA__g_printf_string_upper_bound"), visibility("default"))); - -#undef g_log -extern __typeof (g_log) g_log __attribute((alias("IA__g_log"), visibility("default"))); - -#undef g_log_default_handler -extern __typeof (g_log_default_handler) g_log_default_handler __attribute((alias("IA__g_log_default_handler"), visibility("default"))); - -#undef g_log_remove_handler -extern __typeof (g_log_remove_handler) g_log_remove_handler __attribute((alias("IA__g_log_remove_handler"), visibility("default"))); - -#undef g_log_set_always_fatal -extern __typeof (g_log_set_always_fatal) g_log_set_always_fatal __attribute((alias("IA__g_log_set_always_fatal"), visibility("default"))); - -#undef g_log_set_default_handler -extern __typeof (g_log_set_default_handler) g_log_set_default_handler __attribute((alias("IA__g_log_set_default_handler"), visibility("default"))); - -#undef g_log_set_fatal_mask -extern __typeof (g_log_set_fatal_mask) g_log_set_fatal_mask __attribute((alias("IA__g_log_set_fatal_mask"), visibility("default"))); - -#undef g_log_set_handler -extern __typeof (g_log_set_handler) g_log_set_handler __attribute((alias("IA__g_log_set_handler"), visibility("default"))); - -#undef g_logv -extern __typeof (g_logv) g_logv __attribute((alias("IA__g_logv"), visibility("default"))); - -#undef g_return_if_fail_warning -extern __typeof (g_return_if_fail_warning) g_return_if_fail_warning __attribute((alias("IA__g_return_if_fail_warning"), visibility("default"))); - -#undef g_warn_message -extern __typeof (g_warn_message) g_warn_message __attribute((alias("IA__g_warn_message"), visibility("default"))); - -#ifndef G_DISABLE_DEPRECATED -#undef g_assert_warning -extern __typeof (g_assert_warning) g_assert_warning __attribute((alias("IA__g_assert_warning"), visibility("default"))); - -#endif -#undef g_print -extern __typeof (g_print) g_print __attribute((alias("IA__g_print"), visibility("default"))); - -#undef g_printerr -extern __typeof (g_printerr) g_printerr __attribute((alias("IA__g_printerr"), visibility("default"))); - -#undef g_set_printerr_handler -extern __typeof (g_set_printerr_handler) g_set_printerr_handler __attribute((alias("IA__g_set_printerr_handler"), visibility("default"))); - -#undef g_set_print_handler -extern __typeof (g_set_print_handler) g_set_print_handler __attribute((alias("IA__g_set_print_handler"), visibility("default"))); - -#endif -#endif -#if IN_HEADER(__G_NODE_H__) -#if IN_FILE(__G_NODE_C__) -#undef g_node_child_index -extern __typeof (g_node_child_index) g_node_child_index __attribute((alias("IA__g_node_child_index"), visibility("default"))); - -#undef g_node_child_position -extern __typeof (g_node_child_position) g_node_child_position __attribute((alias("IA__g_node_child_position"), visibility("default"))); - -#undef g_node_children_foreach -extern __typeof (g_node_children_foreach) g_node_children_foreach __attribute((alias("IA__g_node_children_foreach"), visibility("default"))); - -#undef g_node_copy -extern __typeof (g_node_copy) g_node_copy __attribute((alias("IA__g_node_copy"), visibility("default"))); - -#undef g_node_copy_deep -extern __typeof (g_node_copy_deep) g_node_copy_deep __attribute((alias("IA__g_node_copy_deep"), visibility("default"))); - -#undef g_node_depth -extern __typeof (g_node_depth) g_node_depth __attribute((alias("IA__g_node_depth"), visibility("default"))); - -#undef g_node_destroy -extern __typeof (g_node_destroy) g_node_destroy __attribute((alias("IA__g_node_destroy"), visibility("default"))); - -#undef g_node_find -extern __typeof (g_node_find) g_node_find __attribute((alias("IA__g_node_find"), visibility("default"))); - -#undef g_node_find_child -extern __typeof (g_node_find_child) g_node_find_child __attribute((alias("IA__g_node_find_child"), visibility("default"))); - -#undef g_node_first_sibling -extern __typeof (g_node_first_sibling) g_node_first_sibling __attribute((alias("IA__g_node_first_sibling"), visibility("default"))); - -#undef g_node_get_root -extern __typeof (g_node_get_root) g_node_get_root __attribute((alias("IA__g_node_get_root"), visibility("default"))); - -#undef g_node_insert -extern __typeof (g_node_insert) g_node_insert __attribute((alias("IA__g_node_insert"), visibility("default"))); - -#undef g_node_insert_after -extern __typeof (g_node_insert_after) g_node_insert_after __attribute((alias("IA__g_node_insert_after"), visibility("default"))); - -#undef g_node_insert_before -extern __typeof (g_node_insert_before) g_node_insert_before __attribute((alias("IA__g_node_insert_before"), visibility("default"))); - -#undef g_node_is_ancestor -extern __typeof (g_node_is_ancestor) g_node_is_ancestor __attribute((alias("IA__g_node_is_ancestor"), visibility("default"))); - -#undef g_node_last_child -extern __typeof (g_node_last_child) g_node_last_child __attribute((alias("IA__g_node_last_child"), visibility("default"))); - -#undef g_node_last_sibling -extern __typeof (g_node_last_sibling) g_node_last_sibling __attribute((alias("IA__g_node_last_sibling"), visibility("default"))); - -#undef g_node_max_height -extern __typeof (g_node_max_height) g_node_max_height __attribute((alias("IA__g_node_max_height"), visibility("default"))); - -#undef g_node_n_children -extern __typeof (g_node_n_children) g_node_n_children __attribute((alias("IA__g_node_n_children"), visibility("default"))); - -#undef g_node_new -extern __typeof (g_node_new) g_node_new __attribute((alias("IA__g_node_new"), visibility("default"))); - -#undef g_node_n_nodes -extern __typeof (g_node_n_nodes) g_node_n_nodes __attribute((alias("IA__g_node_n_nodes"), visibility("default"))); - -#undef g_node_nth_child -extern __typeof (g_node_nth_child) g_node_nth_child __attribute((alias("IA__g_node_nth_child"), visibility("default"))); - -#ifndef G_DISABLE_DEPRECATED -#undef g_node_pop_allocator -extern __typeof (g_node_pop_allocator) g_node_pop_allocator __attribute((alias("IA__g_node_pop_allocator"), visibility("default"))); - -#endif -#undef g_node_prepend -extern __typeof (g_node_prepend) g_node_prepend __attribute((alias("IA__g_node_prepend"), visibility("default"))); - -#ifndef G_DISABLE_DEPRECATED -#undef g_node_push_allocator -extern __typeof (g_node_push_allocator) g_node_push_allocator __attribute((alias("IA__g_node_push_allocator"), visibility("default"))); - -#endif -#undef g_node_reverse_children -extern __typeof (g_node_reverse_children) g_node_reverse_children __attribute((alias("IA__g_node_reverse_children"), visibility("default"))); - -#undef g_node_traverse -extern __typeof (g_node_traverse) g_node_traverse __attribute((alias("IA__g_node_traverse"), visibility("default"))); - -#undef g_node_unlink -extern __typeof (g_node_unlink) g_node_unlink __attribute((alias("IA__g_node_unlink"), visibility("default"))); - -#endif -#endif -#if IN_HEADER(__G_OPTION_H__) -#if IN_FILE(__G_OPTION_C__) -#undef g_option_context_add_group -extern __typeof (g_option_context_add_group) g_option_context_add_group __attribute((alias("IA__g_option_context_add_group"), visibility("default"))); - -#undef g_option_context_add_main_entries -extern __typeof (g_option_context_add_main_entries) g_option_context_add_main_entries __attribute((alias("IA__g_option_context_add_main_entries"), visibility("default"))); - -#undef g_option_error_quark -extern __typeof (g_option_error_quark) g_option_error_quark __attribute((alias("IA__g_option_error_quark"), visibility("default"))); - -#undef g_option_context_free -extern __typeof (g_option_context_free) g_option_context_free __attribute((alias("IA__g_option_context_free"), visibility("default"))); - -#undef g_option_context_get_description -extern __typeof (g_option_context_get_description) g_option_context_get_description __attribute((alias("IA__g_option_context_get_description"), visibility("default"))); - -#undef g_option_context_get_help_enabled -extern __typeof (g_option_context_get_help_enabled) g_option_context_get_help_enabled __attribute((alias("IA__g_option_context_get_help_enabled"), visibility("default"))); - -#undef g_option_context_get_ignore_unknown_options -extern __typeof (g_option_context_get_ignore_unknown_options) g_option_context_get_ignore_unknown_options __attribute((alias("IA__g_option_context_get_ignore_unknown_options"), visibility("default"))); - -#undef g_option_context_get_main_group -extern __typeof (g_option_context_get_main_group) g_option_context_get_main_group __attribute((alias("IA__g_option_context_get_main_group"), visibility("default"))); - -#undef g_option_context_get_summary -extern __typeof (g_option_context_get_summary) g_option_context_get_summary __attribute((alias("IA__g_option_context_get_summary"), visibility("default"))); - -#undef g_option_context_new -extern __typeof (g_option_context_new) g_option_context_new __attribute((alias("IA__g_option_context_new"), visibility("default"))); - -#undef g_option_context_parse -extern __typeof (g_option_context_parse) g_option_context_parse __attribute((alias("IA__g_option_context_parse"), visibility("default"))); - -#undef g_option_context_set_description -extern __typeof (g_option_context_set_description) g_option_context_set_description __attribute((alias("IA__g_option_context_set_description"), visibility("default"))); - -#undef g_option_context_set_help_enabled -extern __typeof (g_option_context_set_help_enabled) g_option_context_set_help_enabled __attribute((alias("IA__g_option_context_set_help_enabled"), visibility("default"))); - -#undef g_option_context_set_ignore_unknown_options -extern __typeof (g_option_context_set_ignore_unknown_options) g_option_context_set_ignore_unknown_options __attribute((alias("IA__g_option_context_set_ignore_unknown_options"), visibility("default"))); - -#undef g_option_context_set_main_group -extern __typeof (g_option_context_set_main_group) g_option_context_set_main_group __attribute((alias("IA__g_option_context_set_main_group"), visibility("default"))); - -#undef g_option_context_set_summary -extern __typeof (g_option_context_set_summary) g_option_context_set_summary __attribute((alias("IA__g_option_context_set_summary"), visibility("default"))); - -#undef g_option_context_set_translate_func -extern __typeof (g_option_context_set_translate_func) g_option_context_set_translate_func __attribute((alias("IA__g_option_context_set_translate_func"), visibility("default"))); - -#undef g_option_context_set_translation_domain -extern __typeof (g_option_context_set_translation_domain) g_option_context_set_translation_domain __attribute((alias("IA__g_option_context_set_translation_domain"), visibility("default"))); - -#undef g_option_context_get_help -extern __typeof (g_option_context_get_help) g_option_context_get_help __attribute((alias("IA__g_option_context_get_help"), visibility("default"))); - -#undef g_option_group_add_entries -extern __typeof (g_option_group_add_entries) g_option_group_add_entries __attribute((alias("IA__g_option_group_add_entries"), visibility("default"))); - -#undef g_option_group_free -extern __typeof (g_option_group_free) g_option_group_free __attribute((alias("IA__g_option_group_free"), visibility("default"))); - -#undef g_option_group_new -extern __typeof (g_option_group_new) g_option_group_new __attribute((alias("IA__g_option_group_new"), visibility("default"))); - -#undef g_option_group_set_error_hook -extern __typeof (g_option_group_set_error_hook) g_option_group_set_error_hook __attribute((alias("IA__g_option_group_set_error_hook"), visibility("default"))); - -#undef g_option_group_set_parse_hooks -extern __typeof (g_option_group_set_parse_hooks) g_option_group_set_parse_hooks __attribute((alias("IA__g_option_group_set_parse_hooks"), visibility("default"))); - -#undef g_option_group_set_translate_func -extern __typeof (g_option_group_set_translate_func) g_option_group_set_translate_func __attribute((alias("IA__g_option_group_set_translate_func"), visibility("default"))); - -#undef g_option_group_set_translation_domain -extern __typeof (g_option_group_set_translation_domain) g_option_group_set_translation_domain __attribute((alias("IA__g_option_group_set_translation_domain"), visibility("default"))); - -#endif -#endif -#if IN_HEADER(__G_PATTERN_H__) -#if IN_FILE(__G_PATTERN_C__) -#undef g_pattern_match -extern __typeof (g_pattern_match) g_pattern_match __attribute((alias("IA__g_pattern_match"), visibility("default"))); - -#undef g_pattern_match_simple -extern __typeof (g_pattern_match_simple) g_pattern_match_simple __attribute((alias("IA__g_pattern_match_simple"), visibility("default"))); - -#undef g_pattern_match_string -extern __typeof (g_pattern_match_string) g_pattern_match_string __attribute((alias("IA__g_pattern_match_string"), visibility("default"))); - -#undef g_pattern_spec_equal -extern __typeof (g_pattern_spec_equal) g_pattern_spec_equal __attribute((alias("IA__g_pattern_spec_equal"), visibility("default"))); - -#undef g_pattern_spec_free -extern __typeof (g_pattern_spec_free) g_pattern_spec_free __attribute((alias("IA__g_pattern_spec_free"), visibility("default"))); - -#undef g_pattern_spec_new -extern __typeof (g_pattern_spec_new) g_pattern_spec_new __attribute((alias("IA__g_pattern_spec_new"), visibility("default"))); - -#endif -#endif -#if IN_HEADER(__G_POLL_H__) -#if IN_FILE(__G_POLL_C__) -#undef g_poll -extern __typeof (g_poll) g_poll __attribute((alias("IA__g_poll"), visibility("default"))); - -#endif -#endif -#if IN_HEADER(__G_PRIMES_H__) -#if IN_FILE(__G_PRIMES_C__) -#undef g_spaced_primes_closest -extern __typeof (g_spaced_primes_closest) g_spaced_primes_closest __attribute((alias("IA__g_spaced_primes_closest"), visibility("default"))); - -#endif -#endif -#if IN_HEADER(__G_PRINTF_H__) -#if IN_FILE(__G_PRINTF_C__) -#undef g_fprintf -extern __typeof (g_fprintf) g_fprintf __attribute((alias("IA__g_fprintf"), visibility("default"))); - -#undef g_printf -extern __typeof (g_printf) g_printf __attribute((alias("IA__g_printf"), visibility("default"))); - -#undef g_sprintf -extern __typeof (g_sprintf) g_sprintf __attribute((alias("IA__g_sprintf"), visibility("default"))); - -#undef g_vasprintf -extern __typeof (g_vasprintf) g_vasprintf __attribute((alias("IA__g_vasprintf"), visibility("default"))); - -#undef g_vfprintf -extern __typeof (g_vfprintf) g_vfprintf __attribute((alias("IA__g_vfprintf"), visibility("default"))); - -#undef g_vprintf -extern __typeof (g_vprintf) g_vprintf __attribute((alias("IA__g_vprintf"), visibility("default"))); - -#undef g_vsprintf -extern __typeof (g_vsprintf) g_vsprintf __attribute((alias("IA__g_vsprintf"), visibility("default"))); - -#endif -#endif -#if IN_HEADER(__G_UTILS_H__) -#if IN_FILE(__G_PRINTF_C__) -#undef g_snprintf -extern __typeof (g_snprintf) g_snprintf __attribute((alias("IA__g_snprintf"), visibility("default"))); - -#undef g_vsnprintf -extern __typeof (g_vsnprintf) g_vsnprintf __attribute((alias("IA__g_vsnprintf"), visibility("default"))); - -#endif -#endif -#if IN_HEADER(__G_QSORT_H__) -#if IN_FILE(__G_QSORT_C__) -#undef g_qsort_with_data -extern __typeof (g_qsort_with_data) g_qsort_with_data __attribute((alias("IA__g_qsort_with_data"), visibility("default"))); - -#endif -#endif -#if IN_HEADER(__G_QUEUE_H__) -#if IN_FILE(__G_QUEUE_C__) -#undef g_queue_clear -extern __typeof (g_queue_clear) g_queue_clear __attribute((alias("IA__g_queue_clear"), visibility("default"))); - -#undef g_queue_copy -extern __typeof (g_queue_copy) g_queue_copy __attribute((alias("IA__g_queue_copy"), visibility("default"))); - -#undef g_queue_delete_link -extern __typeof (g_queue_delete_link) g_queue_delete_link __attribute((alias("IA__g_queue_delete_link"), visibility("default"))); - -#undef g_queue_find -extern __typeof (g_queue_find) g_queue_find __attribute((alias("IA__g_queue_find"), visibility("default"))); - -#undef g_queue_find_custom -extern __typeof (g_queue_find_custom) g_queue_find_custom __attribute((alias("IA__g_queue_find_custom"), visibility("default"))); - -#undef g_queue_foreach -extern __typeof (g_queue_foreach) g_queue_foreach __attribute((alias("IA__g_queue_foreach"), visibility("default"))); - -#undef g_queue_free -extern __typeof (g_queue_free) g_queue_free __attribute((alias("IA__g_queue_free"), visibility("default"))); - -#undef g_queue_get_length -extern __typeof (g_queue_get_length) g_queue_get_length __attribute((alias("IA__g_queue_get_length"), visibility("default"))); - -#undef g_queue_index -extern __typeof (g_queue_index) g_queue_index __attribute((alias("IA__g_queue_index"), visibility("default"))); - -#undef g_queue_init -extern __typeof (g_queue_init) g_queue_init __attribute((alias("IA__g_queue_init"), visibility("default"))); - -#undef g_queue_insert_after -extern __typeof (g_queue_insert_after) g_queue_insert_after __attribute((alias("IA__g_queue_insert_after"), visibility("default"))); - -#undef g_queue_insert_before -extern __typeof (g_queue_insert_before) g_queue_insert_before __attribute((alias("IA__g_queue_insert_before"), visibility("default"))); - -#undef g_queue_insert_sorted -extern __typeof (g_queue_insert_sorted) g_queue_insert_sorted __attribute((alias("IA__g_queue_insert_sorted"), visibility("default"))); - -#undef g_queue_is_empty -extern __typeof (g_queue_is_empty) g_queue_is_empty __attribute((alias("IA__g_queue_is_empty"), visibility("default"))); - -#undef g_queue_link_index -extern __typeof (g_queue_link_index) g_queue_link_index __attribute((alias("IA__g_queue_link_index"), visibility("default"))); - -#undef g_queue_new -extern __typeof (g_queue_new) g_queue_new __attribute((alias("IA__g_queue_new"), visibility("default"))); - -#undef g_queue_peek_head -extern __typeof (g_queue_peek_head) g_queue_peek_head __attribute((alias("IA__g_queue_peek_head"), visibility("default"))); - -#undef g_queue_peek_head_link -extern __typeof (g_queue_peek_head_link) g_queue_peek_head_link __attribute((alias("IA__g_queue_peek_head_link"), visibility("default"))); - -#undef g_queue_peek_nth -extern __typeof (g_queue_peek_nth) g_queue_peek_nth __attribute((alias("IA__g_queue_peek_nth"), visibility("default"))); - -#undef g_queue_peek_nth_link -extern __typeof (g_queue_peek_nth_link) g_queue_peek_nth_link __attribute((alias("IA__g_queue_peek_nth_link"), visibility("default"))); - -#undef g_queue_peek_tail -extern __typeof (g_queue_peek_tail) g_queue_peek_tail __attribute((alias("IA__g_queue_peek_tail"), visibility("default"))); - -#undef g_queue_peek_tail_link -extern __typeof (g_queue_peek_tail_link) g_queue_peek_tail_link __attribute((alias("IA__g_queue_peek_tail_link"), visibility("default"))); - -#undef g_queue_pop_head -extern __typeof (g_queue_pop_head) g_queue_pop_head __attribute((alias("IA__g_queue_pop_head"), visibility("default"))); - -#undef g_queue_pop_head_link -extern __typeof (g_queue_pop_head_link) g_queue_pop_head_link __attribute((alias("IA__g_queue_pop_head_link"), visibility("default"))); - -#undef g_queue_pop_nth -extern __typeof (g_queue_pop_nth) g_queue_pop_nth __attribute((alias("IA__g_queue_pop_nth"), visibility("default"))); - -#undef g_queue_pop_nth_link -extern __typeof (g_queue_pop_nth_link) g_queue_pop_nth_link __attribute((alias("IA__g_queue_pop_nth_link"), visibility("default"))); - -#undef g_queue_pop_tail -extern __typeof (g_queue_pop_tail) g_queue_pop_tail __attribute((alias("IA__g_queue_pop_tail"), visibility("default"))); - -#undef g_queue_pop_tail_link -extern __typeof (g_queue_pop_tail_link) g_queue_pop_tail_link __attribute((alias("IA__g_queue_pop_tail_link"), visibility("default"))); - -#undef g_queue_push_head -extern __typeof (g_queue_push_head) g_queue_push_head __attribute((alias("IA__g_queue_push_head"), visibility("default"))); - -#undef g_queue_push_head_link -extern __typeof (g_queue_push_head_link) g_queue_push_head_link __attribute((alias("IA__g_queue_push_head_link"), visibility("default"))); - -#undef g_queue_push_nth -extern __typeof (g_queue_push_nth) g_queue_push_nth __attribute((alias("IA__g_queue_push_nth"), visibility("default"))); - -#undef g_queue_push_nth_link -extern __typeof (g_queue_push_nth_link) g_queue_push_nth_link __attribute((alias("IA__g_queue_push_nth_link"), visibility("default"))); - -#undef g_queue_push_tail -extern __typeof (g_queue_push_tail) g_queue_push_tail __attribute((alias("IA__g_queue_push_tail"), visibility("default"))); - -#undef g_queue_push_tail_link -extern __typeof (g_queue_push_tail_link) g_queue_push_tail_link __attribute((alias("IA__g_queue_push_tail_link"), visibility("default"))); - -#undef g_queue_remove -extern __typeof (g_queue_remove) g_queue_remove __attribute((alias("IA__g_queue_remove"), visibility("default"))); - -#undef g_queue_remove_all -extern __typeof (g_queue_remove_all) g_queue_remove_all __attribute((alias("IA__g_queue_remove_all"), visibility("default"))); - -#undef g_queue_reverse -extern __typeof (g_queue_reverse) g_queue_reverse __attribute((alias("IA__g_queue_reverse"), visibility("default"))); - -#undef g_queue_sort -extern __typeof (g_queue_sort) g_queue_sort __attribute((alias("IA__g_queue_sort"), visibility("default"))); - -#undef g_queue_unlink -extern __typeof (g_queue_unlink) g_queue_unlink __attribute((alias("IA__g_queue_unlink"), visibility("default"))); - -#endif -#endif -#if IN_HEADER(__G_RAND_H__) -#if IN_FILE(__G_RAND_C__) -#undef g_rand_copy -extern __typeof (g_rand_copy) g_rand_copy __attribute((alias("IA__g_rand_copy"), visibility("default"))); - -#undef g_rand_double -extern __typeof (g_rand_double) g_rand_double __attribute((alias("IA__g_rand_double"), visibility("default"))); - -#undef g_rand_double_range -extern __typeof (g_rand_double_range) g_rand_double_range __attribute((alias("IA__g_rand_double_range"), visibility("default"))); - -#undef g_rand_free -extern __typeof (g_rand_free) g_rand_free __attribute((alias("IA__g_rand_free"), visibility("default"))); - -#undef g_rand_int -extern __typeof (g_rand_int) g_rand_int __attribute((alias("IA__g_rand_int"), visibility("default"))); - -#undef g_rand_int_range -extern __typeof (g_rand_int_range) g_rand_int_range __attribute((alias("IA__g_rand_int_range"), visibility("default"))); - -#undef g_rand_new -extern __typeof (g_rand_new) g_rand_new __attribute((alias("IA__g_rand_new"), visibility("default"))); - -#undef g_rand_new_with_seed -extern __typeof (g_rand_new_with_seed) g_rand_new_with_seed __attribute((alias("IA__g_rand_new_with_seed"), visibility("default"))); - -#undef g_rand_new_with_seed_array -extern __typeof (g_rand_new_with_seed_array) g_rand_new_with_seed_array __attribute((alias("IA__g_rand_new_with_seed_array"), visibility("default"))); - -#undef g_random_double -extern __typeof (g_random_double) g_random_double __attribute((alias("IA__g_random_double"), visibility("default"))); - -#undef g_random_double_range -extern __typeof (g_random_double_range) g_random_double_range __attribute((alias("IA__g_random_double_range"), visibility("default"))); - -#undef g_random_int -extern __typeof (g_random_int) g_random_int __attribute((alias("IA__g_random_int"), visibility("default"))); - -#undef g_random_int_range -extern __typeof (g_random_int_range) g_random_int_range __attribute((alias("IA__g_random_int_range"), visibility("default"))); - -#undef g_random_set_seed -extern __typeof (g_random_set_seed) g_random_set_seed __attribute((alias("IA__g_random_set_seed"), visibility("default"))); - -#undef g_rand_set_seed -extern __typeof (g_rand_set_seed) g_rand_set_seed __attribute((alias("IA__g_rand_set_seed"), visibility("default"))); - -#undef g_rand_set_seed_array -extern __typeof (g_rand_set_seed_array) g_rand_set_seed_array __attribute((alias("IA__g_rand_set_seed_array"), visibility("default"))); - -#endif -#endif -#if IN_HEADER(__G_REL_H__) -#if IN_FILE(__G_REL_C__) -#undef g_relation_count -extern __typeof (g_relation_count) g_relation_count __attribute((alias("IA__g_relation_count"), visibility("default"))); - -#undef g_relation_delete -extern __typeof (g_relation_delete) g_relation_delete __attribute((alias("IA__g_relation_delete"), visibility("default"))); - -#undef g_relation_destroy -extern __typeof (g_relation_destroy) g_relation_destroy __attribute((alias("IA__g_relation_destroy"), visibility("default"))); - -#undef g_relation_exists -extern __typeof (g_relation_exists) g_relation_exists __attribute((alias("IA__g_relation_exists"), visibility("default"))); - -#undef g_relation_index -extern __typeof (g_relation_index) g_relation_index __attribute((alias("IA__g_relation_index"), visibility("default"))); - -#undef g_relation_insert -extern __typeof (g_relation_insert) g_relation_insert __attribute((alias("IA__g_relation_insert"), visibility("default"))); - -#undef g_relation_new -extern __typeof (g_relation_new) g_relation_new __attribute((alias("IA__g_relation_new"), visibility("default"))); - -#undef g_relation_print -extern __typeof (g_relation_print) g_relation_print __attribute((alias("IA__g_relation_print"), visibility("default"))); - -#undef g_relation_select -extern __typeof (g_relation_select) g_relation_select __attribute((alias("IA__g_relation_select"), visibility("default"))); - -#undef g_tuples_destroy -extern __typeof (g_tuples_destroy) g_tuples_destroy __attribute((alias("IA__g_tuples_destroy"), visibility("default"))); - -#undef g_tuples_index -extern __typeof (g_tuples_index) g_tuples_index __attribute((alias("IA__g_tuples_index"), visibility("default"))); - -#endif -#endif -#if IN_HEADER(__G_SCANNER_H__) -#if IN_FILE(__G_SCANNER_C__) -#undef g_scanner_cur_line -extern __typeof (g_scanner_cur_line) g_scanner_cur_line __attribute((alias("IA__g_scanner_cur_line"), visibility("default"))); - -#undef g_scanner_cur_position -extern __typeof (g_scanner_cur_position) g_scanner_cur_position __attribute((alias("IA__g_scanner_cur_position"), visibility("default"))); - -#undef g_scanner_cur_token -extern __typeof (g_scanner_cur_token) g_scanner_cur_token __attribute((alias("IA__g_scanner_cur_token"), visibility("default"))); - -#undef g_scanner_cur_value -extern __typeof (g_scanner_cur_value) g_scanner_cur_value __attribute((alias("IA__g_scanner_cur_value"), visibility("default"))); - -#undef g_scanner_destroy -extern __typeof (g_scanner_destroy) g_scanner_destroy __attribute((alias("IA__g_scanner_destroy"), visibility("default"))); - -#undef g_scanner_eof -extern __typeof (g_scanner_eof) g_scanner_eof __attribute((alias("IA__g_scanner_eof"), visibility("default"))); - -#undef g_scanner_error -extern __typeof (g_scanner_error) g_scanner_error __attribute((alias("IA__g_scanner_error"), visibility("default"))); - -#undef g_scanner_get_next_token -extern __typeof (g_scanner_get_next_token) g_scanner_get_next_token __attribute((alias("IA__g_scanner_get_next_token"), visibility("default"))); - -#undef g_scanner_input_file -extern __typeof (g_scanner_input_file) g_scanner_input_file __attribute((alias("IA__g_scanner_input_file"), visibility("default"))); - -#undef g_scanner_input_text -extern __typeof (g_scanner_input_text) g_scanner_input_text __attribute((alias("IA__g_scanner_input_text"), visibility("default"))); - -#undef g_scanner_lookup_symbol -extern __typeof (g_scanner_lookup_symbol) g_scanner_lookup_symbol __attribute((alias("IA__g_scanner_lookup_symbol"), visibility("default"))); - -#undef g_scanner_new -extern __typeof (g_scanner_new) g_scanner_new __attribute((alias("IA__g_scanner_new"), visibility("default"))); - -#undef g_scanner_peek_next_token -extern __typeof (g_scanner_peek_next_token) g_scanner_peek_next_token __attribute((alias("IA__g_scanner_peek_next_token"), visibility("default"))); - -#undef g_scanner_scope_add_symbol -extern __typeof (g_scanner_scope_add_symbol) g_scanner_scope_add_symbol __attribute((alias("IA__g_scanner_scope_add_symbol"), visibility("default"))); - -#undef g_scanner_scope_foreach_symbol -extern __typeof (g_scanner_scope_foreach_symbol) g_scanner_scope_foreach_symbol __attribute((alias("IA__g_scanner_scope_foreach_symbol"), visibility("default"))); - -#undef g_scanner_scope_lookup_symbol -extern __typeof (g_scanner_scope_lookup_symbol) g_scanner_scope_lookup_symbol __attribute((alias("IA__g_scanner_scope_lookup_symbol"), visibility("default"))); - -#undef g_scanner_scope_remove_symbol -extern __typeof (g_scanner_scope_remove_symbol) g_scanner_scope_remove_symbol __attribute((alias("IA__g_scanner_scope_remove_symbol"), visibility("default"))); - -#undef g_scanner_set_scope -extern __typeof (g_scanner_set_scope) g_scanner_set_scope __attribute((alias("IA__g_scanner_set_scope"), visibility("default"))); - -#undef g_scanner_sync_file_offset -extern __typeof (g_scanner_sync_file_offset) g_scanner_sync_file_offset __attribute((alias("IA__g_scanner_sync_file_offset"), visibility("default"))); - -#undef g_scanner_unexp_token -extern __typeof (g_scanner_unexp_token) g_scanner_unexp_token __attribute((alias("IA__g_scanner_unexp_token"), visibility("default"))); - -#undef g_scanner_warn -extern __typeof (g_scanner_warn) g_scanner_warn __attribute((alias("IA__g_scanner_warn"), visibility("default"))); - -#endif -#endif -#if IN_HEADER(__G_SEQUENCE_H__) -#if IN_FILE(__G_SEQUENCE_C__) -#undef g_sequence_new -extern __typeof (g_sequence_new) g_sequence_new __attribute((alias("IA__g_sequence_new"), visibility("default"))); - -#undef g_sequence_free -extern __typeof (g_sequence_free) g_sequence_free __attribute((alias("IA__g_sequence_free"), visibility("default"))); - -#undef g_sequence_get_length -extern __typeof (g_sequence_get_length) g_sequence_get_length __attribute((alias("IA__g_sequence_get_length"), visibility("default"))); - -#undef g_sequence_foreach -extern __typeof (g_sequence_foreach) g_sequence_foreach __attribute((alias("IA__g_sequence_foreach"), visibility("default"))); - -#undef g_sequence_foreach_range -extern __typeof (g_sequence_foreach_range) g_sequence_foreach_range __attribute((alias("IA__g_sequence_foreach_range"), visibility("default"))); - -#undef g_sequence_sort -extern __typeof (g_sequence_sort) g_sequence_sort __attribute((alias("IA__g_sequence_sort"), visibility("default"))); - -#undef g_sequence_sort_iter -extern __typeof (g_sequence_sort_iter) g_sequence_sort_iter __attribute((alias("IA__g_sequence_sort_iter"), visibility("default"))); - -#undef g_sequence_get_begin_iter -extern __typeof (g_sequence_get_begin_iter) g_sequence_get_begin_iter __attribute((alias("IA__g_sequence_get_begin_iter"), visibility("default"))); - -#undef g_sequence_get_end_iter -extern __typeof (g_sequence_get_end_iter) g_sequence_get_end_iter __attribute((alias("IA__g_sequence_get_end_iter"), visibility("default"))); - -#undef g_sequence_get_iter_at_pos -extern __typeof (g_sequence_get_iter_at_pos) g_sequence_get_iter_at_pos __attribute((alias("IA__g_sequence_get_iter_at_pos"), visibility("default"))); - -#undef g_sequence_append -extern __typeof (g_sequence_append) g_sequence_append __attribute((alias("IA__g_sequence_append"), visibility("default"))); - -#undef g_sequence_prepend -extern __typeof (g_sequence_prepend) g_sequence_prepend __attribute((alias("IA__g_sequence_prepend"), visibility("default"))); - -#undef g_sequence_insert_before -extern __typeof (g_sequence_insert_before) g_sequence_insert_before __attribute((alias("IA__g_sequence_insert_before"), visibility("default"))); - -#undef g_sequence_move -extern __typeof (g_sequence_move) g_sequence_move __attribute((alias("IA__g_sequence_move"), visibility("default"))); - -#undef g_sequence_swap -extern __typeof (g_sequence_swap) g_sequence_swap __attribute((alias("IA__g_sequence_swap"), visibility("default"))); - -#undef g_sequence_insert_sorted -extern __typeof (g_sequence_insert_sorted) g_sequence_insert_sorted __attribute((alias("IA__g_sequence_insert_sorted"), visibility("default"))); - -#undef g_sequence_insert_sorted_iter -extern __typeof (g_sequence_insert_sorted_iter) g_sequence_insert_sorted_iter __attribute((alias("IA__g_sequence_insert_sorted_iter"), visibility("default"))); - -#undef g_sequence_sort_changed -extern __typeof (g_sequence_sort_changed) g_sequence_sort_changed __attribute((alias("IA__g_sequence_sort_changed"), visibility("default"))); - -#undef g_sequence_sort_changed_iter -extern __typeof (g_sequence_sort_changed_iter) g_sequence_sort_changed_iter __attribute((alias("IA__g_sequence_sort_changed_iter"), visibility("default"))); - -#undef g_sequence_remove -extern __typeof (g_sequence_remove) g_sequence_remove __attribute((alias("IA__g_sequence_remove"), visibility("default"))); - -#undef g_sequence_remove_range -extern __typeof (g_sequence_remove_range) g_sequence_remove_range __attribute((alias("IA__g_sequence_remove_range"), visibility("default"))); - -#undef g_sequence_move_range -extern __typeof (g_sequence_move_range) g_sequence_move_range __attribute((alias("IA__g_sequence_move_range"), visibility("default"))); - -#undef g_sequence_search -extern __typeof (g_sequence_search) g_sequence_search __attribute((alias("IA__g_sequence_search"), visibility("default"))); - -#undef g_sequence_search_iter -extern __typeof (g_sequence_search_iter) g_sequence_search_iter __attribute((alias("IA__g_sequence_search_iter"), visibility("default"))); - -#undef g_sequence_get -extern __typeof (g_sequence_get) g_sequence_get __attribute((alias("IA__g_sequence_get"), visibility("default"))); - -#undef g_sequence_set -extern __typeof (g_sequence_set) g_sequence_set __attribute((alias("IA__g_sequence_set"), visibility("default"))); - -#undef g_sequence_iter_is_begin -extern __typeof (g_sequence_iter_is_begin) g_sequence_iter_is_begin __attribute((alias("IA__g_sequence_iter_is_begin"), visibility("default"))); - -#undef g_sequence_iter_is_end -extern __typeof (g_sequence_iter_is_end) g_sequence_iter_is_end __attribute((alias("IA__g_sequence_iter_is_end"), visibility("default"))); - -#undef g_sequence_iter_next -extern __typeof (g_sequence_iter_next) g_sequence_iter_next __attribute((alias("IA__g_sequence_iter_next"), visibility("default"))); - -#undef g_sequence_iter_prev -extern __typeof (g_sequence_iter_prev) g_sequence_iter_prev __attribute((alias("IA__g_sequence_iter_prev"), visibility("default"))); - -#undef g_sequence_iter_get_position -extern __typeof (g_sequence_iter_get_position) g_sequence_iter_get_position __attribute((alias("IA__g_sequence_iter_get_position"), visibility("default"))); - -#undef g_sequence_iter_move -extern __typeof (g_sequence_iter_move) g_sequence_iter_move __attribute((alias("IA__g_sequence_iter_move"), visibility("default"))); - -#undef g_sequence_iter_get_sequence -extern __typeof (g_sequence_iter_get_sequence) g_sequence_iter_get_sequence __attribute((alias("IA__g_sequence_iter_get_sequence"), visibility("default"))); - -#undef g_sequence_iter_compare -extern __typeof (g_sequence_iter_compare) g_sequence_iter_compare __attribute((alias("IA__g_sequence_iter_compare"), visibility("default"))); - -#undef g_sequence_range_get_midpoint -extern __typeof (g_sequence_range_get_midpoint) g_sequence_range_get_midpoint __attribute((alias("IA__g_sequence_range_get_midpoint"), visibility("default"))); - -#endif -#endif -#if IN_HEADER(__G_SHELL_H__) -#if IN_FILE(__G_SHELL_C__) -#undef g_shell_error_quark -extern __typeof (g_shell_error_quark) g_shell_error_quark __attribute((alias("IA__g_shell_error_quark"), visibility("default"))); - -#undef g_shell_parse_argv -extern __typeof (g_shell_parse_argv) g_shell_parse_argv __attribute((alias("IA__g_shell_parse_argv"), visibility("default"))); - -#undef g_shell_quote -extern __typeof (g_shell_quote) g_shell_quote __attribute((alias("IA__g_shell_quote"), visibility("default"))); - -#undef g_shell_unquote -extern __typeof (g_shell_unquote) g_shell_unquote __attribute((alias("IA__g_shell_unquote"), visibility("default"))); - -#endif -#endif -#if IN_HEADER(__G_SLIST_H__) -#if IN_FILE(__G_SLIST_C__) -#undef g_slist_alloc -extern __typeof (g_slist_alloc) g_slist_alloc __attribute((alias("IA__g_slist_alloc"), visibility("default"))); - -#undef g_slist_append -extern __typeof (g_slist_append) g_slist_append __attribute((alias("IA__g_slist_append"), visibility("default"))); - -#undef g_slist_concat -extern __typeof (g_slist_concat) g_slist_concat __attribute((alias("IA__g_slist_concat"), visibility("default"))); - -#undef g_slist_copy -extern __typeof (g_slist_copy) g_slist_copy __attribute((alias("IA__g_slist_copy"), visibility("default"))); - -#undef g_slist_delete_link -extern __typeof (g_slist_delete_link) g_slist_delete_link __attribute((alias("IA__g_slist_delete_link"), visibility("default"))); - -#undef g_slist_find -extern __typeof (g_slist_find) g_slist_find __attribute((alias("IA__g_slist_find"), visibility("default"))); - -#undef g_slist_find_custom -extern __typeof (g_slist_find_custom) g_slist_find_custom __attribute((alias("IA__g_slist_find_custom"), visibility("default"))); - -#undef g_slist_foreach -extern __typeof (g_slist_foreach) g_slist_foreach __attribute((alias("IA__g_slist_foreach"), visibility("default"))); - -#undef g_slist_free -extern __typeof (g_slist_free) g_slist_free __attribute((alias("IA__g_slist_free"), visibility("default"))); - -#undef g_slist_free_1 -extern __typeof (g_slist_free_1) g_slist_free_1 __attribute((alias("IA__g_slist_free_1"), visibility("default"))); - -#undef g_slist_index -extern __typeof (g_slist_index) g_slist_index __attribute((alias("IA__g_slist_index"), visibility("default"))); - -#undef g_slist_insert -extern __typeof (g_slist_insert) g_slist_insert __attribute((alias("IA__g_slist_insert"), visibility("default"))); - -#undef g_slist_insert_before -extern __typeof (g_slist_insert_before) g_slist_insert_before __attribute((alias("IA__g_slist_insert_before"), visibility("default"))); - -#undef g_slist_insert_sorted -extern __typeof (g_slist_insert_sorted) g_slist_insert_sorted __attribute((alias("IA__g_slist_insert_sorted"), visibility("default"))); - -#undef g_slist_insert_sorted_with_data -extern __typeof (g_slist_insert_sorted_with_data) g_slist_insert_sorted_with_data __attribute((alias("IA__g_slist_insert_sorted_with_data"), visibility("default"))); - -#undef g_slist_last -extern __typeof (g_slist_last) g_slist_last __attribute((alias("IA__g_slist_last"), visibility("default"))); - -#undef g_slist_length -extern __typeof (g_slist_length) g_slist_length __attribute((alias("IA__g_slist_length"), visibility("default"))); - -#undef g_slist_nth -extern __typeof (g_slist_nth) g_slist_nth __attribute((alias("IA__g_slist_nth"), visibility("default"))); - -#undef g_slist_nth_data -extern __typeof (g_slist_nth_data) g_slist_nth_data __attribute((alias("IA__g_slist_nth_data"), visibility("default"))); - -#ifndef G_DISABLE_DEPRECATED -#undef g_slist_pop_allocator -extern __typeof (g_slist_pop_allocator) g_slist_pop_allocator __attribute((alias("IA__g_slist_pop_allocator"), visibility("default"))); - -#endif -#undef g_slist_position -extern __typeof (g_slist_position) g_slist_position __attribute((alias("IA__g_slist_position"), visibility("default"))); - -#undef g_slist_prepend -extern __typeof (g_slist_prepend) g_slist_prepend __attribute((alias("IA__g_slist_prepend"), visibility("default"))); - -#ifndef G_DISABLE_DEPRECATED -#undef g_slist_push_allocator -extern __typeof (g_slist_push_allocator) g_slist_push_allocator __attribute((alias("IA__g_slist_push_allocator"), visibility("default"))); - -#endif -#undef g_slist_remove -extern __typeof (g_slist_remove) g_slist_remove __attribute((alias("IA__g_slist_remove"), visibility("default"))); - -#undef g_slist_remove_all -extern __typeof (g_slist_remove_all) g_slist_remove_all __attribute((alias("IA__g_slist_remove_all"), visibility("default"))); - -#undef g_slist_remove_link -extern __typeof (g_slist_remove_link) g_slist_remove_link __attribute((alias("IA__g_slist_remove_link"), visibility("default"))); - -#undef g_slist_reverse -extern __typeof (g_slist_reverse) g_slist_reverse __attribute((alias("IA__g_slist_reverse"), visibility("default"))); - -#undef g_slist_sort -extern __typeof (g_slist_sort) g_slist_sort __attribute((alias("IA__g_slist_sort"), visibility("default"))); - -#undef g_slist_sort_with_data -extern __typeof (g_slist_sort_with_data) g_slist_sort_with_data __attribute((alias("IA__g_slist_sort_with_data"), visibility("default"))); - -#endif -#endif -#if IN_HEADER(__G_SPAWN_H__) -#if IN_FILE(__G_SPAWN_C__) -#ifndef _WIN64 -#undef g_spawn_async -extern __typeof (g_spawn_async) g_spawn_async __attribute((alias("IA__g_spawn_async"), visibility("default"))); - -#undef g_spawn_async_with_pipes -extern __typeof (g_spawn_async_with_pipes) g_spawn_async_with_pipes __attribute((alias("IA__g_spawn_async_with_pipes"), visibility("default"))); - -#endif -#undef g_spawn_close_pid -extern __typeof (g_spawn_close_pid) g_spawn_close_pid __attribute((alias("IA__g_spawn_close_pid"), visibility("default"))); - -#ifndef _WIN64 -#undef g_spawn_command_line_async -extern __typeof (g_spawn_command_line_async) g_spawn_command_line_async __attribute((alias("IA__g_spawn_command_line_async"), visibility("default"))); - -#undef g_spawn_command_line_sync -extern __typeof (g_spawn_command_line_sync) g_spawn_command_line_sync __attribute((alias("IA__g_spawn_command_line_sync"), visibility("default"))); - -#endif -#undef g_spawn_error_quark -extern __typeof (g_spawn_error_quark) g_spawn_error_quark __attribute((alias("IA__g_spawn_error_quark"), visibility("default"))); - -#ifndef _WIN64 -#undef g_spawn_sync -extern __typeof (g_spawn_sync) g_spawn_sync __attribute((alias("IA__g_spawn_sync"), visibility("default"))); - -#endif -#ifdef G_OS_WIN32 -#undef g_spawn_async_utf8 -extern __typeof (g_spawn_async_utf8) g_spawn_async_utf8 __attribute((alias("IA__g_spawn_async_utf8"), visibility("default"))); - -#undef g_spawn_async_with_pipes_utf8 -extern __typeof (g_spawn_async_with_pipes_utf8) g_spawn_async_with_pipes_utf8 __attribute((alias("IA__g_spawn_async_with_pipes_utf8"), visibility("default"))); - -#undef g_spawn_command_line_async_utf8 -extern __typeof (g_spawn_command_line_async_utf8) g_spawn_command_line_async_utf8 __attribute((alias("IA__g_spawn_command_line_async_utf8"), visibility("default"))); - -#undef g_spawn_command_line_sync_utf8 -extern __typeof (g_spawn_command_line_sync_utf8) g_spawn_command_line_sync_utf8 __attribute((alias("IA__g_spawn_command_line_sync_utf8"), visibility("default"))); - -#undef g_spawn_sync_utf8 -extern __typeof (g_spawn_sync_utf8) g_spawn_sync_utf8 __attribute((alias("IA__g_spawn_sync_utf8"), visibility("default"))); - -#endif -#endif -#endif -#if IN_HEADER(__G_STDIO_H__) -#if IN_FILE(__G_STDIO_C__) -#if !defined(G_OS_UNIX) || defined(G_STDIO_NO_WRAP_ON_UNIX) -#undef g_chmod -extern __typeof (g_chmod) g_chmod __attribute((alias("IA__g_chmod"), visibility("default"))); - -#undef g_open -extern __typeof (g_open) g_open __attribute((alias("IA__g_open"), visibility("default"))); - -#undef g_creat -extern __typeof (g_creat) g_creat __attribute((alias("IA__g_creat"), visibility("default"))); - -#undef g_rename -extern __typeof (g_rename) g_rename __attribute((alias("IA__g_rename"), visibility("default"))); - -#undef g_mkdir -extern __typeof (g_mkdir) g_mkdir __attribute((alias("IA__g_mkdir"), visibility("default"))); - -#undef g_stat -extern __typeof (g_stat) g_stat __attribute((alias("IA__g_stat"), visibility("default"))); - -#undef g_lstat -extern __typeof (g_lstat) g_lstat __attribute((alias("IA__g_lstat"), visibility("default"))); - -#undef g_remove -extern __typeof (g_remove) g_remove __attribute((alias("IA__g_remove"), visibility("default"))); - -#undef g_fopen -extern __typeof (g_fopen) g_fopen __attribute((alias("IA__g_fopen"), visibility("default"))); - -#undef g_freopen -extern __typeof (g_freopen) g_freopen __attribute((alias("IA__g_freopen"), visibility("default"))); - -#undef g_utime -extern __typeof (g_utime) g_utime __attribute((alias("IA__g_utime"), visibility("default"))); - -#endif -#undef g_access -extern __typeof (g_access) g_access __attribute((alias("IA__g_access"), visibility("default"))); - -#undef g_chdir -extern __typeof (g_chdir) g_chdir __attribute((alias("IA__g_chdir"), visibility("default"))); - -#undef g_unlink -extern __typeof (g_unlink) g_unlink __attribute((alias("IA__g_unlink"), visibility("default"))); - -#undef g_rmdir -extern __typeof (g_rmdir) g_rmdir __attribute((alias("IA__g_rmdir"), visibility("default"))); - -#endif -#endif -#if IN_HEADER(__G_STRFUNCS_H__) -#if IN_FILE(__G_STRFUNCS_C__) -#undef g_ascii_digit_value -extern __typeof (g_ascii_digit_value) g_ascii_digit_value __attribute((alias("IA__g_ascii_digit_value"), visibility("default"))); - -#undef g_ascii_dtostr -extern __typeof (g_ascii_dtostr) g_ascii_dtostr __attribute((alias("IA__g_ascii_dtostr"), visibility("default"))); - -#undef g_ascii_formatd -extern __typeof (g_ascii_formatd) g_ascii_formatd __attribute((alias("IA__g_ascii_formatd"), visibility("default"))); - -#undef g_ascii_strdown -extern __typeof (g_ascii_strdown) g_ascii_strdown __attribute((alias("IA__g_ascii_strdown"), visibility("default"))); - -#undef g_ascii_strtod -extern __typeof (g_ascii_strtod) g_ascii_strtod __attribute((alias("IA__g_ascii_strtod"), visibility("default"))); - -#undef g_ascii_strtoull -extern __typeof (g_ascii_strtoull) g_ascii_strtoull __attribute((alias("IA__g_ascii_strtoull"), visibility("default"))); - -#undef g_ascii_strtoll -extern __typeof (g_ascii_strtoll) g_ascii_strtoll __attribute((alias("IA__g_ascii_strtoll"), visibility("default"))); - -#undef g_ascii_strup -extern __typeof (g_ascii_strup) g_ascii_strup __attribute((alias("IA__g_ascii_strup"), visibility("default"))); - -#undef g_ascii_tolower -extern __typeof (g_ascii_tolower) g_ascii_tolower __attribute((alias("IA__g_ascii_tolower"), visibility("default"))); - -#undef g_ascii_toupper -extern __typeof (g_ascii_toupper) g_ascii_toupper __attribute((alias("IA__g_ascii_toupper"), visibility("default"))); - -#undef g_ascii_xdigit_value -extern __typeof (g_ascii_xdigit_value) g_ascii_xdigit_value __attribute((alias("IA__g_ascii_xdigit_value"), visibility("default"))); - -#undef g_ascii_strcasecmp -extern __typeof (g_ascii_strcasecmp) g_ascii_strcasecmp __attribute((alias("IA__g_ascii_strcasecmp"), visibility("default"))); - -#undef g_ascii_strncasecmp -extern __typeof (g_ascii_strncasecmp) g_ascii_strncasecmp __attribute((alias("IA__g_ascii_strncasecmp"), visibility("default"))); - -#undef g_memdup -extern __typeof (g_memdup) g_memdup __attribute((alias("IA__g_memdup"), visibility("default"))); - -#undef g_stpcpy -extern __typeof (g_stpcpy) g_stpcpy __attribute((alias("IA__g_stpcpy"), visibility("default"))); - -#undef g_strcanon -extern __typeof (g_strcanon) g_strcanon __attribute((alias("IA__g_strcanon"), visibility("default"))); - -#undef g_strchomp -extern __typeof (g_strchomp) g_strchomp __attribute((alias("IA__g_strchomp"), visibility("default"))); - -#undef g_strchug -extern __typeof (g_strchug) g_strchug __attribute((alias("IA__g_strchug"), visibility("default"))); - -#undef g_strcompress -extern __typeof (g_strcompress) g_strcompress __attribute((alias("IA__g_strcompress"), visibility("default"))); - -#undef g_strconcat -extern __typeof (g_strconcat) g_strconcat __attribute((alias("IA__g_strconcat"), visibility("default"))); - -#undef g_strdelimit -extern __typeof (g_strdelimit) g_strdelimit __attribute((alias("IA__g_strdelimit"), visibility("default"))); - -#undef g_strdup -extern __typeof (g_strdup) g_strdup __attribute((alias("IA__g_strdup"), visibility("default"))); - -#undef g_strdup_printf -extern __typeof (g_strdup_printf) g_strdup_printf __attribute((alias("IA__g_strdup_printf"), visibility("default"))); - -#undef g_strdupv -extern __typeof (g_strdupv) g_strdupv __attribute((alias("IA__g_strdupv"), visibility("default"))); - -#undef g_strdup_vprintf -extern __typeof (g_strdup_vprintf) g_strdup_vprintf __attribute((alias("IA__g_strdup_vprintf"), visibility("default"))); - -#undef g_strerror -extern __typeof (g_strerror) g_strerror __attribute((alias("IA__g_strerror"), visibility("default"))); - -#undef g_strescape -extern __typeof (g_strescape) g_strescape __attribute((alias("IA__g_strescape"), visibility("default"))); - -#undef g_strfreev -extern __typeof (g_strfreev) g_strfreev __attribute((alias("IA__g_strfreev"), visibility("default"))); - -#undef g_str_has_prefix -extern __typeof (g_str_has_prefix) g_str_has_prefix __attribute((alias("IA__g_str_has_prefix"), visibility("default"))); - -#undef g_str_has_suffix -extern __typeof (g_str_has_suffix) g_str_has_suffix __attribute((alias("IA__g_str_has_suffix"), visibility("default"))); - -#undef g_strjoin -extern __typeof (g_strjoin) g_strjoin __attribute((alias("IA__g_strjoin"), visibility("default"))); - -#undef g_strjoinv -extern __typeof (g_strjoinv) g_strjoinv __attribute((alias("IA__g_strjoinv"), visibility("default"))); - -#undef g_strlcat -extern __typeof (g_strlcat) g_strlcat __attribute((alias("IA__g_strlcat"), visibility("default"))); - -#undef g_strlcpy -extern __typeof (g_strlcpy) g_strlcpy __attribute((alias("IA__g_strlcpy"), visibility("default"))); - -#undef g_strndup -extern __typeof (g_strndup) g_strndup __attribute((alias("IA__g_strndup"), visibility("default"))); - -#undef g_strnfill -extern __typeof (g_strnfill) g_strnfill __attribute((alias("IA__g_strnfill"), visibility("default"))); - -#undef g_strreverse -extern __typeof (g_strreverse) g_strreverse __attribute((alias("IA__g_strreverse"), visibility("default"))); - -#undef g_strrstr -extern __typeof (g_strrstr) g_strrstr __attribute((alias("IA__g_strrstr"), visibility("default"))); - -#undef g_strrstr_len -extern __typeof (g_strrstr_len) g_strrstr_len __attribute((alias("IA__g_strrstr_len"), visibility("default"))); - -#undef g_strsignal -extern __typeof (g_strsignal) g_strsignal __attribute((alias("IA__g_strsignal"), visibility("default"))); - -#undef g_strsplit -extern __typeof (g_strsplit) g_strsplit __attribute((alias("IA__g_strsplit"), visibility("default"))); - -#undef g_strsplit_set -extern __typeof (g_strsplit_set) g_strsplit_set __attribute((alias("IA__g_strsplit_set"), visibility("default"))); - -#undef g_strstr_len -extern __typeof (g_strstr_len) g_strstr_len __attribute((alias("IA__g_strstr_len"), visibility("default"))); - -#undef g_strtod -extern __typeof (g_strtod) g_strtod __attribute((alias("IA__g_strtod"), visibility("default"))); - -#ifndef G_DISABLE_DEPRECATED -#undef g_strcasecmp -extern __typeof (g_strcasecmp) g_strcasecmp __attribute((alias("IA__g_strcasecmp"), visibility("default"))); - -#undef g_strncasecmp -extern __typeof (g_strncasecmp) g_strncasecmp __attribute((alias("IA__g_strncasecmp"), visibility("default"))); - -#undef g_strup -extern __typeof (g_strup) g_strup __attribute((alias("IA__g_strup"), visibility("default"))); - -#undef g_strdown -extern __typeof (g_strdown) g_strdown __attribute((alias("IA__g_strdown"), visibility("default"))); - -#endif -#undef g_strv_length -extern __typeof (g_strv_length) g_strv_length __attribute((alias("IA__g_strv_length"), visibility("default"))); - -#undef g_strip_context -extern __typeof (g_strip_context) g_strip_context __attribute((alias("IA__g_strip_context"), visibility("default"))); - -#undef g_dgettext -extern __typeof (g_dgettext) g_dgettext __attribute((alias("IA__g_dgettext"), visibility("default"))); - -#undef g_dngettext -extern __typeof (g_dngettext) g_dngettext __attribute((alias("IA__g_dngettext"), visibility("default"))); - -#undef g_dpgettext -extern __typeof (g_dpgettext) g_dpgettext __attribute((alias("IA__g_dpgettext"), visibility("default"))); - -#undef g_dpgettext2 -extern __typeof (g_dpgettext2) g_dpgettext2 __attribute((alias("IA__g_dpgettext2"), visibility("default"))); - -#endif -#endif -#if IN_HEADER(__G_URI_FUNCS_H__) -#if IN_FILE(__G_URI_FUNCS_C__) -#undef g_uri_unescape_string -extern __typeof (g_uri_unescape_string) g_uri_unescape_string __attribute((alias("IA__g_uri_unescape_string"), visibility("default"))); - -#undef g_uri_unescape_segment -extern __typeof (g_uri_unescape_segment) g_uri_unescape_segment __attribute((alias("IA__g_uri_unescape_segment"), visibility("default"))); - -#undef g_uri_parse_scheme -extern __typeof (g_uri_parse_scheme) g_uri_parse_scheme __attribute((alias("IA__g_uri_parse_scheme"), visibility("default"))); - -#undef g_uri_escape_string -extern __typeof (g_uri_escape_string) g_uri_escape_string __attribute((alias("IA__g_uri_escape_string"), visibility("default"))); - -#endif -#endif -#if IN_HEADER(__G_STRING_H__) -#if IN_FILE(__G_STRING_C__) -#undef g_string_append -extern __typeof (g_string_append) g_string_append __attribute((alias("IA__g_string_append"), visibility("default"))); - -#undef g_string_append_len -extern __typeof (g_string_append_len) g_string_append_len __attribute((alias("IA__g_string_append_len"), visibility("default"))); - -#undef g_string_append_printf -extern __typeof (g_string_append_printf) g_string_append_printf __attribute((alias("IA__g_string_append_printf"), visibility("default"))); - -#undef g_string_append_unichar -extern __typeof (g_string_append_unichar) g_string_append_unichar __attribute((alias("IA__g_string_append_unichar"), visibility("default"))); - -#undef g_string_append_vprintf -extern __typeof (g_string_append_vprintf) g_string_append_vprintf __attribute((alias("IA__g_string_append_vprintf"), visibility("default"))); - -#undef g_string_ascii_down -extern __typeof (g_string_ascii_down) g_string_ascii_down __attribute((alias("IA__g_string_ascii_down"), visibility("default"))); - -#undef g_string_ascii_up -extern __typeof (g_string_ascii_up) g_string_ascii_up __attribute((alias("IA__g_string_ascii_up"), visibility("default"))); - -#undef g_string_assign -extern __typeof (g_string_assign) g_string_assign __attribute((alias("IA__g_string_assign"), visibility("default"))); - -#undef g_string_chunk_free -extern __typeof (g_string_chunk_free) g_string_chunk_free __attribute((alias("IA__g_string_chunk_free"), visibility("default"))); - -#undef g_string_chunk_clear -extern __typeof (g_string_chunk_clear) g_string_chunk_clear __attribute((alias("IA__g_string_chunk_clear"), visibility("default"))); - -#undef g_string_chunk_insert -extern __typeof (g_string_chunk_insert) g_string_chunk_insert __attribute((alias("IA__g_string_chunk_insert"), visibility("default"))); - -#undef g_string_chunk_insert_const -extern __typeof (g_string_chunk_insert_const) g_string_chunk_insert_const __attribute((alias("IA__g_string_chunk_insert_const"), visibility("default"))); - -#undef g_string_chunk_insert_len -extern __typeof (g_string_chunk_insert_len) g_string_chunk_insert_len __attribute((alias("IA__g_string_chunk_insert_len"), visibility("default"))); - -#undef g_string_chunk_new -extern __typeof (g_string_chunk_new) g_string_chunk_new __attribute((alias("IA__g_string_chunk_new"), visibility("default"))); - -#undef g_string_equal -extern __typeof (g_string_equal) g_string_equal __attribute((alias("IA__g_string_equal"), visibility("default"))); - -#undef g_string_erase -extern __typeof (g_string_erase) g_string_erase __attribute((alias("IA__g_string_erase"), visibility("default"))); - -#undef g_string_free -extern __typeof (g_string_free) g_string_free __attribute((alias("IA__g_string_free"), visibility("default"))); - -#undef g_string_hash -extern __typeof (g_string_hash) g_string_hash __attribute((alias("IA__g_string_hash"), visibility("default"))); - -#undef g_string_insert -extern __typeof (g_string_insert) g_string_insert __attribute((alias("IA__g_string_insert"), visibility("default"))); - -#undef g_string_insert_c -extern __typeof (g_string_insert_c) g_string_insert_c __attribute((alias("IA__g_string_insert_c"), visibility("default"))); - -#undef g_string_insert_len -extern __typeof (g_string_insert_len) g_string_insert_len __attribute((alias("IA__g_string_insert_len"), visibility("default"))); - -#undef g_string_insert_unichar -extern __typeof (g_string_insert_unichar) g_string_insert_unichar __attribute((alias("IA__g_string_insert_unichar"), visibility("default"))); - -#undef g_string_new -extern __typeof (g_string_new) g_string_new __attribute((alias("IA__g_string_new"), visibility("default"))); - -#undef g_string_new_len -extern __typeof (g_string_new_len) g_string_new_len __attribute((alias("IA__g_string_new_len"), visibility("default"))); - -#undef g_string_overwrite -extern __typeof (g_string_overwrite) g_string_overwrite __attribute((alias("IA__g_string_overwrite"), visibility("default"))); - -#undef g_string_overwrite_len -extern __typeof (g_string_overwrite_len) g_string_overwrite_len __attribute((alias("IA__g_string_overwrite_len"), visibility("default"))); - -#undef g_string_prepend -extern __typeof (g_string_prepend) g_string_prepend __attribute((alias("IA__g_string_prepend"), visibility("default"))); - -#undef g_string_prepend_c -extern __typeof (g_string_prepend_c) g_string_prepend_c __attribute((alias("IA__g_string_prepend_c"), visibility("default"))); - -#undef g_string_prepend_len -extern __typeof (g_string_prepend_len) g_string_prepend_len __attribute((alias("IA__g_string_prepend_len"), visibility("default"))); - -#undef g_string_prepend_unichar -extern __typeof (g_string_prepend_unichar) g_string_prepend_unichar __attribute((alias("IA__g_string_prepend_unichar"), visibility("default"))); - -#undef g_string_printf -extern __typeof (g_string_printf) g_string_printf __attribute((alias("IA__g_string_printf"), visibility("default"))); - -#undef g_string_set_size -extern __typeof (g_string_set_size) g_string_set_size __attribute((alias("IA__g_string_set_size"), visibility("default"))); - -#undef g_string_sized_new -extern __typeof (g_string_sized_new) g_string_sized_new __attribute((alias("IA__g_string_sized_new"), visibility("default"))); - -#undef g_string_truncate -extern __typeof (g_string_truncate) g_string_truncate __attribute((alias("IA__g_string_truncate"), visibility("default"))); - -#undef g_string_append_uri_escaped -extern __typeof (g_string_append_uri_escaped) g_string_append_uri_escaped __attribute((alias("IA__g_string_append_uri_escaped"), visibility("default"))); - -#ifndef G_DISABLE_DEPRECATED -#undef g_string_down -extern __typeof (g_string_down) g_string_down __attribute((alias("IA__g_string_down"), visibility("default"))); - -#undef g_string_up -extern __typeof (g_string_up) g_string_up __attribute((alias("IA__g_string_up"), visibility("default"))); - -#endif -#undef g_string_vprintf -extern __typeof (g_string_vprintf) g_string_vprintf __attribute((alias("IA__g_string_vprintf"), visibility("default"))); - -#undef g_str_equal -extern __typeof (g_str_equal) g_str_equal __attribute((alias("IA__g_str_equal"), visibility("default"))); - -#undef g_str_hash -extern __typeof (g_str_hash) g_str_hash __attribute((alias("IA__g_str_hash"), visibility("default"))); - -#endif -#endif -#if IN_HEADER(__G_THREAD_H__) -#if IN_FILE(__G_THREAD_C__) -#undef g_once_impl -extern __typeof (g_once_impl) g_once_impl __attribute((alias("IA__g_once_impl"), visibility("default"))); - -#undef g_once_init_enter_impl -extern __typeof (g_once_init_enter_impl) g_once_init_enter_impl __attribute((alias("IA__g_once_init_enter_impl"), visibility("default"))); - -#undef g_once_init_leave -extern __typeof (g_once_init_leave) g_once_init_leave __attribute((alias("IA__g_once_init_leave"), visibility("default"))); - -#undef g_thread_create_full -extern __typeof (g_thread_create_full) g_thread_create_full __attribute((alias("IA__g_thread_create_full"), visibility("default"))); - -#undef g_thread_error_quark -extern __typeof (g_thread_error_quark) g_thread_error_quark __attribute((alias("IA__g_thread_error_quark"), visibility("default"))); - -#undef g_thread_exit -extern __typeof (g_thread_exit) g_thread_exit __attribute((alias("IA__g_thread_exit"), visibility("default"))); - -#undef g_thread_join -extern __typeof (g_thread_join) g_thread_join __attribute((alias("IA__g_thread_join"), visibility("default"))); - -#undef g_thread_self -extern __typeof (g_thread_self) g_thread_self __attribute((alias("IA__g_thread_self"), visibility("default"))); - -#undef g_thread_set_priority -extern __typeof (g_thread_set_priority) g_thread_set_priority __attribute((alias("IA__g_thread_set_priority"), visibility("default"))); - -#undef g_static_mutex_free -extern __typeof (g_static_mutex_free) g_static_mutex_free __attribute((alias("IA__g_static_mutex_free"), visibility("default"))); - -#undef g_static_mutex_get_mutex_impl -extern __typeof (g_static_mutex_get_mutex_impl) g_static_mutex_get_mutex_impl __attribute((alias("IA__g_static_mutex_get_mutex_impl"), visibility("default"))); - -#undef g_static_mutex_init -extern __typeof (g_static_mutex_init) g_static_mutex_init __attribute((alias("IA__g_static_mutex_init"), visibility("default"))); - -#undef g_static_private_free -extern __typeof (g_static_private_free) g_static_private_free __attribute((alias("IA__g_static_private_free"), visibility("default"))); - -#undef g_static_private_get -extern __typeof (g_static_private_get) g_static_private_get __attribute((alias("IA__g_static_private_get"), visibility("default"))); - -#undef g_static_private_init -extern __typeof (g_static_private_init) g_static_private_init __attribute((alias("IA__g_static_private_init"), visibility("default"))); - -#undef g_static_private_set -extern __typeof (g_static_private_set) g_static_private_set __attribute((alias("IA__g_static_private_set"), visibility("default"))); - -#undef g_static_rec_mutex_free -extern __typeof (g_static_rec_mutex_free) g_static_rec_mutex_free __attribute((alias("IA__g_static_rec_mutex_free"), visibility("default"))); - -#undef g_static_rec_mutex_init -extern __typeof (g_static_rec_mutex_init) g_static_rec_mutex_init __attribute((alias("IA__g_static_rec_mutex_init"), visibility("default"))); - -#undef g_static_rec_mutex_lock -extern __typeof (g_static_rec_mutex_lock) g_static_rec_mutex_lock __attribute((alias("IA__g_static_rec_mutex_lock"), visibility("default"))); - -#undef g_static_rec_mutex_lock_full -extern __typeof (g_static_rec_mutex_lock_full) g_static_rec_mutex_lock_full __attribute((alias("IA__g_static_rec_mutex_lock_full"), visibility("default"))); - -#undef g_static_rec_mutex_trylock -extern __typeof (g_static_rec_mutex_trylock) g_static_rec_mutex_trylock __attribute((alias("IA__g_static_rec_mutex_trylock"), visibility("default"))); - -#undef g_static_rec_mutex_unlock -extern __typeof (g_static_rec_mutex_unlock) g_static_rec_mutex_unlock __attribute((alias("IA__g_static_rec_mutex_unlock"), visibility("default"))); - -#undef g_static_rec_mutex_unlock_full -extern __typeof (g_static_rec_mutex_unlock_full) g_static_rec_mutex_unlock_full __attribute((alias("IA__g_static_rec_mutex_unlock_full"), visibility("default"))); - -#undef g_static_rw_lock_free -extern __typeof (g_static_rw_lock_free) g_static_rw_lock_free __attribute((alias("IA__g_static_rw_lock_free"), visibility("default"))); - -#undef g_static_rw_lock_init -extern __typeof (g_static_rw_lock_init) g_static_rw_lock_init __attribute((alias("IA__g_static_rw_lock_init"), visibility("default"))); - -#undef g_static_rw_lock_reader_lock -extern __typeof (g_static_rw_lock_reader_lock) g_static_rw_lock_reader_lock __attribute((alias("IA__g_static_rw_lock_reader_lock"), visibility("default"))); - -#undef g_static_rw_lock_reader_trylock -extern __typeof (g_static_rw_lock_reader_trylock) g_static_rw_lock_reader_trylock __attribute((alias("IA__g_static_rw_lock_reader_trylock"), visibility("default"))); - -#undef g_static_rw_lock_reader_unlock -extern __typeof (g_static_rw_lock_reader_unlock) g_static_rw_lock_reader_unlock __attribute((alias("IA__g_static_rw_lock_reader_unlock"), visibility("default"))); - -#undef g_static_rw_lock_writer_lock -extern __typeof (g_static_rw_lock_writer_lock) g_static_rw_lock_writer_lock __attribute((alias("IA__g_static_rw_lock_writer_lock"), visibility("default"))); - -#undef g_static_rw_lock_writer_trylock -extern __typeof (g_static_rw_lock_writer_trylock) g_static_rw_lock_writer_trylock __attribute((alias("IA__g_static_rw_lock_writer_trylock"), visibility("default"))); - -#undef g_static_rw_lock_writer_unlock -extern __typeof (g_static_rw_lock_writer_unlock) g_static_rw_lock_writer_unlock __attribute((alias("IA__g_static_rw_lock_writer_unlock"), visibility("default"))); - -#undef g_thread_foreach -extern __typeof (g_thread_foreach) g_thread_foreach __attribute((alias("IA__g_thread_foreach"), visibility("default"))); - -#undef g_thread_get_initialized -extern __typeof (g_thread_get_initialized) g_thread_get_initialized __attribute((alias("IA__g_thread_get_initialized"), visibility("default"))); - -#endif -#endif -#if IN_HEADER(__G_THREADPOOL_H__) -#if IN_FILE(__G_THREADPOOL_C__) -#undef g_thread_pool_free -extern __typeof (g_thread_pool_free) g_thread_pool_free __attribute((alias("IA__g_thread_pool_free"), visibility("default"))); - -#undef g_thread_pool_get_max_threads -extern __typeof (g_thread_pool_get_max_threads) g_thread_pool_get_max_threads __attribute((alias("IA__g_thread_pool_get_max_threads"), visibility("default"))); - -#undef g_thread_pool_get_max_unused_threads -extern __typeof (g_thread_pool_get_max_unused_threads) g_thread_pool_get_max_unused_threads __attribute((alias("IA__g_thread_pool_get_max_unused_threads"), visibility("default"))); - -#undef g_thread_pool_get_max_idle_time -extern __typeof (g_thread_pool_get_max_idle_time) g_thread_pool_get_max_idle_time __attribute((alias("IA__g_thread_pool_get_max_idle_time"), visibility("default"))); - -#undef g_thread_pool_get_num_threads -extern __typeof (g_thread_pool_get_num_threads) g_thread_pool_get_num_threads __attribute((alias("IA__g_thread_pool_get_num_threads"), visibility("default"))); - -#undef g_thread_pool_get_num_unused_threads -extern __typeof (g_thread_pool_get_num_unused_threads) g_thread_pool_get_num_unused_threads __attribute((alias("IA__g_thread_pool_get_num_unused_threads"), visibility("default"))); - -#undef g_thread_pool_new -extern __typeof (g_thread_pool_new) g_thread_pool_new __attribute((alias("IA__g_thread_pool_new"), visibility("default"))); - -#undef g_thread_pool_push -extern __typeof (g_thread_pool_push) g_thread_pool_push __attribute((alias("IA__g_thread_pool_push"), visibility("default"))); - -#undef g_thread_pool_set_max_threads -extern __typeof (g_thread_pool_set_max_threads) g_thread_pool_set_max_threads __attribute((alias("IA__g_thread_pool_set_max_threads"), visibility("default"))); - -#undef g_thread_pool_set_max_unused_threads -extern __typeof (g_thread_pool_set_max_unused_threads) g_thread_pool_set_max_unused_threads __attribute((alias("IA__g_thread_pool_set_max_unused_threads"), visibility("default"))); - -#undef g_thread_pool_set_max_idle_time -extern __typeof (g_thread_pool_set_max_idle_time) g_thread_pool_set_max_idle_time __attribute((alias("IA__g_thread_pool_set_max_idle_time"), visibility("default"))); - -#undef g_thread_pool_stop_unused_threads -extern __typeof (g_thread_pool_stop_unused_threads) g_thread_pool_stop_unused_threads __attribute((alias("IA__g_thread_pool_stop_unused_threads"), visibility("default"))); - -#undef g_thread_pool_unprocessed -extern __typeof (g_thread_pool_unprocessed) g_thread_pool_unprocessed __attribute((alias("IA__g_thread_pool_unprocessed"), visibility("default"))); - -#undef g_thread_pool_set_sort_function -extern __typeof (g_thread_pool_set_sort_function) g_thread_pool_set_sort_function __attribute((alias("IA__g_thread_pool_set_sort_function"), visibility("default"))); - -#endif -#endif -#if IN_HEADER(__G_TEST_UTILS_H__) -#if IN_FILE(__G_TEST_UTILS_C__) -#undef g_assertion_message -extern __typeof (g_assertion_message) g_assertion_message __attribute((alias("IA__g_assertion_message"), visibility("default"))); - -#undef g_assertion_message_cmpnum -extern __typeof (g_assertion_message_cmpnum) g_assertion_message_cmpnum __attribute((alias("IA__g_assertion_message_cmpnum"), visibility("default"))); - -#undef g_assertion_message_cmpstr -extern __typeof (g_assertion_message_cmpstr) g_assertion_message_cmpstr __attribute((alias("IA__g_assertion_message_cmpstr"), visibility("default"))); - -#undef g_assertion_message_expr -extern __typeof (g_assertion_message_expr) g_assertion_message_expr __attribute((alias("IA__g_assertion_message_expr"), visibility("default"))); - -#undef g_assertion_message_error -extern __typeof (g_assertion_message_error) g_assertion_message_error __attribute((alias("IA__g_assertion_message_error"), visibility("default"))); - -#undef g_strcmp0 -extern __typeof (g_strcmp0) g_strcmp0 __attribute((alias("IA__g_strcmp0"), visibility("default"))); - -#undef g_test_add_data_func -extern __typeof (g_test_add_data_func) g_test_add_data_func __attribute((alias("IA__g_test_add_data_func"), visibility("default"))); - -#undef g_test_add_func -extern __typeof (g_test_add_func) g_test_add_func __attribute((alias("IA__g_test_add_func"), visibility("default"))); - -#undef g_test_add_vtable -extern __typeof (g_test_add_vtable) g_test_add_vtable __attribute((alias("IA__g_test_add_vtable"), visibility("default"))); - -#undef g_test_bug -extern __typeof (g_test_bug) g_test_bug __attribute((alias("IA__g_test_bug"), visibility("default"))); - -#undef g_test_bug_base -extern __typeof (g_test_bug_base) g_test_bug_base __attribute((alias("IA__g_test_bug_base"), visibility("default"))); - -#undef g_test_create_case -extern __typeof (g_test_create_case) g_test_create_case __attribute((alias("IA__g_test_create_case"), visibility("default"))); - -#undef g_test_create_suite -extern __typeof (g_test_create_suite) g_test_create_suite __attribute((alias("IA__g_test_create_suite"), visibility("default"))); - -#undef g_test_get_root -extern __typeof (g_test_get_root) g_test_get_root __attribute((alias("IA__g_test_get_root"), visibility("default"))); - -#undef g_test_init -extern __typeof (g_test_init) g_test_init __attribute((alias("IA__g_test_init"), visibility("default"))); - -#undef g_test_log_buffer_free -extern __typeof (g_test_log_buffer_free) g_test_log_buffer_free __attribute((alias("IA__g_test_log_buffer_free"), visibility("default"))); - -#undef g_test_log_buffer_new -extern __typeof (g_test_log_buffer_new) g_test_log_buffer_new __attribute((alias("IA__g_test_log_buffer_new"), visibility("default"))); - -#undef g_test_log_buffer_pop -extern __typeof (g_test_log_buffer_pop) g_test_log_buffer_pop __attribute((alias("IA__g_test_log_buffer_pop"), visibility("default"))); - -#undef g_test_log_buffer_push -extern __typeof (g_test_log_buffer_push) g_test_log_buffer_push __attribute((alias("IA__g_test_log_buffer_push"), visibility("default"))); - -#undef g_test_log_msg_free -extern __typeof (g_test_log_msg_free) g_test_log_msg_free __attribute((alias("IA__g_test_log_msg_free"), visibility("default"))); - -#undef g_test_log_type_name -extern __typeof (g_test_log_type_name) g_test_log_type_name __attribute((alias("IA__g_test_log_type_name"), visibility("default"))); - -#undef g_test_maximized_result -extern __typeof (g_test_maximized_result) g_test_maximized_result __attribute((alias("IA__g_test_maximized_result"), visibility("default"))); - -#undef g_test_message -extern __typeof (g_test_message) g_test_message __attribute((alias("IA__g_test_message"), visibility("default"))); - -#undef g_test_minimized_result -extern __typeof (g_test_minimized_result) g_test_minimized_result __attribute((alias("IA__g_test_minimized_result"), visibility("default"))); - -#undef g_test_queue_destroy -extern __typeof (g_test_queue_destroy) g_test_queue_destroy __attribute((alias("IA__g_test_queue_destroy"), visibility("default"))); - -#undef g_test_queue_free -extern __typeof (g_test_queue_free) g_test_queue_free __attribute((alias("IA__g_test_queue_free"), visibility("default"))); - -#undef g_test_rand_double -extern __typeof (g_test_rand_double) g_test_rand_double __attribute((alias("IA__g_test_rand_double"), visibility("default"))); - -#undef g_test_rand_double_range -extern __typeof (g_test_rand_double_range) g_test_rand_double_range __attribute((alias("IA__g_test_rand_double_range"), visibility("default"))); - -#undef g_test_rand_int -extern __typeof (g_test_rand_int) g_test_rand_int __attribute((alias("IA__g_test_rand_int"), visibility("default"))); - -#undef g_test_rand_int_range -extern __typeof (g_test_rand_int_range) g_test_rand_int_range __attribute((alias("IA__g_test_rand_int_range"), visibility("default"))); - -#undef g_test_run -extern __typeof (g_test_run) g_test_run __attribute((alias("IA__g_test_run"), visibility("default"))); - -#undef g_test_run_suite -extern __typeof (g_test_run_suite) g_test_run_suite __attribute((alias("IA__g_test_run_suite"), visibility("default"))); - -#undef g_test_suite_add -extern __typeof (g_test_suite_add) g_test_suite_add __attribute((alias("IA__g_test_suite_add"), visibility("default"))); - -#undef g_test_suite_add_suite -extern __typeof (g_test_suite_add_suite) g_test_suite_add_suite __attribute((alias("IA__g_test_suite_add_suite"), visibility("default"))); - -#undef g_test_timer_elapsed -extern __typeof (g_test_timer_elapsed) g_test_timer_elapsed __attribute((alias("IA__g_test_timer_elapsed"), visibility("default"))); - -#undef g_test_timer_last -extern __typeof (g_test_timer_last) g_test_timer_last __attribute((alias("IA__g_test_timer_last"), visibility("default"))); - -#undef g_test_timer_start -extern __typeof (g_test_timer_start) g_test_timer_start __attribute((alias("IA__g_test_timer_start"), visibility("default"))); - -#undef g_test_trap_assertions -extern __typeof (g_test_trap_assertions) g_test_trap_assertions __attribute((alias("IA__g_test_trap_assertions"), visibility("default"))); - -#undef g_test_trap_fork -extern __typeof (g_test_trap_fork) g_test_trap_fork __attribute((alias("IA__g_test_trap_fork"), visibility("default"))); - -#undef g_test_trap_has_passed -extern __typeof (g_test_trap_has_passed) g_test_trap_has_passed __attribute((alias("IA__g_test_trap_has_passed"), visibility("default"))); - -#undef g_test_trap_reached_timeout -extern __typeof (g_test_trap_reached_timeout) g_test_trap_reached_timeout __attribute((alias("IA__g_test_trap_reached_timeout"), visibility("default"))); - -#endif -#endif -#if IN_HEADER(__G_TIMER_H__) -#if IN_FILE(__G_TIMER_C__) -#undef g_timer_continue -extern __typeof (g_timer_continue) g_timer_continue __attribute((alias("IA__g_timer_continue"), visibility("default"))); - -#undef g_timer_destroy -extern __typeof (g_timer_destroy) g_timer_destroy __attribute((alias("IA__g_timer_destroy"), visibility("default"))); - -#undef g_timer_elapsed -extern __typeof (g_timer_elapsed) g_timer_elapsed __attribute((alias("IA__g_timer_elapsed"), visibility("default"))); - -#undef g_timer_new -extern __typeof (g_timer_new) g_timer_new __attribute((alias("IA__g_timer_new"), visibility("default"))); - -#undef g_timer_reset -extern __typeof (g_timer_reset) g_timer_reset __attribute((alias("IA__g_timer_reset"), visibility("default"))); - -#undef g_timer_start -extern __typeof (g_timer_start) g_timer_start __attribute((alias("IA__g_timer_start"), visibility("default"))); - -#undef g_timer_stop -extern __typeof (g_timer_stop) g_timer_stop __attribute((alias("IA__g_timer_stop"), visibility("default"))); - -#undef g_time_val_add -extern __typeof (g_time_val_add) g_time_val_add __attribute((alias("IA__g_time_val_add"), visibility("default"))); - -#undef g_time_val_from_iso8601 -extern __typeof (g_time_val_from_iso8601) g_time_val_from_iso8601 __attribute((alias("IA__g_time_val_from_iso8601"), visibility("default"))); - -#undef g_time_val_to_iso8601 -extern __typeof (g_time_val_to_iso8601) g_time_val_to_iso8601 __attribute((alias("IA__g_time_val_to_iso8601"), visibility("default"))); - -#undef g_usleep -extern __typeof (g_usleep) g_usleep __attribute((alias("IA__g_usleep"), visibility("default"))); - -#endif -#endif -#if IN_HEADER(__G_TREE_H__) -#if IN_FILE(__G_TREE_C__) -#undef g_tree_destroy -extern __typeof (g_tree_destroy) g_tree_destroy __attribute((alias("IA__g_tree_destroy"), visibility("default"))); - -#undef g_tree_foreach -extern __typeof (g_tree_foreach) g_tree_foreach __attribute((alias("IA__g_tree_foreach"), visibility("default"))); - -#undef g_tree_height -extern __typeof (g_tree_height) g_tree_height __attribute((alias("IA__g_tree_height"), visibility("default"))); - -#undef g_tree_insert -extern __typeof (g_tree_insert) g_tree_insert __attribute((alias("IA__g_tree_insert"), visibility("default"))); - -#undef g_tree_lookup -extern __typeof (g_tree_lookup) g_tree_lookup __attribute((alias("IA__g_tree_lookup"), visibility("default"))); - -#undef g_tree_lookup_extended -extern __typeof (g_tree_lookup_extended) g_tree_lookup_extended __attribute((alias("IA__g_tree_lookup_extended"), visibility("default"))); - -#undef g_tree_new -extern __typeof (g_tree_new) g_tree_new __attribute((alias("IA__g_tree_new"), visibility("default"))); - -#undef g_tree_new_full -extern __typeof (g_tree_new_full) g_tree_new_full __attribute((alias("IA__g_tree_new_full"), visibility("default"))); - -#undef g_tree_new_with_data -extern __typeof (g_tree_new_with_data) g_tree_new_with_data __attribute((alias("IA__g_tree_new_with_data"), visibility("default"))); - -#undef g_tree_nnodes -extern __typeof (g_tree_nnodes) g_tree_nnodes __attribute((alias("IA__g_tree_nnodes"), visibility("default"))); - -#undef g_tree_remove -extern __typeof (g_tree_remove) g_tree_remove __attribute((alias("IA__g_tree_remove"), visibility("default"))); - -#undef g_tree_replace -extern __typeof (g_tree_replace) g_tree_replace __attribute((alias("IA__g_tree_replace"), visibility("default"))); - -#undef g_tree_search -extern __typeof (g_tree_search) g_tree_search __attribute((alias("IA__g_tree_search"), visibility("default"))); - -#undef g_tree_steal -extern __typeof (g_tree_steal) g_tree_steal __attribute((alias("IA__g_tree_steal"), visibility("default"))); - -#ifndef G_DISABLE_DEPRECATED -#undef g_tree_traverse -extern __typeof (g_tree_traverse) g_tree_traverse __attribute((alias("IA__g_tree_traverse"), visibility("default"))); - -#endif -#endif -#endif -#if IN_HEADER(__G_UNICODE_H__) -#if IN_FILE(__G_UNIBREAK_C__) -#undef g_unichar_break_type -extern __typeof (g_unichar_break_type) g_unichar_break_type __attribute((alias("IA__g_unichar_break_type"), visibility("default"))); - -#endif -#endif -#if IN_HEADER(__G_UNICODE_H__) -#if IN_FILE(__G_UNICOLLATE_C__) -#undef g_utf8_collate -extern __typeof (g_utf8_collate) g_utf8_collate __attribute((alias("IA__g_utf8_collate"), visibility("default"))); - -#undef g_utf8_collate_key -extern __typeof (g_utf8_collate_key) g_utf8_collate_key __attribute((alias("IA__g_utf8_collate_key"), visibility("default"))); - -#undef g_utf8_collate_key_for_filename -extern __typeof (g_utf8_collate_key_for_filename) g_utf8_collate_key_for_filename __attribute((alias("IA__g_utf8_collate_key_for_filename"), visibility("default"))); - -#endif -#endif -#if IN_HEADER(__G_UNICODE_H__) -#if IN_FILE(__G_UNIDECOMP_C__) -#undef g_unicode_canonical_decomposition -extern __typeof (g_unicode_canonical_decomposition) g_unicode_canonical_decomposition __attribute((alias("IA__g_unicode_canonical_decomposition"), visibility("default"))); - -#undef g_unicode_canonical_ordering -extern __typeof (g_unicode_canonical_ordering) g_unicode_canonical_ordering __attribute((alias("IA__g_unicode_canonical_ordering"), visibility("default"))); - -#undef g_unichar_combining_class -extern __typeof (g_unichar_combining_class) g_unichar_combining_class __attribute((alias("IA__g_unichar_combining_class"), visibility("default"))); - -#undef g_utf8_normalize -extern __typeof (g_utf8_normalize) g_utf8_normalize __attribute((alias("IA__g_utf8_normalize"), visibility("default"))); - -#endif -#endif -#if IN_HEADER(__G_UNICODE_H__) -#if IN_FILE(__G_UNIPROP_C__) -#undef g_unichar_isalnum -extern __typeof (g_unichar_isalnum) g_unichar_isalnum __attribute((alias("IA__g_unichar_isalnum"), visibility("default"))); - -#undef g_unichar_isalpha -extern __typeof (g_unichar_isalpha) g_unichar_isalpha __attribute((alias("IA__g_unichar_isalpha"), visibility("default"))); - -#undef g_unichar_iscntrl -extern __typeof (g_unichar_iscntrl) g_unichar_iscntrl __attribute((alias("IA__g_unichar_iscntrl"), visibility("default"))); - -#undef g_unichar_isdefined -extern __typeof (g_unichar_isdefined) g_unichar_isdefined __attribute((alias("IA__g_unichar_isdefined"), visibility("default"))); - -#undef g_unichar_isdigit -extern __typeof (g_unichar_isdigit) g_unichar_isdigit __attribute((alias("IA__g_unichar_isdigit"), visibility("default"))); - -#undef g_unichar_isgraph -extern __typeof (g_unichar_isgraph) g_unichar_isgraph __attribute((alias("IA__g_unichar_isgraph"), visibility("default"))); - -#undef g_unichar_islower -extern __typeof (g_unichar_islower) g_unichar_islower __attribute((alias("IA__g_unichar_islower"), visibility("default"))); - -#undef g_unichar_isprint -extern __typeof (g_unichar_isprint) g_unichar_isprint __attribute((alias("IA__g_unichar_isprint"), visibility("default"))); - -#undef g_unichar_ispunct -extern __typeof (g_unichar_ispunct) g_unichar_ispunct __attribute((alias("IA__g_unichar_ispunct"), visibility("default"))); - -#undef g_unichar_isspace -extern __typeof (g_unichar_isspace) g_unichar_isspace __attribute((alias("IA__g_unichar_isspace"), visibility("default"))); - -#undef g_unichar_istitle -extern __typeof (g_unichar_istitle) g_unichar_istitle __attribute((alias("IA__g_unichar_istitle"), visibility("default"))); - -#undef g_unichar_isupper -extern __typeof (g_unichar_isupper) g_unichar_isupper __attribute((alias("IA__g_unichar_isupper"), visibility("default"))); - -#undef g_unichar_iswide -extern __typeof (g_unichar_iswide) g_unichar_iswide __attribute((alias("IA__g_unichar_iswide"), visibility("default"))); - -#undef g_unichar_iswide_cjk -extern __typeof (g_unichar_iswide_cjk) g_unichar_iswide_cjk __attribute((alias("IA__g_unichar_iswide_cjk"), visibility("default"))); - -#undef g_unichar_isxdigit -extern __typeof (g_unichar_isxdigit) g_unichar_isxdigit __attribute((alias("IA__g_unichar_isxdigit"), visibility("default"))); - -#undef g_unichar_iszerowidth -extern __typeof (g_unichar_iszerowidth) g_unichar_iszerowidth __attribute((alias("IA__g_unichar_iszerowidth"), visibility("default"))); - -#undef g_unichar_tolower -extern __typeof (g_unichar_tolower) g_unichar_tolower __attribute((alias("IA__g_unichar_tolower"), visibility("default"))); - -#undef g_unichar_totitle -extern __typeof (g_unichar_totitle) g_unichar_totitle __attribute((alias("IA__g_unichar_totitle"), visibility("default"))); - -#undef g_unichar_toupper -extern __typeof (g_unichar_toupper) g_unichar_toupper __attribute((alias("IA__g_unichar_toupper"), visibility("default"))); - -#undef g_unichar_ismark -extern __typeof (g_unichar_ismark) g_unichar_ismark __attribute((alias("IA__g_unichar_ismark"), visibility("default"))); - -#undef g_unichar_get_mirror_char -extern __typeof (g_unichar_get_mirror_char) g_unichar_get_mirror_char __attribute((alias("IA__g_unichar_get_mirror_char"), visibility("default"))); - -#undef g_unichar_get_script -extern __typeof (g_unichar_get_script) g_unichar_get_script __attribute((alias("IA__g_unichar_get_script"), visibility("default"))); - -#undef g_unichar_digit_value -extern __typeof (g_unichar_digit_value) g_unichar_digit_value __attribute((alias("IA__g_unichar_digit_value"), visibility("default"))); - -#undef g_unichar_xdigit_value -extern __typeof (g_unichar_xdigit_value) g_unichar_xdigit_value __attribute((alias("IA__g_unichar_xdigit_value"), visibility("default"))); - -#undef g_unichar_type -extern __typeof (g_unichar_type) g_unichar_type __attribute((alias("IA__g_unichar_type"), visibility("default"))); - -#undef g_utf8_casefold -extern __typeof (g_utf8_casefold) g_utf8_casefold __attribute((alias("IA__g_utf8_casefold"), visibility("default"))); - -#undef g_utf8_strup -extern __typeof (g_utf8_strup) g_utf8_strup __attribute((alias("IA__g_utf8_strup"), visibility("default"))); - -#undef g_utf8_strdown -extern __typeof (g_utf8_strdown) g_utf8_strdown __attribute((alias("IA__g_utf8_strdown"), visibility("default"))); - -#endif -#endif -#if IN_HEADER(__G_UNICODE_H__) -#if IN_FILE(__G_UTF8_C__) -#undef g_get_charset -extern __typeof (g_get_charset) g_get_charset __attribute((alias("IA__g_get_charset"), visibility("default"))); - -#undef g_ucs4_to_utf16 -extern __typeof (g_ucs4_to_utf16) g_ucs4_to_utf16 __attribute((alias("IA__g_ucs4_to_utf16"), visibility("default"))); - -#undef g_ucs4_to_utf8 -extern __typeof (g_ucs4_to_utf8) g_ucs4_to_utf8 __attribute((alias("IA__g_ucs4_to_utf8"), visibility("default"))); - -#undef g_utf16_to_ucs4 -extern __typeof (g_utf16_to_ucs4) g_utf16_to_ucs4 __attribute((alias("IA__g_utf16_to_ucs4"), visibility("default"))); - -#undef g_utf16_to_utf8 -extern __typeof (g_utf16_to_utf8) g_utf16_to_utf8 __attribute((alias("IA__g_utf16_to_utf8"), visibility("default"))); - -#undef g_utf8_find_next_char -extern __typeof (g_utf8_find_next_char) g_utf8_find_next_char __attribute((alias("IA__g_utf8_find_next_char"), visibility("default"))); - -#undef g_utf8_find_prev_char -extern __typeof (g_utf8_find_prev_char) g_utf8_find_prev_char __attribute((alias("IA__g_utf8_find_prev_char"), visibility("default"))); - -#undef g_utf8_get_char -extern __typeof (g_utf8_get_char) g_utf8_get_char __attribute((alias("IA__g_utf8_get_char"), visibility("default"))); - -#undef g_utf8_get_char_validated -extern __typeof (g_utf8_get_char_validated) g_utf8_get_char_validated __attribute((alias("IA__g_utf8_get_char_validated"), visibility("default"))); - -#undef g_utf8_offset_to_pointer -extern __typeof (g_utf8_offset_to_pointer) g_utf8_offset_to_pointer __attribute((alias("IA__g_utf8_offset_to_pointer"), visibility("default"))); - -#undef g_utf8_pointer_to_offset -extern __typeof (g_utf8_pointer_to_offset) g_utf8_pointer_to_offset __attribute((alias("IA__g_utf8_pointer_to_offset"), visibility("default"))); - -#undef g_utf8_prev_char -extern __typeof (g_utf8_prev_char) g_utf8_prev_char __attribute((alias("IA__g_utf8_prev_char"), visibility("default"))); - -#undef g_utf8_strchr -extern __typeof (g_utf8_strchr) g_utf8_strchr __attribute((alias("IA__g_utf8_strchr"), visibility("default"))); - -#undef g_utf8_strlen -extern __typeof (g_utf8_strlen) g_utf8_strlen __attribute((alias("IA__g_utf8_strlen"), visibility("default"))); - -#undef g_utf8_strncpy -extern __typeof (g_utf8_strncpy) g_utf8_strncpy __attribute((alias("IA__g_utf8_strncpy"), visibility("default"))); - -#undef g_utf8_strrchr -extern __typeof (g_utf8_strrchr) g_utf8_strrchr __attribute((alias("IA__g_utf8_strrchr"), visibility("default"))); - -#undef g_utf8_strreverse -extern __typeof (g_utf8_strreverse) g_utf8_strreverse __attribute((alias("IA__g_utf8_strreverse"), visibility("default"))); - -#undef g_utf8_to_ucs4 -extern __typeof (g_utf8_to_ucs4) g_utf8_to_ucs4 __attribute((alias("IA__g_utf8_to_ucs4"), visibility("default"))); - -#undef g_utf8_to_ucs4_fast -extern __typeof (g_utf8_to_ucs4_fast) g_utf8_to_ucs4_fast __attribute((alias("IA__g_utf8_to_ucs4_fast"), visibility("default"))); - -#undef g_utf8_to_utf16 -extern __typeof (g_utf8_to_utf16) g_utf8_to_utf16 __attribute((alias("IA__g_utf8_to_utf16"), visibility("default"))); - -#undef g_utf8_validate -extern __typeof (g_utf8_validate) g_utf8_validate __attribute((alias("IA__g_utf8_validate"), visibility("default"))); - -#undef g_unichar_to_utf8 -extern __typeof (g_unichar_to_utf8) g_unichar_to_utf8 __attribute((alias("IA__g_unichar_to_utf8"), visibility("default"))); - -#undef g_unichar_validate -extern __typeof (g_unichar_validate) g_unichar_validate __attribute((alias("IA__g_unichar_validate"), visibility("default"))); - -#endif -#endif -#if IN_HEADER(__GLIBINTL_H__) -#if IN_FILE(__G_UTILS_C__) -#undef glib_gettext -extern __typeof (glib_gettext) glib_gettext __attribute((alias("IA__glib_gettext"), visibility("default"))); - -#endif -#endif -#if IN_HEADER(__G_HASH_H__) -#if IN_FILE(__G_UTILS_C__) -#undef g_int_equal -extern __typeof (g_int_equal) g_int_equal __attribute((alias("IA__g_int_equal"), visibility("default"))); - -#undef g_int_hash -extern __typeof (g_int_hash) g_int_hash __attribute((alias("IA__g_int_hash"), visibility("default"))); - -#undef g_direct_equal -extern __typeof (g_direct_equal) g_direct_equal __attribute((alias("IA__g_direct_equal"), visibility("default"))); - -#undef g_direct_hash -extern __typeof (g_direct_hash) g_direct_hash __attribute((alias("IA__g_direct_hash"), visibility("default"))); - -#endif -#endif -#if IN_HEADER(__G_UTILS_H__) -#if IN_FILE(__G_UTILS_C__) -#undef g_atexit -extern __typeof (g_atexit) g_atexit __attribute((alias("IA__g_atexit"), visibility("default"))); - -#ifndef G_DISABLE_DEPRECATED -#undef g_basename -extern __typeof (g_basename) g_basename __attribute((alias("IA__g_basename"), visibility("default"))); - -#endif -#undef g_get_application_name -extern __typeof (g_get_application_name) g_get_application_name __attribute((alias("IA__g_get_application_name"), visibility("default"))); - -#ifndef _WIN64 -#undef g_find_program_in_path -extern __typeof (g_find_program_in_path) g_find_program_in_path __attribute((alias("IA__g_find_program_in_path"), visibility("default"))); - -#undef g_get_current_dir -extern __typeof (g_get_current_dir) g_get_current_dir __attribute((alias("IA__g_get_current_dir"), visibility("default"))); - -#undef g_getenv -extern __typeof (g_getenv) g_getenv __attribute((alias("IA__g_getenv"), visibility("default"))); - -#undef g_unsetenv -extern __typeof (g_unsetenv) g_unsetenv __attribute((alias("IA__g_unsetenv"), visibility("default"))); - -#undef g_get_home_dir -extern __typeof (g_get_home_dir) g_get_home_dir __attribute((alias("IA__g_get_home_dir"), visibility("default"))); - -#endif -#undef g_get_host_name -extern __typeof (g_get_host_name) g_get_host_name __attribute((alias("IA__g_get_host_name"), visibility("default"))); - -#ifndef _WIN64 -#undef g_setenv -extern __typeof (g_setenv) g_setenv __attribute((alias("IA__g_setenv"), visibility("default"))); - -#endif -#undef g_listenv -extern __typeof (g_listenv) g_listenv __attribute((alias("IA__g_listenv"), visibility("default"))); - -#ifdef G_OS_WIN32 -#undef g_find_program_in_path_utf8 -extern __typeof (g_find_program_in_path_utf8) g_find_program_in_path_utf8 __attribute((alias("IA__g_find_program_in_path_utf8"), visibility("default"))); - -#undef g_get_current_dir_utf8 -extern __typeof (g_get_current_dir_utf8) g_get_current_dir_utf8 __attribute((alias("IA__g_get_current_dir_utf8"), visibility("default"))); - -#undef g_getenv_utf8 -extern __typeof (g_getenv_utf8) g_getenv_utf8 __attribute((alias("IA__g_getenv_utf8"), visibility("default"))); - -#undef g_unsetenv_utf8 -extern __typeof (g_unsetenv_utf8) g_unsetenv_utf8 __attribute((alias("IA__g_unsetenv_utf8"), visibility("default"))); - -#undef g_setenv_utf8 -extern __typeof (g_setenv_utf8) g_setenv_utf8 __attribute((alias("IA__g_setenv_utf8"), visibility("default"))); - -#undef g_get_home_dir_utf8 -extern __typeof (g_get_home_dir_utf8) g_get_home_dir_utf8 __attribute((alias("IA__g_get_home_dir_utf8"), visibility("default"))); - -#endif -#undef g_get_language_names -extern __typeof (g_get_language_names) g_get_language_names __attribute((alias("IA__g_get_language_names"), visibility("default"))); - -#undef g_get_prgname -extern __typeof (g_get_prgname) g_get_prgname __attribute((alias("IA__g_get_prgname"), visibility("default"))); - -#ifndef _WIN64 -#undef g_get_real_name -extern __typeof (g_get_real_name) g_get_real_name __attribute((alias("IA__g_get_real_name"), visibility("default"))); - -#endif -#ifdef G_OS_WIN32 -#undef g_get_real_name_utf8 -extern __typeof (g_get_real_name_utf8) g_get_real_name_utf8 __attribute((alias("IA__g_get_real_name_utf8"), visibility("default"))); - -#endif -#undef g_get_system_config_dirs -extern __typeof (g_get_system_config_dirs) g_get_system_config_dirs __attribute((alias("IA__g_get_system_config_dirs"), visibility("default"))); - -#undef g_get_system_data_dirs -extern __typeof (g_get_system_data_dirs) g_get_system_data_dirs __attribute((alias("IA__g_get_system_data_dirs"), visibility("default"))); - -#ifdef G_OS_WIN32 -#undef g_win32_get_system_data_dirs_for_module -extern __typeof (g_win32_get_system_data_dirs_for_module) g_win32_get_system_data_dirs_for_module __attribute((alias("IA__g_win32_get_system_data_dirs_for_module"), visibility("default"))); - -#endif -#ifndef _WIN64 -#undef g_get_tmp_dir -extern __typeof (g_get_tmp_dir) g_get_tmp_dir __attribute((alias("IA__g_get_tmp_dir"), visibility("default"))); - -#endif -#ifdef G_OS_WIN32 -#undef g_get_tmp_dir_utf8 -extern __typeof (g_get_tmp_dir_utf8) g_get_tmp_dir_utf8 __attribute((alias("IA__g_get_tmp_dir_utf8"), visibility("default"))); - -#endif -#undef g_get_user_cache_dir -extern __typeof (g_get_user_cache_dir) g_get_user_cache_dir __attribute((alias("IA__g_get_user_cache_dir"), visibility("default"))); - -#undef g_get_user_config_dir -extern __typeof (g_get_user_config_dir) g_get_user_config_dir __attribute((alias("IA__g_get_user_config_dir"), visibility("default"))); - -#undef g_get_user_data_dir -extern __typeof (g_get_user_data_dir) g_get_user_data_dir __attribute((alias("IA__g_get_user_data_dir"), visibility("default"))); - -#undef g_get_user_special_dir -extern __typeof (g_get_user_special_dir) g_get_user_special_dir __attribute((alias("IA__g_get_user_special_dir"), visibility("default"))); - -#ifndef _WIN64 -#undef g_get_user_name -extern __typeof (g_get_user_name) g_get_user_name __attribute((alias("IA__g_get_user_name"), visibility("default"))); - -#endif -#ifdef G_OS_WIN32 -#undef g_get_user_name_utf8 -extern __typeof (g_get_user_name_utf8) g_get_user_name_utf8 __attribute((alias("IA__g_get_user_name_utf8"), visibility("default"))); - -#endif -#undef glib_check_version -extern __typeof (glib_check_version) glib_check_version __attribute((alias("IA__glib_check_version"), visibility("default"))); - -#undef g_nullify_pointer -extern __typeof (g_nullify_pointer) g_nullify_pointer __attribute((alias("IA__g_nullify_pointer"), visibility("default"))); - -#undef g_parse_debug_string -extern __typeof (g_parse_debug_string) g_parse_debug_string __attribute((alias("IA__g_parse_debug_string"), visibility("default"))); - -#undef g_path_get_basename -extern __typeof (g_path_get_basename) g_path_get_basename __attribute((alias("IA__g_path_get_basename"), visibility("default"))); - -#undef g_path_get_dirname -extern __typeof (g_path_get_dirname) g_path_get_dirname __attribute((alias("IA__g_path_get_dirname"), visibility("default"))); - -#undef g_path_is_absolute -extern __typeof (g_path_is_absolute) g_path_is_absolute __attribute((alias("IA__g_path_is_absolute"), visibility("default"))); - -#undef g_path_skip_root -extern __typeof (g_path_skip_root) g_path_skip_root __attribute((alias("IA__g_path_skip_root"), visibility("default"))); - -#undef g_set_application_name -extern __typeof (g_set_application_name) g_set_application_name __attribute((alias("IA__g_set_application_name"), visibility("default"))); - -#undef g_set_prgname -extern __typeof (g_set_prgname) g_set_prgname __attribute((alias("IA__g_set_prgname"), visibility("default"))); - -#endif -#endif -#if IN_HEADER(__G_REGEX_H__) -#if IN_FILE(__G_REGEX_C__) -#undef g_regex_error_quark -extern __typeof (g_regex_error_quark) g_regex_error_quark __attribute((alias("IA__g_regex_error_quark"), visibility("default"))); - -#undef g_regex_new -extern __typeof (g_regex_new) g_regex_new __attribute((alias("IA__g_regex_new"), visibility("default"))); - -#undef g_regex_ref -extern __typeof (g_regex_ref) g_regex_ref __attribute((alias("IA__g_regex_ref"), visibility("default"))); - -#undef g_regex_unref -extern __typeof (g_regex_unref) g_regex_unref __attribute((alias("IA__g_regex_unref"), visibility("default"))); - -#undef g_regex_get_pattern -extern __typeof (g_regex_get_pattern) g_regex_get_pattern __attribute((alias("IA__g_regex_get_pattern"), visibility("default"))); - -#undef g_regex_get_max_backref -extern __typeof (g_regex_get_max_backref) g_regex_get_max_backref __attribute((alias("IA__g_regex_get_max_backref"), visibility("default"))); - -#undef g_regex_get_capture_count -extern __typeof (g_regex_get_capture_count) g_regex_get_capture_count __attribute((alias("IA__g_regex_get_capture_count"), visibility("default"))); - -#undef g_regex_get_string_number -extern __typeof (g_regex_get_string_number) g_regex_get_string_number __attribute((alias("IA__g_regex_get_string_number"), visibility("default"))); - -#undef g_regex_escape_string -extern __typeof (g_regex_escape_string) g_regex_escape_string __attribute((alias("IA__g_regex_escape_string"), visibility("default"))); - -#undef g_regex_match_simple -extern __typeof (g_regex_match_simple) g_regex_match_simple __attribute((alias("IA__g_regex_match_simple"), visibility("default"))); - -#undef g_regex_match -extern __typeof (g_regex_match) g_regex_match __attribute((alias("IA__g_regex_match"), visibility("default"))); - -#undef g_regex_match_full -extern __typeof (g_regex_match_full) g_regex_match_full __attribute((alias("IA__g_regex_match_full"), visibility("default"))); - -#undef g_regex_match_all -extern __typeof (g_regex_match_all) g_regex_match_all __attribute((alias("IA__g_regex_match_all"), visibility("default"))); - -#undef g_regex_match_all_full -extern __typeof (g_regex_match_all_full) g_regex_match_all_full __attribute((alias("IA__g_regex_match_all_full"), visibility("default"))); - -#undef g_regex_split_simple -extern __typeof (g_regex_split_simple) g_regex_split_simple __attribute((alias("IA__g_regex_split_simple"), visibility("default"))); - -#undef g_regex_split -extern __typeof (g_regex_split) g_regex_split __attribute((alias("IA__g_regex_split"), visibility("default"))); - -#undef g_regex_split_full -extern __typeof (g_regex_split_full) g_regex_split_full __attribute((alias("IA__g_regex_split_full"), visibility("default"))); - -#undef g_regex_replace -extern __typeof (g_regex_replace) g_regex_replace __attribute((alias("IA__g_regex_replace"), visibility("default"))); - -#undef g_regex_replace_literal -extern __typeof (g_regex_replace_literal) g_regex_replace_literal __attribute((alias("IA__g_regex_replace_literal"), visibility("default"))); - -#undef g_regex_replace_eval -extern __typeof (g_regex_replace_eval) g_regex_replace_eval __attribute((alias("IA__g_regex_replace_eval"), visibility("default"))); - -#undef g_regex_check_replacement -extern __typeof (g_regex_check_replacement) g_regex_check_replacement __attribute((alias("IA__g_regex_check_replacement"), visibility("default"))); - -#undef g_match_info_get_regex -extern __typeof (g_match_info_get_regex) g_match_info_get_regex __attribute((alias("IA__g_match_info_get_regex"), visibility("default"))); - -#undef g_match_info_get_string -extern __typeof (g_match_info_get_string) g_match_info_get_string __attribute((alias("IA__g_match_info_get_string"), visibility("default"))); - -#undef g_match_info_free -extern __typeof (g_match_info_free) g_match_info_free __attribute((alias("IA__g_match_info_free"), visibility("default"))); - -#undef g_match_info_next -extern __typeof (g_match_info_next) g_match_info_next __attribute((alias("IA__g_match_info_next"), visibility("default"))); - -#undef g_match_info_matches -extern __typeof (g_match_info_matches) g_match_info_matches __attribute((alias("IA__g_match_info_matches"), visibility("default"))); - -#undef g_match_info_get_match_count -extern __typeof (g_match_info_get_match_count) g_match_info_get_match_count __attribute((alias("IA__g_match_info_get_match_count"), visibility("default"))); - -#undef g_match_info_is_partial_match -extern __typeof (g_match_info_is_partial_match) g_match_info_is_partial_match __attribute((alias("IA__g_match_info_is_partial_match"), visibility("default"))); - -#undef g_match_info_expand_references -extern __typeof (g_match_info_expand_references) g_match_info_expand_references __attribute((alias("IA__g_match_info_expand_references"), visibility("default"))); - -#undef g_match_info_fetch -extern __typeof (g_match_info_fetch) g_match_info_fetch __attribute((alias("IA__g_match_info_fetch"), visibility("default"))); - -#undef g_match_info_fetch_pos -extern __typeof (g_match_info_fetch_pos) g_match_info_fetch_pos __attribute((alias("IA__g_match_info_fetch_pos"), visibility("default"))); - -#undef g_match_info_fetch_named -extern __typeof (g_match_info_fetch_named) g_match_info_fetch_named __attribute((alias("IA__g_match_info_fetch_named"), visibility("default"))); - -#undef g_match_info_fetch_named_pos -extern __typeof (g_match_info_fetch_named_pos) g_match_info_fetch_named_pos __attribute((alias("IA__g_match_info_fetch_named_pos"), visibility("default"))); - -#undef g_match_info_fetch_all -extern __typeof (g_match_info_fetch_all) g_match_info_fetch_all __attribute((alias("IA__g_match_info_fetch_all"), visibility("default"))); - -#endif -#endif -#if IN_HEADER(__G_WIN32_H__) -#if IN_FILE(__G_WIN32_H__) -#ifdef G_OS_WIN32 -#undef g_win32_error_message -extern __typeof (g_win32_error_message) g_win32_error_message __attribute((alias("IA__g_win32_error_message"), visibility("default"))); - -#undef g_win32_ftruncate -extern __typeof (g_win32_ftruncate) g_win32_ftruncate __attribute((alias("IA__g_win32_ftruncate"), visibility("default"))); - -#undef g_win32_get_package_installation_directory_of_module -extern __typeof (g_win32_get_package_installation_directory_of_module) g_win32_get_package_installation_directory_of_module __attribute((alias("IA__g_win32_get_package_installation_directory_of_module"), visibility("default"))); - -#ifndef _WIN64 -#undef g_win32_get_package_installation_directory -extern __typeof (g_win32_get_package_installation_directory) g_win32_get_package_installation_directory __attribute((alias("IA__g_win32_get_package_installation_directory"), visibility("default"))); - -#endif -#undef g_win32_get_package_installation_directory_utf8 -extern __typeof (g_win32_get_package_installation_directory_utf8) g_win32_get_package_installation_directory_utf8 __attribute((alias("IA__g_win32_get_package_installation_directory_utf8"), visibility("default"))); - -#ifndef _WIN64 -#undef g_win32_get_package_installation_subdirectory -extern __typeof (g_win32_get_package_installation_subdirectory) g_win32_get_package_installation_subdirectory __attribute((alias("IA__g_win32_get_package_installation_subdirectory"), visibility("default"))); - -#endif -#undef g_win32_get_package_installation_subdirectory_utf8 -extern __typeof (g_win32_get_package_installation_subdirectory_utf8) g_win32_get_package_installation_subdirectory_utf8 __attribute((alias("IA__g_win32_get_package_installation_subdirectory_utf8"), visibility("default"))); - -#undef g_win32_get_windows_version -extern __typeof (g_win32_get_windows_version) g_win32_get_windows_version __attribute((alias("IA__g_win32_get_windows_version"), visibility("default"))); - -#undef g_win32_getlocale -extern __typeof (g_win32_getlocale) g_win32_getlocale __attribute((alias("IA__g_win32_getlocale"), visibility("default"))); - -#undef g_win32_locale_filename_from_utf8 -extern __typeof (g_win32_locale_filename_from_utf8) g_win32_locale_filename_from_utf8 __attribute((alias("IA__g_win32_locale_filename_from_utf8"), visibility("default"))); - -#endif -#endif -#endif - -#endif /* G_HAVE_GNUC_VISIBILITY */ -#endif /* DISABLE_VISIBILITY */ diff --git a/lib/win32/glib-2.20.4/glib/galloca.h b/lib/win32/glib-2.20.4/glib/galloca.h deleted file mode 100644 index 356587ff63259..0000000000000 --- a/lib/win32/glib-2.20.4/glib/galloca.h +++ /dev/null @@ -1,63 +0,0 @@ -/* GLIB - Library of useful routines for C programming - * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library 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 - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ - -/* - * Modified by the GLib Team and others 1997-2000. See the AUTHORS - * file for a list of people on the GLib Team. See the ChangeLog - * files for a list of changes. These files are distributed with - * GLib at ftp://ftp.gtk.org/pub/gtk/. - */ - -#if defined(G_DISABLE_SINGLE_INCLUDES) && !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION) -#error "Only can be included directly." -#endif - -#ifndef __G_ALLOCA_H__ -#define __G_ALLOCA_H__ - -#include - -#ifdef __GNUC__ -/* GCC does the right thing */ -# undef alloca -# define alloca(size) __builtin_alloca (size) -#elif defined (GLIB_HAVE_ALLOCA_H) -/* a native and working alloca.h is there */ -# include -#else /* !__GNUC__ && !GLIB_HAVE_ALLOCA_H */ -# if defined(_MSC_VER) || defined(__DMC__) -# include -# define alloca _alloca -# else /* !_MSC_VER && !__DMC__ */ -# ifdef _AIX -# pragma alloca -# else /* !_AIX */ -# ifndef alloca /* predefined by HP cc +Olibcalls */ -G_BEGIN_DECLS -char *alloca (); -G_END_DECLS -# endif /* !alloca */ -# endif /* !_AIX */ -# endif /* !_MSC_VER && !__DMC__ */ -#endif /* !__GNUC__ && !GLIB_HAVE_ALLOCA_H */ - -#define g_alloca(size) alloca (size) -#define g_newa(struct_type, n_structs) ((struct_type*) g_alloca (sizeof (struct_type) * (gsize) (n_structs))) - -#endif /* __G_ALLOCA_H__ */ diff --git a/lib/win32/glib-2.20.4/glib/garray.c b/lib/win32/glib-2.20.4/glib/garray.c deleted file mode 100644 index b05ded6b2407b..0000000000000 --- a/lib/win32/glib-2.20.4/glib/garray.c +++ /dev/null @@ -1,719 +0,0 @@ -/* GLIB - Library of useful routines for C programming - * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library 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 - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ - -/* - * Modified by the GLib Team and others 1997-2000. See the AUTHORS - * file for a list of people on the GLib Team. See the ChangeLog - * files for a list of changes. These files are distributed with - * GLib at ftp://ftp.gtk.org/pub/gtk/. - */ - -/* - * MT safe - */ - -#include "config.h" - -#include -#include - -#include "garray.h" - -#include "gmem.h" -#include "gthread.h" -#include "gmessages.h" -#include "gqsort.h" - -#include "galias.h" - - -#define MIN_ARRAY_SIZE 16 - -typedef struct _GRealArray GRealArray; - -struct _GRealArray -{ - guint8 *data; - guint len; - guint alloc; - guint elt_size; - guint zero_terminated : 1; - guint clear : 1; -}; - -#define g_array_elt_len(array,i) ((array)->elt_size * (i)) -#define g_array_elt_pos(array,i) ((array)->data + g_array_elt_len((array),(i))) -#define g_array_elt_zero(array, pos, len) \ - (memset (g_array_elt_pos ((array), pos), 0, g_array_elt_len ((array), len))) -#define g_array_zero_terminate(array) G_STMT_START{ \ - if ((array)->zero_terminated) \ - g_array_elt_zero ((array), (array)->len, 1); \ -}G_STMT_END - -static gint g_nearest_pow (gint num) G_GNUC_CONST; -static void g_array_maybe_expand (GRealArray *array, - gint len); - -GArray* -g_array_new (gboolean zero_terminated, - gboolean clear, - guint elt_size) -{ - return (GArray*) g_array_sized_new (zero_terminated, clear, elt_size, 0); -} - -GArray* g_array_sized_new (gboolean zero_terminated, - gboolean clear, - guint elt_size, - guint reserved_size) -{ - GRealArray *array = g_slice_new (GRealArray); - - array->data = NULL; - array->len = 0; - array->alloc = 0; - array->zero_terminated = (zero_terminated ? 1 : 0); - array->clear = (clear ? 1 : 0); - array->elt_size = elt_size; - - if (array->zero_terminated || reserved_size != 0) - { - g_array_maybe_expand (array, reserved_size); - g_array_zero_terminate(array); - } - - return (GArray*) array; -} - -gchar* -g_array_free (GArray *array, - gboolean free_segment) -{ - gchar* segment; - - g_return_val_if_fail (array, NULL); - - if (free_segment) - { - g_free (array->data); - segment = NULL; - } - else - segment = array->data; - - g_slice_free1 (sizeof (GRealArray), array); - - return segment; -} - -GArray* -g_array_append_vals (GArray *farray, - gconstpointer data, - guint len) -{ - GRealArray *array = (GRealArray*) farray; - - g_array_maybe_expand (array, len); - - memcpy (g_array_elt_pos (array, array->len), data, - g_array_elt_len (array, len)); - - array->len += len; - - g_array_zero_terminate (array); - - return farray; -} - -GArray* -g_array_prepend_vals (GArray *farray, - gconstpointer data, - guint len) -{ - GRealArray *array = (GRealArray*) farray; - - g_array_maybe_expand (array, len); - - g_memmove (g_array_elt_pos (array, len), g_array_elt_pos (array, 0), - g_array_elt_len (array, array->len)); - - memcpy (g_array_elt_pos (array, 0), data, g_array_elt_len (array, len)); - - array->len += len; - - g_array_zero_terminate (array); - - return farray; -} - -GArray* -g_array_insert_vals (GArray *farray, - guint index_, - gconstpointer data, - guint len) -{ - GRealArray *array = (GRealArray*) farray; - - g_array_maybe_expand (array, len); - - g_memmove (g_array_elt_pos (array, len + index_), - g_array_elt_pos (array, index_), - g_array_elt_len (array, array->len - index_)); - - memcpy (g_array_elt_pos (array, index_), data, g_array_elt_len (array, len)); - - array->len += len; - - g_array_zero_terminate (array); - - return farray; -} - -GArray* -g_array_set_size (GArray *farray, - guint length) -{ - GRealArray *array = (GRealArray*) farray; - if (length > array->len) - { - g_array_maybe_expand (array, length - array->len); - - if (array->clear) - g_array_elt_zero (array, array->len, length - array->len); - } - else if (G_UNLIKELY (g_mem_gc_friendly) && length < array->len) - g_array_elt_zero (array, length, array->len - length); - - array->len = length; - - g_array_zero_terminate (array); - - return farray; -} - -GArray* -g_array_remove_index (GArray *farray, - guint index_) -{ - GRealArray* array = (GRealArray*) farray; - - g_return_val_if_fail (array, NULL); - - g_return_val_if_fail (index_ < array->len, NULL); - - if (index_ != array->len - 1) - g_memmove (g_array_elt_pos (array, index_), - g_array_elt_pos (array, index_ + 1), - g_array_elt_len (array, array->len - index_ - 1)); - - array->len -= 1; - - if (G_UNLIKELY (g_mem_gc_friendly)) - g_array_elt_zero (array, array->len, 1); - else - g_array_zero_terminate (array); - - return farray; -} - -GArray* -g_array_remove_index_fast (GArray *farray, - guint index_) -{ - GRealArray* array = (GRealArray*) farray; - - g_return_val_if_fail (array, NULL); - - g_return_val_if_fail (index_ < array->len, NULL); - - if (index_ != array->len - 1) - memcpy (g_array_elt_pos (array, index_), - g_array_elt_pos (array, array->len - 1), - g_array_elt_len (array, 1)); - - array->len -= 1; - - if (G_UNLIKELY (g_mem_gc_friendly)) - g_array_elt_zero (array, array->len, 1); - else - g_array_zero_terminate (array); - - return farray; -} - -GArray* -g_array_remove_range (GArray *farray, - guint index_, - guint length) -{ - GRealArray *array = (GRealArray*) farray; - - g_return_val_if_fail (array, NULL); - g_return_val_if_fail (index_ < array->len, NULL); - g_return_val_if_fail (index_ + length <= array->len, NULL); - - if (index_ + length != array->len) - g_memmove (g_array_elt_pos (array, index_), - g_array_elt_pos (array, index_ + length), - (array->len - (index_ + length)) * array->elt_size); - - array->len -= length; - if (G_UNLIKELY (g_mem_gc_friendly)) - g_array_elt_zero (array, array->len, length); - else - g_array_zero_terminate (array); - - return farray; -} - -void -g_array_sort (GArray *farray, - GCompareFunc compare_func) -{ - GRealArray *array = (GRealArray*) farray; - - g_return_if_fail (array != NULL); - - qsort (array->data, - array->len, - array->elt_size, - compare_func); -} - -void -g_array_sort_with_data (GArray *farray, - GCompareDataFunc compare_func, - gpointer user_data) -{ - GRealArray *array = (GRealArray*) farray; - - g_return_if_fail (array != NULL); - - g_qsort_with_data (array->data, - array->len, - array->elt_size, - compare_func, - user_data); -} - - -static gint -g_nearest_pow (gint num) -{ - gint n = 1; - - while (n < num) - n <<= 1; - - return n; -} - -static void -g_array_maybe_expand (GRealArray *array, - gint len) -{ - guint want_alloc = g_array_elt_len (array, array->len + len + - array->zero_terminated); - - if (want_alloc > array->alloc) - { - want_alloc = g_nearest_pow (want_alloc); - want_alloc = MAX (want_alloc, MIN_ARRAY_SIZE); - - array->data = g_realloc (array->data, want_alloc); - - if (G_UNLIKELY (g_mem_gc_friendly)) - memset (array->data + array->alloc, 0, want_alloc - array->alloc); - - array->alloc = want_alloc; - } -} - -/* Pointer Array - */ - -typedef struct _GRealPtrArray GRealPtrArray; - -struct _GRealPtrArray -{ - gpointer *pdata; - guint len; - guint alloc; -}; - -static void g_ptr_array_maybe_expand (GRealPtrArray *array, - gint len); - -GPtrArray* -g_ptr_array_new (void) -{ - return g_ptr_array_sized_new (0); -} - -GPtrArray* -g_ptr_array_sized_new (guint reserved_size) -{ - GRealPtrArray *array = g_slice_new (GRealPtrArray); - - array->pdata = NULL; - array->len = 0; - array->alloc = 0; - - if (reserved_size != 0) - g_ptr_array_maybe_expand (array, reserved_size); - - return (GPtrArray*) array; -} - -gpointer* -g_ptr_array_free (GPtrArray *array, - gboolean free_segment) -{ - gpointer* segment; - - g_return_val_if_fail (array, NULL); - - if (free_segment) - { - g_free (array->pdata); - segment = NULL; - } - else - segment = array->pdata; - - g_slice_free1 (sizeof (GRealPtrArray), array); - - return segment; -} - -static void -g_ptr_array_maybe_expand (GRealPtrArray *array, - gint len) -{ - if ((array->len + len) > array->alloc) - { - guint old_alloc = array->alloc; - array->alloc = g_nearest_pow (array->len + len); - array->alloc = MAX (array->alloc, MIN_ARRAY_SIZE); - array->pdata = g_realloc (array->pdata, sizeof (gpointer) * array->alloc); - if (G_UNLIKELY (g_mem_gc_friendly)) - for ( ; old_alloc < array->alloc; old_alloc++) - array->pdata [old_alloc] = NULL; - } -} - -void -g_ptr_array_set_size (GPtrArray *farray, - gint length) -{ - GRealPtrArray* array = (GRealPtrArray*) farray; - - g_return_if_fail (array); - - if (length > array->len) - { - int i; - g_ptr_array_maybe_expand (array, (length - array->len)); - /* This is not - * memset (array->pdata + array->len, 0, - * sizeof (gpointer) * (length - array->len)); - * to make it really portable. Remember (void*)NULL needn't be - * bitwise zero. It of course is silly not to use memset (..,0,..). - */ - for (i = array->len; i < length; i++) - array->pdata[i] = NULL; - } - if (G_UNLIKELY (g_mem_gc_friendly) && length < array->len) - { - int i; - for (i = length; i < array->len; i++) - array->pdata[i] = NULL; - } - - array->len = length; -} - -gpointer -g_ptr_array_remove_index (GPtrArray *farray, - guint index_) -{ - GRealPtrArray* array = (GRealPtrArray*) farray; - gpointer result; - - g_return_val_if_fail (array, NULL); - - g_return_val_if_fail (index_ < array->len, NULL); - - result = array->pdata[index_]; - - if (index_ != array->len - 1) - g_memmove (array->pdata + index_, array->pdata + index_ + 1, - sizeof (gpointer) * (array->len - index_ - 1)); - - array->len -= 1; - - if (G_UNLIKELY (g_mem_gc_friendly)) - array->pdata[array->len] = NULL; - - return result; -} - -gpointer -g_ptr_array_remove_index_fast (GPtrArray *farray, - guint index_) -{ - GRealPtrArray* array = (GRealPtrArray*) farray; - gpointer result; - - g_return_val_if_fail (array, NULL); - - g_return_val_if_fail (index_ < array->len, NULL); - - result = array->pdata[index_]; - - if (index_ != array->len - 1) - array->pdata[index_] = array->pdata[array->len - 1]; - - array->len -= 1; - - if (G_UNLIKELY (g_mem_gc_friendly)) - array->pdata[array->len] = NULL; - - return result; -} - -void -g_ptr_array_remove_range (GPtrArray *farray, - guint index_, - guint length) -{ - GRealPtrArray* array = (GRealPtrArray*) farray; - - g_return_if_fail (array); - g_return_if_fail (index_ < array->len); - g_return_if_fail (index_ + length <= array->len); - - if (index_ + length != array->len) - g_memmove (&array->pdata[index_], - &array->pdata[index_ + length], - (array->len - (index_ + length)) * sizeof (gpointer)); - - array->len -= length; - if (G_UNLIKELY (g_mem_gc_friendly)) - { - guint i; - for (i = 0; i < length; i++) - array->pdata[array->len + i] = NULL; - } -} - -gboolean -g_ptr_array_remove (GPtrArray *farray, - gpointer data) -{ - GRealPtrArray* array = (GRealPtrArray*) farray; - guint i; - - g_return_val_if_fail (array, FALSE); - - for (i = 0; i < array->len; i += 1) - { - if (array->pdata[i] == data) - { - g_ptr_array_remove_index (farray, i); - return TRUE; - } - } - - return FALSE; -} - -gboolean -g_ptr_array_remove_fast (GPtrArray *farray, - gpointer data) -{ - GRealPtrArray* array = (GRealPtrArray*) farray; - guint i; - - g_return_val_if_fail (array, FALSE); - - for (i = 0; i < array->len; i += 1) - { - if (array->pdata[i] == data) - { - g_ptr_array_remove_index_fast (farray, i); - return TRUE; - } - } - - return FALSE; -} - -void -g_ptr_array_add (GPtrArray *farray, - gpointer data) -{ - GRealPtrArray* array = (GRealPtrArray*) farray; - - g_return_if_fail (array); - - g_ptr_array_maybe_expand (array, 1); - - array->pdata[array->len++] = data; -} - -void -g_ptr_array_sort (GPtrArray *array, - GCompareFunc compare_func) -{ - g_return_if_fail (array != NULL); - - qsort (array->pdata, - array->len, - sizeof (gpointer), - compare_func); -} - -void -g_ptr_array_sort_with_data (GPtrArray *array, - GCompareDataFunc compare_func, - gpointer user_data) -{ - g_return_if_fail (array != NULL); - - g_qsort_with_data (array->pdata, - array->len, - sizeof (gpointer), - compare_func, - user_data); -} - -/** - * g_ptr_array_foreach: - * @array: a #GPtrArray - * @func: the function to call for each array element - * @user_data: user data to pass to the function - * - * Calls a function for each element of a #GPtrArray. - * - * Since: 2.4 - **/ -void -g_ptr_array_foreach (GPtrArray *array, - GFunc func, - gpointer user_data) -{ - guint i; - - g_return_if_fail (array); - - for (i = 0; i < array->len; i++) - (*func) (array->pdata[i], user_data); -} - -/* Byte arrays - */ - -GByteArray* g_byte_array_new (void) -{ - return (GByteArray*) g_array_sized_new (FALSE, FALSE, 1, 0); -} - -GByteArray* g_byte_array_sized_new (guint reserved_size) -{ - return (GByteArray*) g_array_sized_new (FALSE, FALSE, 1, reserved_size); -} - -guint8* g_byte_array_free (GByteArray *array, - gboolean free_segment) -{ - return (guint8*) g_array_free ((GArray*) array, free_segment); -} - -GByteArray* g_byte_array_append (GByteArray *array, - const guint8 *data, - guint len) -{ - g_array_append_vals ((GArray*) array, (guint8*)data, len); - - return array; -} - -GByteArray* g_byte_array_prepend (GByteArray *array, - const guint8 *data, - guint len) -{ - g_array_prepend_vals ((GArray*) array, (guint8*)data, len); - - return array; -} - -GByteArray* g_byte_array_set_size (GByteArray *array, - guint length) -{ - g_array_set_size ((GArray*) array, length); - - return array; -} - -GByteArray* g_byte_array_remove_index (GByteArray *array, - guint index_) -{ - g_array_remove_index ((GArray*) array, index_); - - return array; -} - -GByteArray* g_byte_array_remove_index_fast (GByteArray *array, - guint index_) -{ - g_array_remove_index_fast ((GArray*) array, index_); - - return array; -} - -GByteArray* -g_byte_array_remove_range (GByteArray *array, - guint index_, - guint length) -{ - g_return_val_if_fail (array, NULL); - g_return_val_if_fail (index_ < array->len, NULL); - g_return_val_if_fail (index_ + length <= array->len, NULL); - - return (GByteArray *)g_array_remove_range ((GArray*) array, index_, length); -} - -void -g_byte_array_sort (GByteArray *array, - GCompareFunc compare_func) -{ - g_array_sort ((GArray *) array, compare_func); -} - -void -g_byte_array_sort_with_data (GByteArray *array, - GCompareDataFunc compare_func, - gpointer user_data) -{ - g_array_sort_with_data ((GArray *) array, compare_func, user_data); -} - -#define __G_ARRAY_C__ -#include "galiasdef.c" diff --git a/lib/win32/glib-2.20.4/glib/garray.h b/lib/win32/glib-2.20.4/glib/garray.h deleted file mode 100644 index db001370aee9e..0000000000000 --- a/lib/win32/glib-2.20.4/glib/garray.h +++ /dev/null @@ -1,169 +0,0 @@ -/* GLIB - Library of useful routines for C programming - * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library 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 - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ - -/* - * Modified by the GLib Team and others 1997-2000. See the AUTHORS - * file for a list of people on the GLib Team. See the ChangeLog - * files for a list of changes. These files are distributed with - * GLib at ftp://ftp.gtk.org/pub/gtk/. - */ - -#if defined(G_DISABLE_SINGLE_INCLUDES) && !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION) -#error "Only can be included directly." -#endif - -#ifndef __G_ARRAY_H__ -#define __G_ARRAY_H__ - -#include - -G_BEGIN_DECLS - -typedef struct _GArray GArray; -typedef struct _GByteArray GByteArray; -typedef struct _GPtrArray GPtrArray; - -struct _GArray -{ - gchar *data; - guint len; -}; - -struct _GByteArray -{ - guint8 *data; - guint len; -}; - -struct _GPtrArray -{ - gpointer *pdata; - guint len; -}; - -/* Resizable arrays. remove fills any cleared spot and shortens the - * array, while preserving the order. remove_fast will distort the - * order by moving the last element to the position of the removed. - */ - -#define g_array_append_val(a,v) g_array_append_vals (a, &(v), 1) -#define g_array_prepend_val(a,v) g_array_prepend_vals (a, &(v), 1) -#define g_array_insert_val(a,i,v) g_array_insert_vals (a, i, &(v), 1) -#define g_array_index(a,t,i) (((t*) (void *) (a)->data) [(i)]) - -GArray* g_array_new (gboolean zero_terminated, - gboolean clear_, - guint element_size); -GArray* g_array_sized_new (gboolean zero_terminated, - gboolean clear_, - guint element_size, - guint reserved_size); -gchar* g_array_free (GArray *array, - gboolean free_segment); -GArray* g_array_append_vals (GArray *array, - gconstpointer data, - guint len); -GArray* g_array_prepend_vals (GArray *array, - gconstpointer data, - guint len); -GArray* g_array_insert_vals (GArray *array, - guint index_, - gconstpointer data, - guint len); -GArray* g_array_set_size (GArray *array, - guint length); -GArray* g_array_remove_index (GArray *array, - guint index_); -GArray* g_array_remove_index_fast (GArray *array, - guint index_); -GArray* g_array_remove_range (GArray *array, - guint index_, - guint length); -void g_array_sort (GArray *array, - GCompareFunc compare_func); -void g_array_sort_with_data (GArray *array, - GCompareDataFunc compare_func, - gpointer user_data); - -/* Resizable pointer array. This interface is much less complicated - * than the above. Add appends a pointer. Remove fills any cleared - * spot and shortens the array. remove_fast will again distort order. - */ -#define g_ptr_array_index(array,index_) ((array)->pdata)[index_] -GPtrArray* g_ptr_array_new (void); -GPtrArray* g_ptr_array_sized_new (guint reserved_size); -gpointer* g_ptr_array_free (GPtrArray *array, - gboolean free_seg); -void g_ptr_array_set_size (GPtrArray *array, - gint length); -gpointer g_ptr_array_remove_index (GPtrArray *array, - guint index_); -gpointer g_ptr_array_remove_index_fast (GPtrArray *array, - guint index_); -gboolean g_ptr_array_remove (GPtrArray *array, - gpointer data); -gboolean g_ptr_array_remove_fast (GPtrArray *array, - gpointer data); -void g_ptr_array_remove_range (GPtrArray *array, - guint index_, - guint length); -void g_ptr_array_add (GPtrArray *array, - gpointer data); -void g_ptr_array_sort (GPtrArray *array, - GCompareFunc compare_func); -void g_ptr_array_sort_with_data (GPtrArray *array, - GCompareDataFunc compare_func, - gpointer user_data); -void g_ptr_array_foreach (GPtrArray *array, - GFunc func, - gpointer user_data); - - -/* Byte arrays, an array of guint8. Implemented as a GArray, - * but type-safe. - */ - -GByteArray* g_byte_array_new (void); -GByteArray* g_byte_array_sized_new (guint reserved_size); -guint8* g_byte_array_free (GByteArray *array, - gboolean free_segment); -GByteArray* g_byte_array_append (GByteArray *array, - const guint8 *data, - guint len); -GByteArray* g_byte_array_prepend (GByteArray *array, - const guint8 *data, - guint len); -GByteArray* g_byte_array_set_size (GByteArray *array, - guint length); -GByteArray* g_byte_array_remove_index (GByteArray *array, - guint index_); -GByteArray* g_byte_array_remove_index_fast (GByteArray *array, - guint index_); -GByteArray* g_byte_array_remove_range (GByteArray *array, - guint index_, - guint length); -void g_byte_array_sort (GByteArray *array, - GCompareFunc compare_func); -void g_byte_array_sort_with_data (GByteArray *array, - GCompareDataFunc compare_func, - gpointer user_data); - -G_END_DECLS - -#endif /* __G_ARRAY_H__ */ diff --git a/lib/win32/glib-2.20.4/glib/gasyncqueue.c b/lib/win32/glib-2.20.4/glib/gasyncqueue.c deleted file mode 100644 index 65e95a8de0068..0000000000000 --- a/lib/win32/glib-2.20.4/glib/gasyncqueue.c +++ /dev/null @@ -1,666 +0,0 @@ -/* GLIB - Library of useful routines for C programming - * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald - * - * GAsyncQueue: asynchronous queue implementation, based on Gqueue. - * Copyright (C) 2000 Sebastian Wilhelmi; University of Karlsruhe - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library 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 - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ - -/* - * MT safe - */ - -#include "config.h" - -#include "glib.h" -#include "galias.h" - - -struct _GAsyncQueue -{ - GMutex *mutex; - GCond *cond; - GQueue *queue; - GDestroyNotify item_free_func; - guint waiting_threads; - gint32 ref_count; -}; - -typedef struct { - GCompareDataFunc func; - gpointer user_data; -} SortData; - -/** - * g_async_queue_new: - * - * Creates a new asynchronous queue with the initial reference count of 1. - * - * Return value: the new #GAsyncQueue. - **/ -GAsyncQueue* -g_async_queue_new (void) -{ - GAsyncQueue* retval = g_new (GAsyncQueue, 1); - retval->mutex = g_mutex_new (); - retval->cond = NULL; - retval->queue = g_queue_new (); - retval->waiting_threads = 0; - retval->ref_count = 1; - retval->item_free_func = NULL; - return retval; -} - -/** - * g_async_queue_new_full: - * @item_free_func: function to free queue elements - * - * Creates a new asynchronous queue with an initial reference count of 1 and - * sets up a destroy notify function that is used to free any remaining - * queue items when the queue is destroyed after the final unref. - * - * Return value: the new #GAsyncQueue. - * - * Since: 2.16 - **/ -GAsyncQueue* -g_async_queue_new_full (GDestroyNotify item_free_func) -{ - GAsyncQueue *async_queue = g_async_queue_new (); - async_queue->item_free_func = item_free_func; - return async_queue; -} - -/** - * g_async_queue_ref: - * @queue: a #GAsyncQueue. - * - * Increases the reference count of the asynchronous @queue by 1. You - * do not need to hold the lock to call this function. - * - * Returns: the @queue that was passed in (since 2.6) - **/ -GAsyncQueue * -g_async_queue_ref (GAsyncQueue *queue) -{ - g_return_val_if_fail (queue, NULL); - g_return_val_if_fail (g_atomic_int_get (&queue->ref_count) > 0, NULL); - - g_atomic_int_inc (&queue->ref_count); - - return queue; -} - -/** - * g_async_queue_ref_unlocked: - * @queue: a #GAsyncQueue. - * - * Increases the reference count of the asynchronous @queue by 1. - * - * @Deprecated: Since 2.8, reference counting is done atomically - * so g_async_queue_ref() can be used regardless of the @queue's - * lock. - **/ -void -g_async_queue_ref_unlocked (GAsyncQueue *queue) -{ - g_return_if_fail (queue); - g_return_if_fail (g_atomic_int_get (&queue->ref_count) > 0); - - g_atomic_int_inc (&queue->ref_count); -} - -/** - * g_async_queue_unref_and_unlock: - * @queue: a #GAsyncQueue. - * - * Decreases the reference count of the asynchronous @queue by 1 and - * releases the lock. This function must be called while holding the - * @queue's lock. If the reference count went to 0, the @queue will be - * destroyed and the memory allocated will be freed. - * - * @Deprecated: Since 2.8, reference counting is done atomically - * so g_async_queue_unref() can be used regardless of the @queue's - * lock. - **/ -void -g_async_queue_unref_and_unlock (GAsyncQueue *queue) -{ - g_return_if_fail (queue); - g_return_if_fail (g_atomic_int_get (&queue->ref_count) > 0); - - g_mutex_unlock (queue->mutex); - g_async_queue_unref (queue); -} - -/** - * g_async_queue_unref: - * @queue: a #GAsyncQueue. - * - * Decreases the reference count of the asynchronous @queue by 1. If - * the reference count went to 0, the @queue will be destroyed and the - * memory allocated will be freed. So you are not allowed to use the - * @queue afterwards, as it might have disappeared. You do not need to - * hold the lock to call this function. - **/ -void -g_async_queue_unref (GAsyncQueue *queue) -{ - g_return_if_fail (queue); - g_return_if_fail (g_atomic_int_get (&queue->ref_count) > 0); - - if (g_atomic_int_dec_and_test (&queue->ref_count)) - { - g_return_if_fail (queue->waiting_threads == 0); - g_mutex_free (queue->mutex); - if (queue->cond) - g_cond_free (queue->cond); - if (queue->item_free_func) - g_queue_foreach (queue->queue, (GFunc) queue->item_free_func, NULL); - g_queue_free (queue->queue); - g_free (queue); - } -} - -/** - * g_async_queue_lock: - * @queue: a #GAsyncQueue. - * - * Acquires the @queue's lock. After that you can only call the - * g_async_queue_*_unlocked() function variants on that - * @queue. Otherwise it will deadlock. - **/ -void -g_async_queue_lock (GAsyncQueue *queue) -{ - g_return_if_fail (queue); - g_return_if_fail (g_atomic_int_get (&queue->ref_count) > 0); - - g_mutex_lock (queue->mutex); -} - -/** - * g_async_queue_unlock: - * @queue: a #GAsyncQueue. - * - * Releases the queue's lock. - **/ -void -g_async_queue_unlock (GAsyncQueue *queue) -{ - g_return_if_fail (queue); - g_return_if_fail (g_atomic_int_get (&queue->ref_count) > 0); - - g_mutex_unlock (queue->mutex); -} - -/** - * g_async_queue_push: - * @queue: a #GAsyncQueue. - * @data: @data to push into the @queue. - * - * Pushes the @data into the @queue. @data must not be %NULL. - **/ -void -g_async_queue_push (GAsyncQueue* queue, gpointer data) -{ - g_return_if_fail (queue); - g_return_if_fail (g_atomic_int_get (&queue->ref_count) > 0); - g_return_if_fail (data); - - g_mutex_lock (queue->mutex); - g_async_queue_push_unlocked (queue, data); - g_mutex_unlock (queue->mutex); -} - -/** - * g_async_queue_push_unlocked: - * @queue: a #GAsyncQueue. - * @data: @data to push into the @queue. - * - * Pushes the @data into the @queue. @data must not be %NULL. This - * function must be called while holding the @queue's lock. - **/ -void -g_async_queue_push_unlocked (GAsyncQueue* queue, gpointer data) -{ - g_return_if_fail (queue); - g_return_if_fail (g_atomic_int_get (&queue->ref_count) > 0); - g_return_if_fail (data); - - g_queue_push_head (queue->queue, data); - if (queue->waiting_threads > 0) - g_cond_signal (queue->cond); -} - -/** - * g_async_queue_push_sorted: - * @queue: a #GAsyncQueue - * @data: the @data to push into the @queue - * @func: the #GCompareDataFunc is used to sort @queue. This function - * is passed two elements of the @queue. The function should return - * 0 if they are equal, a negative value if the first element - * should be higher in the @queue or a positive value if the first - * element should be lower in the @queue than the second element. - * @user_data: user data passed to @func. - * - * Inserts @data into @queue using @func to determine the new - * position. - * - * This function requires that the @queue is sorted before pushing on - * new elements. - * - * This function will lock @queue before it sorts the queue and unlock - * it when it is finished. - * - * For an example of @func see g_async_queue_sort(). - * - * Since: 2.10 - **/ -void -g_async_queue_push_sorted (GAsyncQueue *queue, - gpointer data, - GCompareDataFunc func, - gpointer user_data) -{ - g_return_if_fail (queue != NULL); - - g_mutex_lock (queue->mutex); - g_async_queue_push_sorted_unlocked (queue, data, func, user_data); - g_mutex_unlock (queue->mutex); -} - -static gint -g_async_queue_invert_compare (gpointer v1, - gpointer v2, - SortData *sd) -{ - return -sd->func (v1, v2, sd->user_data); -} - -/** - * g_async_queue_push_sorted_unlocked: - * @queue: a #GAsyncQueue - * @data: the @data to push into the @queue - * @func: the #GCompareDataFunc is used to sort @queue. This function - * is passed two elements of the @queue. The function should return - * 0 if they are equal, a negative value if the first element - * should be higher in the @queue or a positive value if the first - * element should be lower in the @queue than the second element. - * @user_data: user data passed to @func. - * - * Inserts @data into @queue using @func to determine the new - * position. - * - * This function requires that the @queue is sorted before pushing on - * new elements. - * - * This function is called while holding the @queue's lock. - * - * For an example of @func see g_async_queue_sort(). - * - * Since: 2.10 - **/ -void -g_async_queue_push_sorted_unlocked (GAsyncQueue *queue, - gpointer data, - GCompareDataFunc func, - gpointer user_data) -{ - SortData sd; - - g_return_if_fail (queue != NULL); - - sd.func = func; - sd.user_data = user_data; - - g_queue_insert_sorted (queue->queue, - data, - (GCompareDataFunc)g_async_queue_invert_compare, - &sd); - if (queue->waiting_threads > 0) - g_cond_signal (queue->cond); -} - -static gpointer -g_async_queue_pop_intern_unlocked (GAsyncQueue *queue, - gboolean try, - GTimeVal *end_time) -{ - gpointer retval; - - if (!g_queue_peek_tail_link (queue->queue)) - { - if (try) - return NULL; - - if (!queue->cond) - queue->cond = g_cond_new (); - - if (!end_time) - { - queue->waiting_threads++; - while (!g_queue_peek_tail_link (queue->queue)) - g_cond_wait (queue->cond, queue->mutex); - queue->waiting_threads--; - } - else - { - queue->waiting_threads++; - while (!g_queue_peek_tail_link (queue->queue)) - if (!g_cond_timed_wait (queue->cond, queue->mutex, end_time)) - break; - queue->waiting_threads--; - if (!g_queue_peek_tail_link (queue->queue)) - return NULL; - } - } - - retval = g_queue_pop_tail (queue->queue); - - g_assert (retval); - - return retval; -} - -/** - * g_async_queue_pop: - * @queue: a #GAsyncQueue. - * - * Pops data from the @queue. This function blocks until data become - * available. - * - * Return value: data from the queue. - **/ -gpointer -g_async_queue_pop (GAsyncQueue* queue) -{ - gpointer retval; - - g_return_val_if_fail (queue, NULL); - g_return_val_if_fail (g_atomic_int_get (&queue->ref_count) > 0, NULL); - - g_mutex_lock (queue->mutex); - retval = g_async_queue_pop_intern_unlocked (queue, FALSE, NULL); - g_mutex_unlock (queue->mutex); - - return retval; -} - -/** - * g_async_queue_pop_unlocked: - * @queue: a #GAsyncQueue. - * - * Pops data from the @queue. This function blocks until data become - * available. This function must be called while holding the @queue's - * lock. - * - * Return value: data from the queue. - **/ -gpointer -g_async_queue_pop_unlocked (GAsyncQueue* queue) -{ - g_return_val_if_fail (queue, NULL); - g_return_val_if_fail (g_atomic_int_get (&queue->ref_count) > 0, NULL); - - return g_async_queue_pop_intern_unlocked (queue, FALSE, NULL); -} - -/** - * g_async_queue_try_pop: - * @queue: a #GAsyncQueue. - * - * Tries to pop data from the @queue. If no data is available, %NULL is - * returned. - * - * Return value: data from the queue or %NULL, when no data is - * available immediately. - **/ -gpointer -g_async_queue_try_pop (GAsyncQueue* queue) -{ - gpointer retval; - - g_return_val_if_fail (queue, NULL); - g_return_val_if_fail (g_atomic_int_get (&queue->ref_count) > 0, NULL); - - g_mutex_lock (queue->mutex); - retval = g_async_queue_pop_intern_unlocked (queue, TRUE, NULL); - g_mutex_unlock (queue->mutex); - - return retval; -} - -/** - * g_async_queue_try_pop_unlocked: - * @queue: a #GAsyncQueue. - * - * Tries to pop data from the @queue. If no data is available, %NULL is - * returned. This function must be called while holding the @queue's - * lock. - * - * Return value: data from the queue or %NULL, when no data is - * available immediately. - **/ -gpointer -g_async_queue_try_pop_unlocked (GAsyncQueue* queue) -{ - g_return_val_if_fail (queue, NULL); - g_return_val_if_fail (g_atomic_int_get (&queue->ref_count) > 0, NULL); - - return g_async_queue_pop_intern_unlocked (queue, TRUE, NULL); -} - -/** - * g_async_queue_timed_pop: - * @queue: a #GAsyncQueue. - * @end_time: a #GTimeVal, determining the final time. - * - * Pops data from the @queue. If no data is received before @end_time, - * %NULL is returned. - * - * To easily calculate @end_time a combination of g_get_current_time() - * and g_time_val_add() can be used. - * - * Return value: data from the queue or %NULL, when no data is - * received before @end_time. - **/ -gpointer -g_async_queue_timed_pop (GAsyncQueue* queue, GTimeVal *end_time) -{ - gpointer retval; - - g_return_val_if_fail (queue, NULL); - g_return_val_if_fail (g_atomic_int_get (&queue->ref_count) > 0, NULL); - - g_mutex_lock (queue->mutex); - retval = g_async_queue_pop_intern_unlocked (queue, FALSE, end_time); - g_mutex_unlock (queue->mutex); - - return retval; -} - -/** - * g_async_queue_timed_pop_unlocked: - * @queue: a #GAsyncQueue. - * @end_time: a #GTimeVal, determining the final time. - * - * Pops data from the @queue. If no data is received before @end_time, - * %NULL is returned. This function must be called while holding the - * @queue's lock. - * - * To easily calculate @end_time a combination of g_get_current_time() - * and g_time_val_add() can be used. - * - * Return value: data from the queue or %NULL, when no data is - * received before @end_time. - **/ -gpointer -g_async_queue_timed_pop_unlocked (GAsyncQueue* queue, GTimeVal *end_time) -{ - g_return_val_if_fail (queue, NULL); - g_return_val_if_fail (g_atomic_int_get (&queue->ref_count) > 0, NULL); - - return g_async_queue_pop_intern_unlocked (queue, FALSE, end_time); -} - -/** - * g_async_queue_length: - * @queue: a #GAsyncQueue. - * - * Returns the length of the queue, negative values mean waiting - * threads, positive values mean available entries in the - * @queue. Actually this function returns the number of data items in - * the queue minus the number of waiting threads. Thus a return value - * of 0 could mean 'n' entries in the queue and 'n' thread waiting. - * That can happen due to locking of the queue or due to - * scheduling. - * - * Return value: the length of the @queue. - **/ -gint -g_async_queue_length (GAsyncQueue* queue) -{ - gint retval; - - g_return_val_if_fail (queue, 0); - g_return_val_if_fail (g_atomic_int_get (&queue->ref_count) > 0, 0); - - g_mutex_lock (queue->mutex); - retval = queue->queue->length - queue->waiting_threads; - g_mutex_unlock (queue->mutex); - - return retval; -} - -/** - * g_async_queue_length_unlocked: - * @queue: a #GAsyncQueue. - * - * Returns the length of the queue, negative values mean waiting - * threads, positive values mean available entries in the - * @queue. Actually this function returns the number of data items in - * the queue minus the number of waiting threads. Thus a return value - * of 0 could mean 'n' entries in the queue and 'n' thread waiting. - * That can happen due to locking of the queue or due to - * scheduling. This function must be called while holding the @queue's - * lock. - * - * Return value: the length of the @queue. - **/ -gint -g_async_queue_length_unlocked (GAsyncQueue* queue) -{ - g_return_val_if_fail (queue, 0); - g_return_val_if_fail (g_atomic_int_get (&queue->ref_count) > 0, 0); - - return queue->queue->length - queue->waiting_threads; -} - -/** - * g_async_queue_sort: - * @queue: a #GAsyncQueue - * @func: the #GCompareDataFunc is used to sort @queue. This - * function is passed two elements of the @queue. The function - * should return 0 if they are equal, a negative value if the - * first element should be higher in the @queue or a positive - * value if the first element should be lower in the @queue than - * the second element. - * @user_data: user data passed to @func - * - * Sorts @queue using @func. - * - * This function will lock @queue before it sorts the queue and unlock - * it when it is finished. - * - * If you were sorting a list of priority numbers to make sure the - * lowest priority would be at the top of the queue, you could use: - * |[ - * gint32 id1; - * gint32 id2; - * - * id1 = GPOINTER_TO_INT (element1); - * id2 = GPOINTER_TO_INT (element2); - * - * return (id1 > id2 ? +1 : id1 == id2 ? 0 : -1); - * ]| - * - * Since: 2.10 - **/ -void -g_async_queue_sort (GAsyncQueue *queue, - GCompareDataFunc func, - gpointer user_data) -{ - g_return_if_fail (queue != NULL); - g_return_if_fail (func != NULL); - - g_mutex_lock (queue->mutex); - g_async_queue_sort_unlocked (queue, func, user_data); - g_mutex_unlock (queue->mutex); -} - -/** - * g_async_queue_sort_unlocked: - * @queue: a #GAsyncQueue - * @func: the #GCompareDataFunc is used to sort @queue. This - * function is passed two elements of the @queue. The function - * should return 0 if they are equal, a negative value if the - * first element should be higher in the @queue or a positive - * value if the first element should be lower in the @queue than - * the second element. - * @user_data: user data passed to @func - * - * Sorts @queue using @func. - * - * This function is called while holding the @queue's lock. - * - * Since: 2.10 - **/ -void -g_async_queue_sort_unlocked (GAsyncQueue *queue, - GCompareDataFunc func, - gpointer user_data) -{ - SortData sd; - - g_return_if_fail (queue != NULL); - g_return_if_fail (func != NULL); - - sd.func = func; - sd.user_data = user_data; - - g_queue_sort (queue->queue, - (GCompareDataFunc)g_async_queue_invert_compare, - &sd); -} - -/* - * Private API - */ - -GMutex* -_g_async_queue_get_mutex (GAsyncQueue* queue) -{ - g_return_val_if_fail (queue, NULL); - g_return_val_if_fail (g_atomic_int_get (&queue->ref_count) > 0, NULL); - - return queue->mutex; -} - -#define __G_ASYNCQUEUE_C__ -#include "galiasdef.c" diff --git a/lib/win32/glib-2.20.4/glib/gasyncqueue.h b/lib/win32/glib-2.20.4/glib/gasyncqueue.h deleted file mode 100644 index 9da43e36da0c4..0000000000000 --- a/lib/win32/glib-2.20.4/glib/gasyncqueue.h +++ /dev/null @@ -1,120 +0,0 @@ -/* GLIB - Library of useful routines for C programming - * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library 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 - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ - -/* - * Modified by the GLib Team and others 1997-2000. See the AUTHORS - * file for a list of people on the GLib Team. See the ChangeLog - * files for a list of changes. These files are distributed with - * GLib at ftp://ftp.gtk.org/pub/gtk/. - */ - -#if defined(G_DISABLE_SINGLE_INCLUDES) && !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION) -#error "Only can be included directly." -#endif - -#ifndef __G_ASYNCQUEUE_H__ -#define __G_ASYNCQUEUE_H__ - -#include - -G_BEGIN_DECLS - -typedef struct _GAsyncQueue GAsyncQueue; - -/* Asyncronous Queues, can be used to communicate between threads */ - -/* Get a new GAsyncQueue with the ref_count 1 */ -GAsyncQueue* g_async_queue_new (void); - -GAsyncQueue* g_async_queue_new_full (GDestroyNotify item_free_func); - -/* Lock and unlock a GAsyncQueue. All functions lock the queue for - * themselves, but in certain cirumstances you want to hold the lock longer, - * thus you lock the queue, call the *_unlocked functions and unlock it again. - */ -void g_async_queue_lock (GAsyncQueue *queue); -void g_async_queue_unlock (GAsyncQueue *queue); - -/* Ref and unref the GAsyncQueue. */ -GAsyncQueue* g_async_queue_ref (GAsyncQueue *queue); -void g_async_queue_unref (GAsyncQueue *queue); - -#ifndef G_DISABLE_DEPRECATED -/* You don't have to hold the lock for calling *_ref and *_unref anymore. */ -void g_async_queue_ref_unlocked (GAsyncQueue *queue); -void g_async_queue_unref_and_unlock (GAsyncQueue *queue); -#endif /* !G_DISABLE_DEPRECATED */ - -/* Push data into the async queue. Must not be NULL. */ -void g_async_queue_push (GAsyncQueue *queue, - gpointer data); -void g_async_queue_push_unlocked (GAsyncQueue *queue, - gpointer data); - -void g_async_queue_push_sorted (GAsyncQueue *queue, - gpointer data, - GCompareDataFunc func, - gpointer user_data); -void g_async_queue_push_sorted_unlocked (GAsyncQueue *queue, - gpointer data, - GCompareDataFunc func, - gpointer user_data); - -/* Pop data from the async queue. When no data is there, the thread is blocked - * until data arrives. - */ -gpointer g_async_queue_pop (GAsyncQueue *queue); -gpointer g_async_queue_pop_unlocked (GAsyncQueue *queue); - -/* Try to pop data. NULL is returned in case of empty queue. */ -gpointer g_async_queue_try_pop (GAsyncQueue *queue); -gpointer g_async_queue_try_pop_unlocked (GAsyncQueue *queue); - - - -/* Wait for data until at maximum until end_time is reached. NULL is returned - * in case of empty queue. - */ -gpointer g_async_queue_timed_pop (GAsyncQueue *queue, - GTimeVal *end_time); -gpointer g_async_queue_timed_pop_unlocked (GAsyncQueue *queue, - GTimeVal *end_time); - -/* Return the length of the queue. Negative values mean that threads - * are waiting, positve values mean that there are entries in the - * queue. Actually this function returns the length of the queue minus - * the number of waiting threads, g_async_queue_length == 0 could also - * mean 'n' entries in the queue and 'n' thread waiting. Such can - * happen due to locking of the queue or due to scheduling. - */ -gint g_async_queue_length (GAsyncQueue *queue); -gint g_async_queue_length_unlocked (GAsyncQueue *queue); -void g_async_queue_sort (GAsyncQueue *queue, - GCompareDataFunc func, - gpointer user_data); -void g_async_queue_sort_unlocked (GAsyncQueue *queue, - GCompareDataFunc func, - gpointer user_data); - -/* Private API */ -GMutex* _g_async_queue_get_mutex (GAsyncQueue *queue); - -G_END_DECLS - -#endif /* __G_ASYNCQUEUE_H__ */ diff --git a/lib/win32/glib-2.20.4/glib/gatomic.c b/lib/win32/glib-2.20.4/glib/gatomic.c deleted file mode 100644 index baa73e7ac65f9..0000000000000 --- a/lib/win32/glib-2.20.4/glib/gatomic.c +++ /dev/null @@ -1,1058 +0,0 @@ -/* GLIB - Library of useful routines for C programming - * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald - * - * g_atomic_*: atomic operations. - * Copyright (C) 2003 Sebastian Wilhelmi - * Copyright (C) 2007 Nokia Corporation - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library 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 - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ - -#include "config.h" - -#if defined (G_ATOMIC_ARM) -#include -#endif - -#include "glib.h" -#include "gthreadprivate.h" -#include "galias.h" - -#if defined (__GNUC__) -# if defined (G_ATOMIC_I486) -/* Adapted from CVS version 1.10 of glibc's sysdeps/i386/i486/bits/atomic.h - */ -gint -g_atomic_int_exchange_and_add (volatile gint G_GNUC_MAY_ALIAS *atomic, - gint val) -{ - gint result; - - __asm__ __volatile__ ("lock; xaddl %0,%1" - : "=r" (result), "=m" (*atomic) - : "0" (val), "m" (*atomic)); - return result; -} - -void -g_atomic_int_add (volatile gint G_GNUC_MAY_ALIAS *atomic, - gint val) -{ - __asm__ __volatile__ ("lock; addl %1,%0" - : "=m" (*atomic) - : "ir" (val), "m" (*atomic)); -} - -gboolean -g_atomic_int_compare_and_exchange (volatile gint G_GNUC_MAY_ALIAS *atomic, - gint oldval, - gint newval) -{ - gint result; - - __asm__ __volatile__ ("lock; cmpxchgl %2, %1" - : "=a" (result), "=m" (*atomic) - : "r" (newval), "m" (*atomic), "0" (oldval)); - - return result == oldval; -} - -/* The same code as above, as on i386 gpointer is 32 bit as well. - * Duplicating the code here seems more natural than casting the - * arguments and calling the former function */ - -gboolean -g_atomic_pointer_compare_and_exchange (volatile gpointer G_GNUC_MAY_ALIAS *atomic, - gpointer oldval, - gpointer newval) -{ - gpointer result; - - __asm__ __volatile__ ("lock; cmpxchgl %2, %1" - : "=a" (result), "=m" (*atomic) - : "r" (newval), "m" (*atomic), "0" (oldval)); - - return result == oldval; -} - -# elif defined (G_ATOMIC_SPARCV9) -/* Adapted from CVS version 1.3 of glibc's sysdeps/sparc/sparc64/bits/atomic.h - */ -# define ATOMIC_INT_CMP_XCHG(atomic, oldval, newval) \ - ({ \ - gint __result; \ - __asm__ __volatile__ ("cas [%4], %2, %0" \ - : "=r" (__result), "=m" (*(atomic)) \ - : "r" (oldval), "m" (*(atomic)), "r" (atomic),\ - "0" (newval)); \ - __result == oldval; \ - }) - -# if GLIB_SIZEOF_VOID_P == 4 /* 32-bit system */ -gboolean -g_atomic_pointer_compare_and_exchange (volatile gpointer G_GNUC_MAY_ALIAS *atomic, - gpointer oldval, - gpointer newval) -{ - gpointer result; - __asm__ __volatile__ ("cas [%4], %2, %0" - : "=r" (result), "=m" (*atomic) - : "r" (oldval), "m" (*atomic), "r" (atomic), - "0" (newval)); - return result == oldval; -} -# elif GLIB_SIZEOF_VOID_P == 8 /* 64-bit system */ -gboolean -g_atomic_pointer_compare_and_exchange (volatile gpointer G_GNUC_MAY_ALIAS *atomic, - gpointer oldval, - gpointer newval) -{ - gpointer result; - gpointer *a = atomic; - __asm__ __volatile__ ("casx [%4], %2, %0" - : "=r" (result), "=m" (*a) - : "r" (oldval), "m" (*a), "r" (a), - "0" (newval)); - return result == oldval; -} -# else /* What's that */ -# error "Your system has an unsupported pointer size" -# endif /* GLIB_SIZEOF_VOID_P */ -# define G_ATOMIC_MEMORY_BARRIER \ - __asm__ __volatile__ ("membar #LoadLoad | #LoadStore" \ - " | #StoreLoad | #StoreStore" : : : "memory") - -# elif defined (G_ATOMIC_ALPHA) -/* Adapted from CVS version 1.3 of glibc's sysdeps/alpha/bits/atomic.h - */ -# define ATOMIC_INT_CMP_XCHG(atomic, oldval, newval) \ - ({ \ - gint __result; \ - gint __prev; \ - __asm__ __volatile__ ( \ - " mb\n" \ - "1: ldl_l %0,%2\n" \ - " cmpeq %0,%3,%1\n" \ - " beq %1,2f\n" \ - " mov %4,%1\n" \ - " stl_c %1,%2\n" \ - " beq %1,1b\n" \ - " mb\n" \ - "2:" \ - : "=&r" (__prev), \ - "=&r" (__result) \ - : "m" (*(atomic)), \ - "Ir" (oldval), \ - "Ir" (newval) \ - : "memory"); \ - __result != 0; \ - }) -# if GLIB_SIZEOF_VOID_P == 4 /* 32-bit system */ -gboolean -g_atomic_pointer_compare_and_exchange (volatile gpointer G_GNUC_MAY_ALIAS *atomic, - gpointer oldval, - gpointer newval) -{ - gint result; - gpointer prev; - __asm__ __volatile__ ( - " mb\n" - "1: ldl_l %0,%2\n" - " cmpeq %0,%3,%1\n" - " beq %1,2f\n" - " mov %4,%1\n" - " stl_c %1,%2\n" - " beq %1,1b\n" - " mb\n" - "2:" - : "=&r" (prev), - "=&r" (result) - : "m" (*atomic), - "Ir" (oldval), - "Ir" (newval) - : "memory"); - return result != 0; -} -# elif GLIB_SIZEOF_VOID_P == 8 /* 64-bit system */ -gboolean -g_atomic_pointer_compare_and_exchange (volatile gpointer G_GNUC_MAY_ALIAS *atomic, - gpointer oldval, - gpointer newval) -{ - gint result; - gpointer prev; - __asm__ __volatile__ ( - " mb\n" - "1: ldq_l %0,%2\n" - " cmpeq %0,%3,%1\n" - " beq %1,2f\n" - " mov %4,%1\n" - " stq_c %1,%2\n" - " beq %1,1b\n" - " mb\n" - "2:" - : "=&r" (prev), - "=&r" (result) - : "m" (*atomic), - "Ir" (oldval), - "Ir" (newval) - : "memory"); - return result != 0; -} -# else /* What's that */ -# error "Your system has an unsupported pointer size" -# endif /* GLIB_SIZEOF_VOID_P */ -# define G_ATOMIC_MEMORY_BARRIER __asm__ ("mb" : : : "memory") -# elif defined (G_ATOMIC_X86_64) -/* Adapted from CVS version 1.9 of glibc's sysdeps/x86_64/bits/atomic.h - */ -gint -g_atomic_int_exchange_and_add (volatile gint G_GNUC_MAY_ALIAS *atomic, - gint val) -{ - gint result; - - __asm__ __volatile__ ("lock; xaddl %0,%1" - : "=r" (result), "=m" (*atomic) - : "0" (val), "m" (*atomic)); - return result; -} - -void -g_atomic_int_add (volatile gint G_GNUC_MAY_ALIAS *atomic, - gint val) -{ - __asm__ __volatile__ ("lock; addl %1,%0" - : "=m" (*atomic) - : "ir" (val), "m" (*atomic)); -} - -gboolean -g_atomic_int_compare_and_exchange (volatile gint G_GNUC_MAY_ALIAS *atomic, - gint oldval, - gint newval) -{ - gint result; - - __asm__ __volatile__ ("lock; cmpxchgl %2, %1" - : "=a" (result), "=m" (*atomic) - : "r" (newval), "m" (*atomic), "0" (oldval)); - - return result == oldval; -} - -gboolean -g_atomic_pointer_compare_and_exchange (volatile gpointer G_GNUC_MAY_ALIAS *atomic, - gpointer oldval, - gpointer newval) -{ - gpointer result; - - __asm__ __volatile__ ("lock; cmpxchgq %q2, %1" - : "=a" (result), "=m" (*atomic) - : "r" (newval), "m" (*atomic), "0" (oldval)); - - return result == oldval; -} - -# elif defined (G_ATOMIC_POWERPC) -/* Adapted from CVS version 1.16 of glibc's sysdeps/powerpc/bits/atomic.h - * and CVS version 1.4 of glibc's sysdeps/powerpc/powerpc32/bits/atomic.h - * and CVS version 1.7 of glibc's sysdeps/powerpc/powerpc64/bits/atomic.h - */ -# ifdef __OPTIMIZE__ -/* Non-optimizing compile bails on the following two asm statements - * for reasons unknown to the author */ -gint -g_atomic_int_exchange_and_add (volatile gint G_GNUC_MAY_ALIAS *atomic, - gint val) -{ - gint result, temp; -#if ASM_NUMERIC_LABELS - __asm__ __volatile__ ("1: lwarx %0,0,%3\n" - " add %1,%0,%4\n" - " stwcx. %1,0,%3\n" - " bne- 1b" - : "=&b" (result), "=&r" (temp), "=m" (*atomic) - : "b" (atomic), "r" (val), "m" (*atomic) - : "cr0", "memory"); -#else - __asm__ __volatile__ (".Lieaa%=: lwarx %0,0,%3\n" - " add %1,%0,%4\n" - " stwcx. %1,0,%3\n" - " bne- .Lieaa%=" - : "=&b" (result), "=&r" (temp), "=m" (*atomic) - : "b" (atomic), "r" (val), "m" (*atomic) - : "cr0", "memory"); -#endif - return result; -} - -/* The same as above, to save a function call repeated here */ -void -g_atomic_int_add (volatile gint G_GNUC_MAY_ALIAS *atomic, - gint val) -{ - gint result, temp; -#if ASM_NUMERIC_LABELS - __asm__ __volatile__ ("1: lwarx %0,0,%3\n" - " add %1,%0,%4\n" - " stwcx. %1,0,%3\n" - " bne- 1b" - : "=&b" (result), "=&r" (temp), "=m" (*atomic) - : "b" (atomic), "r" (val), "m" (*atomic) - : "cr0", "memory"); -#else - __asm__ __volatile__ (".Lia%=: lwarx %0,0,%3\n" - " add %1,%0,%4\n" - " stwcx. %1,0,%3\n" - " bne- .Lia%=" - : "=&b" (result), "=&r" (temp), "=m" (*atomic) - : "b" (atomic), "r" (val), "m" (*atomic) - : "cr0", "memory"); -#endif -} -# else /* !__OPTIMIZE__ */ -gint -g_atomic_int_exchange_and_add (volatile gint G_GNUC_MAY_ALIAS *atomic, - gint val) -{ - gint result; - do - result = *atomic; - while (!g_atomic_int_compare_and_exchange (atomic, result, result + val)); - - return result; -} - -void -g_atomic_int_add (volatile gint G_GNUC_MAY_ALIAS *atomic, - gint val) -{ - gint result; - do - result = *atomic; - while (!g_atomic_int_compare_and_exchange (atomic, result, result + val)); -} -# endif /* !__OPTIMIZE__ */ - -# if GLIB_SIZEOF_VOID_P == 4 /* 32-bit system */ -gboolean -g_atomic_int_compare_and_exchange (volatile gint G_GNUC_MAY_ALIAS *atomic, - gint oldval, - gint newval) -{ - gint result; -#if ASM_NUMERIC_LABELS - __asm__ __volatile__ ("sync\n" - "1: lwarx %0,0,%1\n" - " subf. %0,%2,%0\n" - " bne 2f\n" - " stwcx. %3,0,%1\n" - " bne- 1b\n" - "2: isync" - : "=&r" (result) - : "b" (atomic), "r" (oldval), "r" (newval) - : "cr0", "memory"); -#else - __asm__ __volatile__ ("sync\n" - ".L1icae%=: lwarx %0,0,%1\n" - " subf. %0,%2,%0\n" - " bne .L2icae%=\n" - " stwcx. %3,0,%1\n" - " bne- .L1icae%=\n" - ".L2icae%=: isync" - : "=&r" (result) - : "b" (atomic), "r" (oldval), "r" (newval) - : "cr0", "memory"); -#endif - return result == 0; -} - -gboolean -g_atomic_pointer_compare_and_exchange (volatile gpointer G_GNUC_MAY_ALIAS *atomic, - gpointer oldval, - gpointer newval) -{ - gpointer result; -#if ASM_NUMERIC_LABELS - __asm__ __volatile__ ("sync\n" - "1: lwarx %0,0,%1\n" - " subf. %0,%2,%0\n" - " bne 2f\n" - " stwcx. %3,0,%1\n" - " bne- 1b\n" - "2: isync" - : "=&r" (result) - : "b" (atomic), "r" (oldval), "r" (newval) - : "cr0", "memory"); -#else - __asm__ __volatile__ ("sync\n" - ".L1pcae%=: lwarx %0,0,%1\n" - " subf. %0,%2,%0\n" - " bne .L2pcae%=\n" - " stwcx. %3,0,%1\n" - " bne- .L1pcae%=\n" - ".L2pcae%=: isync" - : "=&r" (result) - : "b" (atomic), "r" (oldval), "r" (newval) - : "cr0", "memory"); -#endif - return result == 0; -} -# elif GLIB_SIZEOF_VOID_P == 8 /* 64-bit system */ -gboolean -g_atomic_int_compare_and_exchange (volatile gint G_GNUC_MAY_ALIAS *atomic, - gint oldval, - gint newval) -{ - gpointer result; -#if ASM_NUMERIC_LABELS - __asm__ __volatile__ ("sync\n" - "1: lwarx %0,0,%1\n" - " extsw %0,%0\n" - " subf. %0,%2,%0\n" - " bne 2f\n" - " stwcx. %3,0,%1\n" - " bne- 1b\n" - "2: isync" - : "=&r" (result) - : "b" (atomic), "r" (oldval), "r" (newval) - : "cr0", "memory"); -#else - __asm__ __volatile__ ("sync\n" - ".L1icae%=: lwarx %0,0,%1\n" - " extsw %0,%0\n" - " subf. %0,%2,%0\n" - " bne .L2icae%=\n" - " stwcx. %3,0,%1\n" - " bne- .L1icae%=\n" - ".L2icae%=: isync" - : "=&r" (result) - : "b" (atomic), "r" (oldval), "r" (newval) - : "cr0", "memory"); -#endif - return result == 0; -} - -gboolean -g_atomic_pointer_compare_and_exchange (volatile gpointer G_GNUC_MAY_ALIAS *atomic, - gpointer oldval, - gpointer newval) -{ - gpointer result; -#if ASM_NUMERIC_LABELS - __asm__ __volatile__ ("sync\n" - "1: ldarx %0,0,%1\n" - " subf. %0,%2,%0\n" - " bne 2f\n" - " stdcx. %3,0,%1\n" - " bne- 1b\n" - "2: isync" - : "=&r" (result) - : "b" (atomic), "r" (oldval), "r" (newval) - : "cr0", "memory"); -#else - __asm__ __volatile__ ("sync\n" - ".L1pcae%=: ldarx %0,0,%1\n" - " subf. %0,%2,%0\n" - " bne .L2pcae%=\n" - " stdcx. %3,0,%1\n" - " bne- .L1pcae%=\n" - ".L2pcae%=: isync" - : "=&r" (result) - : "b" (atomic), "r" (oldval), "r" (newval) - : "cr0", "memory"); -#endif - return result == 0; -} -# else /* What's that */ -# error "Your system has an unsupported pointer size" -# endif /* GLIB_SIZEOF_VOID_P */ - -# define G_ATOMIC_MEMORY_BARRIER __asm__ ("sync" : : : "memory") - -# elif defined (G_ATOMIC_IA64) -/* Adapted from CVS version 1.8 of glibc's sysdeps/ia64/bits/atomic.h - */ -gint -g_atomic_int_exchange_and_add (volatile gint G_GNUC_MAY_ALIAS *atomic, - gint val) -{ - return __sync_fetch_and_add (atomic, val); -} - -void -g_atomic_int_add (volatile gint G_GNUC_MAY_ALIAS *atomic, - gint val) -{ - __sync_fetch_and_add (atomic, val); -} - -gboolean -g_atomic_int_compare_and_exchange (volatile gint G_GNUC_MAY_ALIAS *atomic, - gint oldval, - gint newval) -{ - return __sync_bool_compare_and_swap (atomic, oldval, newval); -} - -gboolean -g_atomic_pointer_compare_and_exchange (volatile gpointer G_GNUC_MAY_ALIAS *atomic, - gpointer oldval, - gpointer newval) -{ - return __sync_bool_compare_and_swap ((long *)atomic, - (long)oldval, (long)newval); -} - -# define G_ATOMIC_MEMORY_BARRIER __sync_synchronize () -# elif defined (G_ATOMIC_S390) -/* Adapted from glibc's sysdeps/s390/bits/atomic.h - */ -# define ATOMIC_INT_CMP_XCHG(atomic, oldval, newval) \ - ({ \ - gint __result = oldval; \ - __asm__ __volatile__ ("cs %0, %2, %1" \ - : "+d" (__result), "=Q" (*(atomic)) \ - : "d" (newval), "m" (*(atomic)) : "cc" ); \ - __result == oldval; \ - }) - -# if GLIB_SIZEOF_VOID_P == 4 /* 32-bit system */ -gboolean -g_atomic_pointer_compare_and_exchange (volatile gpointer G_GNUC_MAY_ALIAS *atomic, - gpointer oldval, - gpointer newval) -{ - gpointer result = oldval; - __asm__ __volatile__ ("cs %0, %2, %1" - : "+d" (result), "=Q" (*(atomic)) - : "d" (newval), "m" (*(atomic)) : "cc" ); - return result == oldval; -} -# elif GLIB_SIZEOF_VOID_P == 8 /* 64-bit system */ -gboolean -g_atomic_pointer_compare_and_exchange (volatile gpointer G_GNUC_MAY_ALIAS *atomic, - gpointer oldval, - gpointer newval) -{ - gpointer result = oldval; - gpointer *a = atomic; - __asm__ __volatile__ ("csg %0, %2, %1" - : "+d" (result), "=Q" (*a) - : "d" ((long)(newval)), "m" (*a) : "cc" ); - return result == oldval; -} -# else /* What's that */ -# error "Your system has an unsupported pointer size" -# endif /* GLIB_SIZEOF_VOID_P */ -# elif defined (G_ATOMIC_ARM) -static volatile int atomic_spin = 0; - -static int atomic_spin_trylock (void) -{ - int result; - - asm volatile ( - "swp %0, %1, [%2]\n" - : "=&r,&r" (result) - : "r,0" (1), "r,r" (&atomic_spin) - : "memory"); - if (result == 0) - return 0; - else - return -1; -} - -static void atomic_spin_lock (void) -{ - while (atomic_spin_trylock()) - sched_yield(); -} - -static void atomic_spin_unlock (void) -{ - atomic_spin = 0; -} - -gint -g_atomic_int_exchange_and_add (volatile gint G_GNUC_MAY_ALIAS *atomic, - gint val) -{ - gint result; - - atomic_spin_lock(); - result = *atomic; - *atomic += val; - atomic_spin_unlock(); - - return result; -} - -void -g_atomic_int_add (volatile gint G_GNUC_MAY_ALIAS *atomic, - gint val) -{ - atomic_spin_lock(); - *atomic += val; - atomic_spin_unlock(); -} - -gboolean -g_atomic_int_compare_and_exchange (volatile gint G_GNUC_MAY_ALIAS *atomic, - gint oldval, - gint newval) -{ - gboolean result; - - atomic_spin_lock(); - if (*atomic == oldval) - { - result = TRUE; - *atomic = newval; - } - else - result = FALSE; - atomic_spin_unlock(); - - return result; -} - -gboolean -g_atomic_pointer_compare_and_exchange (volatile gpointer G_GNUC_MAY_ALIAS *atomic, - gpointer oldval, - gpointer newval) -{ - gboolean result; - - atomic_spin_lock(); - if (*atomic == oldval) - { - result = TRUE; - *atomic = newval; - } - else - result = FALSE; - atomic_spin_unlock(); - - return result; -} -# elif defined (G_ATOMIC_CRIS) || defined (G_ATOMIC_CRISV32) -# ifdef G_ATOMIC_CRIS -# define CRIS_ATOMIC_INT_CMP_XCHG(atomic, oldval, newval) \ - ({ \ - gboolean __result; \ - __asm__ __volatile__ ("\n" \ - "0:\tclearf\n\t" \ - "cmp.d [%[Atomic]], %[OldVal]\n\t" \ - "bne 1f\n\t" \ - "ax\n\t" \ - "move.d %[NewVal], [%[Atomic]]\n\t" \ - "bwf 0b\n" \ - "1:\tseq %[Result]" \ - : [Result] "=&r" (__result), \ - "=m" (*(atomic)) \ - : [Atomic] "r" (atomic), \ - [OldVal] "r" (oldval), \ - [NewVal] "r" (newval), \ - "g" (*(gpointer*) (atomic)) \ - : "memory"); \ - __result; \ - }) -# else -# define CRIS_ATOMIC_INT_CMP_XCHG(atomic, oldval, newval) \ - ({ \ - gboolean __result; \ - __asm__ __volatile__ ("\n" \ - "0:\tclearf p\n\t" \ - "cmp.d [%[Atomic]], %[OldVal]\n\t" \ - "bne 1f\n\t" \ - "ax\n\t" \ - "move.d %[NewVal], [%[Atomic]]\n\t" \ - "bcs 0b\n" \ - "1:\tseq %[Result]" \ - : [Result] "=&r" (__result), \ - "=m" (*(atomic)) \ - : [Atomic] "r" (atomic), \ - [OldVal] "r" (oldval), \ - [NewVal] "r" (newval), \ - "g" (*(gpointer*) (atomic)) \ - : "memory"); \ - __result; \ - }) -# endif - -#define CRIS_CACHELINE_SIZE 32 -#define CRIS_ATOMIC_BREAKS_CACHELINE(atomic) \ - (((gulong)(atomic) & (CRIS_CACHELINE_SIZE - 1)) > (CRIS_CACHELINE_SIZE - sizeof (atomic))) - -gint __g_atomic_int_exchange_and_add (volatile gint G_GNUC_MAY_ALIAS *atomic, - gint val); -void __g_atomic_int_add (volatile gint G_GNUC_MAY_ALIAS *atomic, - gint val); -gboolean __g_atomic_int_compare_and_exchange (volatile gint G_GNUC_MAY_ALIAS *atomic, - gint oldval, - gint newval); -gboolean __g_atomic_pointer_compare_and_exchange (volatile gpointer G_GNUC_MAY_ALIAS *atomic, - gpointer oldval, - gpointer newval); - -gboolean -g_atomic_pointer_compare_and_exchange (volatile gpointer G_GNUC_MAY_ALIAS *atomic, - gpointer oldval, - gpointer newval) -{ - if (G_UNLIKELY (CRIS_ATOMIC_BREAKS_CACHELINE (atomic))) - return __g_atomic_pointer_compare_and_exchange (atomic, oldval, newval); - - return CRIS_ATOMIC_INT_CMP_XCHG (atomic, oldval, newval); -} - -gboolean -g_atomic_int_compare_and_exchange (volatile gint G_GNUC_MAY_ALIAS *atomic, - gint oldval, - gint newval) -{ - if (G_UNLIKELY (CRIS_ATOMIC_BREAKS_CACHELINE (atomic))) - return __g_atomic_int_compare_and_exchange (atomic, oldval, newval); - - return CRIS_ATOMIC_INT_CMP_XCHG (atomic, oldval, newval); -} - -gint -g_atomic_int_exchange_and_add (volatile gint G_GNUC_MAY_ALIAS *atomic, - gint val) -{ - gint result; - - if (G_UNLIKELY (CRIS_ATOMIC_BREAKS_CACHELINE (atomic))) - return __g_atomic_int_exchange_and_add (atomic, val); - - do - result = *atomic; - while (!CRIS_ATOMIC_INT_CMP_XCHG (atomic, result, result + val)); - - return result; -} - -void -g_atomic_int_add (volatile gint G_GNUC_MAY_ALIAS *atomic, - gint val) -{ - gint result; - - if (G_UNLIKELY (CRIS_ATOMIC_BREAKS_CACHELINE (atomic))) - return __g_atomic_int_add (atomic, val); - - do - result = *atomic; - while (!CRIS_ATOMIC_INT_CMP_XCHG (atomic, result, result + val)); -} - -/* We need the atomic mutex for atomic operations where the atomic variable - * breaks the 32 byte cache line since the CRIS architecture does not support - * atomic operations on such variables. Fortunately this should be rare. - */ -# define DEFINE_WITH_MUTEXES -# define g_atomic_int_exchange_and_add __g_atomic_int_exchange_and_add -# define g_atomic_int_add __g_atomic_int_add -# define g_atomic_int_compare_and_exchange __g_atomic_int_compare_and_exchange -# define g_atomic_pointer_compare_and_exchange __g_atomic_pointer_compare_and_exchange - -# else /* !G_ATOMIC_* */ -# define DEFINE_WITH_MUTEXES -# endif /* G_ATOMIC_* */ -#else /* !__GNUC__ */ -# ifdef G_PLATFORM_WIN32 -# define DEFINE_WITH_WIN32_INTERLOCKED -# else -# define DEFINE_WITH_MUTEXES -# endif -#endif /* __GNUC__ */ - -#ifdef DEFINE_WITH_WIN32_INTERLOCKED -# include -/* Following indicates that InterlockedCompareExchangePointer is - * declared in winbase.h (included by windows.h) and needs to be - * commented out if not true. It is defined iff WINVER > 0x0400, - * which is usually correct but can be wrong if WINVER is set before - * windows.h is included. - */ -# if WINVER > 0x0400 -# define HAVE_INTERLOCKED_COMPARE_EXCHANGE_POINTER -# endif - -gint32 -g_atomic_int_exchange_and_add (volatile gint32 G_GNUC_MAY_ALIAS *atomic, - gint32 val) -{ - return InterlockedExchangeAdd (atomic, val); -} - -void -g_atomic_int_add (volatile gint32 G_GNUC_MAY_ALIAS *atomic, - gint32 val) -{ - InterlockedExchangeAdd (atomic, val); -} - -gboolean -g_atomic_int_compare_and_exchange (volatile gint32 G_GNUC_MAY_ALIAS *atomic, - gint32 oldval, - gint32 newval) -{ -#ifndef HAVE_INTERLOCKED_COMPARE_EXCHANGE_POINTER - return (guint32) InterlockedCompareExchange ((PVOID*)atomic, - (PVOID)newval, - (PVOID)oldval) == oldval; -#else - return InterlockedCompareExchange (atomic, - newval, - oldval) == oldval; -#endif -} - -gboolean -g_atomic_pointer_compare_and_exchange (volatile gpointer G_GNUC_MAY_ALIAS *atomic, - gpointer oldval, - gpointer newval) -{ -# ifdef HAVE_INTERLOCKED_COMPARE_EXCHANGE_POINTER - return InterlockedCompareExchangePointer (atomic, newval, oldval) == oldval; -# else -# if GLIB_SIZEOF_VOID_P != 4 /* no 32-bit system */ -# error "InterlockedCompareExchangePointer needed" -# else - return InterlockedCompareExchange (atomic, newval, oldval) == oldval; -# endif -# endif -} -#endif /* DEFINE_WITH_WIN32_INTERLOCKED */ - -#ifdef DEFINE_WITH_MUTEXES -/* We have to use the slow, but safe locking method */ -static GMutex *g_atomic_mutex; - -gint -g_atomic_int_exchange_and_add (volatile gint G_GNUC_MAY_ALIAS *atomic, - gint val) -{ - gint result; - - g_mutex_lock (g_atomic_mutex); - result = *atomic; - *atomic += val; - g_mutex_unlock (g_atomic_mutex); - - return result; -} - - -void -g_atomic_int_add (volatile gint G_GNUC_MAY_ALIAS *atomic, - gint val) -{ - g_mutex_lock (g_atomic_mutex); - *atomic += val; - g_mutex_unlock (g_atomic_mutex); -} - -gboolean -g_atomic_int_compare_and_exchange (volatile gint G_GNUC_MAY_ALIAS *atomic, - gint oldval, - gint newval) -{ - gboolean result; - - g_mutex_lock (g_atomic_mutex); - if (*atomic == oldval) - { - result = TRUE; - *atomic = newval; - } - else - result = FALSE; - g_mutex_unlock (g_atomic_mutex); - - return result; -} - -gboolean -g_atomic_pointer_compare_and_exchange (volatile gpointer G_GNUC_MAY_ALIAS *atomic, - gpointer oldval, - gpointer newval) -{ - gboolean result; - - g_mutex_lock (g_atomic_mutex); - if (*atomic == oldval) - { - result = TRUE; - *atomic = newval; - } - else - result = FALSE; - g_mutex_unlock (g_atomic_mutex); - - return result; -} - -#ifdef G_ATOMIC_OP_MEMORY_BARRIER_NEEDED -gint -(g_atomic_int_get) (volatile gint G_GNUC_MAY_ALIAS *atomic) -{ - gint result; - - g_mutex_lock (g_atomic_mutex); - result = *atomic; - g_mutex_unlock (g_atomic_mutex); - - return result; -} - -void -(g_atomic_int_set) (volatile gint G_GNUC_MAY_ALIAS *atomic, - gint newval) -{ - g_mutex_lock (g_atomic_mutex); - *atomic = newval; - g_mutex_unlock (g_atomic_mutex); -} - -gpointer -(g_atomic_pointer_get) (volatile gpointer G_GNUC_MAY_ALIAS *atomic) -{ - gpointer result; - - g_mutex_lock (g_atomic_mutex); - result = *atomic; - g_mutex_unlock (g_atomic_mutex); - - return result; -} - -void -(g_atomic_pointer_set) (volatile gpointer G_GNUC_MAY_ALIAS *atomic, - gpointer newval) -{ - g_mutex_lock (g_atomic_mutex); - *atomic = newval; - g_mutex_unlock (g_atomic_mutex); -} -#endif /* G_ATOMIC_OP_MEMORY_BARRIER_NEEDED */ -#elif defined (G_ATOMIC_OP_MEMORY_BARRIER_NEEDED) -gint -(g_atomic_int_get) (volatile gint G_GNUC_MAY_ALIAS *atomic) -{ - G_ATOMIC_MEMORY_BARRIER; - return *atomic; -} - -void -(g_atomic_int_set) (volatile gint G_GNUC_MAY_ALIAS *atomic, - gint newval) -{ - *atomic = newval; - G_ATOMIC_MEMORY_BARRIER; -} - -gpointer -(g_atomic_pointer_get) (volatile gpointer G_GNUC_MAY_ALIAS *atomic) -{ - G_ATOMIC_MEMORY_BARRIER; - return *atomic; -} - -void -(g_atomic_pointer_set) (volatile gpointer G_GNUC_MAY_ALIAS *atomic, - gpointer newval) -{ - *atomic = newval; - G_ATOMIC_MEMORY_BARRIER; -} -#endif /* DEFINE_WITH_MUTEXES || G_ATOMIC_OP_MEMORY_BARRIER_NEEDED */ - -#ifdef ATOMIC_INT_CMP_XCHG -gboolean -g_atomic_int_compare_and_exchange (volatile gint G_GNUC_MAY_ALIAS *atomic, - gint oldval, - gint newval) -{ - return ATOMIC_INT_CMP_XCHG (atomic, oldval, newval); -} - -gint -g_atomic_int_exchange_and_add (volatile gint G_GNUC_MAY_ALIAS *atomic, - gint val) -{ - gint result; - do - result = *atomic; - while (!ATOMIC_INT_CMP_XCHG (atomic, result, result + val)); - - return result; -} - -void -g_atomic_int_add (volatile gint G_GNUC_MAY_ALIAS *atomic, - gint val) -{ - gint result; - do - result = *atomic; - while (!ATOMIC_INT_CMP_XCHG (atomic, result, result + val)); -} -#endif /* ATOMIC_INT_CMP_XCHG */ - -void -_g_atomic_thread_init (void) -{ -#ifdef DEFINE_WITH_MUTEXES - g_atomic_mutex = g_mutex_new (); -#endif /* DEFINE_WITH_MUTEXES */ -} - -#ifndef G_ATOMIC_OP_MEMORY_BARRIER_NEEDED -gint -(g_atomic_int_get) (volatile gint G_GNUC_MAY_ALIAS *atomic) -{ - return g_atomic_int_get (atomic); -} - -void -(g_atomic_int_set) (volatile gint G_GNUC_MAY_ALIAS *atomic, - gint newval) -{ - g_atomic_int_set (atomic, newval); -} - -gpointer -(g_atomic_pointer_get) (volatile gpointer G_GNUC_MAY_ALIAS *atomic) -{ - return g_atomic_pointer_get (atomic); -} - -void -(g_atomic_pointer_set) (volatile gpointer G_GNUC_MAY_ALIAS *atomic, - gpointer newval) -{ - g_atomic_pointer_set (atomic, newval); -} -#endif /* G_ATOMIC_OP_MEMORY_BARRIER_NEEDED */ - -#define __G_ATOMIC_C__ -#include "galiasdef.c" diff --git a/lib/win32/glib-2.20.4/glib/gatomic.h b/lib/win32/glib-2.20.4/glib/gatomic.h deleted file mode 100644 index 7d9c318ccb2b4..0000000000000 --- a/lib/win32/glib-2.20.4/glib/gatomic.h +++ /dev/null @@ -1,85 +0,0 @@ -/* GLIB - Library of useful routines for C programming - * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald - * - * g_atomic_*: atomic operations. - * Copyright (C) 2003 Sebastian Wilhelmi - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library 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 - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ - -/* - * Modified by the GLib Team and others 1997-2000. See the AUTHORS - * file for a list of people on the GLib Team. See the ChangeLog - * files for a list of changes. These files are distributed with - * GLib at ftp://ftp.gtk.org/pub/gtk/. - */ - -#if defined(G_DISABLE_SINGLE_INCLUDES) && !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION) -#error "Only can be included directly." -#endif - -#ifndef __G_ATOMIC_H__ -#define __G_ATOMIC_H__ - -#include - -G_BEGIN_DECLS - -gint g_atomic_int_exchange_and_add (volatile gint G_GNUC_MAY_ALIAS *atomic, - gint val); -void g_atomic_int_add (volatile gint G_GNUC_MAY_ALIAS *atomic, - gint val); -gboolean g_atomic_int_compare_and_exchange (volatile gint G_GNUC_MAY_ALIAS *atomic, - gint oldval, - gint newval); -gboolean g_atomic_pointer_compare_and_exchange (volatile gpointer G_GNUC_MAY_ALIAS *atomic, - gpointer oldval, - gpointer newval); - -gint g_atomic_int_get (volatile gint G_GNUC_MAY_ALIAS *atomic); -void g_atomic_int_set (volatile gint G_GNUC_MAY_ALIAS *atomic, - gint newval); -gpointer g_atomic_pointer_get (volatile gpointer G_GNUC_MAY_ALIAS *atomic); -void g_atomic_pointer_set (volatile gpointer G_GNUC_MAY_ALIAS *atomic, - gpointer newval); - -#ifndef G_ATOMIC_OP_MEMORY_BARRIER_NEEDED -# define g_atomic_int_get(atomic) ((gint)*(atomic)) -# define g_atomic_int_set(atomic, newval) ((void) (*(atomic) = (newval))) -# define g_atomic_pointer_get(atomic) ((gpointer)*(atomic)) -# define g_atomic_pointer_set(atomic, newval) ((void) (*(atomic) = (newval))) -#else -# define g_atomic_int_get(atomic) \ - ((void) sizeof (gchar [sizeof (*(atomic)) == sizeof (gint) ? 1 : -1]), \ - (g_atomic_int_get) ((volatile gint G_GNUC_MAY_ALIAS *) (void *) (atomic))) -# define g_atomic_int_set(atomic, newval) \ - ((void) sizeof (gchar [sizeof (*(atomic)) == sizeof (gint) ? 1 : -1]), \ - (g_atomic_int_set) ((volatile gint G_GNUC_MAY_ALIAS *) (void *) (atomic), (newval))) -# define g_atomic_pointer_get(atomic) \ - ((void) sizeof (gchar [sizeof (*(atomic)) == sizeof (gpointer) ? 1 : -1]), \ - (g_atomic_pointer_get) ((volatile gpointer G_GNUC_MAY_ALIAS *) (void *) (atomic))) -# define g_atomic_pointer_set(atomic, newval) \ - ((void) sizeof (gchar [sizeof (*(atomic)) == sizeof (gpointer) ? 1 : -1]), \ - (g_atomic_pointer_set) ((volatile gpointer G_GNUC_MAY_ALIAS *) (void *) (atomic), (newval))) -#endif /* G_ATOMIC_OP_MEMORY_BARRIER_NEEDED */ - -#define g_atomic_int_inc(atomic) (g_atomic_int_add ((atomic), 1)) -#define g_atomic_int_dec_and_test(atomic) \ - (g_atomic_int_exchange_and_add ((atomic), -1) == 1) - -G_END_DECLS - -#endif /* __G_ATOMIC_H__ */ diff --git a/lib/win32/glib-2.20.4/glib/gbacktrace.c b/lib/win32/glib-2.20.4/glib/gbacktrace.c deleted file mode 100644 index 238d9cf97d7e4..0000000000000 --- a/lib/win32/glib-2.20.4/glib/gbacktrace.c +++ /dev/null @@ -1,308 +0,0 @@ -/* GLIB - Library of useful routines for C programming - * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library 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 - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ - -/* - * Modified by the GLib Team and others 1997-2000. See the AUTHORS - * file for a list of people on the GLib Team. See the ChangeLog - * files for a list of changes. These files are distributed with - * GLib at ftp://ftp.gtk.org/pub/gtk/. - */ - -/* - * MT safe ; except for g_on_error_stack_trace, but who wants thread safety - * then - */ - -#include "config.h" - -#include -#include -#include -#include -#include "glib.h" -#include "gprintfint.h" - -#ifdef HAVE_SYS_TIME_H -#include -#endif -#ifdef HAVE_SYS_TIMES_H -#include -#endif -#include -#ifdef HAVE_SYS_WAIT_H -#include -#endif - -#include -#ifdef HAVE_UNISTD_H -#include -#endif - -#ifdef HAVE_SYS_SELECT_H -#include -#endif /* HAVE_SYS_SELECT_H */ - -#include /* for bzero on BSD systems */ - -#ifdef G_OS_WIN32 -# define STRICT /* Strict typing, please */ -# define _WIN32_WINDOWS 0x0401 /* to get IsDebuggerPresent */ -# include -# undef STRICT -#endif - -#ifndef NO_FD_SET -# define SELECT_MASK fd_set -#else -# if defined(_IBMR2) -# define SELECT_MASK void -# else -# define SELECT_MASK int -# endif -#endif - -#include "galias.h" - -#ifndef G_OS_WIN32 -static void stack_trace (char **args); -#endif - -extern volatile gboolean glib_on_error_halt; -volatile gboolean glib_on_error_halt = TRUE; - -void -g_on_error_query (const gchar *prg_name) -{ -#ifndef G_OS_WIN32 - static const gchar * const query1 = "[E]xit, [H]alt"; - static const gchar * const query2 = ", show [S]tack trace"; - static const gchar * const query3 = " or [P]roceed"; - gchar buf[16]; - - if (!prg_name) - prg_name = g_get_prgname (); - - retry: - - if (prg_name) - _g_fprintf (stdout, - "%s (pid:%u): %s%s%s: ", - prg_name, - (guint) getpid (), - query1, - query2, - query3); - else - _g_fprintf (stdout, - "(process:%u): %s%s: ", - (guint) getpid (), - query1, - query3); - fflush (stdout); - - if (isatty(0) && isatty(1)) - fgets (buf, 8, stdin); - else - strcpy (buf, "E\n"); - - if ((buf[0] == 'E' || buf[0] == 'e') - && buf[1] == '\n') - _exit (0); - else if ((buf[0] == 'P' || buf[0] == 'p') - && buf[1] == '\n') - return; - else if (prg_name - && (buf[0] == 'S' || buf[0] == 's') - && buf[1] == '\n') - { - g_on_error_stack_trace (prg_name); - goto retry; - } - else if ((buf[0] == 'H' || buf[0] == 'h') - && buf[1] == '\n') - { - while (glib_on_error_halt) - ; - glib_on_error_halt = TRUE; - return; - } - else - goto retry; -#else - if (!prg_name) - prg_name = g_get_prgname (); - - MessageBox (NULL, "g_on_error_query called, program terminating", - (prg_name && *prg_name) ? prg_name : NULL, - MB_OK|MB_ICONERROR); - _exit(0); -#endif -} - -void -g_on_error_stack_trace (const gchar *prg_name) -{ -#if defined(G_OS_UNIX) || defined(G_OS_BEOS) - pid_t pid; - gchar buf[16]; - gchar *args[4] = { "gdb", NULL, NULL, NULL }; - int status; - - if (!prg_name) - return; - - _g_sprintf (buf, "%u", (guint) getpid ()); - - args[1] = (gchar*) prg_name; - args[2] = buf; - - pid = fork (); - if (pid == 0) - { - stack_trace (args); - _exit (0); - } - else if (pid == (pid_t) -1) - { - perror ("unable to fork gdb"); - return; - } - - waitpid (pid, &status, 0); -#else - if (IsDebuggerPresent ()) - G_BREAKPOINT (); - else - abort (); -#endif -} - -#ifndef G_OS_WIN32 - -static gboolean stack_trace_done = FALSE; - -static void -stack_trace_sigchld (int signum) -{ - stack_trace_done = TRUE; -} - -static void -stack_trace (char **args) -{ - pid_t pid; - int in_fd[2]; - int out_fd[2]; - SELECT_MASK fdset; - SELECT_MASK readset; - struct timeval tv; - int sel, idx, state; - char buffer[256]; - char c; - - stack_trace_done = FALSE; - signal (SIGCHLD, stack_trace_sigchld); - - if ((pipe (in_fd) == -1) || (pipe (out_fd) == -1)) - { - perror ("unable to open pipe"); - _exit (0); - } - - pid = fork (); - if (pid == 0) - { - close (0); dup (in_fd[0]); /* set the stdin to the in pipe */ - close (1); dup (out_fd[1]); /* set the stdout to the out pipe */ - close (2); dup (out_fd[1]); /* set the stderr to the out pipe */ - - execvp (args[0], args); /* exec gdb */ - perror ("exec failed"); - _exit (0); - } - else if (pid == (pid_t) -1) - { - perror ("unable to fork"); - _exit (0); - } - - FD_ZERO (&fdset); - FD_SET (out_fd[0], &fdset); - - write (in_fd[1], "backtrace\n", 10); - write (in_fd[1], "p x = 0\n", 8); - write (in_fd[1], "quit\n", 5); - - idx = 0; - state = 0; - - while (1) - { - readset = fdset; - tv.tv_sec = 1; - tv.tv_usec = 0; - - sel = select (FD_SETSIZE, &readset, NULL, NULL, &tv); - if (sel == -1) - break; - - if ((sel > 0) && (FD_ISSET (out_fd[0], &readset))) - { - if (read (out_fd[0], &c, 1)) - { - switch (state) - { - case 0: - if (c == '#') - { - state = 1; - idx = 0; - buffer[idx++] = c; - } - break; - case 1: - buffer[idx++] = c; - if ((c == '\n') || (c == '\r')) - { - buffer[idx] = 0; - _g_fprintf (stdout, "%s", buffer); - state = 0; - idx = 0; - } - break; - default: - break; - } - } - } - else if (stack_trace_done) - break; - } - - close (in_fd[0]); - close (in_fd[1]); - close (out_fd[0]); - close (out_fd[1]); - _exit (0); -} - -#endif /* !G_OS_WIN32 */ - -#define __G_BACKTRACE_C__ -#include "galiasdef.c" diff --git a/lib/win32/glib-2.20.4/glib/gbacktrace.h b/lib/win32/glib-2.20.4/glib/gbacktrace.h deleted file mode 100644 index 2e74b49a34f42..0000000000000 --- a/lib/win32/glib-2.20.4/glib/gbacktrace.h +++ /dev/null @@ -1,68 +0,0 @@ -/* GLIB - Library of useful routines for C programming - * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library 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 - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ - -/* - * Modified by the GLib Team and others 1997-2000. See the AUTHORS - * file for a list of people on the GLib Team. See the ChangeLog - * files for a list of changes. These files are distributed with - * GLib at ftp://ftp.gtk.org/pub/gtk/. - */ - -#if defined(G_DISABLE_SINGLE_INCLUDES) && !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION) -#error "Only can be included directly." -#endif - -#ifndef __G_BACKTRACE_H__ -#define __G_BACKTRACE_H__ - -#include -#include - -G_BEGIN_DECLS - -/* Fatal error handlers. - * g_on_error_query() will prompt the user to either - * [E]xit, [H]alt, [P]roceed or show [S]tack trace. - * g_on_error_stack_trace() invokes gdb, which attaches to the current - * process and shows a stack trace. - * These function may cause different actions on non-unix platforms. - * The prg_name arg is required by gdb to find the executable, if it is - * passed as NULL, g_on_error_query() will try g_get_prgname(). - */ -void g_on_error_query (const gchar *prg_name); -void g_on_error_stack_trace (const gchar *prg_name); - -/* Hacker macro to place breakpoints for selected machines. - * Actual use is strongly discouraged of course ;) - */ -#if (defined (__i386__) || defined (__x86_64__)) && defined (__GNUC__) && __GNUC__ >= 2 -# define G_BREAKPOINT() G_STMT_START{ __asm__ __volatile__ ("int $03"); }G_STMT_END -#elif (defined (_MSC_VER) || defined (__DMC__)) && defined (_M_IX86) -# define G_BREAKPOINT() G_STMT_START{ __asm int 3h }G_STMT_END -#elif defined (_MSC_VER) -# define G_BREAKPOINT() G_STMT_START{ __debugbreak(); }G_STMT_END -#elif defined (__alpha__) && !defined(__osf__) && defined (__GNUC__) && __GNUC__ >= 2 -# define G_BREAKPOINT() G_STMT_START{ __asm__ __volatile__ ("bpt"); }G_STMT_END -#else /* !__i386__ && !__alpha__ */ -# define G_BREAKPOINT() G_STMT_START{ raise (SIGTRAP); }G_STMT_END -#endif /* __i386__ */ - -G_END_DECLS - -#endif /* __G_BACKTRACE_H__ */ diff --git a/lib/win32/glib-2.20.4/glib/gbase64.c b/lib/win32/glib-2.20.4/glib/gbase64.c deleted file mode 100644 index bfdc76aa5ab42..0000000000000 --- a/lib/win32/glib-2.20.4/glib/gbase64.c +++ /dev/null @@ -1,423 +0,0 @@ -/* gbase64.c - Base64 encoding/decoding - * - * Copyright (C) 2006 Alexander Larsson - * Copyright (C) 2000-2003 Ximian Inc. - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - * - * This is based on code in camel, written by: - * Michael Zucchi - * Jeffrey Stedfast - */ - -#include "config.h" - -#include - -#include "gbase64.h" -#include "glib.h" -#include "glibintl.h" - -#include "galias.h" - -static const char base64_alphabet[] = - "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; - -/** - * g_base64_encode_step: - * @in: the binary data to encode - * @len: the length of @in - * @break_lines: whether to break long lines - * @out: pointer to destination buffer - * @state: Saved state between steps, initialize to 0 - * @save: Saved state between steps, initialize to 0 - * - * Incrementally encode a sequence of binary data into its Base-64 stringified - * representation. By calling this function multiple times you can convert - * data in chunks to avoid having to have the full encoded data in memory. - * - * When all of the data has been converted you must call - * g_base64_encode_close() to flush the saved state. - * - * The output buffer must be large enough to fit all the data that will - * be written to it. Due to the way base64 encodes you will need - * at least: (@len / 3 + 1) * 4 + 4 bytes (+ 4 may be needed in case of - * non-zero state). If you enable line-breaking you will need at least: - * ((@len / 3 + 1) * 4 + 4) / 72 + 1 bytes of extra space. - * - * @break_lines is typically used when putting base64-encoded data in emails. - * It breaks the lines at 72 columns instead of putting all of the text on - * the same line. This avoids problems with long lines in the email system. - * - * Return value: The number of bytes of output that was written - * - * Since: 2.12 - */ -gsize -g_base64_encode_step (const guchar *in, - gsize len, - gboolean break_lines, - gchar *out, - gint *state, - gint *save) -{ - char *outptr; - const guchar *inptr; - - g_return_val_if_fail (in != NULL, 0); - g_return_val_if_fail (out != NULL, 0); - g_return_val_if_fail (state != NULL, 0); - g_return_val_if_fail (save != NULL, 0); - - if (len <= 0) - return 0; - - inptr = in; - outptr = out; - - if (len + ((char *) save) [0] > 2) - { - const guchar *inend = in+len-2; - int c1, c2, c3; - int already; - - already = *state; - - switch (((char *) save) [0]) - { - case 1: - c1 = ((unsigned char *) save) [1]; - goto skip1; - case 2: - c1 = ((unsigned char *) save) [1]; - c2 = ((unsigned char *) save) [2]; - goto skip2; - } - - /* - * yes, we jump into the loop, no i'm not going to change it, - * it's beautiful! - */ - while (inptr < inend) - { - c1 = *inptr++; - skip1: - c2 = *inptr++; - skip2: - c3 = *inptr++; - *outptr++ = base64_alphabet [ c1 >> 2 ]; - *outptr++ = base64_alphabet [ c2 >> 4 | - ((c1&0x3) << 4) ]; - *outptr++ = base64_alphabet [ ((c2 &0x0f) << 2) | - (c3 >> 6) ]; - *outptr++ = base64_alphabet [ c3 & 0x3f ]; - /* this is a bit ugly ... */ - if (break_lines && (++already) >= 19) - { - *outptr++ = '\n'; - already = 0; - } - } - - ((char *)save)[0] = 0; - len = 2 - (inptr - inend); - *state = already; - } - - if (len>0) - { - char *saveout; - - /* points to the slot for the next char to save */ - saveout = & (((char *)save)[1]) + ((char *)save)[0]; - - /* len can only be 0 1 or 2 */ - switch(len) - { - case 2: *saveout++ = *inptr++; - case 1: *saveout++ = *inptr++; - } - ((char *)save)[0] += len; - } - - return outptr - out; -} - -/** - * g_base64_encode_close: - * @break_lines: whether to break long lines - * @out: pointer to destination buffer - * @state: Saved state from g_base64_encode_step() - * @save: Saved state from g_base64_encode_step() - * - * Flush the status from a sequence of calls to g_base64_encode_step(). - * - * Return value: The number of bytes of output that was written - * - * Since: 2.12 - */ -gsize -g_base64_encode_close (gboolean break_lines, - gchar *out, - gint *state, - gint *save) -{ - int c1, c2; - char *outptr = out; - - g_return_val_if_fail (out != NULL, 0); - g_return_val_if_fail (state != NULL, 0); - g_return_val_if_fail (save != NULL, 0); - - c1 = ((unsigned char *) save) [1]; - c2 = ((unsigned char *) save) [2]; - - switch (((char *) save) [0]) - { - case 2: - outptr [2] = base64_alphabet[ ( (c2 &0x0f) << 2 ) ]; - g_assert (outptr [2] != 0); - goto skip; - case 1: - outptr[2] = '='; - skip: - outptr [0] = base64_alphabet [ c1 >> 2 ]; - outptr [1] = base64_alphabet [ c2 >> 4 | ( (c1&0x3) << 4 )]; - outptr [3] = '='; - outptr += 4; - break; - } - if (break_lines) - *outptr++ = '\n'; - - *save = 0; - *state = 0; - - return outptr - out; -} - -/** - * g_base64_encode: - * @data: the binary data to encode - * @len: the length of @data - * - * Encode a sequence of binary data into its Base-64 stringified - * representation. - * - * Return value: a newly allocated, zero-terminated Base-64 encoded - * string representing @data. The returned string must - * be freed with g_free(). - * - * Since: 2.12 - */ -gchar * -g_base64_encode (const guchar *data, - gsize len) -{ - gchar *out; - gint state = 0, outlen; - gint save = 0; - - g_return_val_if_fail (data != NULL, NULL); - g_return_val_if_fail (len > 0, NULL); - - /* We can use a smaller limit here, since we know the saved state is 0, - +1 is needed for trailing \0, also check for unlikely integer overflow */ - if (len >= ((G_MAXSIZE - 1) / 4 - 1) * 3) - g_error("%s: input too large for Base64 encoding (%"G_GSIZE_FORMAT" chars)", - G_STRLOC, len); - - out = g_malloc ((len / 3 + 1) * 4 + 1); - - outlen = g_base64_encode_step (data, len, FALSE, out, &state, &save); - outlen += g_base64_encode_close (FALSE, out + outlen, &state, &save); - out[outlen] = '\0'; - - return (gchar *) out; -} - -static const unsigned char mime_base64_rank[256] = { - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255, 62,255,255,255, 63, - 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,255,255,255, 0,255,255, - 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, - 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,255,255,255,255,255, - 255, 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, 51,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -}; - -/** - * g_base64_decode_step: - * @in: binary input data - * @len: max length of @in data to decode - * @out: output buffer - * @state: Saved state between steps, initialize to 0 - * @save: Saved state between steps, initialize to 0 - * - * Incrementally decode a sequence of binary data from its Base-64 stringified - * representation. By calling this function multiple times you can convert - * data in chunks to avoid having to have the full encoded data in memory. - * - * The output buffer must be large enough to fit all the data that will - * be written to it. Since base64 encodes 3 bytes in 4 chars you need - * at least: (@len / 4) * 3 + 3 bytes (+ 3 may be needed in case of non-zero - * state). - * - * Return value: The number of bytes of output that was written - * - * Since: 2.12 - **/ -gsize -g_base64_decode_step (const gchar *in, - gsize len, - guchar *out, - gint *state, - guint *save) -{ - const guchar *inptr; - guchar *outptr; - const guchar *inend; - guchar c, rank; - guchar last[2]; - unsigned int v; - int i; - - g_return_val_if_fail (in != NULL, 0); - g_return_val_if_fail (out != NULL, 0); - g_return_val_if_fail (state != NULL, 0); - g_return_val_if_fail (save != NULL, 0); - - if (len <= 0) - return 0; - - inend = (const guchar *)in+len; - outptr = out; - - /* convert 4 base64 bytes to 3 normal bytes */ - v=*save; - i=*state; - inptr = (const guchar *)in; - last[0] = last[1] = 0; - while (inptr < inend) - { - c = *inptr++; - rank = mime_base64_rank [c]; - if (rank != 0xff) - { - last[1] = last[0]; - last[0] = c; - v = (v<<6) | rank; - i++; - if (i==4) - { - *outptr++ = v>>16; - if (last[1] != '=') - *outptr++ = v>>8; - if (last[0] != '=') - *outptr++ = v; - i=0; - } - } - } - - *save = v; - *state = i; - - return outptr - out; -} - -/** - * g_base64_decode: - * @text: zero-terminated string with base64 text to decode - * @out_len: The length of the decoded data is written here - * - * Decode a sequence of Base-64 encoded text into binary data - * - * Return value: a newly allocated buffer containing the binary data - * that @text represents. The returned buffer must - * be freed with g_free(). - * - * Since: 2.12 - */ -guchar * -g_base64_decode (const gchar *text, - gsize *out_len) -{ - guchar *ret; - gsize input_length; - gint state = 0; - guint save = 0; - - g_return_val_if_fail (text != NULL, NULL); - g_return_val_if_fail (out_len != NULL, NULL); - - input_length = strlen (text); - - g_return_val_if_fail (input_length > 1, NULL); - - /* We can use a smaller limit here, since we know the saved state is 0, - +1 used to avoid calling g_malloc0(0), and hence retruning NULL */ - ret = g_malloc0 ((input_length / 4) * 3 + 1); - - *out_len = g_base64_decode_step (text, input_length, ret, &state, &save); - - return ret; -} - -/** - * g_base64_decode_inplace: - * @text: zero-terminated string with base64 text to decode - * @out_len: The length of the decoded data is written here - * - * Decode a sequence of Base-64 encoded text into binary data - * by overwriting the input data. - * - * Return value: The binary data that @text responds. This pointer - * is the same as the input @text. - * - * Since: 2.20 - */ -guchar * -g_base64_decode_inplace (gchar *text, - gsize *out_len) -{ - gint input_length, state = 0; - guint save = 0; - - g_return_val_if_fail (text != NULL, NULL); - g_return_val_if_fail (out_len != NULL, NULL); - - input_length = strlen (text); - - g_return_val_if_fail (input_length > 1, NULL); - - *out_len = g_base64_decode_step (text, input_length, (guchar *) text, &state, &save); - - return text; -} - - -#define __G_BASE64_C__ -#include "galiasdef.c" diff --git a/lib/win32/glib-2.20.4/glib/gbase64.h b/lib/win32/glib-2.20.4/glib/gbase64.h deleted file mode 100644 index 2f7c49fdd90f6..0000000000000 --- a/lib/win32/glib-2.20.4/glib/gbase64.h +++ /dev/null @@ -1,57 +0,0 @@ -/* gbase64.h - Base64 coding functions - * - * Copyright (C) 2005 Alexander Larsson - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ - -#if defined(G_DISABLE_SINGLE_INCLUDES) && !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION) -#error "Only can be included directly." -#endif - -#ifndef __G_BASE64_H__ -#define __G_BASE64_H__ - -#include - -G_BEGIN_DECLS - -gsize g_base64_encode_step (const guchar *in, - gsize len, - gboolean break_lines, - gchar *out, - gint *state, - gint *save); -gsize g_base64_encode_close (gboolean break_lines, - gchar *out, - gint *state, - gint *save); -gchar* g_base64_encode (const guchar *data, - gsize len) G_GNUC_MALLOC; -gsize g_base64_decode_step (const gchar *in, - gsize len, - guchar *out, - gint *state, - guint *save); -guchar *g_base64_decode (const gchar *text, - gsize *out_len) G_GNUC_MALLOC; -guchar *g_base64_decode_inplace (gchar *text, - gsize *out_len); - - -G_END_DECLS - -#endif /* __G_BASE64_H__ */ diff --git a/lib/win32/glib-2.20.4/glib/gbookmarkfile.c b/lib/win32/glib-2.20.4/glib/gbookmarkfile.c deleted file mode 100644 index 01c7e639e8541..0000000000000 --- a/lib/win32/glib-2.20.4/glib/gbookmarkfile.c +++ /dev/null @@ -1,3709 +0,0 @@ -/* gbookmarkfile.c: parsing and building desktop bookmarks - * - * Copyright (C) 2005-2006 Emmanuele Bassi - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - */ - -#include "config.h" - -#include "gbookmarkfile.h" - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#ifdef HAVE_UNISTD_H -#include -#endif - -#include "gconvert.h" -#include "gdataset.h" -#include "gerror.h" -#include "gfileutils.h" -#include "ghash.h" -#include "glibintl.h" -#include "glist.h" -#include "gslist.h" -#include "gmain.h" -#include "gmarkup.h" -#include "gmem.h" -#include "gmessages.h" -#include "gshell.h" -#include "gslice.h" -#include "gstdio.h" -#include "gstring.h" -#include "gstrfuncs.h" -#include "gtimer.h" -#include "gutils.h" - -#include "galias.h" - -/* XBEL 1.0 standard entities */ -#define XBEL_VERSION "1.0" -#define XBEL_DTD_NICK "xbel" -#define XBEL_DTD_SYSTEM "+//IDN python.org//DTD XML Bookmark " \ - "Exchange Language 1.0//EN//XML" - -#define XBEL_DTD_URI "http://www.python.org/topics/xml/dtds/xbel-1.0.dtd" - -#define XBEL_ROOT_ELEMENT "xbel" -#define XBEL_FOLDER_ELEMENT "folder" /* unused */ -#define XBEL_BOOKMARK_ELEMENT "bookmark" -#define XBEL_ALIAS_ELEMENT "alias" /* unused */ -#define XBEL_SEPARATOR_ELEMENT "separator" /* unused */ -#define XBEL_TITLE_ELEMENT "title" -#define XBEL_DESC_ELEMENT "desc" -#define XBEL_INFO_ELEMENT "info" -#define XBEL_METADATA_ELEMENT "metadata" - -#define XBEL_VERSION_ATTRIBUTE "version" -#define XBEL_FOLDED_ATTRIBUTE "folded" /* unused */ -#define XBEL_OWNER_ATTRIBUTE "owner" -#define XBEL_ADDED_ATTRIBUTE "added" -#define XBEL_VISITED_ATTRIBUTE "visited" -#define XBEL_MODIFIED_ATTRIBUTE "modified" -#define XBEL_ID_ATTRIBUTE "id" -#define XBEL_HREF_ATTRIBUTE "href" -#define XBEL_REF_ATTRIBUTE "ref" /* unused */ - -#define XBEL_YES_VALUE "yes" -#define XBEL_NO_VALUE "no" - -/* Desktop bookmark spec entities */ -#define BOOKMARK_METADATA_OWNER "http://freedesktop.org" - -#define BOOKMARK_NAMESPACE_NAME "bookmark" -#define BOOKMARK_NAMESPACE_URI "http://www.freedesktop.org/standards/desktop-bookmarks" - -#define BOOKMARK_GROUPS_ELEMENT "groups" -#define BOOKMARK_GROUP_ELEMENT "group" -#define BOOKMARK_APPLICATIONS_ELEMENT "applications" -#define BOOKMARK_APPLICATION_ELEMENT "application" -#define BOOKMARK_ICON_ELEMENT "icon" -#define BOOKMARK_PRIVATE_ELEMENT "private" - -#define BOOKMARK_NAME_ATTRIBUTE "name" -#define BOOKMARK_EXEC_ATTRIBUTE "exec" -#define BOOKMARK_COUNT_ATTRIBUTE "count" -#define BOOKMARK_TIMESTAMP_ATTRIBUTE "timestamp" /* deprecated by "modified" */ -#define BOOKMARK_MODIFIED_ATTRIBUTE "modified" -#define BOOKMARK_HREF_ATTRIBUTE "href" -#define BOOKMARK_TYPE_ATTRIBUTE "type" - -/* Shared MIME Info entities */ -#define MIME_NAMESPACE_NAME "mime" -#define MIME_NAMESPACE_URI "http://www.freedesktop.org/standards/shared-mime-info" -#define MIME_TYPE_ELEMENT "mime-type" -#define MIME_TYPE_ATTRIBUTE "type" - - -typedef struct _BookmarkAppInfo BookmarkAppInfo; -typedef struct _BookmarkMetadata BookmarkMetadata; -typedef struct _BookmarkItem BookmarkItem; -typedef struct _ParseData ParseData; - -struct _BookmarkAppInfo -{ - gchar *name; - gchar *exec; - - guint count; - - time_t stamp; -}; - -struct _BookmarkMetadata -{ - gchar *mime_type; - - GList *groups; - - GList *applications; - GHashTable *apps_by_name; - - gchar *icon_href; - gchar *icon_mime; - - guint is_private : 1; -}; - -struct _BookmarkItem -{ - gchar *uri; - - gchar *title; - gchar *description; - - time_t added; - time_t modified; - time_t visited; - - BookmarkMetadata *metadata; -}; - -struct _GBookmarkFile -{ - gchar *title; - gchar *description; - - /* we store our items in a list and keep a copy inside - * an hash table for faster lookup performances - */ - GList *items; - GHashTable *items_by_uri; -}; - -/* parser state machine */ -enum -{ - STATE_STARTED = 0, - - STATE_ROOT, - STATE_BOOKMARK, - STATE_TITLE, - STATE_DESC, - STATE_INFO, - STATE_METADATA, - STATE_APPLICATIONS, - STATE_APPLICATION, - STATE_GROUPS, - STATE_GROUP, - STATE_MIME, - STATE_ICON, - - STATE_FINISHED -}; - -static void g_bookmark_file_init (GBookmarkFile *bookmark); -static void g_bookmark_file_clear (GBookmarkFile *bookmark); -static gboolean g_bookmark_file_parse (GBookmarkFile *bookmark, - const gchar *buffer, - gsize length, - GError **error); -static gchar * g_bookmark_file_dump (GBookmarkFile *bookmark, - gsize *length, - GError **error); -static BookmarkItem *g_bookmark_file_lookup_item (GBookmarkFile *bookmark, - const gchar *uri); -static void g_bookmark_file_add_item (GBookmarkFile *bookmark, - BookmarkItem *item, - GError **error); - -static time_t timestamp_from_iso8601 (const gchar *iso_date); -static gchar * timestamp_to_iso8601 (time_t timestamp); - -/******************************** - * BookmarkAppInfo * - * * - * Application metadata storage * - ********************************/ -static BookmarkAppInfo * -bookmark_app_info_new (const gchar *name) -{ - BookmarkAppInfo *retval; - - g_warn_if_fail (name != NULL); - - retval = g_slice_new (BookmarkAppInfo); - - retval->name = g_strdup (name); - retval->exec = NULL; - retval->count = 0; - retval->stamp = 0; - - return retval; -} - -static void -bookmark_app_info_free (BookmarkAppInfo *app_info) -{ - if (!app_info) - return; - - g_free (app_info->name); - g_free (app_info->exec); - - g_slice_free (BookmarkAppInfo, app_info); -} - -static gchar * -bookmark_app_info_dump (BookmarkAppInfo *app_info) -{ - gchar *retval; - gchar *name, *exec, *modified, *count; - - g_warn_if_fail (app_info != NULL); - - if (app_info->count == 0) - return NULL; - - name = g_markup_escape_text (app_info->name, -1); - exec = g_markup_escape_text (app_info->exec, -1); - modified = timestamp_to_iso8601 (app_info->stamp); - count = g_strdup_printf ("%u", app_info->count); - - retval = g_strconcat (" " - "<" BOOKMARK_NAMESPACE_NAME ":" BOOKMARK_APPLICATION_ELEMENT - " " BOOKMARK_NAME_ATTRIBUTE "=\"", name, "\"" - " " BOOKMARK_EXEC_ATTRIBUTE "=\"", exec, "\"" - " " BOOKMARK_MODIFIED_ATTRIBUTE "=\"", modified, "\"" - " " BOOKMARK_COUNT_ATTRIBUTE "=\"", count, "\"/>\n", - NULL); - - g_free (name); - g_free (exec); - g_free (modified); - g_free (count); - - return retval; -} - - -/*********************** - * BookmarkMetadata * - * * - * Metadata storage * - ***********************/ -static BookmarkMetadata * -bookmark_metadata_new (void) -{ - BookmarkMetadata *retval; - - retval = g_slice_new (BookmarkMetadata); - - retval->mime_type = NULL; - - retval->groups = NULL; - - retval->applications = NULL; - retval->apps_by_name = g_hash_table_new_full (g_str_hash, - g_str_equal, - NULL, - NULL); - - retval->is_private = FALSE; - - retval->icon_href = NULL; - retval->icon_mime = NULL; - - return retval; -} - -static void -bookmark_metadata_free (BookmarkMetadata *metadata) -{ - if (!metadata) - return; - - g_free (metadata->mime_type); - - if (metadata->groups) - { - g_list_foreach (metadata->groups, - (GFunc) g_free, - NULL); - g_list_free (metadata->groups); - } - - if (metadata->applications) - { - g_list_foreach (metadata->applications, - (GFunc) bookmark_app_info_free, - NULL); - g_list_free (metadata->applications); - } - - g_hash_table_destroy (metadata->apps_by_name); - - g_free (metadata->icon_href); - g_free (metadata->icon_mime); - - g_slice_free (BookmarkMetadata, metadata); -} - -static gchar * -bookmark_metadata_dump (BookmarkMetadata *metadata) -{ - GString *retval; - gchar *buffer; - - if (!metadata->applications) - return NULL; - - retval = g_string_sized_new (1024); - - /* metadata container */ - g_string_append (retval, - " " - "<" XBEL_METADATA_ELEMENT - " " XBEL_OWNER_ATTRIBUTE "=\"" BOOKMARK_METADATA_OWNER - "\">\n"); - - /* mime type */ - if (metadata->mime_type) { - buffer = g_strconcat (" " - "<" MIME_NAMESPACE_NAME ":" MIME_TYPE_ELEMENT " " - MIME_TYPE_ATTRIBUTE "=\"", metadata->mime_type, "\"/>\n", - NULL); - g_string_append (retval, buffer); - g_free (buffer); - } - - if (metadata->groups) - { - GList *l; - - /* open groups container */ - g_string_append (retval, - " " - "<" BOOKMARK_NAMESPACE_NAME - ":" BOOKMARK_GROUPS_ELEMENT ">\n"); - - for (l = g_list_last (metadata->groups); l != NULL; l = l->prev) - { - gchar *group_name; - - group_name = g_markup_escape_text ((gchar *) l->data, -1); - buffer = g_strconcat (" " - "<" BOOKMARK_NAMESPACE_NAME - ":" BOOKMARK_GROUP_ELEMENT ">", - group_name, - "\n", NULL); - g_string_append (retval, buffer); - - g_free (buffer); - g_free (group_name); - } - - /* close groups container */ - g_string_append (retval, - " " - "\n"); - } - - if (metadata->applications) - { - GList *l; - - /* open applications container */ - g_string_append (retval, - " " - "<" BOOKMARK_NAMESPACE_NAME - ":" BOOKMARK_APPLICATIONS_ELEMENT ">\n"); - - for (l = g_list_last (metadata->applications); l != NULL; l = l->prev) - { - BookmarkAppInfo *app_info = (BookmarkAppInfo *) l->data; - gchar *app_data; - - g_warn_if_fail (app_info != NULL); - - app_data = bookmark_app_info_dump (app_info); - - if (app_data) - { - retval = g_string_append (retval, app_data); - - g_free (app_data); - } - } - - /* close applications container */ - g_string_append (retval, - " " - "\n"); - } - - /* icon */ - if (metadata->icon_href) - { - if (!metadata->icon_mime) - metadata->icon_mime = g_strdup ("application/octet-stream"); - - buffer = g_strconcat (" " - "<" BOOKMARK_NAMESPACE_NAME - ":" BOOKMARK_ICON_ELEMENT - " " BOOKMARK_HREF_ATTRIBUTE "=\"", metadata->icon_href, - "\" " BOOKMARK_TYPE_ATTRIBUTE "=\"", metadata->icon_mime, "\"/>\n", NULL); - g_string_append (retval, buffer); - - g_free (buffer); - } - - /* private hint */ - if (metadata->is_private) - g_string_append (retval, - " " - "<" BOOKMARK_NAMESPACE_NAME - ":" BOOKMARK_PRIVATE_ELEMENT "/>\n"); - - /* close metadata container */ - g_string_append (retval, - " " - "\n"); - - return g_string_free (retval, FALSE); -} - -/****************************************************** - * BookmarkItem * - * * - * Storage for a single bookmark item inside the list * - ******************************************************/ -static BookmarkItem * -bookmark_item_new (const gchar *uri) -{ - BookmarkItem *item; - - g_warn_if_fail (uri != NULL); - - item = g_slice_new (BookmarkItem); - item->uri = g_strdup (uri); - - item->title = NULL; - item->description = NULL; - - item->added = (time_t) -1; - item->modified = (time_t) -1; - item->visited = (time_t) -1; - - item->metadata = NULL; - - return item; -} - -static void -bookmark_item_free (BookmarkItem *item) -{ - if (!item) - return; - - g_free (item->uri); - g_free (item->title); - g_free (item->description); - - if (item->metadata) - bookmark_metadata_free (item->metadata); - - g_slice_free (BookmarkItem, item); -} - -static gchar * -bookmark_item_dump (BookmarkItem *item) -{ - GString *retval; - gchar *added, *visited, *modified; - gchar *escaped_uri; - gchar *buffer; - - /* at this point, we must have at least a registered application; if we don't - * we don't screw up the bookmark file, and just skip this item - */ - if (!item->metadata || !item->metadata->applications) - { - g_warning ("Item for URI '%s' has no registered applications: skipping.\n", item->uri); - return NULL; - } - - retval = g_string_sized_new (4096); - - added = timestamp_to_iso8601 (item->added); - modified = timestamp_to_iso8601 (item->modified); - visited = timestamp_to_iso8601 (item->visited); - - escaped_uri = g_markup_escape_text (item->uri, -1); - - buffer = g_strconcat (" <" - XBEL_BOOKMARK_ELEMENT - " " - XBEL_HREF_ATTRIBUTE "=\"", escaped_uri, "\" " - XBEL_ADDED_ATTRIBUTE "=\"", added, "\" " - XBEL_MODIFIED_ATTRIBUTE "=\"", modified, "\" " - XBEL_VISITED_ATTRIBUTE "=\"", visited, "\">\n", - NULL); - - g_string_append (retval, buffer); - - g_free (escaped_uri); - g_free (visited); - g_free (modified); - g_free (added); - g_free (buffer); - - if (item->title) - { - gchar *escaped_title; - - escaped_title = g_markup_escape_text (item->title, -1); - buffer = g_strconcat (" " - "<" XBEL_TITLE_ELEMENT ">", - escaped_title, - "\n", - NULL); - g_string_append (retval, buffer); - - g_free (escaped_title); - g_free (buffer); - } - - if (item->description) - { - gchar *escaped_desc; - - escaped_desc = g_markup_escape_text (item->description, -1); - buffer = g_strconcat (" " - "<" XBEL_DESC_ELEMENT ">", - escaped_desc, - "\n", - NULL); - g_string_append (retval, buffer); - - g_free (escaped_desc); - g_free (buffer); - } - - if (item->metadata) - { - gchar *metadata; - - metadata = bookmark_metadata_dump (item->metadata); - if (metadata) - { - buffer = g_strconcat (" " - "<" XBEL_INFO_ELEMENT ">\n", - metadata, - " " - "\n", - NULL); - retval = g_string_append (retval, buffer); - - g_free (buffer); - g_free (metadata); - } - } - - g_string_append (retval, " \n"); - - return g_string_free (retval, FALSE); -} - -static BookmarkAppInfo * -bookmark_item_lookup_app_info (BookmarkItem *item, - const gchar *app_name) -{ - g_warn_if_fail (item != NULL && app_name != NULL); - - if (!item->metadata) - return NULL; - - return g_hash_table_lookup (item->metadata->apps_by_name, app_name); -} - -/************************* - * GBookmarkFile * - *************************/ - -static void -g_bookmark_file_init (GBookmarkFile *bookmark) -{ - bookmark->title = NULL; - bookmark->description = NULL; - - bookmark->items = NULL; - bookmark->items_by_uri = g_hash_table_new_full (g_str_hash, - g_str_equal, - NULL, - NULL); -} - -static void -g_bookmark_file_clear (GBookmarkFile *bookmark) -{ - g_free (bookmark->title); - g_free (bookmark->description); - - if (bookmark->items) - { - g_list_foreach (bookmark->items, - (GFunc) bookmark_item_free, - NULL); - g_list_free (bookmark->items); - - bookmark->items = NULL; - } - - if (bookmark->items_by_uri) - { - g_hash_table_destroy (bookmark->items_by_uri); - - bookmark->items_by_uri = NULL; - } -} - -struct _ParseData -{ - gint state; - - GHashTable *namespaces; - - GBookmarkFile *bookmark_file; - BookmarkItem *current_item; -}; - -static ParseData * -parse_data_new (void) -{ - ParseData *retval; - - retval = g_new (ParseData, 1); - - retval->state = STATE_STARTED; - retval->namespaces = g_hash_table_new_full (g_str_hash, g_str_equal, - (GDestroyNotify) g_free, - (GDestroyNotify) g_free); - retval->bookmark_file = NULL; - retval->current_item = NULL; - - return retval; -} - -static void -parse_data_free (ParseData *parse_data) -{ - g_hash_table_destroy (parse_data->namespaces); - - g_free (parse_data); -} - -#define IS_ATTRIBUTE(s,a) ((0 == strcmp ((s), (a)))) - -static void -parse_bookmark_element (GMarkupParseContext *context, - ParseData *parse_data, - const gchar **attribute_names, - const gchar **attribute_values, - GError **error) -{ - const gchar *uri, *added, *modified, *visited; - const gchar *attr; - gint i; - BookmarkItem *item; - GError *add_error; - - g_warn_if_fail ((parse_data != NULL) && (parse_data->state == STATE_BOOKMARK)); - - i = 0; - uri = added = modified = visited = NULL; - for (attr = attribute_names[i]; attr != NULL; attr = attribute_names[++i]) - { - if (IS_ATTRIBUTE (attr, XBEL_HREF_ATTRIBUTE)) - uri = attribute_values[i]; - else if (IS_ATTRIBUTE (attr, XBEL_ADDED_ATTRIBUTE)) - added = attribute_values[i]; - else if (IS_ATTRIBUTE (attr, XBEL_MODIFIED_ATTRIBUTE)) - modified = attribute_values[i]; - else if (IS_ATTRIBUTE (attr, XBEL_VISITED_ATTRIBUTE)) - visited = attribute_values[i]; - else - { - /* bookmark is defined by the XBEL spec, so we need - * to error out if the element has different or - * missing attributes - */ - g_set_error (error, G_MARKUP_ERROR, - G_MARKUP_ERROR_UNKNOWN_ATTRIBUTE, - _("Unexpected attribute '%s' for element '%s'"), - attr, - XBEL_BOOKMARK_ELEMENT); - return; - } - } - - if (!uri) - { - g_set_error (error, G_MARKUP_ERROR, - G_MARKUP_ERROR_INVALID_CONTENT, - _("Attribute '%s' of element '%s' not found"), - XBEL_HREF_ATTRIBUTE, - XBEL_BOOKMARK_ELEMENT); - return; - } - - g_warn_if_fail (parse_data->current_item == NULL); - - item = bookmark_item_new (uri); - - if (added) - item->added = timestamp_from_iso8601 (added); - - if (modified) - item->modified = timestamp_from_iso8601 (modified); - - if (visited) - item->visited = timestamp_from_iso8601 (visited); - - add_error = NULL; - g_bookmark_file_add_item (parse_data->bookmark_file, - item, - &add_error); - if (add_error) - { - bookmark_item_free (item); - - g_propagate_error (error, add_error); - - return; - } - - parse_data->current_item = item; -} - -static void -parse_application_element (GMarkupParseContext *context, - ParseData *parse_data, - const gchar **attribute_names, - const gchar **attribute_values, - GError **error) -{ - const gchar *name, *exec, *count, *stamp, *modified; - const gchar *attr; - gint i; - BookmarkItem *item; - BookmarkAppInfo *ai; - - g_warn_if_fail ((parse_data != NULL) && (parse_data->state == STATE_APPLICATION)); - - i = 0; - name = exec = count = stamp = modified = NULL; - for (attr = attribute_names[i]; attr != NULL; attr = attribute_names[++i]) - { - if (IS_ATTRIBUTE (attr, BOOKMARK_NAME_ATTRIBUTE)) - name = attribute_values[i]; - else if (IS_ATTRIBUTE (attr, BOOKMARK_EXEC_ATTRIBUTE)) - exec = attribute_values[i]; - else if (IS_ATTRIBUTE (attr, BOOKMARK_COUNT_ATTRIBUTE)) - count = attribute_values[i]; - else if (IS_ATTRIBUTE (attr, BOOKMARK_TIMESTAMP_ATTRIBUTE)) - stamp = attribute_values[i]; - else if (IS_ATTRIBUTE (attr, BOOKMARK_MODIFIED_ATTRIBUTE)) - modified = attribute_values[i]; - } - - /* the "name" and "exec" attributes are mandatory */ - if (!name) - { - g_set_error (error, G_MARKUP_ERROR, - G_MARKUP_ERROR_INVALID_CONTENT, - _("Attribute '%s' of element '%s' not found"), - BOOKMARK_NAME_ATTRIBUTE, - BOOKMARK_APPLICATION_ELEMENT); - return; - } - - if (!exec) - { - g_set_error (error, G_MARKUP_ERROR, - G_MARKUP_ERROR_INVALID_CONTENT, - _("Attribute '%s' of element '%s' not found"), - BOOKMARK_EXEC_ATTRIBUTE, - BOOKMARK_APPLICATION_ELEMENT); - return; - } - - g_warn_if_fail (parse_data->current_item != NULL); - item = parse_data->current_item; - - ai = bookmark_item_lookup_app_info (item, name); - if (!ai) - { - ai = bookmark_app_info_new (name); - - if (!item->metadata) - item->metadata = bookmark_metadata_new (); - - item->metadata->applications = g_list_prepend (item->metadata->applications, ai); - g_hash_table_replace (item->metadata->apps_by_name, ai->name, ai); - } - - ai->exec = g_strdup (exec); - - if (count) - ai->count = atoi (count); - else - ai->count = 1; - - if (modified) - ai->stamp = timestamp_from_iso8601 (modified); - else - { - /* the timestamp attribute has been deprecated but we still parse - * it for backward compatibility - */ - if (stamp) - ai->stamp = (time_t) atol (stamp); - else - ai->stamp = time (NULL); - } -} - -static void -parse_mime_type_element (GMarkupParseContext *context, - ParseData *parse_data, - const gchar **attribute_names, - const gchar **attribute_values, - GError **error) -{ - const gchar *type; - const gchar *attr; - gint i; - BookmarkItem *item; - - g_warn_if_fail ((parse_data != NULL) && (parse_data->state == STATE_MIME)); - - i = 0; - type = NULL; - for (attr = attribute_names[i]; attr != NULL; attr = attribute_names[++i]) - { - if (IS_ATTRIBUTE (attr, MIME_TYPE_ATTRIBUTE)) - type = attribute_values[i]; - } - - if (!type) - type = "application/octet-stream"; - - g_warn_if_fail (parse_data->current_item != NULL); - item = parse_data->current_item; - - if (!item->metadata) - item->metadata = bookmark_metadata_new (); - - item->metadata->mime_type = g_strdup (type); -} - -static void -parse_icon_element (GMarkupParseContext *context, - ParseData *parse_data, - const gchar **attribute_names, - const gchar **attribute_values, - GError **error) -{ - const gchar *href; - const gchar *type; - const gchar *attr; - gint i; - BookmarkItem *item; - - g_warn_if_fail ((parse_data != NULL) && (parse_data->state == STATE_ICON)); - - i = 0; - href = NULL; - type = NULL; - for (attr = attribute_names[i]; attr != NULL; attr = attribute_names[++i]) - { - if (IS_ATTRIBUTE (attr, BOOKMARK_HREF_ATTRIBUTE)) - href = attribute_values[i]; - else if (IS_ATTRIBUTE (attr, BOOKMARK_TYPE_ATTRIBUTE)) - type = attribute_values[i]; - } - - /* the "href" attribute is mandatory */ - if (!href) - { - g_set_error (error, G_MARKUP_ERROR, - G_MARKUP_ERROR_INVALID_CONTENT, - _("Attribute '%s' of element '%s' not found"), - BOOKMARK_HREF_ATTRIBUTE, - BOOKMARK_ICON_ELEMENT); - return; - } - - if (!type) - type = "application/octet-stream"; - - g_warn_if_fail (parse_data->current_item != NULL); - item = parse_data->current_item; - - if (!item->metadata) - item->metadata = bookmark_metadata_new (); - - item->metadata->icon_href = g_strdup (href); - item->metadata->icon_mime = g_strdup (type); -} - -/* scans through the attributes of an element for the "xmlns" pragma, and - * adds any resulting namespace declaration to a per-parser hashtable, using - * the namespace name as a key for the namespace URI; if no key was found, - * the namespace is considered as default, and stored under the "default" key. - * - * FIXME: this works on the assumption that the generator of the XBEL file - * is either this code or is smart enough to place the namespace declarations - * inside the main root node or inside the metadata node and does not redefine - * a namespace inside an inner node; this does *not* conform to the - * XML-NS standard, although is a close approximation. In order to make this - * conformant to the XML-NS specification we should use a per-element - * namespace table inside GMarkup and ask it to resolve the namespaces for us. - */ -static void -map_namespace_to_name (ParseData *parse_data, - const gchar **attribute_names, - const gchar **attribute_values) -{ - const gchar *attr; - gint i; - - g_warn_if_fail (parse_data != NULL); - - if (!attribute_names || !attribute_names[0]) - return; - - i = 0; - for (attr = attribute_names[i]; attr; attr = attribute_names[++i]) - { - if (g_str_has_prefix (attr, "xmlns")) - { - gchar *namespace_name, *namespace_uri; - gchar *p; - - p = g_utf8_strchr (attr, -1, ':'); - if (p) - p = g_utf8_next_char (p); - else - p = "default"; - - namespace_name = g_strdup (p); - namespace_uri = g_strdup (attribute_values[i]); - - g_hash_table_replace (parse_data->namespaces, - namespace_name, - namespace_uri); - } - } -} - -/* checks whether @element_full is equal to @element. - * - * if @namespace is set, it tries to resolve the namespace to a known URI, - * and if found is prepended to the element name, from which is separated - * using the character specified in the @sep parameter. - */ -static gboolean -is_element_full (ParseData *parse_data, - const gchar *element_full, - const gchar *namespace, - const gchar *element, - const gchar sep) -{ - gchar *ns_uri, *ns_name; - const gchar *p, *element_name; - gboolean retval; - - g_warn_if_fail (parse_data != NULL); - g_warn_if_fail (element_full != NULL); - - if (!element) - return FALSE; - - /* no namespace requested: dumb element compare */ - if (!namespace) - return (0 == strcmp (element_full, element)); - - /* search for namespace separator; if none found, assume we are under the - * default namespace, and set ns_name to our "default" marker; if no default - * namespace has been set, just do a plain comparison between @full_element - * and @element. - */ - p = g_utf8_strchr (element_full, -1, ':'); - if (p) - { - ns_name = g_strndup (element_full, p - element_full); - element_name = g_utf8_next_char (p); - } - else - { - ns_name = g_strdup ("default"); - element_name = element_full; - } - - ns_uri = g_hash_table_lookup (parse_data->namespaces, ns_name); - if (!ns_uri) - { - /* no default namespace found */ - g_free (ns_name); - - return (0 == strcmp (element_full, element)); - } - - retval = (0 == strcmp (ns_uri, namespace) && - 0 == strcmp (element_name, element)); - - g_free (ns_name); - - return retval; -} - -#define IS_ELEMENT(p,s,e) (is_element_full ((p), (s), NULL, (e), '\0')) -#define IS_ELEMENT_NS(p,s,n,e) (is_element_full ((p), (s), (n), (e), '|')) - -static void -start_element_raw_cb (GMarkupParseContext *context, - const gchar *element_name, - const gchar **attribute_names, - const gchar **attribute_values, - gpointer user_data, - GError **error) -{ - ParseData *parse_data = (ParseData *) user_data; - - /* we must check for namespace declarations first - * - * XXX - we could speed up things by checking for namespace declarations - * only on the root node, where they usually are; this would probably break - * on streams not produced by us or by "smart" generators - */ - map_namespace_to_name (parse_data, attribute_names, attribute_values); - - switch (parse_data->state) - { - case STATE_STARTED: - if (IS_ELEMENT (parse_data, element_name, XBEL_ROOT_ELEMENT)) - { - const gchar *attr; - gint i; - - i = 0; - for (attr = attribute_names[i]; attr; attr = attribute_names[++i]) - { - if ((IS_ATTRIBUTE (attr, XBEL_VERSION_ATTRIBUTE)) && - (0 == strcmp (attribute_values[i], XBEL_VERSION))) - parse_data->state = STATE_ROOT; - } - } - else - g_set_error (error, G_MARKUP_ERROR, - G_MARKUP_ERROR_INVALID_CONTENT, - _("Unexpected tag '%s', tag '%s' expected"), - element_name, XBEL_ROOT_ELEMENT); - break; - case STATE_ROOT: - if (IS_ELEMENT (parse_data, element_name, XBEL_TITLE_ELEMENT)) - parse_data->state = STATE_TITLE; - else if (IS_ELEMENT (parse_data, element_name, XBEL_DESC_ELEMENT)) - parse_data->state = STATE_DESC; - else if (IS_ELEMENT (parse_data, element_name, XBEL_BOOKMARK_ELEMENT)) - { - GError *inner_error = NULL; - - parse_data->state = STATE_BOOKMARK; - - parse_bookmark_element (context, - parse_data, - attribute_names, - attribute_values, - &inner_error); - if (inner_error) - g_propagate_error (error, inner_error); - } - else - g_set_error (error, G_MARKUP_ERROR, - G_MARKUP_ERROR_INVALID_CONTENT, - _("Unexpected tag '%s' inside '%s'"), - element_name, - XBEL_ROOT_ELEMENT); - break; - case STATE_BOOKMARK: - if (IS_ELEMENT (parse_data, element_name, XBEL_TITLE_ELEMENT)) - parse_data->state = STATE_TITLE; - else if (IS_ELEMENT (parse_data, element_name, XBEL_DESC_ELEMENT)) - parse_data->state = STATE_DESC; - else if (IS_ELEMENT (parse_data, element_name, XBEL_INFO_ELEMENT)) - parse_data->state = STATE_INFO; - else - g_set_error (error, G_MARKUP_ERROR, - G_MARKUP_ERROR_INVALID_CONTENT, - _("Unexpected tag '%s' inside '%s'"), - element_name, - XBEL_BOOKMARK_ELEMENT); - break; - case STATE_INFO: - if (IS_ELEMENT (parse_data, element_name, XBEL_METADATA_ELEMENT)) - { - const gchar *attr; - gint i; - - i = 0; - for (attr = attribute_names[i]; attr; attr = attribute_names[++i]) - { - if ((IS_ATTRIBUTE (attr, XBEL_OWNER_ATTRIBUTE)) && - (0 == strcmp (attribute_values[i], BOOKMARK_METADATA_OWNER))) - { - parse_data->state = STATE_METADATA; - - if (!parse_data->current_item->metadata) - parse_data->current_item->metadata = bookmark_metadata_new (); - } - } - } - else - g_set_error (error, G_MARKUP_ERROR, - G_MARKUP_ERROR_INVALID_CONTENT, - _("Unexpected tag '%s', tag '%s' expected"), - element_name, - XBEL_METADATA_ELEMENT); - break; - case STATE_METADATA: - if (IS_ELEMENT_NS (parse_data, element_name, BOOKMARK_NAMESPACE_URI, BOOKMARK_APPLICATIONS_ELEMENT)) - parse_data->state = STATE_APPLICATIONS; - else if (IS_ELEMENT_NS (parse_data, element_name, BOOKMARK_NAMESPACE_URI, BOOKMARK_GROUPS_ELEMENT)) - parse_data->state = STATE_GROUPS; - else if (IS_ELEMENT_NS (parse_data, element_name, BOOKMARK_NAMESPACE_URI, BOOKMARK_PRIVATE_ELEMENT)) - parse_data->current_item->metadata->is_private = TRUE; - else if (IS_ELEMENT_NS (parse_data, element_name, BOOKMARK_NAMESPACE_URI, BOOKMARK_ICON_ELEMENT)) - { - GError *inner_error = NULL; - - parse_data->state = STATE_ICON; - - parse_icon_element (context, - parse_data, - attribute_names, - attribute_values, - &inner_error); - if (inner_error) - g_propagate_error (error, inner_error); - } - else if (IS_ELEMENT_NS (parse_data, element_name, MIME_NAMESPACE_URI, MIME_TYPE_ELEMENT)) - { - GError *inner_error = NULL; - - parse_data->state = STATE_MIME; - - parse_mime_type_element (context, - parse_data, - attribute_names, - attribute_values, - &inner_error); - if (inner_error) - g_propagate_error (error, inner_error); - } - else - g_set_error (error, G_MARKUP_ERROR, - G_MARKUP_ERROR_UNKNOWN_ELEMENT, - _("Unexpected tag '%s' inside '%s'"), - element_name, - XBEL_METADATA_ELEMENT); - break; - case STATE_APPLICATIONS: - if (IS_ELEMENT_NS (parse_data, element_name, BOOKMARK_NAMESPACE_URI, BOOKMARK_APPLICATION_ELEMENT)) - { - GError *inner_error = NULL; - - parse_data->state = STATE_APPLICATION; - - parse_application_element (context, - parse_data, - attribute_names, - attribute_values, - &inner_error); - if (inner_error) - g_propagate_error (error, inner_error); - } - else - g_set_error (error, G_MARKUP_ERROR, - G_MARKUP_ERROR_INVALID_CONTENT, - _("Unexpected tag '%s', tag '%s' expected"), - element_name, - BOOKMARK_APPLICATION_ELEMENT); - break; - case STATE_GROUPS: - if (IS_ELEMENT_NS (parse_data, element_name, BOOKMARK_NAMESPACE_URI, BOOKMARK_GROUP_ELEMENT)) - parse_data->state = STATE_GROUP; - else - g_set_error (error, G_MARKUP_ERROR, - G_MARKUP_ERROR_INVALID_CONTENT, - _("Unexpected tag '%s', tag '%s' expected"), - element_name, - BOOKMARK_GROUP_ELEMENT); - break; - case STATE_ICON: - if (IS_ELEMENT_NS (parse_data, element_name, BOOKMARK_NAMESPACE_URI, BOOKMARK_ICON_ELEMENT)) - { - GError *inner_error = NULL; - - parse_icon_element (context, - parse_data, - attribute_names, - attribute_values, - &inner_error); - if (inner_error) - g_propagate_error (error, inner_error); - } - else - g_set_error (error, G_MARKUP_ERROR, - G_MARKUP_ERROR_UNKNOWN_ELEMENT, - _("Unexpected tag '%s' inside '%s'"), - element_name, - XBEL_METADATA_ELEMENT); - break; - default: - g_warn_if_reached (); - break; - } -} - -static void -end_element_raw_cb (GMarkupParseContext *context, - const gchar *element_name, - gpointer user_data, - GError **error) -{ - ParseData *parse_data = (ParseData *) user_data; - - if (IS_ELEMENT (parse_data, element_name, XBEL_ROOT_ELEMENT)) - parse_data->state = STATE_FINISHED; - else if (IS_ELEMENT (parse_data, element_name, XBEL_BOOKMARK_ELEMENT)) - { - parse_data->current_item = NULL; - - parse_data->state = STATE_ROOT; - } - else if ((IS_ELEMENT (parse_data, element_name, XBEL_INFO_ELEMENT)) || - (IS_ELEMENT (parse_data, element_name, XBEL_TITLE_ELEMENT)) || - (IS_ELEMENT (parse_data, element_name, XBEL_DESC_ELEMENT))) - { - if (parse_data->current_item) - parse_data->state = STATE_BOOKMARK; - else - parse_data->state = STATE_ROOT; - } - else if (IS_ELEMENT (parse_data, element_name, XBEL_METADATA_ELEMENT)) - parse_data->state = STATE_INFO; - else if (IS_ELEMENT_NS (parse_data, element_name, - BOOKMARK_NAMESPACE_URI, - BOOKMARK_APPLICATION_ELEMENT)) - parse_data->state = STATE_APPLICATIONS; - else if (IS_ELEMENT_NS (parse_data, element_name, - BOOKMARK_NAMESPACE_URI, - BOOKMARK_GROUP_ELEMENT)) - parse_data->state = STATE_GROUPS; - else if ((IS_ELEMENT_NS (parse_data, element_name, BOOKMARK_NAMESPACE_URI, BOOKMARK_APPLICATIONS_ELEMENT)) || - (IS_ELEMENT_NS (parse_data, element_name, BOOKMARK_NAMESPACE_URI, BOOKMARK_GROUPS_ELEMENT)) || - (IS_ELEMENT_NS (parse_data, element_name, BOOKMARK_NAMESPACE_URI, BOOKMARK_PRIVATE_ELEMENT)) || - (IS_ELEMENT_NS (parse_data, element_name, BOOKMARK_NAMESPACE_URI, BOOKMARK_ICON_ELEMENT)) || - (IS_ELEMENT_NS (parse_data, element_name, MIME_NAMESPACE_URI, MIME_TYPE_ELEMENT))) - parse_data->state = STATE_METADATA; -} - -static void -text_raw_cb (GMarkupParseContext *context, - const gchar *text, - gsize length, - gpointer user_data, - GError **error) -{ - ParseData *parse_data = (ParseData *) user_data; - gchar *payload; - - payload = g_strndup (text, length); - - switch (parse_data->state) - { - case STATE_TITLE: - if (parse_data->current_item) - { - g_free (parse_data->current_item->title); - parse_data->current_item->title = g_strdup (payload); - } - else - { - g_free (parse_data->bookmark_file->title); - parse_data->bookmark_file->title = g_strdup (payload); - } - break; - case STATE_DESC: - if (parse_data->current_item) - { - g_free (parse_data->current_item->description); - parse_data->current_item->description = g_strdup (payload); - } - else - { - g_free (parse_data->bookmark_file->description); - parse_data->bookmark_file->description = g_strdup (payload); - } - break; - case STATE_GROUP: - { - GList *groups; - - g_warn_if_fail (parse_data->current_item != NULL); - - if (!parse_data->current_item->metadata) - parse_data->current_item->metadata = bookmark_metadata_new (); - - groups = parse_data->current_item->metadata->groups; - parse_data->current_item->metadata->groups = g_list_prepend (groups, g_strdup (payload)); - } - break; - case STATE_ROOT: - case STATE_BOOKMARK: - case STATE_INFO: - case STATE_METADATA: - case STATE_APPLICATIONS: - case STATE_APPLICATION: - case STATE_GROUPS: - case STATE_MIME: - case STATE_ICON: - break; - default: - g_warn_if_reached (); - break; - } - - g_free (payload); -} - -static const GMarkupParser markup_parser = -{ - start_element_raw_cb, /* start_element */ - end_element_raw_cb, /* end_element */ - text_raw_cb, /* text */ - NULL, /* passthrough */ - NULL -}; - -static gboolean -g_bookmark_file_parse (GBookmarkFile *bookmark, - const gchar *buffer, - gsize length, - GError **error) -{ - GMarkupParseContext *context; - ParseData *parse_data; - GError *parse_error, *end_error; - gboolean retval; - - g_warn_if_fail (bookmark != NULL); - - if (!buffer) - return FALSE; - - if (length == (gsize) -1) - length = strlen (buffer); - - parse_data = parse_data_new (); - parse_data->bookmark_file = bookmark; - - context = g_markup_parse_context_new (&markup_parser, - 0, - parse_data, - (GDestroyNotify) parse_data_free); - - parse_error = NULL; - retval = g_markup_parse_context_parse (context, - buffer, - length, - &parse_error); - if (!retval) - { - g_propagate_error (error, parse_error); - - return FALSE; - } - - end_error = NULL; - retval = g_markup_parse_context_end_parse (context, &end_error); - if (!retval) - { - g_propagate_error (error, end_error); - - return FALSE; - } - - g_markup_parse_context_free (context); - - return TRUE; -} - -static gchar * -g_bookmark_file_dump (GBookmarkFile *bookmark, - gsize *length, - GError **error) -{ - GString *retval; - gchar *buffer; - GList *l; - - retval = g_string_sized_new (4096); - - g_string_append (retval, - "\n" -#if 0 - /* XXX - do we really need the doctype? */ - "\n" -#endif - "<" XBEL_ROOT_ELEMENT " " XBEL_VERSION_ATTRIBUTE "=\"" XBEL_VERSION "\"\n" - " xmlns:" BOOKMARK_NAMESPACE_NAME "=\"" BOOKMARK_NAMESPACE_URI "\"\n" - " xmlns:" MIME_NAMESPACE_NAME "=\"" MIME_NAMESPACE_URI "\"\n>"); - - if (bookmark->title) - { - gchar *escaped_title; - - escaped_title = g_markup_escape_text (bookmark->title, -1); - - buffer = g_strconcat (" " - "<" XBEL_TITLE_ELEMENT ">", - escaped_title, - "\n", NULL); - - g_string_append (retval, buffer); - - g_free (buffer); - g_free (escaped_title); - } - - if (bookmark->description) - { - gchar *escaped_desc; - - escaped_desc = g_markup_escape_text (bookmark->description, -1); - - buffer = g_strconcat (" " - "<" XBEL_DESC_ELEMENT ">", - escaped_desc, - "\n", NULL); - g_string_append (retval, buffer); - - g_free (buffer); - g_free (escaped_desc); - } - - if (!bookmark->items) - goto out; - else - retval = g_string_append (retval, "\n"); - - /* the items are stored in reverse order */ - for (l = g_list_last (bookmark->items); - l != NULL; - l = l->prev) - { - BookmarkItem *item = (BookmarkItem *) l->data; - gchar *item_dump; - - item_dump = bookmark_item_dump (item); - if (!item_dump) - continue; - - retval = g_string_append (retval, item_dump); - - g_free (item_dump); - } - -out: - g_string_append (retval, ""); - - if (length) - *length = retval->len; - - return g_string_free (retval, FALSE); -} - -/************** - * Misc * - **************/ - -/* converts a Unix timestamp in a ISO 8601 compliant string; you - * should free the returned string. - */ -static gchar * -timestamp_to_iso8601 (time_t timestamp) -{ - GTimeVal stamp; - - if (timestamp == (time_t) -1) - g_get_current_time (&stamp); - else - { - stamp.tv_sec = timestamp; - stamp.tv_usec = 0; - } - - return g_time_val_to_iso8601 (&stamp); -} - -static time_t -timestamp_from_iso8601 (const gchar *iso_date) -{ - GTimeVal stamp; - - if (!g_time_val_from_iso8601 (iso_date, &stamp)) - return (time_t) -1; - - return (time_t) stamp.tv_sec; -} - - - -GQuark -g_bookmark_file_error_quark (void) -{ - return g_quark_from_static_string ("g-bookmark-file-error-quark"); -} - - - -/******************** - * Public API * - ********************/ - -/** - * g_bookmark_file_new: - * - * Creates a new empty #GBookmarkFile object. - * - * Use g_bookmark_file_load_from_file(), g_bookmark_file_load_from_data() - * or g_bookmark_file_load_from_data_dirs() to read an existing bookmark - * file. - * - * Return value: an empty #GBookmarkFile - * - * Since: 2.12 - */ -GBookmarkFile * -g_bookmark_file_new (void) -{ - GBookmarkFile *bookmark; - - bookmark = g_new (GBookmarkFile, 1); - - g_bookmark_file_init (bookmark); - - return bookmark; -} - -/** - * g_bookmark_file_free: - * @bookmark: a #GBookmarkFile - * - * Frees a #GBookmarkFile. - * - * Since: 2.12 - */ -void -g_bookmark_file_free (GBookmarkFile *bookmark) -{ - if (!bookmark) - return; - - g_bookmark_file_clear (bookmark); - - g_free (bookmark); -} - -/** - * g_bookmark_file_load_from_data: - * @bookmark: an empty #GBookmarkFile struct - * @data: desktop bookmarks loaded in memory - * @length: the length of @data in bytes - * @error: return location for a #GError, or %NULL - * - * Loads a bookmark file from memory into an empty #GBookmarkFile - * structure. If the object cannot be created then @error is set to a - * #GBookmarkFileError. - * - * Return value: %TRUE if a desktop bookmark could be loaded. - * - * Since: 2.12 - */ -gboolean -g_bookmark_file_load_from_data (GBookmarkFile *bookmark, - const gchar *data, - gsize length, - GError **error) -{ - GError *parse_error; - gboolean retval; - - g_return_val_if_fail (bookmark != NULL, FALSE); - g_return_val_if_fail (data != NULL, FALSE); - g_return_val_if_fail (length != 0, FALSE); - - if (length == (gsize) -1) - length = strlen (data); - - if (bookmark->items) - { - g_bookmark_file_clear (bookmark); - g_bookmark_file_init (bookmark); - } - - parse_error = NULL; - retval = g_bookmark_file_parse (bookmark, data, length, &parse_error); - if (!retval) - { - g_propagate_error (error, parse_error); - - return FALSE; - } - - return TRUE; -} - -/** - * g_bookmark_file_load_from_file: - * @bookmark: an empty #GBookmarkFile struct - * @filename: the path of a filename to load, in the GLib file name encoding - * @error: return location for a #GError, or %NULL - * - * Loads a desktop bookmark file into an empty #GBookmarkFile structure. - * If the file could not be loaded then @error is set to either a #GFileError - * or #GBookmarkFileError. - * - * Return value: %TRUE if a desktop bookmark file could be loaded - * - * Since: 2.12 - */ -gboolean -g_bookmark_file_load_from_file (GBookmarkFile *bookmark, - const gchar *filename, - GError **error) -{ - gchar *buffer; - gsize len; - GError *read_error; - gboolean retval; - - g_return_val_if_fail (bookmark != NULL, FALSE); - g_return_val_if_fail (filename != NULL, FALSE); - - read_error = NULL; - g_file_get_contents (filename, &buffer, &len, &read_error); - if (read_error) - { - g_propagate_error (error, read_error); - - return FALSE; - } - - read_error = NULL; - retval = g_bookmark_file_load_from_data (bookmark, - buffer, - len, - &read_error); - if (read_error) - { - g_propagate_error (error, read_error); - - g_free (buffer); - - return FALSE; - } - - g_free (buffer); - - return retval; -} - - -/* Iterates through all the directories in *dirs trying to - * find file. When it successfully locates file, returns a - * string its absolute path. It also leaves the unchecked - * directories in *dirs. You should free the returned string - * - * Adapted from gkeyfile.c - */ -static gchar * -find_file_in_data_dirs (const gchar *file, - gchar ***dirs, - GError **error) -{ - gchar **data_dirs, *data_dir, *path; - - path = NULL; - - if (dirs == NULL) - return NULL; - - data_dirs = *dirs; - path = NULL; - while (data_dirs && (data_dir = *data_dirs) && !path) - { - gchar *candidate_file, *sub_dir; - - candidate_file = (gchar *) file; - sub_dir = g_strdup (""); - while (candidate_file != NULL && !path) - { - gchar *p; - - path = g_build_filename (data_dir, sub_dir, - candidate_file, NULL); - - candidate_file = strchr (candidate_file, '-'); - - if (candidate_file == NULL) - break; - - candidate_file++; - - g_free (sub_dir); - sub_dir = g_strndup (file, candidate_file - file - 1); - - for (p = sub_dir; *p != '\0'; p++) - { - if (*p == '-') - *p = G_DIR_SEPARATOR; - } - } - g_free (sub_dir); - data_dirs++; - } - - *dirs = data_dirs; - - if (!path) - { - g_set_error_literal (error, G_BOOKMARK_FILE_ERROR, - G_BOOKMARK_FILE_ERROR_FILE_NOT_FOUND, - _("No valid bookmark file found in data dirs")); - - return NULL; - } - - return path; -} - - -/** - * g_bookmark_file_load_from_data_dirs: - * @bookmark: a #GBookmarkFile - * @file: a relative path to a filename to open and parse - * @full_path: return location for a string containing the full path - * of the file, or %NULL - * @error: return location for a #GError, or %NULL - * - * This function looks for a desktop bookmark file named @file in the - * paths returned from g_get_user_data_dir() and g_get_system_data_dirs(), - * loads the file into @bookmark and returns the file's full path in - * @full_path. If the file could not be loaded then an %error is - * set to either a #GFileError or #GBookmarkFileError. - * - * Return value: %TRUE if a key file could be loaded, %FALSE othewise - * - * Since: 2.12 - */ -gboolean -g_bookmark_file_load_from_data_dirs (GBookmarkFile *bookmark, - const gchar *file, - gchar **full_path, - GError **error) -{ - GError *file_error = NULL; - gchar **all_data_dirs, **data_dirs; - const gchar *user_data_dir; - const gchar * const * system_data_dirs; - gsize i, j; - gchar *output_path; - gboolean found_file; - - g_return_val_if_fail (bookmark != NULL, FALSE); - g_return_val_if_fail (!g_path_is_absolute (file), FALSE); - - user_data_dir = g_get_user_data_dir (); - system_data_dirs = g_get_system_data_dirs (); - all_data_dirs = g_new0 (gchar *, g_strv_length ((gchar **)system_data_dirs) + 2); - - i = 0; - all_data_dirs[i++] = g_strdup (user_data_dir); - - j = 0; - while (system_data_dirs[j] != NULL) - all_data_dirs[i++] = g_strdup (system_data_dirs[j++]); - - found_file = FALSE; - data_dirs = all_data_dirs; - output_path = NULL; - while (*data_dirs != NULL && !found_file) - { - g_free (output_path); - - output_path = find_file_in_data_dirs (file, &data_dirs, &file_error); - - if (file_error) - { - g_propagate_error (error, file_error); - break; - } - - found_file = g_bookmark_file_load_from_file (bookmark, - output_path, - &file_error); - if (file_error) - { - g_propagate_error (error, file_error); - break; - } - } - - if (found_file && full_path) - *full_path = output_path; - else - g_free (output_path); - - g_strfreev (all_data_dirs); - - return found_file; -} - - -/** - * g_bookmark_file_to_data: - * @bookmark: a #GBookmarkFile - * @length: return location for the length of the returned string, or %NULL - * @error: return location for a #GError, or %NULL - * - * This function outputs @bookmark as a string. - * - * Return value: a newly allocated string holding - * the contents of the #GBookmarkFile - * - * Since: 2.12 - */ -gchar * -g_bookmark_file_to_data (GBookmarkFile *bookmark, - gsize *length, - GError **error) -{ - GError *write_error = NULL; - gchar *retval; - - g_return_val_if_fail (bookmark != NULL, NULL); - - retval = g_bookmark_file_dump (bookmark, length, &write_error); - if (write_error) - { - g_propagate_error (error, write_error); - - return NULL; - } - - return retval; -} - -/** - * g_bookmark_file_to_file: - * @bookmark: a #GBookmarkFile - * @filename: path of the output file - * @error: return location for a #GError, or %NULL - * - * This function outputs @bookmark into a file. The write process is - * guaranteed to be atomic by using g_file_set_contents() internally. - * - * Return value: %TRUE if the file was successfully written. - * - * Since: 2.12 - */ -gboolean -g_bookmark_file_to_file (GBookmarkFile *bookmark, - const gchar *filename, - GError **error) -{ - gchar *data; - GError *data_error, *write_error; - gsize len; - gboolean retval; - - g_return_val_if_fail (bookmark != NULL, FALSE); - g_return_val_if_fail (filename != NULL, FALSE); - - data_error = NULL; - data = g_bookmark_file_to_data (bookmark, &len, &data_error); - if (data_error) - { - g_propagate_error (error, data_error); - - return FALSE; - } - - write_error = NULL; - g_file_set_contents (filename, data, len, &write_error); - if (write_error) - { - g_propagate_error (error, write_error); - - retval = FALSE; - } - else - retval = TRUE; - - g_free (data); - - return retval; -} - -static BookmarkItem * -g_bookmark_file_lookup_item (GBookmarkFile *bookmark, - const gchar *uri) -{ - g_warn_if_fail (bookmark != NULL && uri != NULL); - - return g_hash_table_lookup (bookmark->items_by_uri, uri); -} - -/* this function adds a new item to the list */ -static void -g_bookmark_file_add_item (GBookmarkFile *bookmark, - BookmarkItem *item, - GError **error) -{ - g_warn_if_fail (bookmark != NULL); - g_warn_if_fail (item != NULL); - - /* this should never happen; and if it does, then we are - * screwing up something big time. - */ - if (G_UNLIKELY (g_bookmark_file_has_item (bookmark, item->uri))) - { - g_set_error (error, G_BOOKMARK_FILE_ERROR, - G_BOOKMARK_FILE_ERROR_INVALID_URI, - _("A bookmark for URI '%s' already exists"), - item->uri); - return; - } - - bookmark->items = g_list_prepend (bookmark->items, item); - - g_hash_table_replace (bookmark->items_by_uri, - item->uri, - item); - - if (item->added == (time_t) -1) - item->added = time (NULL); - - if (item->modified == (time_t) -1) - item->modified = time (NULL); -} - -/** - * g_bookmark_file_remove_item: - * @bookmark: a #GBookmarkFile - * @uri: a valid URI - * @error: return location for a #GError, or %NULL - * - * Removes the bookmark for @uri from the bookmark file @bookmark. - * - * Return value: %TRUE if the bookmark was removed successfully. - * - * Since: 2.12 - */ -gboolean -g_bookmark_file_remove_item (GBookmarkFile *bookmark, - const gchar *uri, - GError **error) -{ - BookmarkItem *item; - - g_return_val_if_fail (bookmark != NULL, FALSE); - g_return_val_if_fail (uri != NULL, FALSE); - - item = g_bookmark_file_lookup_item (bookmark, uri); - - if (!item) - { - g_set_error (error, G_BOOKMARK_FILE_ERROR, - G_BOOKMARK_FILE_ERROR_URI_NOT_FOUND, - _("No bookmark found for URI '%s'"), - uri); - return FALSE; - } - - bookmark->items = g_list_remove (bookmark->items, item); - g_hash_table_remove (bookmark->items_by_uri, item->uri); - - bookmark_item_free (item); - - return TRUE; -} - -/** - * g_bookmark_file_has_item: - * @bookmark: a #GBookmarkFile - * @uri: a valid URI - * - * Looks whether the desktop bookmark has an item with its URI set to @uri. - * - * Return value: %TRUE if @uri is inside @bookmark, %FALSE otherwise - * - * Since: 2.12 - */ -gboolean -g_bookmark_file_has_item (GBookmarkFile *bookmark, - const gchar *uri) -{ - g_return_val_if_fail (bookmark != NULL, FALSE); - g_return_val_if_fail (uri != NULL, FALSE); - - return (NULL != g_hash_table_lookup (bookmark->items_by_uri, uri)); -} - -/** - * g_bookmark_file_get_uris: - * @bookmark: a #GBookmarkFile - * @length: return location for the number of returned URIs, or %NULL - * - * Returns all URIs of the bookmarks in the bookmark file @bookmark. - * The array of returned URIs will be %NULL-terminated, so @length may - * optionally be %NULL. - * - * Return value: a newly allocated %NULL-terminated array of strings. - * Use g_strfreev() to free it. - * - * Since: 2.12 - */ -gchar ** -g_bookmark_file_get_uris (GBookmarkFile *bookmark, - gsize *length) -{ - GList *l; - gchar **uris; - gsize i, n_items; - - g_return_val_if_fail (bookmark != NULL, NULL); - - n_items = g_list_length (bookmark->items); - uris = g_new0 (gchar *, n_items + 1); - - /* the items are stored in reverse order, so we walk the list backward */ - for (l = g_list_last (bookmark->items), i = 0; l != NULL; l = l->prev) - { - BookmarkItem *item = (BookmarkItem *) l->data; - - g_warn_if_fail (item != NULL); - - uris[i++] = g_strdup (item->uri); - } - uris[i] = NULL; - - if (length) - *length = i; - - return uris; -} - -/** - * g_bookmark_file_set_title: - * @bookmark: a #GBookmarkFile - * @uri: a valid URI or %NULL - * @title: a UTF-8 encoded string - * - * Sets @title as the title of the bookmark for @uri inside the - * bookmark file @bookmark. - * - * If @uri is %NULL, the title of @bookmark is set. - * - * If a bookmark for @uri cannot be found then it is created. - * - * Since: 2.12 - */ -void -g_bookmark_file_set_title (GBookmarkFile *bookmark, - const gchar *uri, - const gchar *title) -{ - g_return_if_fail (bookmark != NULL); - - if (!uri) - { - g_free (bookmark->title); - bookmark->title = g_strdup (title); - } - else - { - BookmarkItem *item; - - item = g_bookmark_file_lookup_item (bookmark, uri); - if (!item) - { - item = bookmark_item_new (uri); - g_bookmark_file_add_item (bookmark, item, NULL); - } - - g_free (item->title); - item->title = g_strdup (title); - - item->modified = time (NULL); - } -} - -/** - * g_bookmark_file_get_title: - * @bookmark: a #GBookmarkFile - * @uri: a valid URI or %NULL - * @error: return location for a #GError, or %NULL - * - * Returns the title of the bookmark for @uri. - * - * If @uri is %NULL, the title of @bookmark is returned. - * - * In the event the URI cannot be found, %NULL is returned and - * @error is set to #G_BOOKMARK_FILE_ERROR_URI_NOT_FOUND. - * - * Return value: a newly allocated string or %NULL if the specified - * URI cannot be found. - * - * Since: 2.12 - */ -gchar * -g_bookmark_file_get_title (GBookmarkFile *bookmark, - const gchar *uri, - GError **error) -{ - BookmarkItem *item; - - g_return_val_if_fail (bookmark != NULL, NULL); - - if (!uri) - return g_strdup (bookmark->title); - - item = g_bookmark_file_lookup_item (bookmark, uri); - if (!item) - { - g_set_error (error, G_BOOKMARK_FILE_ERROR, - G_BOOKMARK_FILE_ERROR_URI_NOT_FOUND, - _("No bookmark found for URI '%s'"), - uri); - return NULL; - } - - return g_strdup (item->title); -} - -/** - * g_bookmark_file_set_description: - * @bookmark: a #GBookmarkFile - * @uri: a valid URI or %NULL - * @description: a string - * - * Sets @description as the description of the bookmark for @uri. - * - * If @uri is %NULL, the description of @bookmark is set. - * - * If a bookmark for @uri cannot be found then it is created. - * - * Since: 2.12 - */ -void -g_bookmark_file_set_description (GBookmarkFile *bookmark, - const gchar *uri, - const gchar *description) -{ - g_return_if_fail (bookmark != NULL); - - if (!uri) - { - g_free (bookmark->description); - bookmark->description = g_strdup (description); - } - else - { - BookmarkItem *item; - - item = g_bookmark_file_lookup_item (bookmark, uri); - if (!item) - { - item = bookmark_item_new (uri); - g_bookmark_file_add_item (bookmark, item, NULL); - } - - g_free (item->description); - item->description = g_strdup (description); - - item->modified = time (NULL); - } -} - -/** - * g_bookmark_file_get_description: - * @bookmark: a #GBookmarkFile - * @uri: a valid URI - * @error: return location for a #GError, or %NULL - * - * Retrieves the description of the bookmark for @uri. - * - * In the event the URI cannot be found, %NULL is returned and - * @error is set to #G_BOOKMARK_FILE_ERROR_URI_NOT_FOUND. - * - * Return value: a newly allocated string or %NULL if the specified - * URI cannot be found. - * - * Since: 2.12 - */ -gchar * -g_bookmark_file_get_description (GBookmarkFile *bookmark, - const gchar *uri, - GError **error) -{ - BookmarkItem *item; - - g_return_val_if_fail (bookmark != NULL, NULL); - - if (!uri) - return g_strdup (bookmark->description); - - item = g_bookmark_file_lookup_item (bookmark, uri); - if (!item) - { - g_set_error (error, G_BOOKMARK_FILE_ERROR, - G_BOOKMARK_FILE_ERROR_URI_NOT_FOUND, - _("No bookmark found for URI '%s'"), - uri); - return NULL; - } - - return g_strdup (item->description); -} - -/** - * g_bookmark_file_set_mime_type: - * @bookmark: a #GBookmarkFile - * @uri: a valid URI - * @mime_type: a MIME type - * - * Sets @mime_type as the MIME type of the bookmark for @uri. - * - * If a bookmark for @uri cannot be found then it is created. - * - * Since: 2.12 - */ -void -g_bookmark_file_set_mime_type (GBookmarkFile *bookmark, - const gchar *uri, - const gchar *mime_type) -{ - BookmarkItem *item; - - g_return_if_fail (bookmark != NULL); - g_return_if_fail (uri != NULL); - g_return_if_fail (mime_type != NULL); - - item = g_bookmark_file_lookup_item (bookmark, uri); - if (!item) - { - item = bookmark_item_new (uri); - g_bookmark_file_add_item (bookmark, item, NULL); - } - - if (!item->metadata) - item->metadata = bookmark_metadata_new (); - - g_free (item->metadata->mime_type); - - item->metadata->mime_type = g_strdup (mime_type); - item->modified = time (NULL); -} - -/** - * g_bookmark_file_get_mime_type: - * @bookmark: a #GBookmarkFile - * @uri: a valid URI - * @error: return location for a #GError, or %NULL - * - * Retrieves the MIME type of the resource pointed by @uri. - * - * In the event the URI cannot be found, %NULL is returned and - * @error is set to #G_BOOKMARK_FILE_ERROR_URI_NOT_FOUND. In the - * event that the MIME type cannot be found, %NULL is returned and - * @error is set to #G_BOOKMARK_FILE_ERROR_INVALID_VALUE. - * - * Return value: a newly allocated string or %NULL if the specified - * URI cannot be found. - * - * Since: 2.12 - */ -gchar * -g_bookmark_file_get_mime_type (GBookmarkFile *bookmark, - const gchar *uri, - GError **error) -{ - BookmarkItem *item; - - g_return_val_if_fail (bookmark != NULL, NULL); - g_return_val_if_fail (uri != NULL, NULL); - - item = g_bookmark_file_lookup_item (bookmark, uri); - if (!item) - { - g_set_error (error, G_BOOKMARK_FILE_ERROR, - G_BOOKMARK_FILE_ERROR_URI_NOT_FOUND, - _("No bookmark found for URI '%s'"), - uri); - return NULL; - } - - if (!item->metadata) - { - g_set_error (error, G_BOOKMARK_FILE_ERROR, - G_BOOKMARK_FILE_ERROR_INVALID_VALUE, - _("No MIME type defined in the bookmark for URI '%s'"), - uri); - return NULL; - } - - return g_strdup (item->metadata->mime_type); -} - -/** - * g_bookmark_file_set_is_private: - * @bookmark: a #GBookmarkFile - * @uri: a valid URI - * @is_private: %TRUE if the bookmark should be marked as private - * - * Sets the private flag of the bookmark for @uri. - * - * If a bookmark for @uri cannot be found then it is created. - * - * Since: 2.12 - */ -void -g_bookmark_file_set_is_private (GBookmarkFile *bookmark, - const gchar *uri, - gboolean is_private) -{ - BookmarkItem *item; - - g_return_if_fail (bookmark != NULL); - g_return_if_fail (uri != NULL); - - item = g_bookmark_file_lookup_item (bookmark, uri); - if (!item) - { - item = bookmark_item_new (uri); - g_bookmark_file_add_item (bookmark, item, NULL); - } - - if (!item->metadata) - item->metadata = bookmark_metadata_new (); - - item->metadata->is_private = (is_private == TRUE); - item->modified = time (NULL); -} - -/** - * g_bookmark_file_get_is_private: - * @bookmark: a #GBookmarkFile - * @uri: a valid URI - * @error: return location for a #GError, or %NULL - * - * Gets whether the private flag of the bookmark for @uri is set. - * - * In the event the URI cannot be found, %FALSE is returned and - * @error is set to #G_BOOKMARK_FILE_ERROR_URI_NOT_FOUND. In the - * event that the private flag cannot be found, %FALSE is returned and - * @error is set to #G_BOOKMARK_FILE_ERROR_INVALID_VALUE. - * - * Return value: %TRUE if the private flag is set, %FALSE otherwise. - * - * Since: 2.12 - */ -gboolean -g_bookmark_file_get_is_private (GBookmarkFile *bookmark, - const gchar *uri, - GError **error) -{ - BookmarkItem *item; - - g_return_val_if_fail (bookmark != NULL, FALSE); - g_return_val_if_fail (uri != NULL, FALSE); - - item = g_bookmark_file_lookup_item (bookmark, uri); - if (!item) - { - g_set_error (error, G_BOOKMARK_FILE_ERROR, - G_BOOKMARK_FILE_ERROR_URI_NOT_FOUND, - _("No bookmark found for URI '%s'"), - uri); - return FALSE; - } - - if (!item->metadata) - { - g_set_error (error, G_BOOKMARK_FILE_ERROR, - G_BOOKMARK_FILE_ERROR_INVALID_VALUE, - _("No private flag has been defined in bookmark for URI '%s'"), - uri); - return FALSE; - } - - return item->metadata->is_private; -} - -/** - * g_bookmark_file_set_added: - * @bookmark: a #GBookmarkFile - * @uri: a valid URI - * @added: a timestamp or -1 to use the current time - * - * Sets the time the bookmark for @uri was added into @bookmark. - * - * If no bookmark for @uri is found then it is created. - * - * Since: 2.12 - */ -void -g_bookmark_file_set_added (GBookmarkFile *bookmark, - const gchar *uri, - time_t added) -{ - BookmarkItem *item; - - g_return_if_fail (bookmark != NULL); - g_return_if_fail (uri != NULL); - - item = g_bookmark_file_lookup_item (bookmark, uri); - if (!item) - { - item = bookmark_item_new (uri); - g_bookmark_file_add_item (bookmark, item, NULL); - } - - if (added == (time_t) -1) - time (&added); - - item->added = added; - item->modified = added; -} - -/** - * g_bookmark_file_get_added: - * @bookmark: a #GBookmarkFile - * @uri: a valid URI - * @error: return location for a #GError, or %NULL - * - * Gets the time the bookmark for @uri was added to @bookmark - * - * In the event the URI cannot be found, -1 is returned and - * @error is set to #G_BOOKMARK_FILE_ERROR_URI_NOT_FOUND. - * - * Return value: a timestamp - * - * Since: 2.12 - */ -time_t -g_bookmark_file_get_added (GBookmarkFile *bookmark, - const gchar *uri, - GError **error) -{ - BookmarkItem *item; - - g_return_val_if_fail (bookmark != NULL, (time_t) -1); - g_return_val_if_fail (uri != NULL, (time_t) -1); - - item = g_bookmark_file_lookup_item (bookmark, uri); - if (!item) - { - g_set_error (error, G_BOOKMARK_FILE_ERROR, - G_BOOKMARK_FILE_ERROR_URI_NOT_FOUND, - _("No bookmark found for URI '%s'"), - uri); - return (time_t) -1; - } - - return item->added; -} - -/** - * g_bookmark_file_set_modified: - * @bookmark: a #GBookmarkFile - * @uri: a valid URI - * @modified: a timestamp or -1 to use the current time - * - * Sets the last time the bookmark for @uri was last modified. - * - * If no bookmark for @uri is found then it is created. - * - * The "modified" time should only be set when the bookmark's meta-data - * was actually changed. Every function of #GBookmarkFile that - * modifies a bookmark also changes the modification time, except for - * g_bookmark_file_set_visited(). - * - * Since: 2.12 - */ -void -g_bookmark_file_set_modified (GBookmarkFile *bookmark, - const gchar *uri, - time_t modified) -{ - BookmarkItem *item; - - g_return_if_fail (bookmark != NULL); - g_return_if_fail (uri != NULL); - - item = g_bookmark_file_lookup_item (bookmark, uri); - if (!item) - { - item = bookmark_item_new (uri); - g_bookmark_file_add_item (bookmark, item, NULL); - } - - if (modified == (time_t) -1) - time (&modified); - - item->modified = modified; -} - -/** - * g_bookmark_file_get_modified: - * @bookmark: a #GBookmarkFile - * @uri: a valid URI - * @error: return location for a #GError, or %NULL - * - * Gets the time when the bookmark for @uri was last modified. - * - * In the event the URI cannot be found, -1 is returned and - * @error is set to #G_BOOKMARK_FILE_ERROR_URI_NOT_FOUND. - * - * Return value: a timestamp - * - * Since: 2.12 - */ -time_t -g_bookmark_file_get_modified (GBookmarkFile *bookmark, - const gchar *uri, - GError **error) -{ - BookmarkItem *item; - - g_return_val_if_fail (bookmark != NULL, (time_t) -1); - g_return_val_if_fail (uri != NULL, (time_t) -1); - - item = g_bookmark_file_lookup_item (bookmark, uri); - if (!item) - { - g_set_error (error, G_BOOKMARK_FILE_ERROR, - G_BOOKMARK_FILE_ERROR_URI_NOT_FOUND, - _("No bookmark found for URI '%s'"), - uri); - return (time_t) -1; - } - - return item->modified; -} - -/** - * g_bookmark_file_set_visited: - * @bookmark: a #GBookmarkFile - * @uri: a valid URI - * @visited: a timestamp or -1 to use the current time - * - * Sets the time the bookmark for @uri was last visited. - * - * If no bookmark for @uri is found then it is created. - * - * The "visited" time should only be set if the bookmark was launched, - * either using the command line retrieved by g_bookmark_file_get_app_info() - * or by the default application for the bookmark's MIME type, retrieved - * using g_bookmark_file_get_mime_type(). Changing the "visited" time - * does not affect the "modified" time. - * - * Since: 2.12 - */ -void -g_bookmark_file_set_visited (GBookmarkFile *bookmark, - const gchar *uri, - time_t visited) -{ - BookmarkItem *item; - - g_return_if_fail (bookmark != NULL); - g_return_if_fail (uri != NULL); - - item = g_bookmark_file_lookup_item (bookmark, uri); - if (!item) - { - item = bookmark_item_new (uri); - g_bookmark_file_add_item (bookmark, item, NULL); - } - - if (visited == (time_t) -1) - time (&visited); - - item->visited = visited; -} - -/** - * g_bookmark_file_get_visited: - * @bookmark: a #GBookmarkFile - * @uri: a valid URI - * @error: return location for a #GError, or %NULL - * - * Gets the time the bookmark for @uri was last visited. - * - * In the event the URI cannot be found, -1 is returned and - * @error is set to #G_BOOKMARK_FILE_ERROR_URI_NOT_FOUND. - * - * Return value: a timestamp. - * - * Since: 2.12 - */ -time_t -g_bookmark_file_get_visited (GBookmarkFile *bookmark, - const gchar *uri, - GError **error) -{ - BookmarkItem *item; - - g_return_val_if_fail (bookmark != NULL, (time_t) -1); - g_return_val_if_fail (uri != NULL, (time_t) -1); - - item = g_bookmark_file_lookup_item (bookmark, uri); - if (!item) - { - g_set_error (error, G_BOOKMARK_FILE_ERROR, - G_BOOKMARK_FILE_ERROR_URI_NOT_FOUND, - _("No bookmark found for URI '%s'"), - uri); - return (time_t) -1; - } - - return item->visited; -} - -/** - * g_bookmark_file_has_group: - * @bookmark: a #GBookmarkFile - * @uri: a valid URI - * @group: the group name to be searched - * @error: return location for a #GError, or %NULL - * - * Checks whether @group appears in the list of groups to which - * the bookmark for @uri belongs to. - * - * In the event the URI cannot be found, %FALSE is returned and - * @error is set to #G_BOOKMARK_FILE_ERROR_URI_NOT_FOUND. - * - * Return value: %TRUE if @group was found. - * - * Since: 2.12 - */ -gboolean -g_bookmark_file_has_group (GBookmarkFile *bookmark, - const gchar *uri, - const gchar *group, - GError **error) -{ - BookmarkItem *item; - GList *l; - - g_return_val_if_fail (bookmark != NULL, FALSE); - g_return_val_if_fail (uri != NULL, FALSE); - - item = g_bookmark_file_lookup_item (bookmark, uri); - if (!item) - { - g_set_error (error, G_BOOKMARK_FILE_ERROR, - G_BOOKMARK_FILE_ERROR_URI_NOT_FOUND, - _("No bookmark found for URI '%s'"), - uri); - return FALSE; - } - - if (!item->metadata) - return FALSE; - - for (l = item->metadata->groups; l != NULL; l = l->next) - { - if (strcmp (l->data, group) == 0) - return TRUE; - } - - return FALSE; - -} - -/** - * g_bookmark_file_add_group: - * @bookmark: a #GBookmarkFile - * @uri: a valid URI - * @group: the group name to be added - * - * Adds @group to the list of groups to which the bookmark for @uri - * belongs to. - * - * If no bookmark for @uri is found then it is created. - * - * Since: 2.12 - */ -void -g_bookmark_file_add_group (GBookmarkFile *bookmark, - const gchar *uri, - const gchar *group) -{ - BookmarkItem *item; - - g_return_if_fail (bookmark != NULL); - g_return_if_fail (uri != NULL); - g_return_if_fail (group != NULL && group[0] != '\0'); - - item = g_bookmark_file_lookup_item (bookmark, uri); - if (!item) - { - item = bookmark_item_new (uri); - g_bookmark_file_add_item (bookmark, item, NULL); - } - - if (!item->metadata) - item->metadata = bookmark_metadata_new (); - - if (!g_bookmark_file_has_group (bookmark, uri, group, NULL)) - { - item->metadata->groups = g_list_prepend (item->metadata->groups, - g_strdup (group)); - - item->modified = time (NULL); - } -} - -/** - * g_bookmark_file_remove_group: - * @bookmark: a #GBookmarkFile - * @uri: a valid URI - * @group: the group name to be removed - * @error: return location for a #GError, or %NULL - * - * Removes @group from the list of groups to which the bookmark - * for @uri belongs to. - * - * In the event the URI cannot be found, %FALSE is returned and - * @error is set to #G_BOOKMARK_FILE_ERROR_URI_NOT_FOUND. - * In the event no group was defined, %FALSE is returned and - * @error is set to #G_BOOKMARK_FILE_ERROR_INVALID_VALUE. - * - * Return value: %TRUE if @group was successfully removed. - * - * Since: 2.12 - */ -gboolean -g_bookmark_file_remove_group (GBookmarkFile *bookmark, - const gchar *uri, - const gchar *group, - GError **error) -{ - BookmarkItem *item; - GList *l; - - g_return_val_if_fail (bookmark != NULL, FALSE); - g_return_val_if_fail (uri != NULL, FALSE); - - item = g_bookmark_file_lookup_item (bookmark, uri); - if (!item) - { - g_set_error (error, G_BOOKMARK_FILE_ERROR, - G_BOOKMARK_FILE_ERROR_URI_NOT_FOUND, - _("No bookmark found for URI '%s'"), - uri); - return FALSE; - } - - if (!item->metadata) - { - g_set_error (error, G_BOOKMARK_FILE_ERROR, - G_BOOKMARK_FILE_ERROR_INVALID_VALUE, - _("No groups set in bookmark for URI '%s'"), - uri); - return FALSE; - } - - for (l = item->metadata->groups; l != NULL; l = l->next) - { - if (strcmp (l->data, group) == 0) - { - item->metadata->groups = g_list_remove_link (item->metadata->groups, l); - g_free (l->data); - g_list_free_1 (l); - - item->modified = time (NULL); - - return TRUE; - } - } - - return FALSE; -} - -/** - * g_bookmark_file_set_groups: - * @bookmark: a #GBookmarkFile - * @uri: an item's URI - * @groups: an array of group names, or %NULL to remove all groups - * @length: number of group name values in @groups - * - * Sets a list of group names for the item with URI @uri. Each previously - * set group name list is removed. - * - * If @uri cannot be found then an item for it is created. - * - * Since: 2.12 - */ -void -g_bookmark_file_set_groups (GBookmarkFile *bookmark, - const gchar *uri, - const gchar **groups, - gsize length) -{ - BookmarkItem *item; - gsize i; - - g_return_if_fail (bookmark != NULL); - g_return_if_fail (uri != NULL); - g_return_if_fail (groups != NULL); - - item = g_bookmark_file_lookup_item (bookmark, uri); - if (!item) - { - item = bookmark_item_new (uri); - g_bookmark_file_add_item (bookmark, item, NULL); - } - - if (!item->metadata) - item->metadata = bookmark_metadata_new (); - - if (item->metadata->groups != NULL) - { - g_list_foreach (item->metadata->groups, - (GFunc) g_free, - NULL); - g_list_free (item->metadata->groups); - item->metadata->groups = NULL; - } - - if (groups) - { - for (i = 0; groups[i] != NULL && i < length; i++) - item->metadata->groups = g_list_append (item->metadata->groups, - g_strdup (groups[i])); - } - - item->modified = time (NULL); -} - -/** - * g_bookmark_file_get_groups: - * @bookmark: a #GBookmarkFile - * @uri: a valid URI - * @length: return location for the length of the returned string, or %NULL - * @error: return location for a #GError, or %NULL - * - * Retrieves the list of group names of the bookmark for @uri. - * - * In the event the URI cannot be found, %NULL is returned and - * @error is set to #G_BOOKMARK_FILE_ERROR_URI_NOT_FOUND. - * - * The returned array is %NULL terminated, so @length may optionally - * be %NULL. - * - * Return value: a newly allocated %NULL-terminated array of group names. - * Use g_strfreev() to free it. - * - * Since: 2.12 - */ -gchar ** -g_bookmark_file_get_groups (GBookmarkFile *bookmark, - const gchar *uri, - gsize *length, - GError **error) -{ - BookmarkItem *item; - GList *l; - gsize len, i; - gchar **retval; - - g_return_val_if_fail (bookmark != NULL, NULL); - g_return_val_if_fail (uri != NULL, NULL); - - item = g_bookmark_file_lookup_item (bookmark, uri); - if (!item) - { - g_set_error (error, G_BOOKMARK_FILE_ERROR, - G_BOOKMARK_FILE_ERROR_URI_NOT_FOUND, - _("No bookmark found for URI '%s'"), - uri); - return NULL; - } - - if (!item->metadata) - { - if (length) - *length = 0; - - return NULL; - } - - len = g_list_length (item->metadata->groups); - retval = g_new0 (gchar *, len + 1); - for (l = g_list_last (item->metadata->groups), i = 0; - l != NULL; - l = l->prev) - { - gchar *group_name = (gchar *) l->data; - - g_warn_if_fail (group_name != NULL); - - retval[i++] = g_strdup (group_name); - } - retval[i] = NULL; - - if (length) - *length = len; - - return retval; -} - -/** - * g_bookmark_file_add_application: - * @bookmark: a #GBookmarkFile - * @uri: a valid URI - * @name: the name of the application registering the bookmark - * or %NULL - * @exec: command line to be used to launch the bookmark or %NULL - * - * Adds the application with @name and @exec to the list of - * applications that have registered a bookmark for @uri into - * @bookmark. - * - * Every bookmark inside a #GBookmarkFile must have at least an - * application registered. Each application must provide a name, a - * command line useful for launching the bookmark, the number of times - * the bookmark has been registered by the application and the last - * time the application registered this bookmark. - * - * If @name is %NULL, the name of the application will be the - * same returned by g_get_application_name(); if @exec is %NULL, the - * command line will be a composition of the program name as - * returned by g_get_prgname() and the "%u" modifier, which will be - * expanded to the bookmark's URI. - * - * This function will automatically take care of updating the - * registrations count and timestamping in case an application - * with the same @name had already registered a bookmark for - * @uri inside @bookmark. - * - * If no bookmark for @uri is found, one is created. - * - * Since: 2.12 - */ -void -g_bookmark_file_add_application (GBookmarkFile *bookmark, - const gchar *uri, - const gchar *name, - const gchar *exec) -{ - BookmarkItem *item; - gchar *app_name, *app_exec; - - g_return_if_fail (bookmark != NULL); - g_return_if_fail (uri != NULL); - - item = g_bookmark_file_lookup_item (bookmark, uri); - if (!item) - { - item = bookmark_item_new (uri); - g_bookmark_file_add_item (bookmark, item, NULL); - } - - if (name && name[0] != '\0') - app_name = g_strdup (name); - else - app_name = g_strdup (g_get_application_name ()); - - if (exec && exec[0] != '\0') - app_exec = g_strdup (exec); - else - app_exec = g_strjoin (" ", g_get_prgname(), "%u", NULL); - - g_bookmark_file_set_app_info (bookmark, uri, - app_name, - app_exec, - -1, - (time_t) -1, - NULL); - - g_free (app_exec); - g_free (app_name); -} - -/** - * g_bookmark_file_remove_application: - * @bookmark: a #GBookmarkFile - * @uri: a valid URI - * @name: the name of the application - * @error: return location for a #GError or %NULL - * - * Removes application registered with @name from the list of applications - * that have registered a bookmark for @uri inside @bookmark. - * - * In the event the URI cannot be found, %FALSE is returned and - * @error is set to #G_BOOKMARK_FILE_ERROR_URI_NOT_FOUND. - * In the event that no application with name @app_name has registered - * a bookmark for @uri, %FALSE is returned and error is set to - * #G_BOOKMARK_FILE_ERROR_APP_NOT_REGISTERED. - * - * Return value: %TRUE if the application was successfully removed. - * - * Since: 2.12 - */ -gboolean -g_bookmark_file_remove_application (GBookmarkFile *bookmark, - const gchar *uri, - const gchar *name, - GError **error) -{ - GError *set_error; - gboolean retval; - - g_return_val_if_fail (bookmark != NULL, FALSE); - g_return_val_if_fail (uri != NULL, FALSE); - g_return_val_if_fail (name != NULL, FALSE); - - set_error = NULL; - retval = g_bookmark_file_set_app_info (bookmark, uri, - name, - "", - 0, - (time_t) -1, - &set_error); - if (set_error) - { - g_propagate_error (error, set_error); - - return FALSE; - } - - return retval; -} - -/** - * g_bookmark_file_has_application: - * @bookmark: a #GBookmarkFile - * @uri: a valid URI - * @name: the name of the application - * @error: return location for a #GError or %NULL - * - * Checks whether the bookmark for @uri inside @bookmark has been - * registered by application @name. - * - * In the event the URI cannot be found, %FALSE is returned and - * @error is set to #G_BOOKMARK_FILE_ERROR_URI_NOT_FOUND. - * - * Return value: %TRUE if the application @name was found - * - * Since: 2.12 - */ -gboolean -g_bookmark_file_has_application (GBookmarkFile *bookmark, - const gchar *uri, - const gchar *name, - GError **error) -{ - BookmarkItem *item; - - g_return_val_if_fail (bookmark != NULL, FALSE); - g_return_val_if_fail (uri != NULL, FALSE); - g_return_val_if_fail (name != NULL, FALSE); - - item = g_bookmark_file_lookup_item (bookmark, uri); - if (!item) - { - g_set_error (error, G_BOOKMARK_FILE_ERROR, - G_BOOKMARK_FILE_ERROR_URI_NOT_FOUND, - _("No bookmark found for URI '%s'"), - uri); - return FALSE; - } - - return (NULL != bookmark_item_lookup_app_info (item, name)); -} - -/** - * g_bookmark_file_set_app_info: - * @bookmark: a #GBookmarkFile - * @uri: a valid URI - * @name: an application's name - * @exec: an application's command line - * @count: the number of registrations done for this application - * @stamp: the time of the last registration for this application - * @error: return location for a #GError or %NULL - * - * Sets the meta-data of application @name inside the list of - * applications that have registered a bookmark for @uri inside - * @bookmark. - * - * You should rarely use this function; use g_bookmark_file_add_application() - * and g_bookmark_file_remove_application() instead. - * - * @name can be any UTF-8 encoded string used to identify an - * application. - * @exec can have one of these two modifiers: "%f", which will - * be expanded as the local file name retrieved from the bookmark's - * URI; "%u", which will be expanded as the bookmark's URI. - * The expansion is done automatically when retrieving the stored - * command line using the g_bookmark_file_get_app_info() function. - * @count is the number of times the application has registered the - * bookmark; if is < 0, the current registration count will be increased - * by one, if is 0, the application with @name will be removed from - * the list of registered applications. - * @stamp is the Unix time of the last registration; if it is -1, the - * current time will be used. - * - * If you try to remove an application by setting its registration count to - * zero, and no bookmark for @uri is found, %FALSE is returned and - * @error is set to #G_BOOKMARK_FILE_ERROR_URI_NOT_FOUND; similarly, - * in the event that no application @name has registered a bookmark - * for @uri, %FALSE is returned and error is set to - * #G_BOOKMARK_FILE_ERROR_APP_NOT_REGISTERED. Otherwise, if no bookmark - * for @uri is found, one is created. - * - * Return value: %TRUE if the application's meta-data was successfully - * changed. - * - * Since: 2.12 - */ -gboolean -g_bookmark_file_set_app_info (GBookmarkFile *bookmark, - const gchar *uri, - const gchar *name, - const gchar *exec, - gint count, - time_t stamp, - GError **error) -{ - BookmarkItem *item; - BookmarkAppInfo *ai; - - g_return_val_if_fail (bookmark != NULL, FALSE); - g_return_val_if_fail (uri != NULL, FALSE); - g_return_val_if_fail (name != NULL, FALSE); - g_return_val_if_fail (exec != NULL, FALSE); - - item = g_bookmark_file_lookup_item (bookmark, uri); - if (!item) - { - if (count == 0) - { - g_set_error (error, G_BOOKMARK_FILE_ERROR, - G_BOOKMARK_FILE_ERROR_URI_NOT_FOUND, - _("No bookmark found for URI '%s'"), - uri); - return FALSE; - } - else - { - item = bookmark_item_new (uri); - g_bookmark_file_add_item (bookmark, item, NULL); - } - } - - ai = bookmark_item_lookup_app_info (item, name); - if (!ai) - { - if (count == 0) - { - g_set_error (error, G_BOOKMARK_FILE_ERROR, - G_BOOKMARK_FILE_ERROR_APP_NOT_REGISTERED, - _("No application with name '%s' registered a bookmark for '%s'"), - name, - uri); - return FALSE; - } - else - { - ai = bookmark_app_info_new (name); - - item->metadata->applications = g_list_prepend (item->metadata->applications, ai); - g_hash_table_replace (item->metadata->apps_by_name, ai->name, ai); - } - } - - if (count == 0) - { - item->metadata->applications = g_list_remove (item->metadata->applications, ai); - g_hash_table_remove (item->metadata->apps_by_name, ai->name); - bookmark_app_info_free (ai); - - item->modified = time (NULL); - - return TRUE; - } - else if (count > 0) - ai->count = count; - else - ai->count += 1; - - if (stamp != (time_t) -1) - ai->stamp = stamp; - else - ai->stamp = time (NULL); - - if (exec && exec[0] != '\0') - { - g_free (ai->exec); - ai->exec = g_shell_quote (exec); - } - - item->modified = time (NULL); - - return TRUE; -} - -/* expands the application's command line */ -static gchar * -expand_exec_line (const gchar *exec_fmt, - const gchar *uri) -{ - GString *exec; - gchar ch; - - exec = g_string_sized_new (512); - while ((ch = *exec_fmt++) != '\0') - { - if (ch != '%') - { - exec = g_string_append_c (exec, ch); - continue; - } - - ch = *exec_fmt++; - switch (ch) - { - case '\0': - goto out; - case 'U': - case 'u': - g_string_append (exec, uri); - break; - case 'F': - case 'f': - { - gchar *file = g_filename_from_uri (uri, NULL, NULL); - if (file) - { - g_string_append (exec, file); - g_free (file); - } - else - { - g_string_free (exec, TRUE); - return NULL; - } - } - break; - case '%': - default: - exec = g_string_append_c (exec, ch); - break; - } - } - - out: - return g_string_free (exec, FALSE); -} - -/** - * g_bookmark_file_get_app_info: - * @bookmark: a #GBookmarkFile - * @uri: a valid URI - * @name: an application's name - * @exec: location for the command line of the application, or %NULL - * @count: return location for the registration count, or %NULL - * @stamp: return location for the last registration time, or %NULL - * @error: return location for a #GError, or %NULL - * - * Gets the registration informations of @app_name for the bookmark for - * @uri. See g_bookmark_file_set_app_info() for more informations about - * the returned data. - * - * The string returned in @app_exec must be freed. - * - * In the event the URI cannot be found, %FALSE is returned and - * @error is set to #G_BOOKMARK_FILE_ERROR_URI_NOT_FOUND. In the - * event that no application with name @app_name has registered a bookmark - * for @uri, %FALSE is returned and error is set to - * #G_BOOKMARK_FILE_ERROR_APP_NOT_REGISTERED. In the event that unquoting - * the command line fails, an error of the #G_SHELL_ERROR domain is - * set and %FALSE is returned. - * - * Return value: %TRUE on success. - * - * Since: 2.12 - */ -gboolean -g_bookmark_file_get_app_info (GBookmarkFile *bookmark, - const gchar *uri, - const gchar *name, - gchar **exec, - guint *count, - time_t *stamp, - GError **error) -{ - BookmarkItem *item; - BookmarkAppInfo *ai; - - g_return_val_if_fail (bookmark != NULL, FALSE); - g_return_val_if_fail (uri != NULL, FALSE); - g_return_val_if_fail (name != NULL, FALSE); - - item = g_bookmark_file_lookup_item (bookmark, uri); - if (!item) - { - g_set_error (error, G_BOOKMARK_FILE_ERROR, - G_BOOKMARK_FILE_ERROR_URI_NOT_FOUND, - _("No bookmark found for URI '%s'"), - uri); - return FALSE; - } - - ai = bookmark_item_lookup_app_info (item, name); - if (!ai) - { - g_set_error (error, G_BOOKMARK_FILE_ERROR, - G_BOOKMARK_FILE_ERROR_APP_NOT_REGISTERED, - _("No application with name '%s' registered a bookmark for '%s'"), - name, - uri); - return FALSE; - } - - if (exec) - { - GError *unquote_error = NULL; - gchar *command_line; - - command_line = g_shell_unquote (ai->exec, &unquote_error); - if (unquote_error) - { - g_propagate_error (error, unquote_error); - return FALSE; - } - - *exec = expand_exec_line (command_line, uri); - if (!*exec) - { - g_set_error (error, G_BOOKMARK_FILE_ERROR, - G_BOOKMARK_FILE_ERROR_INVALID_URI, - _("Failed to expand exec line '%s' with URI '%s'"), - ai->exec, uri); - g_free (command_line); - - return FALSE; - } - else - g_free (command_line); - } - - if (count) - *count = ai->count; - - if (stamp) - *stamp = ai->stamp; - - return TRUE; -} - -/** - * g_bookmark_file_get_applications: - * @bookmark: a #GBookmarkFile - * @uri: a valid URI - * @length: return location of the length of the returned list, or %NULL - * @error: return location for a #GError, or %NULL - * - * Retrieves the names of the applications that have registered the - * bookmark for @uri. - * - * In the event the URI cannot be found, %NULL is returned and - * @error is set to #G_BOOKMARK_FILE_ERROR_URI_NOT_FOUND. - * - * Return value: a newly allocated %NULL-terminated array of strings. - * Use g_strfreev() to free it. - * - * Since: 2.12 - */ -gchar ** -g_bookmark_file_get_applications (GBookmarkFile *bookmark, - const gchar *uri, - gsize *length, - GError **error) -{ - BookmarkItem *item; - GList *l; - gchar **apps; - gsize i, n_apps; - - g_return_val_if_fail (bookmark != NULL, NULL); - g_return_val_if_fail (uri != NULL, NULL); - - item = g_bookmark_file_lookup_item (bookmark, uri); - if (!item) - { - g_set_error (error, G_BOOKMARK_FILE_ERROR, - G_BOOKMARK_FILE_ERROR_URI_NOT_FOUND, - _("No bookmark found for URI '%s'"), - uri); - return NULL; - } - - if (!item->metadata) - { - if (length) - *length = 0; - - return NULL; - } - - n_apps = g_list_length (item->metadata->applications); - apps = g_new0 (gchar *, n_apps + 1); - - for (l = g_list_last (item->metadata->applications), i = 0; - l != NULL; - l = l->prev) - { - BookmarkAppInfo *ai; - - ai = (BookmarkAppInfo *) l->data; - - g_warn_if_fail (ai != NULL); - g_warn_if_fail (ai->name != NULL); - - apps[i++] = g_strdup (ai->name); - } - apps[i] = NULL; - - if (length) - *length = i; - - return apps; -} - -/** - * g_bookmark_file_get_size: - * @bookmark: a #GBookmarkFile - * - * Gets the number of bookmarks inside @bookmark. - * - * Return value: the number of bookmarks - * - * Since: 2.12 - */ -gint -g_bookmark_file_get_size (GBookmarkFile *bookmark) -{ - g_return_val_if_fail (bookmark != NULL, 0); - - return g_list_length (bookmark->items); -} - -/** - * g_bookmark_file_move_item: - * @bookmark: a #GBookmarkFile - * @old_uri: a valid URI - * @new_uri: a valid URI, or %NULL - * @error: return location for a #GError or %NULL - * - * Changes the URI of a bookmark item from @old_uri to @new_uri. Any - * existing bookmark for @new_uri will be overwritten. If @new_uri is - * %NULL, then the bookmark is removed. - * - * In the event the URI cannot be found, %FALSE is returned and - * @error is set to #G_BOOKMARK_FILE_ERROR_URI_NOT_FOUND. - * - * Return value: %TRUE if the URI was successfully changed - * - * Since: 2.12 - */ -gboolean -g_bookmark_file_move_item (GBookmarkFile *bookmark, - const gchar *old_uri, - const gchar *new_uri, - GError **error) -{ - BookmarkItem *item; - GError *remove_error; - - g_return_val_if_fail (bookmark != NULL, FALSE); - g_return_val_if_fail (old_uri != NULL, FALSE); - - item = g_bookmark_file_lookup_item (bookmark, old_uri); - if (!item) - { - g_set_error (error, G_BOOKMARK_FILE_ERROR, - G_BOOKMARK_FILE_ERROR_URI_NOT_FOUND, - _("No bookmark found for URI '%s'"), - old_uri); - return FALSE; - } - - if (new_uri && new_uri[0] != '\0') - { - if (g_bookmark_file_has_item (bookmark, new_uri)) - { - remove_error = NULL; - g_bookmark_file_remove_item (bookmark, new_uri, &remove_error); - if (remove_error) - { - g_propagate_error (error, remove_error); - - return FALSE; - } - } - - g_hash_table_steal (bookmark->items_by_uri, item->uri); - - g_free (item->uri); - item->uri = g_strdup (new_uri); - item->modified = time (NULL); - - g_hash_table_replace (bookmark->items_by_uri, item->uri, item); - - return TRUE; - } - else - { - remove_error = NULL; - g_bookmark_file_remove_item (bookmark, old_uri, &remove_error); - if (remove_error) - { - g_propagate_error (error, remove_error); - - return FALSE; - } - - return TRUE; - } -} - -/** - * g_bookmark_file_set_icon: - * @bookmark: a #GBookmarkFile - * @uri: a valid URI - * @href: the URI of the icon for the bookmark, or %NULL - * @mime_type: the MIME type of the icon for the bookmark - * - * Sets the icon for the bookmark for @uri. If @href is %NULL, unsets - * the currently set icon. @href can either be a full URL for the icon - * file or the icon name following the Icon Naming specification. - * - * If no bookmark for @uri is found one is created. - * - * Since: 2.12 - */ -void -g_bookmark_file_set_icon (GBookmarkFile *bookmark, - const gchar *uri, - const gchar *href, - const gchar *mime_type) -{ - BookmarkItem *item; - - g_return_if_fail (bookmark != NULL); - g_return_if_fail (uri != NULL); - - item = g_bookmark_file_lookup_item (bookmark, uri); - if (!item) - { - item = bookmark_item_new (uri); - g_bookmark_file_add_item (bookmark, item, NULL); - } - - if (!item->metadata) - item->metadata = bookmark_metadata_new (); - - g_free (item->metadata->icon_href); - g_free (item->metadata->icon_mime); - - item->metadata->icon_href = g_strdup (href); - - if (mime_type && mime_type[0] != '\0') - item->metadata->icon_mime = g_strdup (mime_type); - else - item->metadata->icon_mime = g_strdup ("application/octet-stream"); - - item->modified = time (NULL); -} - -/** - * g_bookmark_file_get_icon: - * @bookmark: a #GBookmarkFile - * @uri: a valid URI - * @href: return location for the icon's location or %NULL - * @mime_type: return location for the icon's MIME type or %NULL - * @error: return location for a #GError or %NULL - * - * Gets the icon of the bookmark for @uri. - * - * In the event the URI cannot be found, %FALSE is returned and - * @error is set to #G_BOOKMARK_FILE_ERROR_URI_NOT_FOUND. - * - * Return value: %TRUE if the icon for the bookmark for the URI was found. - * You should free the returned strings. - * - * Since: 2.12 - */ -gboolean -g_bookmark_file_get_icon (GBookmarkFile *bookmark, - const gchar *uri, - gchar **href, - gchar **mime_type, - GError **error) -{ - BookmarkItem *item; - - g_return_val_if_fail (bookmark != NULL, FALSE); - g_return_val_if_fail (uri != NULL, FALSE); - - item = g_bookmark_file_lookup_item (bookmark, uri); - if (!item) - { - g_set_error (error, G_BOOKMARK_FILE_ERROR, - G_BOOKMARK_FILE_ERROR_URI_NOT_FOUND, - _("No bookmark found for URI '%s'"), - uri); - return FALSE; - } - - if ((!item->metadata) || (!item->metadata->icon_href)) - return FALSE; - - if (href) - *href = g_strdup (item->metadata->icon_href); - - if (mime_type) - *mime_type = g_strdup (item->metadata->icon_mime); - - return TRUE; -} - -#define __G_BOOKMARK_FILE_C__ -#include "galiasdef.c" diff --git a/lib/win32/glib-2.20.4/glib/gbookmarkfile.h b/lib/win32/glib-2.20.4/glib/gbookmarkfile.h deleted file mode 100644 index bdf97c09f634e..0000000000000 --- a/lib/win32/glib-2.20.4/glib/gbookmarkfile.h +++ /dev/null @@ -1,191 +0,0 @@ -/* gbookmarkfile.h: parsing and building desktop bookmarks - * - * Copyright (C) 2005-2006 Emmanuele Bassi - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - */ - -#if defined(G_DISABLE_SINGLE_INCLUDES) && !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION) -#error "Only can be included directly." -#endif - -#ifndef __G_BOOKMARK_FILE_H__ -#define __G_BOOKMARK_FILE_H__ - -#include -#include - -G_BEGIN_DECLS - -/* GError enumeration - */ -#define G_BOOKMARK_FILE_ERROR (g_bookmark_file_error_quark ()) - -typedef enum -{ - G_BOOKMARK_FILE_ERROR_INVALID_URI, - G_BOOKMARK_FILE_ERROR_INVALID_VALUE, - G_BOOKMARK_FILE_ERROR_APP_NOT_REGISTERED, - G_BOOKMARK_FILE_ERROR_URI_NOT_FOUND, - G_BOOKMARK_FILE_ERROR_READ, - G_BOOKMARK_FILE_ERROR_UNKNOWN_ENCODING, - G_BOOKMARK_FILE_ERROR_WRITE, - G_BOOKMARK_FILE_ERROR_FILE_NOT_FOUND -} GBookmarkFileError; - -GQuark g_bookmark_file_error_quark (void); - -/* - * GBookmarkFile - */ -typedef struct _GBookmarkFile GBookmarkFile; - -GBookmarkFile *g_bookmark_file_new (void); -void g_bookmark_file_free (GBookmarkFile *bookmark); - -gboolean g_bookmark_file_load_from_file (GBookmarkFile *bookmark, - const gchar *filename, - GError **error); -gboolean g_bookmark_file_load_from_data (GBookmarkFile *bookmark, - const gchar *data, - gsize length, - GError **error); -gboolean g_bookmark_file_load_from_data_dirs (GBookmarkFile *bookmark, - const gchar *file, - gchar **full_path, - GError **error); -gchar * g_bookmark_file_to_data (GBookmarkFile *bookmark, - gsize *length, - GError **error) G_GNUC_MALLOC; -gboolean g_bookmark_file_to_file (GBookmarkFile *bookmark, - const gchar *filename, - GError **error); - -void g_bookmark_file_set_title (GBookmarkFile *bookmark, - const gchar *uri, - const gchar *title); -gchar * g_bookmark_file_get_title (GBookmarkFile *bookmark, - const gchar *uri, - GError **error) G_GNUC_MALLOC; -void g_bookmark_file_set_description (GBookmarkFile *bookmark, - const gchar *uri, - const gchar *description); -gchar * g_bookmark_file_get_description (GBookmarkFile *bookmark, - const gchar *uri, - GError **error) G_GNUC_MALLOC; -void g_bookmark_file_set_mime_type (GBookmarkFile *bookmark, - const gchar *uri, - const gchar *mime_type); -gchar * g_bookmark_file_get_mime_type (GBookmarkFile *bookmark, - const gchar *uri, - GError **error) G_GNUC_MALLOC; -void g_bookmark_file_set_groups (GBookmarkFile *bookmark, - const gchar *uri, - const gchar **groups, - gsize length); -void g_bookmark_file_add_group (GBookmarkFile *bookmark, - const gchar *uri, - const gchar *group); -gboolean g_bookmark_file_has_group (GBookmarkFile *bookmark, - const gchar *uri, - const gchar *group, - GError **error); -gchar ** g_bookmark_file_get_groups (GBookmarkFile *bookmark, - const gchar *uri, - gsize *length, - GError **error) G_GNUC_MALLOC; -void g_bookmark_file_add_application (GBookmarkFile *bookmark, - const gchar *uri, - const gchar *name, - const gchar *exec); -gboolean g_bookmark_file_has_application (GBookmarkFile *bookmark, - const gchar *uri, - const gchar *name, - GError **error); -gchar ** g_bookmark_file_get_applications (GBookmarkFile *bookmark, - const gchar *uri, - gsize *length, - GError **error) G_GNUC_MALLOC; -gboolean g_bookmark_file_set_app_info (GBookmarkFile *bookmark, - const gchar *uri, - const gchar *name, - const gchar *exec, - gint count, - time_t stamp, - GError **error); -gboolean g_bookmark_file_get_app_info (GBookmarkFile *bookmark, - const gchar *uri, - const gchar *name, - gchar **exec, - guint *count, - time_t *stamp, - GError **error); -void g_bookmark_file_set_is_private (GBookmarkFile *bookmark, - const gchar *uri, - gboolean is_private); -gboolean g_bookmark_file_get_is_private (GBookmarkFile *bookmark, - const gchar *uri, - GError **error); -void g_bookmark_file_set_icon (GBookmarkFile *bookmark, - const gchar *uri, - const gchar *href, - const gchar *mime_type); -gboolean g_bookmark_file_get_icon (GBookmarkFile *bookmark, - const gchar *uri, - gchar **href, - gchar **mime_type, - GError **error); -void g_bookmark_file_set_added (GBookmarkFile *bookmark, - const gchar *uri, - time_t added); -time_t g_bookmark_file_get_added (GBookmarkFile *bookmark, - const gchar *uri, - GError **error); -void g_bookmark_file_set_modified (GBookmarkFile *bookmark, - const gchar *uri, - time_t modified); -time_t g_bookmark_file_get_modified (GBookmarkFile *bookmark, - const gchar *uri, - GError **error); -void g_bookmark_file_set_visited (GBookmarkFile *bookmark, - const gchar *uri, - time_t visited); -time_t g_bookmark_file_get_visited (GBookmarkFile *bookmark, - const gchar *uri, - GError **error); -gboolean g_bookmark_file_has_item (GBookmarkFile *bookmark, - const gchar *uri); -gint g_bookmark_file_get_size (GBookmarkFile *bookmark); -gchar ** g_bookmark_file_get_uris (GBookmarkFile *bookmark, - gsize *length) G_GNUC_MALLOC; -gboolean g_bookmark_file_remove_group (GBookmarkFile *bookmark, - const gchar *uri, - const gchar *group, - GError **error); -gboolean g_bookmark_file_remove_application (GBookmarkFile *bookmark, - const gchar *uri, - const gchar *name, - GError **error); -gboolean g_bookmark_file_remove_item (GBookmarkFile *bookmark, - const gchar *uri, - GError **error); -gboolean g_bookmark_file_move_item (GBookmarkFile *bookmark, - const gchar *old_uri, - const gchar *new_uri, - GError **error); - -G_END_DECLS - -#endif /* __G_BOOKMARK_FILE_H__ */ diff --git a/lib/win32/glib-2.20.4/glib/gbsearcharray.h b/lib/win32/glib-2.20.4/glib/gbsearcharray.h deleted file mode 100644 index 8e68758936be6..0000000000000 --- a/lib/win32/glib-2.20.4/glib/gbsearcharray.h +++ /dev/null @@ -1,303 +0,0 @@ -/* GBSearchArray - Binary Searchable Array implementation - * Copyright (C) 2000-2003 Tim Janik - * - * This software is provided "as is"; redistribution and modification - * is permitted, provided that the following disclaimer is retained. - * - * This software 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. - * In no event shall the authors or contributors be liable for any - * direct, indirect, incidental, special, exemplary, or consequential - * damages (including, but not limited to, procurement of substitute - * goods or services; loss of use, data, or profits; or business - * interruption) however caused and on any theory of liability, whether - * in contract, strict liability, or tort (including negligence or - * otherwise) arising in any way out of the use of this software, even - * if advised of the possibility of such damage. - */ -#ifndef __G_BSEARCH_ARRAY_H__ -#define __G_BSEARCH_ARRAY_H__ - -#include -#include - - -G_BEGIN_DECLS /* c++ guards */ - -/* this implementation is intended to be usable in third-party code - * simply by pasting the contents of this file. as such, the - * implementation needs to be self-contained within this file. - */ - -/* convenience macro to avoid signed overflow for value comparisions */ -#define G_BSEARCH_ARRAY_CMP(v1,v2) ((v1) > (v2) ? +1 : (v1) == (v2) ? 0 : -1) - - -/* --- typedefs --- */ -typedef gint (*GBSearchCompareFunc) (gconstpointer bsearch_node1, /* key */ - gconstpointer bsearch_node2); -typedef enum -{ - G_BSEARCH_ARRAY_ALIGN_POWER2 = 1 << 0, /* align memory to power2 sizes */ - G_BSEARCH_ARRAY_AUTO_SHRINK = 1 << 1 /* shrink array upon removal */ -} GBSearchArrayFlags; - - -/* --- structures --- */ -typedef struct -{ - guint sizeof_node; - GBSearchCompareFunc cmp_nodes; - guint flags; -} GBSearchConfig; -typedef union -{ - guint n_nodes; - /*< private >*/ - gpointer alignment_dummy1; - glong alignment_dummy2; - gdouble alignment_dummy3; -} GBSearchArray; - - -/* --- public API --- */ -static inline GBSearchArray* g_bsearch_array_create (const GBSearchConfig *bconfig); -static inline gpointer g_bsearch_array_get_nth (GBSearchArray *barray, - const GBSearchConfig *bconfig, - guint nth); -static inline guint g_bsearch_array_get_index (GBSearchArray *barray, - const GBSearchConfig *bconfig, - gconstpointer node_in_array); -static inline GBSearchArray* g_bsearch_array_remove (GBSearchArray *barray, - const GBSearchConfig *bconfig, - guint index_); -/* provide uninitialized space at index for node insertion */ -static inline GBSearchArray* g_bsearch_array_grow (GBSearchArray *barray, - const GBSearchConfig *bconfig, - guint index); -/* insert key_node into array if it does not exist, otherwise do nothing */ -static inline GBSearchArray* g_bsearch_array_insert (GBSearchArray *barray, - const GBSearchConfig *bconfig, - gconstpointer key_node); -/* insert key_node into array if it does not exist, - * otherwise replace the existing node's contents with key_node - */ -static inline GBSearchArray* g_bsearch_array_replace (GBSearchArray *barray, - const GBSearchConfig *bconfig, - gconstpointer key_node); -static inline void g_bsearch_array_free (GBSearchArray *barray, - const GBSearchConfig *bconfig); -#define g_bsearch_array_get_n_nodes(barray) (((GBSearchArray*) (barray))->n_nodes) - -/* g_bsearch_array_lookup(): - * return NULL or exact match node - */ -#define g_bsearch_array_lookup(barray, bconfig, key_node) \ - g_bsearch_array_lookup_fuzzy ((barray), (bconfig), (key_node), 0) - -/* g_bsearch_array_lookup_sibling(): - * return NULL for barray->n_nodes==0, otherwise return the - * exact match node, or, if there's no such node, return the - * node last visited, which is pretty close to an exact match - * (will be one off into either direction). - */ -#define g_bsearch_array_lookup_sibling(barray, bconfig, key_node) \ - g_bsearch_array_lookup_fuzzy ((barray), (bconfig), (key_node), 1) - -/* g_bsearch_array_lookup_insertion(): - * return NULL for barray->n_nodes==0 or exact match, otherwise - * return the node where key_node should be inserted (may be one - * after end, i.e. g_bsearch_array_get_index(result) <= barray->n_nodes). - */ -#define g_bsearch_array_lookup_insertion(barray, bconfig, key_node) \ - g_bsearch_array_lookup_fuzzy ((barray), (bconfig), (key_node), 2) - - -/* --- implementation --- */ -/* helper macro to cut down realloc()s */ -#ifdef DISABLE_MEM_POOLS -#define G_BSEARCH_UPPER_POWER2(n) (n) -#else /* !DISABLE_MEM_POOLS */ -#define G_BSEARCH_UPPER_POWER2(n) ((n) ? 1 << g_bit_storage ((n) - 1) : 0) -#endif /* !DISABLE_MEM_POOLS */ -#define G_BSEARCH_ARRAY_NODES(barray) (((guint8*) (barray)) + sizeof (GBSearchArray)) -static inline GBSearchArray* -g_bsearch_array_create (const GBSearchConfig *bconfig) -{ - GBSearchArray *barray; - guint size; - - g_return_val_if_fail (bconfig != NULL, NULL); - - size = sizeof (GBSearchArray) + bconfig->sizeof_node; - if (bconfig->flags & G_BSEARCH_ARRAY_ALIGN_POWER2) - size = G_BSEARCH_UPPER_POWER2 (size); - barray = (GBSearchArray *) g_realloc (NULL, size); - memset (barray, 0, sizeof (GBSearchArray)); - - return barray; -} -static inline gpointer -g_bsearch_array_lookup_fuzzy (GBSearchArray *barray, - const GBSearchConfig *bconfig, - gconstpointer key_node, - const guint sibling_or_after); -static inline gpointer -g_bsearch_array_lookup_fuzzy (GBSearchArray *barray, - const GBSearchConfig *bconfig, - gconstpointer key_node, - const guint sibling_or_after) -{ - GBSearchCompareFunc cmp_nodes = bconfig->cmp_nodes; - guint8 *check = NULL, *nodes = G_BSEARCH_ARRAY_NODES (barray); - guint n_nodes = barray->n_nodes, offs = 0; - guint sizeof_node = bconfig->sizeof_node; - gint cmp = 0; - - while (offs < n_nodes) - { - guint i = (offs + n_nodes) >> 1; - - check = nodes + i * sizeof_node; - cmp = cmp_nodes (key_node, check); - if (cmp == 0) - return sibling_or_after > 1 ? NULL : check; - else if (cmp < 0) - n_nodes = i; - else /* (cmp > 0) */ - offs = i + 1; - } - - /* check is last mismatch, cmp > 0 indicates greater key */ - return G_LIKELY (!sibling_or_after) ? NULL : (sibling_or_after > 1 && cmp > 0) ? check + sizeof_node : check; -} -static inline gpointer -g_bsearch_array_get_nth (GBSearchArray *barray, - const GBSearchConfig *bconfig, - guint nth) -{ - return (G_LIKELY (nth < barray->n_nodes) ? - G_BSEARCH_ARRAY_NODES (barray) + nth * bconfig->sizeof_node : - NULL); -} -static inline guint -g_bsearch_array_get_index (GBSearchArray *barray, - const GBSearchConfig *bconfig, - gconstpointer node_in_array) -{ - guint distance = ((guint8*) node_in_array) - G_BSEARCH_ARRAY_NODES (barray); - - g_return_val_if_fail (node_in_array != NULL, barray->n_nodes); - - distance /= bconfig->sizeof_node; - - return MIN (distance, barray->n_nodes + 1); /* may return one after end */ -} -static inline GBSearchArray* -g_bsearch_array_grow (GBSearchArray *barray, - const GBSearchConfig *bconfig, - guint index_) -{ - guint old_size = barray->n_nodes * bconfig->sizeof_node; - guint new_size = old_size + bconfig->sizeof_node; - guint8 *node; - - g_return_val_if_fail (index_ <= barray->n_nodes, NULL); - - if (G_UNLIKELY (bconfig->flags & G_BSEARCH_ARRAY_ALIGN_POWER2)) - { - new_size = G_BSEARCH_UPPER_POWER2 (sizeof (GBSearchArray) + new_size); - old_size = G_BSEARCH_UPPER_POWER2 (sizeof (GBSearchArray) + old_size); - if (old_size != new_size) - barray = (GBSearchArray *) g_realloc (barray, new_size); - } - else - barray = (GBSearchArray *) g_realloc (barray, sizeof (GBSearchArray) + new_size); - node = G_BSEARCH_ARRAY_NODES (barray) + index_ * bconfig->sizeof_node; - g_memmove (node + bconfig->sizeof_node, node, (barray->n_nodes - index_) * bconfig->sizeof_node); - barray->n_nodes += 1; - return barray; -} -static inline GBSearchArray* -g_bsearch_array_insert (GBSearchArray *barray, - const GBSearchConfig *bconfig, - gconstpointer key_node) -{ - guint8 *node; - - if (G_UNLIKELY (!barray->n_nodes)) - { - barray = g_bsearch_array_grow (barray, bconfig, 0); - node = G_BSEARCH_ARRAY_NODES (barray); - } - else - { - node = (guint8 *) g_bsearch_array_lookup_insertion (barray, bconfig, key_node); - if (G_LIKELY (node)) - { - guint index_ = g_bsearch_array_get_index (barray, bconfig, node); - - /* grow and insert */ - barray = g_bsearch_array_grow (barray, bconfig, index_); - node = G_BSEARCH_ARRAY_NODES (barray) + index_ * bconfig->sizeof_node; - } - else /* no insertion needed, node already there */ - return barray; - } - memcpy (node, key_node, bconfig->sizeof_node); - return barray; -} -static inline GBSearchArray* -g_bsearch_array_replace (GBSearchArray *barray, - const GBSearchConfig *bconfig, - gconstpointer key_node) -{ - guint8 *node = (guint8 *) g_bsearch_array_lookup (barray, bconfig, key_node); - if (G_LIKELY (node)) /* expected path */ - memcpy (node, key_node, bconfig->sizeof_node); - else /* revert to insertion */ - barray = g_bsearch_array_insert (barray, bconfig, key_node); - return barray; -} -static inline GBSearchArray* -g_bsearch_array_remove (GBSearchArray *barray, - const GBSearchConfig *bconfig, - guint index_) -{ - guint8 *node; - - g_return_val_if_fail (index_ < barray->n_nodes, NULL); - - barray->n_nodes -= 1; - node = G_BSEARCH_ARRAY_NODES (barray) + index_ * bconfig->sizeof_node; - g_memmove (node, node + bconfig->sizeof_node, (barray->n_nodes - index_) * bconfig->sizeof_node); - if (G_UNLIKELY (bconfig->flags & G_BSEARCH_ARRAY_AUTO_SHRINK)) - { - guint new_size = barray->n_nodes * bconfig->sizeof_node; - guint old_size = new_size + bconfig->sizeof_node; - - if (G_UNLIKELY (bconfig->flags & G_BSEARCH_ARRAY_ALIGN_POWER2)) - { - new_size = G_BSEARCH_UPPER_POWER2 (sizeof (GBSearchArray) + new_size); - old_size = G_BSEARCH_UPPER_POWER2 (sizeof (GBSearchArray) + old_size); - if (old_size != new_size) - barray = (GBSearchArray *) g_realloc (barray, new_size); - } - else - barray = (GBSearchArray *) g_realloc (barray, sizeof (GBSearchArray) + new_size); - } - return barray; -} -static inline void -g_bsearch_array_free (GBSearchArray *barray, - const GBSearchConfig *bconfig) -{ - g_return_if_fail (barray != NULL); - - g_free (barray); -} - -G_END_DECLS /* c++ guards */ - -#endif /* !__G_BSEARCH_ARRAY_H__ */ diff --git a/lib/win32/glib-2.20.4/glib/gcache.c b/lib/win32/glib-2.20.4/glib/gcache.c deleted file mode 100644 index a5b02974ceaaf..0000000000000 --- a/lib/win32/glib-2.20.4/glib/gcache.c +++ /dev/null @@ -1,197 +0,0 @@ -/* GLIB - Library of useful routines for C programming - * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library 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 - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ - -/* - * Modified by the GLib Team and others 1997-2000. See the AUTHORS - * file for a list of people on the GLib Team. See the ChangeLog - * files for a list of changes. These files are distributed with - * GLib at ftp://ftp.gtk.org/pub/gtk/. - */ - -/* - * MT safe - */ - -#include "config.h" - -#include "glib.h" -#include "galias.h" - - -typedef struct _GCacheNode GCacheNode; - -struct _GCacheNode -{ - /* A reference counted node */ - gpointer value; - gint ref_count; -}; - -struct _GCache -{ - /* Called to create a value from a key */ - GCacheNewFunc value_new_func; - - /* Called to destroy a value */ - GCacheDestroyFunc value_destroy_func; - - /* Called to duplicate a key */ - GCacheDupFunc key_dup_func; - - /* Called to destroy a key */ - GCacheDestroyFunc key_destroy_func; - - /* Associates keys with nodes */ - GHashTable *key_table; - - /* Associates nodes with keys */ - GHashTable *value_table; -}; - -static inline GCacheNode* -g_cache_node_new (gpointer value) -{ - GCacheNode *node = g_slice_new (GCacheNode); - node->value = value; - node->ref_count = 1; - return node; -} - -static inline void -g_cache_node_destroy (GCacheNode *node) -{ - g_slice_free (GCacheNode, node); -} - -GCache* -g_cache_new (GCacheNewFunc value_new_func, - GCacheDestroyFunc value_destroy_func, - GCacheDupFunc key_dup_func, - GCacheDestroyFunc key_destroy_func, - GHashFunc hash_key_func, - GHashFunc hash_value_func, - GEqualFunc key_equal_func) -{ - GCache *cache; - - g_return_val_if_fail (value_new_func != NULL, NULL); - g_return_val_if_fail (value_destroy_func != NULL, NULL); - g_return_val_if_fail (key_dup_func != NULL, NULL); - g_return_val_if_fail (key_destroy_func != NULL, NULL); - g_return_val_if_fail (hash_key_func != NULL, NULL); - g_return_val_if_fail (hash_value_func != NULL, NULL); - g_return_val_if_fail (key_equal_func != NULL, NULL); - - cache = g_slice_new (GCache); - cache->value_new_func = value_new_func; - cache->value_destroy_func = value_destroy_func; - cache->key_dup_func = key_dup_func; - cache->key_destroy_func = key_destroy_func; - cache->key_table = g_hash_table_new (hash_key_func, key_equal_func); - cache->value_table = g_hash_table_new (hash_value_func, NULL); - - return cache; -} - -void -g_cache_destroy (GCache *cache) -{ - g_return_if_fail (cache != NULL); - - g_hash_table_destroy (cache->key_table); - g_hash_table_destroy (cache->value_table); - g_slice_free (GCache, cache); -} - -gpointer -g_cache_insert (GCache *cache, - gpointer key) -{ - GCacheNode *node; - gpointer value; - - g_return_val_if_fail (cache != NULL, NULL); - - node = g_hash_table_lookup (cache->key_table, key); - if (node) - { - node->ref_count += 1; - return node->value; - } - - key = (* cache->key_dup_func) (key); - value = (* cache->value_new_func) (key); - node = g_cache_node_new (value); - - g_hash_table_insert (cache->key_table, key, node); - g_hash_table_insert (cache->value_table, value, key); - - return node->value; -} - -void -g_cache_remove (GCache *cache, - gconstpointer value) -{ - GCacheNode *node; - gpointer key; - - g_return_if_fail (cache != NULL); - - key = g_hash_table_lookup (cache->value_table, value); - node = g_hash_table_lookup (cache->key_table, key); - - g_return_if_fail (node != NULL); - - node->ref_count -= 1; - if (node->ref_count == 0) - { - g_hash_table_remove (cache->value_table, value); - g_hash_table_remove (cache->key_table, key); - - (* cache->key_destroy_func) (key); - (* cache->value_destroy_func) (node->value); - g_cache_node_destroy (node); - } -} - -void -g_cache_key_foreach (GCache *cache, - GHFunc func, - gpointer user_data) -{ - g_return_if_fail (cache != NULL); - g_return_if_fail (func != NULL); - - g_hash_table_foreach (cache->value_table, func, user_data); -} - -void -g_cache_value_foreach (GCache *cache, - GHFunc func, - gpointer user_data) -{ - g_return_if_fail (cache != NULL); - g_return_if_fail (func != NULL); - - g_hash_table_foreach (cache->key_table, func, user_data); -} - -#define __G_CACHE_C__ -#include "galiasdef.c" diff --git a/lib/win32/glib-2.20.4/glib/gcache.h b/lib/win32/glib-2.20.4/glib/gcache.h deleted file mode 100644 index 283783dbb64f4..0000000000000 --- a/lib/win32/glib-2.20.4/glib/gcache.h +++ /dev/null @@ -1,69 +0,0 @@ -/* GLIB - Library of useful routines for C programming - * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library 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 - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ - -/* - * Modified by the GLib Team and others 1997-2000. See the AUTHORS - * file for a list of people on the GLib Team. See the ChangeLog - * files for a list of changes. These files are distributed with - * GLib at ftp://ftp.gtk.org/pub/gtk/. - */ - -#if defined(G_DISABLE_SINGLE_INCLUDES) && !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION) -#error "Only can be included directly." -#endif - -#ifndef __G_CACHE_H__ -#define __G_CACHE_H__ - -#include - -G_BEGIN_DECLS - -typedef struct _GCache GCache; - -typedef gpointer (*GCacheNewFunc) (gpointer key); -typedef gpointer (*GCacheDupFunc) (gpointer value); -typedef void (*GCacheDestroyFunc) (gpointer value); - -/* Caches - */ -GCache* g_cache_new (GCacheNewFunc value_new_func, - GCacheDestroyFunc value_destroy_func, - GCacheDupFunc key_dup_func, - GCacheDestroyFunc key_destroy_func, - GHashFunc hash_key_func, - GHashFunc hash_value_func, - GEqualFunc key_equal_func); -void g_cache_destroy (GCache *cache); -gpointer g_cache_insert (GCache *cache, - gpointer key); -void g_cache_remove (GCache *cache, - gconstpointer value); -void g_cache_key_foreach (GCache *cache, - GHFunc func, - gpointer user_data); -#ifndef G_DISABLE_DEPRECATED -void g_cache_value_foreach (GCache *cache, - GHFunc func, - gpointer user_data); -#endif - -G_END_DECLS - -#endif /* __G_CACHE_H__ */ diff --git a/lib/win32/glib-2.20.4/glib/gchecksum.c b/lib/win32/glib-2.20.4/glib/gchecksum.c deleted file mode 100644 index 1611193d4e624..0000000000000 --- a/lib/win32/glib-2.20.4/glib/gchecksum.c +++ /dev/null @@ -1,1439 +0,0 @@ -/* gchecksum.h - data hashing functions - * - * Copyright (C) 2007 Emmanuele Bassi - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ - -#include "config.h" - -#include - -#include "glibconfig.h" -#include "gchecksum.h" -#include "glib.h" -#include "glibintl.h" - -#include "galias.h" - -#define IS_VALID_TYPE(type) ((type) >= G_CHECKSUM_MD5 && (type) <= G_CHECKSUM_SHA256) - -/* The fact that these are lower case characters is part of the ABI */ -static const gchar hex_digits[] = "0123456789abcdef"; - -#define MD5_DATASIZE 64 -#define MD5_DIGEST_LEN 16 - -typedef struct -{ - guint32 buf[4]; - guint32 bits[2]; - - guchar data[MD5_DATASIZE]; - - guchar digest[MD5_DIGEST_LEN]; -} Md5sum; - -#define SHA1_DATASIZE 64 -#define SHA1_DIGEST_LEN 20 - -typedef struct -{ - guint32 buf[5]; - guint32 bits[2]; - - /* we pack 64 unsigned chars into 16 32-bit unsigned integers */ - guint32 data[16]; - - guchar digest[SHA1_DIGEST_LEN]; -} Sha1sum; - -#define SHA256_DATASIZE 64 -#define SHA256_DIGEST_LEN 32 - -typedef struct -{ - guint32 buf[8]; - guint32 bits[2]; - - guint8 data[SHA256_DATASIZE]; - - guchar digest[SHA256_DIGEST_LEN]; -} Sha256sum; - -struct _GChecksum -{ - GChecksumType type; - - gchar *digest_str; - - union { - Md5sum md5; - Sha1sum sha1; - Sha256sum sha256; - } sum; -}; - -/* we need different byte swapping functions because MD5 expects buffers - * to be little-endian, while SHA1 and SHA256 expect them in big-endian - * form. - */ - -#if G_BYTE_ORDER == G_LITTLE_ENDIAN -#define md5_byte_reverse(buffer,length) -#else -/* assume that the passed buffer is integer aligned */ -static inline void -md5_byte_reverse (guchar *buffer, - gulong length) -{ - guint32 bit; - - do - { - bit = (guint32) ((unsigned) buffer[3] << 8 | buffer[2]) << 16 | - ((unsigned) buffer[1] << 8 | buffer[0]); - * (guint32 *) buffer = bit; - buffer += 4; - } - while (--length); -} -#endif /* G_BYTE_ORDER == G_LITTLE_ENDIAN */ - -#if G_BYTE_ORDER == G_BIG_ENDIAN -#define sha_byte_reverse(buffer,length) -#else -static inline void -sha_byte_reverse (guint32 *buffer, - gint length) -{ - length /= sizeof (guint32); - while (length--) - { - *buffer = GUINT32_SWAP_LE_BE (*buffer); - ++buffer; - } -} -#endif /* G_BYTE_ORDER == G_BIG_ENDIAN */ - -static gchar * -digest_to_string (guint8 *digest, - gsize digest_len) -{ - gint len = digest_len * 2; - gint i; - gchar *retval; - - retval = g_new (gchar, len + 1); - - for (i = 0; i < digest_len; i++) - { - guint8 byte = digest[i]; - - retval[2 * i] = hex_digits[byte >> 4]; - retval[2 * i + 1] = hex_digits[byte & 0xf]; - } - - retval[len] = 0; - - return retval; -} - -/* - * MD5 Checksum - */ - -/* This MD5 digest computation is based on the equivalent code - * written by Colin Plumb. It came with this notice: - * - * This code implements the MD5 message-digest algorithm. - * The algorithm is due to Ron Rivest. This code was - * written by Colin Plumb in 1993, no copyright is claimed. - * This code is in the public domain; do with it what you wish. - * - * Equivalent code is available from RSA Data Security, Inc. - * This code has been tested against that, and is equivalent, - * except that you don't need to include two pages of legalese - * with every copy. - */ - -static void -md5_sum_init (Md5sum *md5) -{ - /* arbitrary constants */ - md5->buf[0] = 0x67452301; - md5->buf[1] = 0xefcdab89; - md5->buf[2] = 0x98badcfe; - md5->buf[3] = 0x10325476; - - md5->bits[0] = md5->bits[1] = 0; -} - -/* - * The core of the MD5 algorithm, this alters an existing MD5 hash to - * reflect the addition of 16 longwords of new data. md5_sum_update() - * blocks the data and converts bytes into longwords for this routine. - */ -static void -md5_transform (guint32 buf[4], - guint32 const in[16]) -{ - register guint32 a, b, c, d; - -/* The four core functions - F1 is optimized somewhat */ -#define F1(x, y, z) (z ^ (x & (y ^ z))) -#define F2(x, y, z) F1 (z, x, y) -#define F3(x, y, z) (x ^ y ^ z) -#define F4(x, y, z) (y ^ (x | ~z)) - -/* This is the central step in the MD5 algorithm. */ -#define md5_step(f, w, x, y, z, data, s) \ - ( w += f (x, y, z) + data, w = w << s | w >> (32 - s), w += x ) - - a = buf[0]; - b = buf[1]; - c = buf[2]; - d = buf[3]; - - md5_step (F1, a, b, c, d, in[0] + 0xd76aa478, 7); - md5_step (F1, d, a, b, c, in[1] + 0xe8c7b756, 12); - md5_step (F1, c, d, a, b, in[2] + 0x242070db, 17); - md5_step (F1, b, c, d, a, in[3] + 0xc1bdceee, 22); - md5_step (F1, a, b, c, d, in[4] + 0xf57c0faf, 7); - md5_step (F1, d, a, b, c, in[5] + 0x4787c62a, 12); - md5_step (F1, c, d, a, b, in[6] + 0xa8304613, 17); - md5_step (F1, b, c, d, a, in[7] + 0xfd469501, 22); - md5_step (F1, a, b, c, d, in[8] + 0x698098d8, 7); - md5_step (F1, d, a, b, c, in[9] + 0x8b44f7af, 12); - md5_step (F1, c, d, a, b, in[10] + 0xffff5bb1, 17); - md5_step (F1, b, c, d, a, in[11] + 0x895cd7be, 22); - md5_step (F1, a, b, c, d, in[12] + 0x6b901122, 7); - md5_step (F1, d, a, b, c, in[13] + 0xfd987193, 12); - md5_step (F1, c, d, a, b, in[14] + 0xa679438e, 17); - md5_step (F1, b, c, d, a, in[15] + 0x49b40821, 22); - - md5_step (F2, a, b, c, d, in[1] + 0xf61e2562, 5); - md5_step (F2, d, a, b, c, in[6] + 0xc040b340, 9); - md5_step (F2, c, d, a, b, in[11] + 0x265e5a51, 14); - md5_step (F2, b, c, d, a, in[0] + 0xe9b6c7aa, 20); - md5_step (F2, a, b, c, d, in[5] + 0xd62f105d, 5); - md5_step (F2, d, a, b, c, in[10] + 0x02441453, 9); - md5_step (F2, c, d, a, b, in[15] + 0xd8a1e681, 14); - md5_step (F2, b, c, d, a, in[4] + 0xe7d3fbc8, 20); - md5_step (F2, a, b, c, d, in[9] + 0x21e1cde6, 5); - md5_step (F2, d, a, b, c, in[14] + 0xc33707d6, 9); - md5_step (F2, c, d, a, b, in[3] + 0xf4d50d87, 14); - md5_step (F2, b, c, d, a, in[8] + 0x455a14ed, 20); - md5_step (F2, a, b, c, d, in[13] + 0xa9e3e905, 5); - md5_step (F2, d, a, b, c, in[2] + 0xfcefa3f8, 9); - md5_step (F2, c, d, a, b, in[7] + 0x676f02d9, 14); - md5_step (F2, b, c, d, a, in[12] + 0x8d2a4c8a, 20); - - md5_step (F3, a, b, c, d, in[5] + 0xfffa3942, 4); - md5_step (F3, d, a, b, c, in[8] + 0x8771f681, 11); - md5_step (F3, c, d, a, b, in[11] + 0x6d9d6122, 16); - md5_step (F3, b, c, d, a, in[14] + 0xfde5380c, 23); - md5_step (F3, a, b, c, d, in[1] + 0xa4beea44, 4); - md5_step (F3, d, a, b, c, in[4] + 0x4bdecfa9, 11); - md5_step (F3, c, d, a, b, in[7] + 0xf6bb4b60, 16); - md5_step (F3, b, c, d, a, in[10] + 0xbebfbc70, 23); - md5_step (F3, a, b, c, d, in[13] + 0x289b7ec6, 4); - md5_step (F3, d, a, b, c, in[0] + 0xeaa127fa, 11); - md5_step (F3, c, d, a, b, in[3] + 0xd4ef3085, 16); - md5_step (F3, b, c, d, a, in[6] + 0x04881d05, 23); - md5_step (F3, a, b, c, d, in[9] + 0xd9d4d039, 4); - md5_step (F3, d, a, b, c, in[12] + 0xe6db99e5, 11); - md5_step (F3, c, d, a, b, in[15] + 0x1fa27cf8, 16); - md5_step (F3, b, c, d, a, in[2] + 0xc4ac5665, 23); - - md5_step (F4, a, b, c, d, in[0] + 0xf4292244, 6); - md5_step (F4, d, a, b, c, in[7] + 0x432aff97, 10); - md5_step (F4, c, d, a, b, in[14] + 0xab9423a7, 15); - md5_step (F4, b, c, d, a, in[5] + 0xfc93a039, 21); - md5_step (F4, a, b, c, d, in[12] + 0x655b59c3, 6); - md5_step (F4, d, a, b, c, in[3] + 0x8f0ccc92, 10); - md5_step (F4, c, d, a, b, in[10] + 0xffeff47d, 15); - md5_step (F4, b, c, d, a, in[1] + 0x85845dd1, 21); - md5_step (F4, a, b, c, d, in[8] + 0x6fa87e4f, 6); - md5_step (F4, d, a, b, c, in[15] + 0xfe2ce6e0, 10); - md5_step (F4, c, d, a, b, in[6] + 0xa3014314, 15); - md5_step (F4, b, c, d, a, in[13] + 0x4e0811a1, 21); - md5_step (F4, a, b, c, d, in[4] + 0xf7537e82, 6); - md5_step (F4, d, a, b, c, in[11] + 0xbd3af235, 10); - md5_step (F4, c, d, a, b, in[2] + 0x2ad7d2bb, 15); - md5_step (F4, b, c, d, a, in[9] + 0xeb86d391, 21); - - buf[0] += a; - buf[1] += b; - buf[2] += c; - buf[3] += d; - -#undef F1 -#undef F2 -#undef F3 -#undef F4 -#undef md5_step -} - -static void -md5_sum_update (Md5sum *md5, - const guchar *data, - gsize length) -{ - guint32 bit; - - bit = md5->bits[0]; - md5->bits[0] = bit + ((guint32) length << 3); - - /* carry from low to high */ - if (md5->bits[0] < bit) - md5->bits[1] += 1; - - md5->bits[1] += length >> 29; - - /* bytes already in Md5sum->data */ - bit = (bit >> 3) & 0x3f; - - /* handle any leading odd-sized chunks */ - if (bit) - { - guchar *p = (guchar *) md5->data + bit; - - bit = MD5_DATASIZE - bit; - if (length < bit) - { - memcpy (p, data, length); - return; - } - - memcpy (p, data, bit); - - md5_byte_reverse (md5->data, 16); - md5_transform (md5->buf, (guint32 *) md5->data); - - data += bit; - length -= bit; - } - - /* process data in 64-byte chunks */ - while (length >= MD5_DATASIZE) - { - memcpy (md5->data, data, MD5_DATASIZE); - - md5_byte_reverse (md5->data, 16); - md5_transform (md5->buf, (guint32 *) md5->data); - - data += MD5_DATASIZE; - length -= MD5_DATASIZE; - } - - /* handle any remaining bytes of data */ - memcpy (md5->data, data, length); -} - -/* closes a checksum */ -static void -md5_sum_close (Md5sum *md5) -{ - guint count; - guchar *p; - - /* Compute number of bytes mod 64 */ - count = (md5->bits[0] >> 3) & 0x3F; - - /* Set the first char of padding to 0x80. - * This is safe since there is always at least one byte free - */ - p = md5->data + count; - *p++ = 0x80; - - /* Bytes of padding needed to make 64 bytes */ - count = MD5_DATASIZE - 1 - count; - - /* Pad out to 56 mod 64 */ - if (count < 8) - { - /* Two lots of padding: Pad the first block to 64 bytes */ - memset (p, 0, count); - - md5_byte_reverse (md5->data, 16); - md5_transform (md5->buf, (guint32 *) md5->data); - - /* Now fill the next block with 56 bytes */ - memset (md5->data, 0, MD5_DATASIZE - 8); - } - else - { - /* Pad block to 56 bytes */ - memset (p, 0, count - 8); - } - - md5_byte_reverse (md5->data, 14); - - /* Append length in bits and transform */ - ((guint32 *) md5->data)[14] = md5->bits[0]; - ((guint32 *) md5->data)[15] = md5->bits[1]; - - md5_transform (md5->buf, (guint32 *) md5->data); - md5_byte_reverse ((guchar *) md5->buf, 4); - - memcpy (md5->digest, md5->buf, 16); - - /* Reset buffers in case they contain sensitive data */ - memset (md5->buf, 0, sizeof (md5->buf)); - memset (md5->data, 0, sizeof (md5->data)); -} - -static gchar * -md5_sum_to_string (Md5sum *md5) -{ - return digest_to_string (md5->digest, MD5_DIGEST_LEN); -} - -static void -md5_sum_digest (Md5sum *md5, - guint8 *digest) -{ - gint i; - - for (i = 0; i < MD5_DIGEST_LEN; i++) - digest[i] = md5->digest[i]; -} - -/* - * SHA-1 Checksum - */ - -/* The following implementation comes from D-Bus dbus-sha.c. I've changed - * it to use GLib types and to work more like the MD5 implementation above. - * I left the comments to have an history of this code. - * -- Emmanuele Bassi, ebassi@gnome.org - */ - -/* The following comments have the history of where this code - * comes from. I actually copied it from GNet in GNOME CVS. - * - hp@redhat.com - */ - -/* - * sha.h : Implementation of the Secure Hash Algorithm - * - * Part of the Python Cryptography Toolkit, version 1.0.0 - * - * Copyright (C) 1995, A.M. Kuchling - * - * Distribute and use freely; there are no restrictions on further - * dissemination and usage except those imposed by the laws of your - * country of residence. - * - */ - -/* SHA: NIST's Secure Hash Algorithm */ - -/* Based on SHA code originally posted to sci.crypt by Peter Gutmann - in message <30ajo5$oe8@ccu2.auckland.ac.nz>. - Modified to test for endianness on creation of SHA objects by AMK. - Also, the original specification of SHA was found to have a weakness - by NSA/NIST. This code implements the fixed version of SHA. -*/ - -/* Here's the first paragraph of Peter Gutmann's posting: - -The following is my SHA (FIPS 180) code updated to allow use of the "fixed" -SHA, thanks to Jim Gillogly and an anonymous contributor for the information on -what's changed in the new version. The fix is a simple change which involves -adding a single rotate in the initial expansion function. It is unknown -whether this is an optimal solution to the problem which was discovered in the -SHA or whether it's simply a bandaid which fixes the problem with a minimum of -effort (for example the reengineering of a great many Capstone chips). -*/ - -static void -sha1_sum_init (Sha1sum *sha1) -{ - /* initialize constants */ - sha1->buf[0] = 0x67452301L; - sha1->buf[1] = 0xEFCDAB89L; - sha1->buf[2] = 0x98BADCFEL; - sha1->buf[3] = 0x10325476L; - sha1->buf[4] = 0xC3D2E1F0L; - - /* initialize bits */ - sha1->bits[0] = sha1->bits[1] = 0; -} - -/* The SHA f()-functions. */ - -#define f1(x,y,z) (z ^ (x & (y ^ z))) /* Rounds 0-19 */ -#define f2(x,y,z) (x ^ y ^ z) /* Rounds 20-39 */ -#define f3(x,y,z) (( x & y) | (z & (x | y))) /* Rounds 40-59 */ -#define f4(x,y,z) (x ^ y ^ z) /* Rounds 60-79 */ - -/* The SHA Mysterious Constants */ -#define K1 0x5A827999L /* Rounds 0-19 */ -#define K2 0x6ED9EBA1L /* Rounds 20-39 */ -#define K3 0x8F1BBCDCL /* Rounds 40-59 */ -#define K4 0xCA62C1D6L /* Rounds 60-79 */ - -/* 32-bit rotate left - kludged with shifts */ -#define ROTL(n,X) (((X) << n ) | ((X) >> (32 - n))) - -/* The initial expanding function. The hash function is defined over an - 80-word expanded input array W, where the first 16 are copies of the input - data, and the remaining 64 are defined by - - W[ i ] = W[ i - 16 ] ^ W[ i - 14 ] ^ W[ i - 8 ] ^ W[ i - 3 ] - - This implementation generates these values on the fly in a circular - buffer - thanks to Colin Plumb, colin@nyx10.cs.du.edu for this - optimization. - - The updated SHA changes the expanding function by adding a rotate of 1 - bit. Thanks to Jim Gillogly, jim@rand.org, and an anonymous contributor - for this information */ - -#define expand(W,i) (W[ i & 15 ] = ROTL (1, (W[ i & 15] ^ \ - W[(i - 14) & 15] ^ \ - W[(i - 8) & 15] ^ \ - W[(i - 3) & 15]))) - - -/* The prototype SHA sub-round. The fundamental sub-round is: - - a' = e + ROTL( 5, a ) + f( b, c, d ) + k + data; - b' = a; - c' = ROTL( 30, b ); - d' = c; - e' = d; - - but this is implemented by unrolling the loop 5 times and renaming the - variables ( e, a, b, c, d ) = ( a', b', c', d', e' ) each iteration. - This code is then replicated 20 times for each of the 4 functions, using - the next 20 values from the W[] array each time */ - -#define subRound(a, b, c, d, e, f, k, data) \ - (e += ROTL (5, a) + f(b, c, d) + k + data, b = ROTL (30, b)) - -static void -sha1_transform (guint32 buf[5], - guint32 in[16]) -{ - guint32 A, B, C, D, E; - - A = buf[0]; - B = buf[1]; - C = buf[2]; - D = buf[3]; - E = buf[4]; - - /* Heavy mangling, in 4 sub-rounds of 20 interations each. */ - subRound (A, B, C, D, E, f1, K1, in[0]); - subRound (E, A, B, C, D, f1, K1, in[1]); - subRound (D, E, A, B, C, f1, K1, in[2]); - subRound (C, D, E, A, B, f1, K1, in[3]); - subRound (B, C, D, E, A, f1, K1, in[4]); - subRound (A, B, C, D, E, f1, K1, in[5]); - subRound (E, A, B, C, D, f1, K1, in[6]); - subRound (D, E, A, B, C, f1, K1, in[7]); - subRound (C, D, E, A, B, f1, K1, in[8]); - subRound (B, C, D, E, A, f1, K1, in[9]); - subRound (A, B, C, D, E, f1, K1, in[10]); - subRound (E, A, B, C, D, f1, K1, in[11]); - subRound (D, E, A, B, C, f1, K1, in[12]); - subRound (C, D, E, A, B, f1, K1, in[13]); - subRound (B, C, D, E, A, f1, K1, in[14]); - subRound (A, B, C, D, E, f1, K1, in[15]); - subRound (E, A, B, C, D, f1, K1, expand (in, 16)); - subRound (D, E, A, B, C, f1, K1, expand (in, 17)); - subRound (C, D, E, A, B, f1, K1, expand (in, 18)); - subRound (B, C, D, E, A, f1, K1, expand (in, 19)); - - subRound (A, B, C, D, E, f2, K2, expand (in, 20)); - subRound (E, A, B, C, D, f2, K2, expand (in, 21)); - subRound (D, E, A, B, C, f2, K2, expand (in, 22)); - subRound (C, D, E, A, B, f2, K2, expand (in, 23)); - subRound (B, C, D, E, A, f2, K2, expand (in, 24)); - subRound (A, B, C, D, E, f2, K2, expand (in, 25)); - subRound (E, A, B, C, D, f2, K2, expand (in, 26)); - subRound (D, E, A, B, C, f2, K2, expand (in, 27)); - subRound (C, D, E, A, B, f2, K2, expand (in, 28)); - subRound (B, C, D, E, A, f2, K2, expand (in, 29)); - subRound (A, B, C, D, E, f2, K2, expand (in, 30)); - subRound (E, A, B, C, D, f2, K2, expand (in, 31)); - subRound (D, E, A, B, C, f2, K2, expand (in, 32)); - subRound (C, D, E, A, B, f2, K2, expand (in, 33)); - subRound (B, C, D, E, A, f2, K2, expand (in, 34)); - subRound (A, B, C, D, E, f2, K2, expand (in, 35)); - subRound (E, A, B, C, D, f2, K2, expand (in, 36)); - subRound (D, E, A, B, C, f2, K2, expand (in, 37)); - subRound (C, D, E, A, B, f2, K2, expand (in, 38)); - subRound (B, C, D, E, A, f2, K2, expand (in, 39)); - - subRound (A, B, C, D, E, f3, K3, expand (in, 40)); - subRound (E, A, B, C, D, f3, K3, expand (in, 41)); - subRound (D, E, A, B, C, f3, K3, expand (in, 42)); - subRound (C, D, E, A, B, f3, K3, expand (in, 43)); - subRound (B, C, D, E, A, f3, K3, expand (in, 44)); - subRound (A, B, C, D, E, f3, K3, expand (in, 45)); - subRound (E, A, B, C, D, f3, K3, expand (in, 46)); - subRound (D, E, A, B, C, f3, K3, expand (in, 47)); - subRound (C, D, E, A, B, f3, K3, expand (in, 48)); - subRound (B, C, D, E, A, f3, K3, expand (in, 49)); - subRound (A, B, C, D, E, f3, K3, expand (in, 50)); - subRound (E, A, B, C, D, f3, K3, expand (in, 51)); - subRound (D, E, A, B, C, f3, K3, expand (in, 52)); - subRound (C, D, E, A, B, f3, K3, expand (in, 53)); - subRound (B, C, D, E, A, f3, K3, expand (in, 54)); - subRound (A, B, C, D, E, f3, K3, expand (in, 55)); - subRound (E, A, B, C, D, f3, K3, expand (in, 56)); - subRound (D, E, A, B, C, f3, K3, expand (in, 57)); - subRound (C, D, E, A, B, f3, K3, expand (in, 58)); - subRound (B, C, D, E, A, f3, K3, expand (in, 59)); - - subRound (A, B, C, D, E, f4, K4, expand (in, 60)); - subRound (E, A, B, C, D, f4, K4, expand (in, 61)); - subRound (D, E, A, B, C, f4, K4, expand (in, 62)); - subRound (C, D, E, A, B, f4, K4, expand (in, 63)); - subRound (B, C, D, E, A, f4, K4, expand (in, 64)); - subRound (A, B, C, D, E, f4, K4, expand (in, 65)); - subRound (E, A, B, C, D, f4, K4, expand (in, 66)); - subRound (D, E, A, B, C, f4, K4, expand (in, 67)); - subRound (C, D, E, A, B, f4, K4, expand (in, 68)); - subRound (B, C, D, E, A, f4, K4, expand (in, 69)); - subRound (A, B, C, D, E, f4, K4, expand (in, 70)); - subRound (E, A, B, C, D, f4, K4, expand (in, 71)); - subRound (D, E, A, B, C, f4, K4, expand (in, 72)); - subRound (C, D, E, A, B, f4, K4, expand (in, 73)); - subRound (B, C, D, E, A, f4, K4, expand (in, 74)); - subRound (A, B, C, D, E, f4, K4, expand (in, 75)); - subRound (E, A, B, C, D, f4, K4, expand (in, 76)); - subRound (D, E, A, B, C, f4, K4, expand (in, 77)); - subRound (C, D, E, A, B, f4, K4, expand (in, 78)); - subRound (B, C, D, E, A, f4, K4, expand (in, 79)); - - /* Build message digest */ - buf[0] += A; - buf[1] += B; - buf[2] += C; - buf[3] += D; - buf[4] += E; -} - -#undef K1 -#undef K2 -#undef K3 -#undef K4 -#undef f1 -#undef f2 -#undef f3 -#undef f4 -#undef ROTL -#undef expand -#undef subRound - -static void -sha1_sum_update (Sha1sum *sha1, - const guchar *buffer, - gsize count) -{ - guint32 tmp; - guint dataCount; - - /* Update bitcount */ - tmp = sha1->bits[0]; - if ((sha1->bits[0] = tmp + ((guint32) count << 3) ) < tmp) - sha1->bits[1] += 1; /* Carry from low to high */ - sha1->bits[1] += count >> 29; - - /* Get count of bytes already in data */ - dataCount = (guint) (tmp >> 3) & 0x3F; - - /* Handle any leading odd-sized chunks */ - if (dataCount) - { - guchar *p = (guchar *) sha1->data + dataCount; - - dataCount = SHA1_DATASIZE - dataCount; - if (count < dataCount) - { - memcpy (p, buffer, count); - return; - } - - memcpy (p, buffer, dataCount); - - sha_byte_reverse (sha1->data, SHA1_DATASIZE); - sha1_transform (sha1->buf, sha1->data); - - buffer += dataCount; - count -= dataCount; - } - - /* Process data in SHA1_DATASIZE chunks */ - while (count >= SHA1_DATASIZE) - { - memcpy (sha1->data, buffer, SHA1_DATASIZE); - - sha_byte_reverse (sha1->data, SHA1_DATASIZE); - sha1_transform (sha1->buf, sha1->data); - - buffer += SHA1_DATASIZE; - count -= SHA1_DATASIZE; - } - - /* Handle any remaining bytes of data. */ - memcpy (sha1->data, buffer, count); -} - -/* Final wrapup - pad to SHA_DATASIZE-byte boundary with the bit pattern - 1 0* (64-bit count of bits processed, MSB-first) */ -static void -sha1_sum_close (Sha1sum *sha1) -{ - gint count; - guchar *data_p; - - /* Compute number of bytes mod 64 */ - count = (gint) ((sha1->bits[0] >> 3) & 0x3f); - - /* Set the first char of padding to 0x80. This is safe since there is - always at least one byte free */ - data_p = (guchar *) sha1->data + count; - *data_p++ = 0x80; - - /* Bytes of padding needed to make 64 bytes */ - count = SHA1_DATASIZE - 1 - count; - - /* Pad out to 56 mod 64 */ - if (count < 8) - { - /* Two lots of padding: Pad the first block to 64 bytes */ - memset (data_p, 0, count); - - sha_byte_reverse (sha1->data, SHA1_DATASIZE); - sha1_transform (sha1->buf, sha1->data); - - /* Now fill the next block with 56 bytes */ - memset (sha1->data, 0, SHA1_DATASIZE - 8); - } - else - { - /* Pad block to 56 bytes */ - memset (data_p, 0, count - 8); - } - - /* Append length in bits and transform */ - sha1->data[14] = sha1->bits[1]; - sha1->data[15] = sha1->bits[0]; - - sha_byte_reverse (sha1->data, SHA1_DATASIZE - 8); - sha1_transform (sha1->buf, sha1->data); - sha_byte_reverse (sha1->buf, SHA1_DIGEST_LEN); - - memcpy (sha1->digest, sha1->buf, SHA1_DIGEST_LEN); - - /* Reset buffers in case they contain sensitive data */ - memset (sha1->buf, 0, sizeof (sha1->buf)); - memset (sha1->data, 0, sizeof (sha1->data)); -} - -static gchar * -sha1_sum_to_string (Sha1sum *sha1) -{ - return digest_to_string (sha1->digest, SHA1_DIGEST_LEN); -} - -static void -sha1_sum_digest (Sha1sum *sha1, - guint8 *digest) -{ - gint i; - - for (i = 0; i < SHA1_DIGEST_LEN; i++) - digest[i] = sha1->digest[i]; -} - -/* - * SHA-256 Checksum - */ - -/* adapted from the SHA256 implementation in gsk/src/hash/gskhash.c. - * - * Copyright (C) 2006 Dave Benson - * Released under the terms of the GNU Lesser General Public License - */ - -static void -sha256_sum_init (Sha256sum *sha256) -{ - sha256->buf[0] = 0x6a09e667; - sha256->buf[1] = 0xbb67ae85; - sha256->buf[2] = 0x3c6ef372; - sha256->buf[3] = 0xa54ff53a; - sha256->buf[4] = 0x510e527f; - sha256->buf[5] = 0x9b05688c; - sha256->buf[6] = 0x1f83d9ab; - sha256->buf[7] = 0x5be0cd19; - - sha256->bits[0] = sha256->bits[1] = 0; -} - -#define GET_UINT32(n,b,i) G_STMT_START{ \ - (n) = ((guint32) (b)[(i) ] << 24) \ - | ((guint32) (b)[(i) + 1] << 16) \ - | ((guint32) (b)[(i) + 2] << 8) \ - | ((guint32) (b)[(i) + 3] ); } G_STMT_END - -#define PUT_UINT32(n,b,i) G_STMT_START{ \ - (b)[(i) ] = (guint8) ((n) >> 24); \ - (b)[(i) + 1] = (guint8) ((n) >> 16); \ - (b)[(i) + 2] = (guint8) ((n) >> 8); \ - (b)[(i) + 3] = (guint8) ((n) ); } G_STMT_END - -static void -sha256_transform (guint32 buf[8], - guint8 const data[64]) -{ - guint32 temp1, temp2, W[64]; - guint32 A, B, C, D, E, F, G, H; - - GET_UINT32 (W[0], data, 0); - GET_UINT32 (W[1], data, 4); - GET_UINT32 (W[2], data, 8); - GET_UINT32 (W[3], data, 12); - GET_UINT32 (W[4], data, 16); - GET_UINT32 (W[5], data, 20); - GET_UINT32 (W[6], data, 24); - GET_UINT32 (W[7], data, 28); - GET_UINT32 (W[8], data, 32); - GET_UINT32 (W[9], data, 36); - GET_UINT32 (W[10], data, 40); - GET_UINT32 (W[11], data, 44); - GET_UINT32 (W[12], data, 48); - GET_UINT32 (W[13], data, 52); - GET_UINT32 (W[14], data, 56); - GET_UINT32 (W[15], data, 60); - -#define SHR(x,n) ((x & 0xFFFFFFFF) >> n) -#define ROTR(x,n) (SHR (x,n) | (x << (32 - n))) - -#define S0(x) (ROTR (x, 7) ^ ROTR (x,18) ^ SHR (x, 3)) -#define S1(x) (ROTR (x,17) ^ ROTR (x,19) ^ SHR (x,10)) -#define S2(x) (ROTR (x, 2) ^ ROTR (x,13) ^ ROTR (x,22)) -#define S3(x) (ROTR (x, 6) ^ ROTR (x,11) ^ ROTR (x,25)) - -#define F0(x,y,z) ((x & y) | (z & (x | y))) -#define F1(x,y,z) (z ^ (x & (y ^ z))) - -#define R(t) (W[t] = S1(W[t - 2]) + W[t - 7] + \ - S0(W[t - 15]) + W[t - 16]) - -#define P(a,b,c,d,e,f,g,h,x,K) G_STMT_START { \ - temp1 = h + S3(e) + F1(e,f,g) + K + x; \ - temp2 = S2(a) + F0(a,b,c); \ - d += temp1; h = temp1 + temp2; } G_STMT_END - - A = buf[0]; - B = buf[1]; - C = buf[2]; - D = buf[3]; - E = buf[4]; - F = buf[5]; - G = buf[6]; - H = buf[7]; - - P (A, B, C, D, E, F, G, H, W[ 0], 0x428A2F98); - P (H, A, B, C, D, E, F, G, W[ 1], 0x71374491); - P (G, H, A, B, C, D, E, F, W[ 2], 0xB5C0FBCF); - P (F, G, H, A, B, C, D, E, W[ 3], 0xE9B5DBA5); - P (E, F, G, H, A, B, C, D, W[ 4], 0x3956C25B); - P (D, E, F, G, H, A, B, C, W[ 5], 0x59F111F1); - P (C, D, E, F, G, H, A, B, W[ 6], 0x923F82A4); - P (B, C, D, E, F, G, H, A, W[ 7], 0xAB1C5ED5); - P (A, B, C, D, E, F, G, H, W[ 8], 0xD807AA98); - P (H, A, B, C, D, E, F, G, W[ 9], 0x12835B01); - P (G, H, A, B, C, D, E, F, W[10], 0x243185BE); - P (F, G, H, A, B, C, D, E, W[11], 0x550C7DC3); - P (E, F, G, H, A, B, C, D, W[12], 0x72BE5D74); - P (D, E, F, G, H, A, B, C, W[13], 0x80DEB1FE); - P (C, D, E, F, G, H, A, B, W[14], 0x9BDC06A7); - P (B, C, D, E, F, G, H, A, W[15], 0xC19BF174); - P (A, B, C, D, E, F, G, H, R(16), 0xE49B69C1); - P (H, A, B, C, D, E, F, G, R(17), 0xEFBE4786); - P (G, H, A, B, C, D, E, F, R(18), 0x0FC19DC6); - P (F, G, H, A, B, C, D, E, R(19), 0x240CA1CC); - P (E, F, G, H, A, B, C, D, R(20), 0x2DE92C6F); - P (D, E, F, G, H, A, B, C, R(21), 0x4A7484AA); - P (C, D, E, F, G, H, A, B, R(22), 0x5CB0A9DC); - P (B, C, D, E, F, G, H, A, R(23), 0x76F988DA); - P (A, B, C, D, E, F, G, H, R(24), 0x983E5152); - P (H, A, B, C, D, E, F, G, R(25), 0xA831C66D); - P (G, H, A, B, C, D, E, F, R(26), 0xB00327C8); - P (F, G, H, A, B, C, D, E, R(27), 0xBF597FC7); - P (E, F, G, H, A, B, C, D, R(28), 0xC6E00BF3); - P (D, E, F, G, H, A, B, C, R(29), 0xD5A79147); - P (C, D, E, F, G, H, A, B, R(30), 0x06CA6351); - P (B, C, D, E, F, G, H, A, R(31), 0x14292967); - P (A, B, C, D, E, F, G, H, R(32), 0x27B70A85); - P (H, A, B, C, D, E, F, G, R(33), 0x2E1B2138); - P (G, H, A, B, C, D, E, F, R(34), 0x4D2C6DFC); - P (F, G, H, A, B, C, D, E, R(35), 0x53380D13); - P (E, F, G, H, A, B, C, D, R(36), 0x650A7354); - P (D, E, F, G, H, A, B, C, R(37), 0x766A0ABB); - P (C, D, E, F, G, H, A, B, R(38), 0x81C2C92E); - P (B, C, D, E, F, G, H, A, R(39), 0x92722C85); - P (A, B, C, D, E, F, G, H, R(40), 0xA2BFE8A1); - P (H, A, B, C, D, E, F, G, R(41), 0xA81A664B); - P (G, H, A, B, C, D, E, F, R(42), 0xC24B8B70); - P (F, G, H, A, B, C, D, E, R(43), 0xC76C51A3); - P (E, F, G, H, A, B, C, D, R(44), 0xD192E819); - P (D, E, F, G, H, A, B, C, R(45), 0xD6990624); - P (C, D, E, F, G, H, A, B, R(46), 0xF40E3585); - P (B, C, D, E, F, G, H, A, R(47), 0x106AA070); - P (A, B, C, D, E, F, G, H, R(48), 0x19A4C116); - P (H, A, B, C, D, E, F, G, R(49), 0x1E376C08); - P (G, H, A, B, C, D, E, F, R(50), 0x2748774C); - P (F, G, H, A, B, C, D, E, R(51), 0x34B0BCB5); - P (E, F, G, H, A, B, C, D, R(52), 0x391C0CB3); - P (D, E, F, G, H, A, B, C, R(53), 0x4ED8AA4A); - P (C, D, E, F, G, H, A, B, R(54), 0x5B9CCA4F); - P (B, C, D, E, F, G, H, A, R(55), 0x682E6FF3); - P (A, B, C, D, E, F, G, H, R(56), 0x748F82EE); - P (H, A, B, C, D, E, F, G, R(57), 0x78A5636F); - P (G, H, A, B, C, D, E, F, R(58), 0x84C87814); - P (F, G, H, A, B, C, D, E, R(59), 0x8CC70208); - P (E, F, G, H, A, B, C, D, R(60), 0x90BEFFFA); - P (D, E, F, G, H, A, B, C, R(61), 0xA4506CEB); - P (C, D, E, F, G, H, A, B, R(62), 0xBEF9A3F7); - P (B, C, D, E, F, G, H, A, R(63), 0xC67178F2); - -#undef SHR -#undef ROTR -#undef S0 -#undef S1 -#undef S2 -#undef S3 -#undef F0 -#undef F1 -#undef R -#undef P - - buf[0] += A; - buf[1] += B; - buf[2] += C; - buf[3] += D; - buf[4] += E; - buf[5] += F; - buf[6] += G; - buf[7] += H; -} - -static void -sha256_sum_update (Sha256sum *sha256, - const guchar *buffer, - gsize length) -{ - guint32 left, fill; - const guint8 *input = buffer; - - if (length == 0) - return; - - left = sha256->bits[0] & 0x3F; - fill = 64 - left; - - sha256->bits[0] += length; - sha256->bits[0] &= 0xFFFFFFFF; - - if (sha256->bits[0] < length) - sha256->bits[1]++; - - if (left > 0 && length >= fill) - { - memcpy ((sha256->data + left), input, fill); - - sha256_transform (sha256->buf, sha256->data); - length -= fill; - input += fill; - - left = 0; - } - - while (length >= SHA256_DATASIZE) - { - sha256_transform (sha256->buf, input); - - length -= 64; - input += 64; - } - - if (length) - memcpy (sha256->data + left, input, length); -} - -static guint8 sha256_padding[64] = -{ - 0x80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 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 void -sha256_sum_close (Sha256sum *sha256) -{ - guint32 last, padn; - guint32 high, low; - guint8 msglen[8]; - - high = (sha256->bits[0] >> 29) - | (sha256->bits[1] << 3); - low = (sha256->bits[0] << 3); - - PUT_UINT32 (high, msglen, 0); - PUT_UINT32 (low, msglen, 4); - - last = sha256->bits[0] & 0x3F; - padn = (last < 56) ? (56 - last) : (120 - last); - - sha256_sum_update (sha256, sha256_padding, padn); - sha256_sum_update (sha256, msglen, 8); - - PUT_UINT32 (sha256->buf[0], sha256->digest, 0); - PUT_UINT32 (sha256->buf[1], sha256->digest, 4); - PUT_UINT32 (sha256->buf[2], sha256->digest, 8); - PUT_UINT32 (sha256->buf[3], sha256->digest, 12); - PUT_UINT32 (sha256->buf[4], sha256->digest, 16); - PUT_UINT32 (sha256->buf[5], sha256->digest, 20); - PUT_UINT32 (sha256->buf[6], sha256->digest, 24); - PUT_UINT32 (sha256->buf[7], sha256->digest, 28); -} - -#undef PUT_UINT32 -#undef GET_UINT32 - -static gchar * -sha256_sum_to_string (Sha256sum *sha256) -{ - return digest_to_string (sha256->digest, SHA256_DIGEST_LEN); -} - -static void -sha256_sum_digest (Sha256sum *sha256, - guint8 *digest) -{ - gint i; - - for (i = 0; i < SHA256_DIGEST_LEN; i++) - digest[i] = sha256->digest[i]; -} - - -/* - * Public API - */ - -/** - * g_checksum_type_get_length: - * @checksum_type: a #GChecksumType - * - * Gets the length in bytes of digests of type @checksum_type - * - * Return value: the checksum length, or -1 if @checksum_type is - * not supported. - * - * Since: 2.16 - */ -gssize -g_checksum_type_get_length (GChecksumType checksum_type) -{ - gssize len = -1; - - switch (checksum_type) - { - case G_CHECKSUM_MD5: - len = MD5_DIGEST_LEN; - break; - case G_CHECKSUM_SHA1: - len = SHA1_DIGEST_LEN; - break; - case G_CHECKSUM_SHA256: - len = SHA256_DIGEST_LEN; - break; - default: - len = -1; - break; - } - - return len; -} - -/** - * g_checksum_new: - * @checksum_type: the desired type of checksum - * - * Creates a new #GChecksum, using the checksum algorithm @checksum_type. - * If the @checksum_type is not known, %NULL is returned. - * A #GChecksum can be used to compute the checksum, or digest, of an - * arbitrary binary blob, using different hashing algorithms. - * - * A #GChecksum works by feeding a binary blob through g_checksum_update() - * until there is data to be checked; the digest can then be extracted - * using g_checksum_get_string(), which will return the checksum as a - * hexadecimal string; or g_checksum_get_digest(), which will return a - * vector of raw bytes. Once either g_checksum_get_string() or - * g_checksum_get_digest() have been called on a #GChecksum, the checksum - * will be closed and it won't be possible to call g_checksum_update() - * on it anymore. - * - * Return value: the newly created #GChecksum, or %NULL. - * Use g_checksum_free() to free the memory allocated by it. - * - * Since: 2.16 - */ -GChecksum * -g_checksum_new (GChecksumType checksum_type) -{ - GChecksum *checksum; - - if (! IS_VALID_TYPE (checksum_type)) - return NULL; - - checksum = g_slice_new0 (GChecksum); - checksum->type = checksum_type; - - g_checksum_reset (checksum); - - return checksum; -} - -/** - * g_checksum_reset: - * @checksum: the #GChecksum to reset - * - * Resets the state of the @checksum back to its initial state. - * - * Since: 2.18 - **/ -void -g_checksum_reset (GChecksum *checksum) -{ - g_return_if_fail (checksum != NULL); - - g_free (checksum->digest_str); - checksum->digest_str = NULL; - - switch (checksum->type) - { - case G_CHECKSUM_MD5: - md5_sum_init (&(checksum->sum.md5)); - break; - case G_CHECKSUM_SHA1: - sha1_sum_init (&(checksum->sum.sha1)); - break; - case G_CHECKSUM_SHA256: - sha256_sum_init (&(checksum->sum.sha256)); - break; - default: - g_assert_not_reached (); - break; - } -} - -/** - * g_checksum_copy: - * @checksum: the #GChecksum to copy - * - * Copies a #GChecksum. If @checksum has been closed, by calling - * g_checksum_get_string() or g_checksum_get_digest(), the copied - * checksum will be closed as well. - * - * Return value: the copy of the passed #GChecksum. Use g_checksum_free() - * when finished using it. - * - * Since: 2.16 - */ -GChecksum * -g_checksum_copy (const GChecksum *checksum) -{ - GChecksum *copy; - - g_return_val_if_fail (checksum != NULL, NULL); - - copy = g_slice_new (GChecksum); - *copy = *checksum; - - copy->digest_str = g_strdup (checksum->digest_str); - - return copy; -} - -/** - * g_checksum_free: - * @checksum: a #GChecksum - * - * Frees the memory allocated for @checksum. - * - * Since: 2.16 - */ -void -g_checksum_free (GChecksum *checksum) -{ - if (G_LIKELY (checksum)) - { - g_free (checksum->digest_str); - - g_slice_free (GChecksum, checksum); - } -} - -/** - * g_checksum_update: - * @checksum: a #GChecksum - * @data: buffer used to compute the checksum - * @length: size of the buffer, or -1 if it is a null-terminated string. - * - * Feeds @data into an existing #GChecksum. The checksum must still be - * open, that is g_checksum_get_string() or g_checksum_get_digest() must - * not have been called on @checksum. - * - * Since: 2.16 - */ -void -g_checksum_update (GChecksum *checksum, - const guchar *data, - gssize length) -{ - g_return_if_fail (checksum != NULL); - g_return_if_fail (data != NULL); - - if (length < 0) - length = strlen ((const gchar *) data); - - if (checksum->digest_str) - { - g_warning ("The checksum `%s' has been closed and cannot be updated " - "anymore.", - checksum->digest_str); - return; - } - - switch (checksum->type) - { - case G_CHECKSUM_MD5: - md5_sum_update (&(checksum->sum.md5), data, length); - break; - case G_CHECKSUM_SHA1: - sha1_sum_update (&(checksum->sum.sha1), data, length); - break; - case G_CHECKSUM_SHA256: - sha256_sum_update (&(checksum->sum.sha256), data, length); - break; - default: - g_assert_not_reached (); - break; - } -} - -/** - * g_checksum_get_string: - * @checksum: a #GChecksum - * - * Gets the digest as an hexadecimal string. - * - * Once this function has been called the #GChecksum can no longer be - * updated with g_checksum_update(). - * - * The hexadecimal characters will be lower case. - * - * Return value: the hexadecimal representation of the checksum. The - * returned string is owned by the checksum and should not be modified - * or freed. - * - * Since: 2.16 - */ -G_CONST_RETURN gchar * -g_checksum_get_string (GChecksum *checksum) -{ - gchar *str = NULL; - - g_return_val_if_fail (checksum != NULL, NULL); - - if (checksum->digest_str) - return checksum->digest_str; - - switch (checksum->type) - { - case G_CHECKSUM_MD5: - md5_sum_close (&(checksum->sum.md5)); - str = md5_sum_to_string (&(checksum->sum.md5)); - break; - case G_CHECKSUM_SHA1: - sha1_sum_close (&(checksum->sum.sha1)); - str = sha1_sum_to_string (&(checksum->sum.sha1)); - break; - case G_CHECKSUM_SHA256: - sha256_sum_close (&(checksum->sum.sha256)); - str = sha256_sum_to_string (&(checksum->sum.sha256)); - break; - default: - g_assert_not_reached (); - break; - } - - checksum->digest_str = str; - - return checksum->digest_str; -} - -/** - * g_checksum_get_digest: - * @checksum: a #GChecksum - * @buffer: output buffer - * @digest_len: an inout parameter. The caller initializes it to the size of @buffer. - * After the call it contains the length of the digest. - * - * Gets the digest from @checksum as a raw binary vector and places it - * into @buffer. The size of the digest depends on the type of checksum. - * - * Once this function has been called, the #GChecksum is closed and can - * no longer be updated with g_checksum_update(). - * - * Since: 2.16 - */ -void -g_checksum_get_digest (GChecksum *checksum, - guint8 *buffer, - gsize *digest_len) -{ - gboolean checksum_open = FALSE; - gchar *str = NULL; - gsize len; - - g_return_if_fail (checksum != NULL); - - len = g_checksum_type_get_length (checksum->type); - g_return_if_fail (*digest_len >= len); - - checksum_open = !!(checksum->digest_str == NULL); - - switch (checksum->type) - { - case G_CHECKSUM_MD5: - if (checksum_open) - { - md5_sum_close (&(checksum->sum.md5)); - str = md5_sum_to_string (&(checksum->sum.md5)); - } - md5_sum_digest (&(checksum->sum.md5), buffer); - break; - case G_CHECKSUM_SHA1: - if (checksum_open) - { - sha1_sum_close (&(checksum->sum.sha1)); - str = sha1_sum_to_string (&(checksum->sum.sha1)); - } - sha1_sum_digest (&(checksum->sum.sha1), buffer); - break; - case G_CHECKSUM_SHA256: - if (checksum_open) - { - sha256_sum_close (&(checksum->sum.sha256)); - str = sha256_sum_to_string (&(checksum->sum.sha256)); - } - sha256_sum_digest (&(checksum->sum.sha256), buffer); - break; - default: - g_assert_not_reached (); - break; - } - - if (str) - checksum->digest_str = str; - - *digest_len = len; -} - -/** - * g_compute_checksum_for_data: - * @checksum_type: a #GChecksumType - * @data: binary blob to compute the digest of - * @length: length of @data - * - * Computes the checksum for a binary @data of @length. This is a - * convenience wrapper for g_checksum_new(), g_checksum_get_string() - * and g_checksum_free(). - * - * The hexadecimal string returned will be in lower case. - * - * Return value: the digest of the binary data as a string in hexadecimal. - * The returned string should be freed with g_free() when done using it. - * - * Since: 2.16 - */ -gchar * -g_compute_checksum_for_data (GChecksumType checksum_type, - const guchar *data, - gsize length) -{ - GChecksum *checksum; - gchar *retval; - - g_return_val_if_fail (IS_VALID_TYPE (checksum_type), NULL); - g_return_val_if_fail (data != NULL, NULL); - - checksum = g_checksum_new (checksum_type); - if (!checksum) - return NULL; - - g_checksum_update (checksum, data, length); - retval = g_strdup (g_checksum_get_string (checksum)); - g_checksum_free (checksum); - - return retval; -} - -/** - * g_compute_checksum_for_string: - * @checksum_type: a #GChecksumType - * @str: the string to compute the checksum of - * @length: the length of the string, or -1 if the string is null-terminated. - * - * Computes the checksum of a string. - * - * The hexadecimal string returned will be in lower case. - * - * Return value: the checksum as a hexadecimal string. The returned string - * should be freed with g_free() when done using it. - * - * Since: 2.16 - */ -gchar * -g_compute_checksum_for_string (GChecksumType checksum_type, - const gchar *str, - gssize length) -{ - g_return_val_if_fail (IS_VALID_TYPE (checksum_type), NULL); - g_return_val_if_fail (str != NULL, NULL); - - if (length < 0) - length = strlen (str); - - return g_compute_checksum_for_data (checksum_type, (const guchar *) str, length); -} - -#define __G_CHECKSUM_C__ -#include "galiasdef.c" diff --git a/lib/win32/glib-2.20.4/glib/gchecksum.h b/lib/win32/glib-2.20.4/glib/gchecksum.h deleted file mode 100644 index 03f1e863abb1e..0000000000000 --- a/lib/win32/glib-2.20.4/glib/gchecksum.h +++ /dev/null @@ -1,86 +0,0 @@ -/* gchecksum.h - data hashing functions - * - * Copyright (C) 2007 Emmanuele Bassi - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ - -#if defined(G_DISABLE_SINGLE_INCLUDES) && !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION) -#error "Only can be included directly." -#endif - -#ifndef __G_CHECKSUM_H__ -#define __G_CHECKSUM_H__ - -#include - -G_BEGIN_DECLS - -/** - * GChecksumType: - * @G_CHECKSUM_MD5: Use the MD5 hashing algorithm - * @G_CHECKSUM_SHA1: Use the SHA-1 hashing algorithm - * @G_CHECKSUM_SHA256: Use the SHA-256 hashing algorithm - * - * The hashing algorithm to be used by #GChecksum when performing the - * digest of some data. - * - * Note that the #GChecksumType enumeration may be extended at a later - * date to include new hashing algorithm types. - * - * Since: 2.16 - */ -typedef enum { - G_CHECKSUM_MD5, - G_CHECKSUM_SHA1, - G_CHECKSUM_SHA256 -} GChecksumType; - -/** - * GChecksum: - * - * An opaque structure representing a checksumming operation. - * To create a new GChecksum, use g_checksum_new(). To free - * a GChecksum, use g_checksum_free(). - * - * Since: 2.16 - */ -typedef struct _GChecksum GChecksum; - -gssize g_checksum_type_get_length (GChecksumType checksum_type); - -GChecksum * g_checksum_new (GChecksumType checksum_type); -void g_checksum_reset (GChecksum *checksum); -GChecksum * g_checksum_copy (const GChecksum *checksum); -void g_checksum_free (GChecksum *checksum); -void g_checksum_update (GChecksum *checksum, - const guchar *data, - gssize length); -G_CONST_RETURN gchar *g_checksum_get_string (GChecksum *checksum); -void g_checksum_get_digest (GChecksum *checksum, - guint8 *buffer, - gsize *digest_len); - -gchar *g_compute_checksum_for_data (GChecksumType checksum_type, - const guchar *data, - gsize length); -gchar *g_compute_checksum_for_string (GChecksumType checksum_type, - const gchar *str, - gssize length); - -G_END_DECLS - -#endif /* __G_CHECKSUM_H__ */ diff --git a/lib/win32/glib-2.20.4/glib/gcompletion.c b/lib/win32/glib-2.20.4/glib/gcompletion.c deleted file mode 100644 index 5d2607846e6d4..0000000000000 --- a/lib/win32/glib-2.20.4/glib/gcompletion.c +++ /dev/null @@ -1,350 +0,0 @@ -/* GLIB - Library of useful routines for C programming - * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library 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 - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ - -/* - * Modified by the GLib Team and others 1997-2000. See the AUTHORS - * file for a list of people on the GLib Team. See the ChangeLog - * files for a list of changes. These files are distributed with - * GLib at ftp://ftp.gtk.org/pub/gtk/. - */ - -/* - * MT safe - */ - -#include "config.h" - -#include - -#include "glib.h" -#include "galias.h" - -static void completion_check_cache (GCompletion* cmp, - gchar** new_prefix); - -GCompletion* -g_completion_new (GCompletionFunc func) -{ - GCompletion* gcomp; - - gcomp = g_new (GCompletion, 1); - gcomp->items = NULL; - gcomp->cache = NULL; - gcomp->prefix = NULL; - gcomp->func = func; - gcomp->strncmp_func = strncmp; - - return gcomp; -} - -void -g_completion_add_items (GCompletion* cmp, - GList* items) -{ - GList* it; - - g_return_if_fail (cmp != NULL); - - /* optimize adding to cache? */ - if (cmp->cache) - { - g_list_free (cmp->cache); - cmp->cache = NULL; - } - - if (cmp->prefix) - { - g_free (cmp->prefix); - cmp->prefix = NULL; - } - - it = items; - while (it) - { - cmp->items = g_list_prepend (cmp->items, it->data); - it = it->next; - } -} - -void -g_completion_remove_items (GCompletion* cmp, - GList* items) -{ - GList* it; - - g_return_if_fail (cmp != NULL); - - it = items; - while (cmp->items && it) - { - cmp->items = g_list_remove (cmp->items, it->data); - it = it->next; - } - - it = items; - while (cmp->cache && it) - { - cmp->cache = g_list_remove(cmp->cache, it->data); - it = it->next; - } -} - -void -g_completion_clear_items (GCompletion* cmp) -{ - g_return_if_fail (cmp != NULL); - - g_list_free (cmp->items); - cmp->items = NULL; - g_list_free (cmp->cache); - cmp->cache = NULL; - g_free (cmp->prefix); - cmp->prefix = NULL; -} - -static void -completion_check_cache (GCompletion* cmp, - gchar** new_prefix) -{ - register GList* list; - register gsize len; - register gsize i; - register gsize plen; - gchar* postfix; - gchar* s; - - if (!new_prefix) - return; - if (!cmp->cache) - { - *new_prefix = NULL; - return; - } - - len = strlen(cmp->prefix); - list = cmp->cache; - s = cmp->func ? cmp->func (list->data) : (gchar*) list->data; - postfix = s + len; - plen = strlen (postfix); - list = list->next; - - while (list && plen) - { - s = cmp->func ? cmp->func (list->data) : (gchar*) list->data; - s += len; - for (i = 0; i < plen; ++i) - { - if (postfix[i] != s[i]) - break; - } - plen = i; - list = list->next; - } - - *new_prefix = g_new0 (gchar, len + plen + 1); - strncpy (*new_prefix, cmp->prefix, len); - strncpy (*new_prefix + len, postfix, plen); -} - -/** - * g_completion_complete_utf8: - * @cmp: the #GCompletion - * @prefix: the prefix string, typically used by the user, which is compared - * with each of the items - * @new_prefix: if non-%NULL, returns the longest prefix which is common to all - * items that matched @prefix, or %NULL if no items matched @prefix. - * This string should be freed when no longer needed. - * - * Attempts to complete the string @prefix using the #GCompletion target items. - * In contrast to g_completion_complete(), this function returns the largest common - * prefix that is a valid UTF-8 string, omitting a possible common partial - * character. - * - * You should use this function instead of g_completion_complete() if your - * items are UTF-8 strings. - * - * Return value: the list of items whose strings begin with @prefix. This should - * not be changed. - * - * Since: 2.4 - **/ -GList* -g_completion_complete_utf8 (GCompletion *cmp, - const gchar *prefix, - gchar **new_prefix) -{ - GList *list; - gchar *p, *q; - - list = g_completion_complete (cmp, prefix, new_prefix); - - if (new_prefix && *new_prefix) - { - p = *new_prefix + strlen (*new_prefix); - q = g_utf8_find_prev_char (*new_prefix, p); - - switch (g_utf8_get_char_validated (q, p - q)) - { - case (gunichar)-2: - case (gunichar)-1: - *q = 0; - break; - default: ; - } - - } - - return list; -} - -GList* -g_completion_complete (GCompletion* cmp, - const gchar* prefix, - gchar** new_prefix) -{ - gsize plen, len; - gboolean done = FALSE; - GList* list; - - g_return_val_if_fail (cmp != NULL, NULL); - g_return_val_if_fail (prefix != NULL, NULL); - - len = strlen (prefix); - if (cmp->prefix && cmp->cache) - { - plen = strlen (cmp->prefix); - if (plen <= len && ! cmp->strncmp_func (prefix, cmp->prefix, plen)) - { - /* use the cache */ - list = cmp->cache; - while (list) - { - GList *next = list->next; - - if (cmp->strncmp_func (prefix, - cmp->func ? cmp->func (list->data) : (gchar*) list->data, - len)) - cmp->cache = g_list_delete_link (cmp->cache, list); - - list = next; - } - done = TRUE; - } - } - - if (!done) - { - /* normal code */ - g_list_free (cmp->cache); - cmp->cache = NULL; - list = cmp->items; - while (*prefix && list) - { - if (!cmp->strncmp_func (prefix, - cmp->func ? cmp->func (list->data) : (gchar*) list->data, - len)) - cmp->cache = g_list_prepend (cmp->cache, list->data); - list = list->next; - } - } - if (cmp->prefix) - { - g_free (cmp->prefix); - cmp->prefix = NULL; - } - if (cmp->cache) - cmp->prefix = g_strdup (prefix); - completion_check_cache (cmp, new_prefix); - - return *prefix ? cmp->cache : cmp->items; -} - -void -g_completion_free (GCompletion* cmp) -{ - g_return_if_fail (cmp != NULL); - - g_completion_clear_items (cmp); - g_free (cmp); -} - -void -g_completion_set_compare(GCompletion *cmp, - GCompletionStrncmpFunc strncmp_func) -{ - cmp->strncmp_func = strncmp_func; -} - -#ifdef TEST_COMPLETION -#include -int -main (int argc, - char* argv[]) -{ - FILE *file; - gchar buf[1024]; - GList *list; - GList *result; - GList *tmp; - GCompletion *cmp; - gint i; - gchar *longp = NULL; - - if (argc < 3) - { - g_warning ("Usage: %s filename prefix1 [prefix2 ...]\n", argv[0]); - return 1; - } - - file = fopen (argv[1], "r"); - if (!file) - { - g_warning ("Cannot open %s\n", argv[1]); - return 1; - } - - cmp = g_completion_new (NULL); - list = g_list_alloc (); - while (fgets (buf, 1024, file)) - { - list->data = g_strdup (buf); - g_completion_add_items (cmp, list); - } - fclose (file); - - for (i = 2; i < argc; ++i) - { - printf ("COMPLETING: %s\n", argv[i]); - result = g_completion_complete (cmp, argv[i], &longp); - g_list_foreach (result, (GFunc) printf, NULL); - printf ("LONG MATCH: %s\n", longp); - g_free (longp); - longp = NULL; - } - - g_list_foreach (cmp->items, (GFunc) g_free, NULL); - g_completion_free (cmp); - g_list_free (list); - - return 0; -} -#endif - -#define __G_COMPLETION_C__ -#include "galiasdef.c" diff --git a/lib/win32/glib-2.20.4/glib/gcompletion.h b/lib/win32/glib-2.20.4/glib/gcompletion.h deleted file mode 100644 index 900883eef8eb2..0000000000000 --- a/lib/win32/glib-2.20.4/glib/gcompletion.h +++ /dev/null @@ -1,77 +0,0 @@ -/* GLIB - Library of useful routines for C programming - * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library 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 - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ - -/* - * Modified by the GLib Team and others 1997-2000. See the AUTHORS - * file for a list of people on the GLib Team. See the ChangeLog - * files for a list of changes. These files are distributed with - * GLib at ftp://ftp.gtk.org/pub/gtk/. - */ - -#if defined(G_DISABLE_SINGLE_INCLUDES) && !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION) -#error "Only can be included directly." -#endif - -#ifndef __G_COMPLETION_H__ -#define __G_COMPLETION_H__ - -#include - -G_BEGIN_DECLS - -typedef struct _GCompletion GCompletion; - -typedef gchar* (*GCompletionFunc) (gpointer); - -/* GCompletion - */ - -typedef gint (*GCompletionStrncmpFunc) (const gchar *s1, - const gchar *s2, - gsize n); - -struct _GCompletion -{ - GList* items; - GCompletionFunc func; - - gchar* prefix; - GList* cache; - GCompletionStrncmpFunc strncmp_func; -}; - -GCompletion* g_completion_new (GCompletionFunc func); -void g_completion_add_items (GCompletion* cmp, - GList* items); -void g_completion_remove_items (GCompletion* cmp, - GList* items); -void g_completion_clear_items (GCompletion* cmp); -GList* g_completion_complete (GCompletion* cmp, - const gchar* prefix, - gchar** new_prefix); -GList* g_completion_complete_utf8 (GCompletion *cmp, - const gchar* prefix, - gchar** new_prefix); -void g_completion_set_compare (GCompletion *cmp, - GCompletionStrncmpFunc strncmp_func); -void g_completion_free (GCompletion* cmp); - -G_END_DECLS - -#endif /* __G_COMPLETION_H__ */ diff --git a/lib/win32/glib-2.20.4/glib/gconvert.c b/lib/win32/glib-2.20.4/glib/gconvert.c deleted file mode 100644 index 7aefe24f39200..0000000000000 --- a/lib/win32/glib-2.20.4/glib/gconvert.c +++ /dev/null @@ -1,2116 +0,0 @@ -/* GLIB - Library of useful routines for C programming - * - * gconvert.c: Convert between character sets using iconv - * Copyright Red Hat Inc., 2000 - * Authors: Havoc Pennington , Owen Taylor - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library 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 - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ - -#include "config.h" - -#include "glib.h" - -#ifndef G_OS_WIN32 -#include -#endif -#include -#include -#include -#include - -#include "gprintfint.h" -#include "gthreadprivate.h" -#include "gunicode.h" - -#ifdef G_OS_WIN32 -#include "win_iconv.c" -#endif - -#ifdef G_PLATFORM_WIN32 -#define STRICT -#include -#undef STRICT -#endif - -#include "glibintl.h" - -#if defined(USE_LIBICONV_GNU) && !defined (_LIBICONV_H) -#error GNU libiconv in use but included iconv.h not from libiconv -#endif -#if !defined(USE_LIBICONV_GNU) && defined (_LIBICONV_H) -#error GNU libiconv not in use but included iconv.h is from libiconv -#endif - -#include "galias.h" - -GQuark -g_convert_error_quark (void) -{ - return g_quark_from_static_string ("g_convert_error"); -} - -static gboolean -try_conversion (const char *to_codeset, - const char *from_codeset, - iconv_t *cd) -{ - *cd = iconv_open (to_codeset, from_codeset); - - if (*cd == (iconv_t)-1 && errno == EINVAL) - return FALSE; - else - return TRUE; -} - -static gboolean -try_to_aliases (const char **to_aliases, - const char *from_codeset, - iconv_t *cd) -{ - if (to_aliases) - { - const char **p = to_aliases; - while (*p) - { - if (try_conversion (*p, from_codeset, cd)) - return TRUE; - - p++; - } - } - - return FALSE; -} - -G_GNUC_INTERNAL extern const char ** -_g_charset_get_aliases (const char *canonical_name); - -/** - * g_iconv_open: - * @to_codeset: destination codeset - * @from_codeset: source codeset - * - * Same as the standard UNIX routine iconv_open(), but - * may be implemented via libiconv on UNIX flavors that lack - * a native implementation. - * - * GLib provides g_convert() and g_locale_to_utf8() which are likely - * more convenient than the raw iconv wrappers. - * - * Return value: a "conversion descriptor", or (GIConv)-1 if - * opening the converter failed. - **/ -GIConv -g_iconv_open (const gchar *to_codeset, - const gchar *from_codeset) -{ - iconv_t cd; - - if (!try_conversion (to_codeset, from_codeset, &cd)) - { - const char **to_aliases = _g_charset_get_aliases (to_codeset); - const char **from_aliases = _g_charset_get_aliases (from_codeset); - - if (from_aliases) - { - const char **p = from_aliases; - while (*p) - { - if (try_conversion (to_codeset, *p, &cd)) - goto out; - - if (try_to_aliases (to_aliases, *p, &cd)) - goto out; - - p++; - } - } - - if (try_to_aliases (to_aliases, from_codeset, &cd)) - goto out; - } - - out: - return (cd == (iconv_t)-1) ? (GIConv)-1 : (GIConv)cd; -} - -/** - * g_iconv: - * @converter: conversion descriptor from g_iconv_open() - * @inbuf: bytes to convert - * @inbytes_left: inout parameter, bytes remaining to convert in @inbuf - * @outbuf: converted output bytes - * @outbytes_left: inout parameter, bytes available to fill in @outbuf - * - * Same as the standard UNIX routine iconv(), but - * may be implemented via libiconv on UNIX flavors that lack - * a native implementation. - * - * GLib provides g_convert() and g_locale_to_utf8() which are likely - * more convenient than the raw iconv wrappers. - * - * Return value: count of non-reversible conversions, or -1 on error - **/ -gsize -g_iconv (GIConv converter, - gchar **inbuf, - gsize *inbytes_left, - gchar **outbuf, - gsize *outbytes_left) -{ - iconv_t cd = (iconv_t)converter; - - return iconv (cd, inbuf, inbytes_left, outbuf, outbytes_left); -} - -/** - * g_iconv_close: - * @converter: a conversion descriptor from g_iconv_open() - * - * Same as the standard UNIX routine iconv_close(), but - * may be implemented via libiconv on UNIX flavors that lack - * a native implementation. Should be called to clean up - * the conversion descriptor from g_iconv_open() when - * you are done converting things. - * - * GLib provides g_convert() and g_locale_to_utf8() which are likely - * more convenient than the raw iconv wrappers. - * - * Return value: -1 on error, 0 on success - **/ -gint -g_iconv_close (GIConv converter) -{ - iconv_t cd = (iconv_t)converter; - - return iconv_close (cd); -} - - -#ifdef NEED_ICONV_CACHE - -#define ICONV_CACHE_SIZE (16) - -struct _iconv_cache_bucket { - gchar *key; - guint32 refcount; - gboolean used; - GIConv cd; -}; - -static GList *iconv_cache_list; -static GHashTable *iconv_cache; -static GHashTable *iconv_open_hash; -static guint iconv_cache_size = 0; -G_LOCK_DEFINE_STATIC (iconv_cache_lock); - -/* caller *must* hold the iconv_cache_lock */ -static void -iconv_cache_init (void) -{ - static gboolean initialized = FALSE; - - if (initialized) - return; - - iconv_cache_list = NULL; - iconv_cache = g_hash_table_new (g_str_hash, g_str_equal); - iconv_open_hash = g_hash_table_new (g_direct_hash, g_direct_equal); - - initialized = TRUE; -} - - -/* - * iconv_cache_bucket_new: - * @key: cache key - * @cd: iconv descriptor - * - * Creates a new cache bucket, inserts it into the cache and - * increments the cache size. - * - * This assumes ownership of @key. - * - * Returns a pointer to the newly allocated cache bucket. - **/ -static struct _iconv_cache_bucket * -iconv_cache_bucket_new (gchar *key, GIConv cd) -{ - struct _iconv_cache_bucket *bucket; - - bucket = g_new (struct _iconv_cache_bucket, 1); - bucket->key = key; - bucket->refcount = 1; - bucket->used = TRUE; - bucket->cd = cd; - - g_hash_table_insert (iconv_cache, bucket->key, bucket); - - /* FIXME: if we sorted the list so items with few refcounts were - first, then we could expire them faster in iconv_cache_expire_unused () */ - iconv_cache_list = g_list_prepend (iconv_cache_list, bucket); - - iconv_cache_size++; - - return bucket; -} - - -/* - * iconv_cache_bucket_expire: - * @node: cache bucket's node - * @bucket: cache bucket - * - * Expires a single cache bucket @bucket. This should only ever be - * called on a bucket that currently has no used iconv descriptors - * open. - * - * @node is not a required argument. If @node is not supplied, we - * search for it ourselves. - **/ -static void -iconv_cache_bucket_expire (GList *node, struct _iconv_cache_bucket *bucket) -{ - g_hash_table_remove (iconv_cache, bucket->key); - - if (node == NULL) - node = g_list_find (iconv_cache_list, bucket); - - g_assert (node != NULL); - - if (node->prev) - { - node->prev->next = node->next; - if (node->next) - node->next->prev = node->prev; - } - else - { - iconv_cache_list = node->next; - if (node->next) - node->next->prev = NULL; - } - - g_list_free_1 (node); - - g_free (bucket->key); - g_iconv_close (bucket->cd); - g_free (bucket); - - iconv_cache_size--; -} - - -/* - * iconv_cache_expire_unused: - * - * Expires as many unused cache buckets as it needs to in order to get - * the total number of buckets < ICONV_CACHE_SIZE. - **/ -static void -iconv_cache_expire_unused (void) -{ - struct _iconv_cache_bucket *bucket; - GList *node, *next; - - node = iconv_cache_list; - while (node && iconv_cache_size >= ICONV_CACHE_SIZE) - { - next = node->next; - - bucket = node->data; - if (bucket->refcount == 0) - iconv_cache_bucket_expire (node, bucket); - - node = next; - } -} - -static GIConv -open_converter (const gchar *to_codeset, - const gchar *from_codeset, - GError **error) -{ - struct _iconv_cache_bucket *bucket; - gchar *key, *dyn_key, auto_key[80]; - GIConv cd; - gsize len_from_codeset, len_to_codeset; - - /* create our key */ - len_from_codeset = strlen (from_codeset); - len_to_codeset = strlen (to_codeset); - if (len_from_codeset + len_to_codeset + 2 < sizeof (auto_key)) - { - key = auto_key; - dyn_key = NULL; - } - else - key = dyn_key = g_malloc (len_from_codeset + len_to_codeset + 2); - memcpy (key, from_codeset, len_from_codeset); - key[len_from_codeset] = ':'; - strcpy (key + len_from_codeset + 1, to_codeset); - - G_LOCK (iconv_cache_lock); - - /* make sure the cache has been initialized */ - iconv_cache_init (); - - bucket = g_hash_table_lookup (iconv_cache, key); - if (bucket) - { - g_free (dyn_key); - - if (bucket->used) - { - cd = g_iconv_open (to_codeset, from_codeset); - if (cd == (GIConv) -1) - goto error; - } - else - { - /* Apparently iconv on Solaris <= 7 segfaults if you pass in - * NULL for anything but inbuf; work around that. (NULL outbuf - * or NULL *outbuf is allowed by Unix98.) - */ - gsize inbytes_left = 0; - gchar *outbuf = NULL; - gsize outbytes_left = 0; - - cd = bucket->cd; - bucket->used = TRUE; - - /* reset the descriptor */ - g_iconv (cd, NULL, &inbytes_left, &outbuf, &outbytes_left); - } - - bucket->refcount++; - } - else - { - cd = g_iconv_open (to_codeset, from_codeset); - if (cd == (GIConv) -1) - { - g_free (dyn_key); - goto error; - } - - iconv_cache_expire_unused (); - - bucket = iconv_cache_bucket_new (dyn_key ? dyn_key : g_strdup (key), cd); - } - - g_hash_table_insert (iconv_open_hash, cd, bucket->key); - - G_UNLOCK (iconv_cache_lock); - - return cd; - - error: - - G_UNLOCK (iconv_cache_lock); - - /* Something went wrong. */ - if (error) - { - if (errno == EINVAL) - g_set_error (error, G_CONVERT_ERROR, G_CONVERT_ERROR_NO_CONVERSION, - _("Conversion from character set '%s' to '%s' is not supported"), - from_codeset, to_codeset); - else - g_set_error (error, G_CONVERT_ERROR, G_CONVERT_ERROR_FAILED, - _("Could not open converter from '%s' to '%s'"), - from_codeset, to_codeset); - } - - return cd; -} - -static int -close_converter (GIConv converter) -{ - struct _iconv_cache_bucket *bucket; - const gchar *key; - GIConv cd; - - cd = converter; - - if (cd == (GIConv) -1) - return 0; - - G_LOCK (iconv_cache_lock); - - key = g_hash_table_lookup (iconv_open_hash, cd); - if (key) - { - g_hash_table_remove (iconv_open_hash, cd); - - bucket = g_hash_table_lookup (iconv_cache, key); - g_assert (bucket); - - bucket->refcount--; - - if (cd == bucket->cd) - bucket->used = FALSE; - else - g_iconv_close (cd); - - if (!bucket->refcount && iconv_cache_size > ICONV_CACHE_SIZE) - { - /* expire this cache bucket */ - iconv_cache_bucket_expire (NULL, bucket); - } - } - else - { - G_UNLOCK (iconv_cache_lock); - - g_warning ("This iconv context wasn't opened using open_converter"); - - return g_iconv_close (converter); - } - - G_UNLOCK (iconv_cache_lock); - - return 0; -} - -#else /* !NEED_ICONV_CACHE */ - -static GIConv -open_converter (const gchar *to_codeset, - const gchar *from_codeset, - GError **error) -{ - GIConv cd; - - cd = g_iconv_open (to_codeset, from_codeset); - - if (cd == (GIConv) -1) - { - /* Something went wrong. */ - if (error) - { - if (errno == EINVAL) - g_set_error (error, G_CONVERT_ERROR, G_CONVERT_ERROR_NO_CONVERSION, - _("Conversion from character set '%s' to '%s' is not supported"), - from_codeset, to_codeset); - else - g_set_error (error, G_CONVERT_ERROR, G_CONVERT_ERROR_FAILED, - _("Could not open converter from '%s' to '%s'"), - from_codeset, to_codeset); - } - } - - return cd; -} - -static int -close_converter (GIConv cd) -{ - if (cd == (GIConv) -1) - return 0; - - return g_iconv_close (cd); -} - -#endif /* NEED_ICONV_CACHE */ - -/** - * g_convert_with_iconv: - * @str: the string to convert - * @len: the length of the string, or -1 if the string is - * nul-terminated. - * @converter: conversion descriptor from g_iconv_open() - * @bytes_read: location to store the number of bytes in the - * input string that were successfully converted, or %NULL. - * Even if the conversion was successful, this may be - * less than @len if there were partial characters - * at the end of the input. If the error - * #G_CONVERT_ERROR_ILLEGAL_SEQUENCE occurs, the value - * stored will the byte offset after the last valid - * input sequence. - * @bytes_written: the number of bytes stored in the output buffer (not - * including the terminating nul). - * @error: location to store the error occuring, or %NULL to ignore - * errors. Any of the errors in #GConvertError may occur. - * - * Converts a string from one character set to another. - * - * Note that you should use g_iconv() for streaming - * conversions - * - * Despite the fact that @byes_read can return information about partial - * characters, the g_convert_... functions - * are not generally suitable for streaming. If the underlying converter - * being used maintains internal state, then this won't be preserved - * across successive calls to g_convert(), g_convert_with_iconv() or - * g_convert_with_fallback(). (An example of this is the GNU C converter - * for CP1255 which does not emit a base character until it knows that - * the next character is not a mark that could combine with the base - * character.) - * - * . - * - * Return value: If the conversion was successful, a newly allocated - * nul-terminated string, which must be freed with - * g_free(). Otherwise %NULL and @error will be set. - **/ -gchar* -g_convert_with_iconv (const gchar *str, - gssize len, - GIConv converter, - gsize *bytes_read, - gsize *bytes_written, - GError **error) -{ - gchar *dest; - gchar *outp; - const gchar *p; - gsize inbytes_remaining; - gsize outbytes_remaining; - gsize err; - gsize outbuf_size; - gboolean have_error = FALSE; - gboolean done = FALSE; - gboolean reset = FALSE; - - g_return_val_if_fail (converter != (GIConv) -1, NULL); - - if (len < 0) - len = strlen (str); - - p = str; - inbytes_remaining = len; - outbuf_size = len + 1; /* + 1 for nul in case len == 1 */ - - outbytes_remaining = outbuf_size - 1; /* -1 for nul */ - outp = dest = g_malloc (outbuf_size); - - while (!done && !have_error) - { - if (reset) - err = g_iconv (converter, NULL, &inbytes_remaining, &outp, &outbytes_remaining); - else - err = g_iconv (converter, (char **)&p, &inbytes_remaining, &outp, &outbytes_remaining); - - if (err == (gsize) -1) - { - switch (errno) - { - case EINVAL: - /* Incomplete text, do not report an error */ - done = TRUE; - break; - case E2BIG: - { - gsize used = outp - dest; - - outbuf_size *= 2; - dest = g_realloc (dest, outbuf_size); - - outp = dest + used; - outbytes_remaining = outbuf_size - used - 1; /* -1 for nul */ - } - break; - case EILSEQ: - if (error) - g_set_error_literal (error, G_CONVERT_ERROR, G_CONVERT_ERROR_ILLEGAL_SEQUENCE, - _("Invalid byte sequence in conversion input")); - have_error = TRUE; - break; - default: - if (error) - g_set_error (error, G_CONVERT_ERROR, G_CONVERT_ERROR_FAILED, - _("Error during conversion: %s"), - g_strerror (errno)); - have_error = TRUE; - break; - } - } - else - { - if (!reset) - { - /* call g_iconv with NULL inbuf to cleanup shift state */ - reset = TRUE; - inbytes_remaining = 0; - } - else - done = TRUE; - } - } - - *outp = '\0'; - - if (bytes_read) - *bytes_read = p - str; - else - { - if ((p - str) != len) - { - if (!have_error) - { - if (error) - g_set_error_literal (error, G_CONVERT_ERROR, G_CONVERT_ERROR_PARTIAL_INPUT, - _("Partial character sequence at end of input")); - have_error = TRUE; - } - } - } - - if (bytes_written) - *bytes_written = outp - dest; /* Doesn't include '\0' */ - - if (have_error) - { - g_free (dest); - return NULL; - } - else - return dest; -} - -/** - * g_convert: - * @str: the string to convert - * @len: the length of the string, or -1 if the string is - * nul-terminated - - Note that some encodings may allow nul bytes to - occur inside strings. In that case, using -1 for - the @len parameter is unsafe. - - . - * @to_codeset: name of character set into which to convert @str - * @from_codeset: character set of @str. - * @bytes_read: location to store the number of bytes in the - * input string that were successfully converted, or %NULL. - * Even if the conversion was successful, this may be - * less than @len if there were partial characters - * at the end of the input. If the error - * #G_CONVERT_ERROR_ILLEGAL_SEQUENCE occurs, the value - * stored will the byte offset after the last valid - * input sequence. - * @bytes_written: the number of bytes stored in the output buffer (not - * including the terminating nul). - * @error: location to store the error occuring, or %NULL to ignore - * errors. Any of the errors in #GConvertError may occur. - * - * Converts a string from one character set to another. - * - * Note that you should use g_iconv() for streaming - * conversions. - * - * Return value: If the conversion was successful, a newly allocated - * nul-terminated string, which must be freed with - * g_free(). Otherwise %NULL and @error will be set. - **/ -gchar* -g_convert (const gchar *str, - gssize len, - const gchar *to_codeset, - const gchar *from_codeset, - gsize *bytes_read, - gsize *bytes_written, - GError **error) -{ - gchar *res; - GIConv cd; - - g_return_val_if_fail (str != NULL, NULL); - g_return_val_if_fail (to_codeset != NULL, NULL); - g_return_val_if_fail (from_codeset != NULL, NULL); - - cd = open_converter (to_codeset, from_codeset, error); - - if (cd == (GIConv) -1) - { - if (bytes_read) - *bytes_read = 0; - - if (bytes_written) - *bytes_written = 0; - - return NULL; - } - - res = g_convert_with_iconv (str, len, cd, - bytes_read, bytes_written, - error); - - close_converter (cd); - - return res; -} - -/** - * g_convert_with_fallback: - * @str: the string to convert - * @len: the length of the string, or -1 if the string is - * nul-terminated. - * @to_codeset: name of character set into which to convert @str - * @from_codeset: character set of @str. - * @fallback: UTF-8 string to use in place of character not - * present in the target encoding. (The string must be - * representable in the target encoding). - If %NULL, characters not in the target encoding will - be represented as Unicode escapes \uxxxx or \Uxxxxyyyy. - * @bytes_read: location to store the number of bytes in the - * input string that were successfully converted, or %NULL. - * Even if the conversion was successful, this may be - * less than @len if there were partial characters - * at the end of the input. - * @bytes_written: the number of bytes stored in the output buffer (not - * including the terminating nul). - * @error: location to store the error occuring, or %NULL to ignore - * errors. Any of the errors in #GConvertError may occur. - * - * Converts a string from one character set to another, possibly - * including fallback sequences for characters not representable - * in the output. Note that it is not guaranteed that the specification - * for the fallback sequences in @fallback will be honored. Some - * systems may do an approximate conversion from @from_codeset - * to @to_codeset in their iconv() functions, - * in which case GLib will simply return that approximate conversion. - * - * Note that you should use g_iconv() for streaming - * conversions. - * - * Return value: If the conversion was successful, a newly allocated - * nul-terminated string, which must be freed with - * g_free(). Otherwise %NULL and @error will be set. - **/ -gchar* -g_convert_with_fallback (const gchar *str, - gssize len, - const gchar *to_codeset, - const gchar *from_codeset, - gchar *fallback, - gsize *bytes_read, - gsize *bytes_written, - GError **error) -{ - gchar *utf8; - gchar *dest; - gchar *outp; - const gchar *insert_str = NULL; - const gchar *p; - gsize inbytes_remaining; - const gchar *save_p = NULL; - gsize save_inbytes = 0; - gsize outbytes_remaining; - gsize err; - GIConv cd; - gsize outbuf_size; - gboolean have_error = FALSE; - gboolean done = FALSE; - - GError *local_error = NULL; - - g_return_val_if_fail (str != NULL, NULL); - g_return_val_if_fail (to_codeset != NULL, NULL); - g_return_val_if_fail (from_codeset != NULL, NULL); - - if (len < 0) - len = strlen (str); - - /* Try an exact conversion; we only proceed if this fails - * due to an illegal sequence in the input string. - */ - dest = g_convert (str, len, to_codeset, from_codeset, - bytes_read, bytes_written, &local_error); - if (!local_error) - return dest; - - if (!g_error_matches (local_error, G_CONVERT_ERROR, G_CONVERT_ERROR_ILLEGAL_SEQUENCE)) - { - g_propagate_error (error, local_error); - return NULL; - } - else - g_error_free (local_error); - - local_error = NULL; - - /* No go; to proceed, we need a converter from "UTF-8" to - * to_codeset, and the string as UTF-8. - */ - cd = open_converter (to_codeset, "UTF-8", error); - if (cd == (GIConv) -1) - { - if (bytes_read) - *bytes_read = 0; - - if (bytes_written) - *bytes_written = 0; - - return NULL; - } - - utf8 = g_convert (str, len, "UTF-8", from_codeset, - bytes_read, &inbytes_remaining, error); - if (!utf8) - { - close_converter (cd); - if (bytes_written) - *bytes_written = 0; - return NULL; - } - - /* Now the heart of the code. We loop through the UTF-8 string, and - * whenever we hit an offending character, we form fallback, convert - * the fallback to the target codeset, and then go back to - * converting the original string after finishing with the fallback. - * - * The variables save_p and save_inbytes store the input state - * for the original string while we are converting the fallback - */ - p = utf8; - - outbuf_size = len + 1; /* + 1 for nul in case len == 1 */ - outbytes_remaining = outbuf_size - 1; /* -1 for nul */ - outp = dest = g_malloc (outbuf_size); - - while (!done && !have_error) - { - gsize inbytes_tmp = inbytes_remaining; - err = g_iconv (cd, (char **)&p, &inbytes_tmp, &outp, &outbytes_remaining); - inbytes_remaining = inbytes_tmp; - - if (err == (gsize) -1) - { - switch (errno) - { - case EINVAL: - g_assert_not_reached(); - break; - case E2BIG: - { - gsize used = outp - dest; - - outbuf_size *= 2; - dest = g_realloc (dest, outbuf_size); - - outp = dest + used; - outbytes_remaining = outbuf_size - used - 1; /* -1 for nul */ - - break; - } - case EILSEQ: - if (save_p) - { - /* Error converting fallback string - fatal - */ - g_set_error (error, G_CONVERT_ERROR, G_CONVERT_ERROR_ILLEGAL_SEQUENCE, - _("Cannot convert fallback '%s' to codeset '%s'"), - insert_str, to_codeset); - have_error = TRUE; - break; - } - else if (p) - { - if (!fallback) - { - gunichar ch = g_utf8_get_char (p); - insert_str = g_strdup_printf (ch < 0x10000 ? "\\u%04x" : "\\U%08x", - ch); - } - else - insert_str = fallback; - - save_p = g_utf8_next_char (p); - save_inbytes = inbytes_remaining - (save_p - p); - p = insert_str; - inbytes_remaining = strlen (p); - break; - } - /* fall thru if p is NULL */ - default: - g_set_error (error, G_CONVERT_ERROR, G_CONVERT_ERROR_FAILED, - _("Error during conversion: %s"), - g_strerror (errno)); - have_error = TRUE; - break; - } - } - else - { - if (save_p) - { - if (!fallback) - g_free ((gchar *)insert_str); - p = save_p; - inbytes_remaining = save_inbytes; - save_p = NULL; - } - else if (p) - { - /* call g_iconv with NULL inbuf to cleanup shift state */ - p = NULL; - inbytes_remaining = 0; - } - else - done = TRUE; - } - } - - /* Cleanup - */ - *outp = '\0'; - - close_converter (cd); - - if (bytes_written) - *bytes_written = outp - dest; /* Doesn't include '\0' */ - - g_free (utf8); - - if (have_error) - { - if (save_p && !fallback) - g_free ((gchar *)insert_str); - g_free (dest); - return NULL; - } - else - return dest; -} - -/* - * g_locale_to_utf8 - * - * - */ - -static gchar * -strdup_len (const gchar *string, - gssize len, - gsize *bytes_written, - gsize *bytes_read, - GError **error) - -{ - gsize real_len; - - if (!g_utf8_validate (string, len, NULL)) - { - if (bytes_read) - *bytes_read = 0; - if (bytes_written) - *bytes_written = 0; - - g_set_error_literal (error, G_CONVERT_ERROR, G_CONVERT_ERROR_ILLEGAL_SEQUENCE, - _("Invalid byte sequence in conversion input")); - return NULL; - } - - if (len < 0) - real_len = strlen (string); - else - { - real_len = 0; - - while (real_len < len && string[real_len]) - real_len++; - } - - if (bytes_read) - *bytes_read = real_len; - if (bytes_written) - *bytes_written = real_len; - - return g_strndup (string, real_len); -} - -/** - * g_locale_to_utf8: - * @opsysstring: a string in the encoding of the current locale. On Windows - * this means the system codepage. - * @len: the length of the string, or -1 if the string is - * nul-terminated. - * @bytes_read: location to store the number of bytes in the - * input string that were successfully converted, or %NULL. - * Even if the conversion was successful, this may be - * less than @len if there were partial characters - * at the end of the input. If the error - * #G_CONVERT_ERROR_ILLEGAL_SEQUENCE occurs, the value - * stored will the byte offset after the last valid - * input sequence. - * @bytes_written: the number of bytes stored in the output buffer (not - * including the terminating nul). - * @error: location to store the error occuring, or %NULL to ignore - * errors. Any of the errors in #GConvertError may occur. - * - * Converts a string which is in the encoding used for strings by - * the C runtime (usually the same as that used by the operating - * system) in the current locale into a - * UTF-8 string. - * - * Return value: The converted string, or %NULL on an error. - **/ -gchar * -g_locale_to_utf8 (const gchar *opsysstring, - gssize len, - gsize *bytes_read, - gsize *bytes_written, - GError **error) -{ - const char *charset; - - if (g_get_charset (&charset)) - return strdup_len (opsysstring, len, bytes_read, bytes_written, error); - else - return g_convert (opsysstring, len, - "UTF-8", charset, bytes_read, bytes_written, error); -} - -/** - * g_locale_from_utf8: - * @utf8string: a UTF-8 encoded string - * @len: the length of the string, or -1 if the string is - * nul-terminated. - * @bytes_read: location to store the number of bytes in the - * input string that were successfully converted, or %NULL. - * Even if the conversion was successful, this may be - * less than @len if there were partial characters - * at the end of the input. If the error - * #G_CONVERT_ERROR_ILLEGAL_SEQUENCE occurs, the value - * stored will the byte offset after the last valid - * input sequence. - * @bytes_written: the number of bytes stored in the output buffer (not - * including the terminating nul). - * @error: location to store the error occuring, or %NULL to ignore - * errors. Any of the errors in #GConvertError may occur. - * - * Converts a string from UTF-8 to the encoding used for strings by - * the C runtime (usually the same as that used by the operating - * system) in the current locale. On - * Windows this means the system codepage. - * - * Return value: The converted string, or %NULL on an error. - **/ -gchar * -g_locale_from_utf8 (const gchar *utf8string, - gssize len, - gsize *bytes_read, - gsize *bytes_written, - GError **error) -{ - const gchar *charset; - - if (g_get_charset (&charset)) - return strdup_len (utf8string, len, bytes_read, bytes_written, error); - else - return g_convert (utf8string, len, - charset, "UTF-8", bytes_read, bytes_written, error); -} - -#ifndef G_PLATFORM_WIN32 - -typedef struct _GFilenameCharsetCache GFilenameCharsetCache; - -struct _GFilenameCharsetCache { - gboolean is_utf8; - gchar *charset; - gchar **filename_charsets; -}; - -static void -filename_charset_cache_free (gpointer data) -{ - GFilenameCharsetCache *cache = data; - g_free (cache->charset); - g_strfreev (cache->filename_charsets); - g_free (cache); -} - -/** - * g_get_filename_charsets: - * @charsets: return location for the %NULL-terminated list of encoding names - * - * Determines the preferred character sets used for filenames. - * The first character set from the @charsets is the filename encoding, the - * subsequent character sets are used when trying to generate a displayable - * representation of a filename, see g_filename_display_name(). - * - * On Unix, the character sets are determined by consulting the - * environment variables G_FILENAME_ENCODING and - * G_BROKEN_FILENAMES. On Windows, the character set - * used in the GLib API is always UTF-8 and said environment variables - * have no effect. - * - * G_FILENAME_ENCODING may be set to a comma-separated list - * of character set names. The special token "@locale" is taken to - * mean the character set for the current - * locale. If G_FILENAME_ENCODING is not set, but - * G_BROKEN_FILENAMES is, the character set of the current - * locale is taken as the filename encoding. If neither environment variable - * is set, UTF-8 is taken as the filename encoding, but the character - * set of the current locale is also put in the list of encodings. - * - * The returned @charsets belong to GLib and must not be freed. - * - * Note that on Unix, regardless of the locale character set or - * G_FILENAME_ENCODING value, the actual file names present - * on a system might be in any random encoding or just gibberish. - * - * Return value: %TRUE if the filename encoding is UTF-8. - * - * Since: 2.6 - */ -gboolean -g_get_filename_charsets (G_CONST_RETURN gchar ***filename_charsets) -{ - static GStaticPrivate cache_private = G_STATIC_PRIVATE_INIT; - GFilenameCharsetCache *cache = g_static_private_get (&cache_private); - const gchar *charset; - - if (!cache) - { - cache = g_new0 (GFilenameCharsetCache, 1); - g_static_private_set (&cache_private, cache, filename_charset_cache_free); - } - - g_get_charset (&charset); - - if (!(cache->charset && strcmp (cache->charset, charset) == 0)) - { - const gchar *new_charset; - gchar *p; - gint i; - - g_free (cache->charset); - g_strfreev (cache->filename_charsets); - cache->charset = g_strdup (charset); - - p = getenv ("G_FILENAME_ENCODING"); - if (p != NULL && p[0] != '\0') - { - cache->filename_charsets = g_strsplit (p, ",", 0); - cache->is_utf8 = (strcmp (cache->filename_charsets[0], "UTF-8") == 0); - - for (i = 0; cache->filename_charsets[i]; i++) - { - if (strcmp ("@locale", cache->filename_charsets[i]) == 0) - { - g_get_charset (&new_charset); - g_free (cache->filename_charsets[i]); - cache->filename_charsets[i] = g_strdup (new_charset); - } - } - } - else if (getenv ("G_BROKEN_FILENAMES") != NULL) - { - cache->filename_charsets = g_new0 (gchar *, 2); - cache->is_utf8 = g_get_charset (&new_charset); - cache->filename_charsets[0] = g_strdup (new_charset); - } - else - { - cache->filename_charsets = g_new0 (gchar *, 3); - cache->is_utf8 = TRUE; - cache->filename_charsets[0] = g_strdup ("UTF-8"); - if (!g_get_charset (&new_charset)) - cache->filename_charsets[1] = g_strdup (new_charset); - } - } - - if (filename_charsets) - *filename_charsets = (const gchar **)cache->filename_charsets; - - return cache->is_utf8; -} - -#else /* G_PLATFORM_WIN32 */ - -gboolean -g_get_filename_charsets (G_CONST_RETURN gchar ***filename_charsets) -{ - static const gchar *charsets[] = { - "UTF-8", - NULL - }; - -#ifdef G_OS_WIN32 - /* On Windows GLib pretends that the filename charset is UTF-8 */ - if (filename_charsets) - *filename_charsets = charsets; - - return TRUE; -#else - gboolean result; - - /* Cygwin works like before */ - result = g_get_charset (&(charsets[0])); - - if (filename_charsets) - *filename_charsets = charsets; - - return result; -#endif -} - -#endif /* G_PLATFORM_WIN32 */ - -static gboolean -get_filename_charset (const gchar **filename_charset) -{ - const gchar **charsets; - gboolean is_utf8; - - is_utf8 = g_get_filename_charsets (&charsets); - - if (filename_charset) - *filename_charset = charsets[0]; - - return is_utf8; -} - -/* This is called from g_thread_init(). It's used to - * initialize some static data in a threadsafe way. - */ -void -_g_convert_thread_init (void) -{ - const gchar **dummy; - (void) g_get_filename_charsets (&dummy); -} - -/** - * g_filename_to_utf8: - * @opsysstring: a string in the encoding for filenames - * @len: the length of the string, or -1 if the string is - * nul-terminated. - * @bytes_read: location to store the number of bytes in the - * input string that were successfully converted, or %NULL. - * Even if the conversion was successful, this may be - * less than @len if there were partial characters - * at the end of the input. If the error - * #G_CONVERT_ERROR_ILLEGAL_SEQUENCE occurs, the value - * stored will the byte offset after the last valid - * input sequence. - * @bytes_written: the number of bytes stored in the output buffer (not - * including the terminating nul). - * @error: location to store the error occuring, or %NULL to ignore - * errors. Any of the errors in #GConvertError may occur. - * - * Converts a string which is in the encoding used by GLib for - * filenames into a UTF-8 string. Note that on Windows GLib uses UTF-8 - * for filenames; on other platforms, this function indirectly depends on - * the current locale. - * - * Return value: The converted string, or %NULL on an error. - **/ -gchar* -g_filename_to_utf8 (const gchar *opsysstring, - gssize len, - gsize *bytes_read, - gsize *bytes_written, - GError **error) -{ - const gchar *charset; - - if (get_filename_charset (&charset)) - return strdup_len (opsysstring, len, bytes_read, bytes_written, error); - else - return g_convert (opsysstring, len, - "UTF-8", charset, bytes_read, bytes_written, error); -} - -#if defined (G_OS_WIN32) && !defined (_WIN64) - -#undef g_filename_to_utf8 - -/* Binary compatibility version. Not for newly compiled code. Also not needed for - * 64-bit versions as there should be no old deployed binaries that would use - * the old versions. - */ - -gchar* -g_filename_to_utf8 (const gchar *opsysstring, - gssize len, - gsize *bytes_read, - gsize *bytes_written, - GError **error) -{ - const gchar *charset; - - if (g_get_charset (&charset)) - return strdup_len (opsysstring, len, bytes_read, bytes_written, error); - else - return g_convert (opsysstring, len, - "UTF-8", charset, bytes_read, bytes_written, error); -} - -#endif - -/** - * g_filename_from_utf8: - * @utf8string: a UTF-8 encoded string. - * @len: the length of the string, or -1 if the string is - * nul-terminated. - * @bytes_read: location to store the number of bytes in the - * input string that were successfully converted, or %NULL. - * Even if the conversion was successful, this may be - * less than @len if there were partial characters - * at the end of the input. If the error - * #G_CONVERT_ERROR_ILLEGAL_SEQUENCE occurs, the value - * stored will the byte offset after the last valid - * input sequence. - * @bytes_written: the number of bytes stored in the output buffer (not - * including the terminating nul). - * @error: location to store the error occuring, or %NULL to ignore - * errors. Any of the errors in #GConvertError may occur. - * - * Converts a string from UTF-8 to the encoding GLib uses for - * filenames. Note that on Windows GLib uses UTF-8 for filenames; - * on other platforms, this function indirectly depends on the - * current locale. - * - * Return value: The converted string, or %NULL on an error. - **/ -gchar* -g_filename_from_utf8 (const gchar *utf8string, - gssize len, - gsize *bytes_read, - gsize *bytes_written, - GError **error) -{ - const gchar *charset; - - if (get_filename_charset (&charset)) - return strdup_len (utf8string, len, bytes_read, bytes_written, error); - else - return g_convert (utf8string, len, - charset, "UTF-8", bytes_read, bytes_written, error); -} - -#if defined (G_OS_WIN32) && !defined (_WIN64) - -#undef g_filename_from_utf8 - -/* Binary compatibility version. Not for newly compiled code. */ - -gchar* -g_filename_from_utf8 (const gchar *utf8string, - gssize len, - gsize *bytes_read, - gsize *bytes_written, - GError **error) -{ - const gchar *charset; - - if (g_get_charset (&charset)) - return strdup_len (utf8string, len, bytes_read, bytes_written, error); - else - return g_convert (utf8string, len, - charset, "UTF-8", bytes_read, bytes_written, error); -} - -#endif - -/* Test of haystack has the needle prefix, comparing case - * insensitive. haystack may be UTF-8, but needle must - * contain only ascii. */ -static gboolean -has_case_prefix (const gchar *haystack, const gchar *needle) -{ - const gchar *h, *n; - - /* Eat one character at a time. */ - h = haystack; - n = needle; - - while (*n && *h && - g_ascii_tolower (*n) == g_ascii_tolower (*h)) - { - n++; - h++; - } - - return *n == '\0'; -} - -typedef enum { - UNSAFE_ALL = 0x1, /* Escape all unsafe characters */ - UNSAFE_ALLOW_PLUS = 0x2, /* Allows '+' */ - UNSAFE_PATH = 0x8, /* Allows '/', '&', '=', ':', '@', '+', '$' and ',' */ - UNSAFE_HOST = 0x10, /* Allows '/' and ':' and '@' */ - UNSAFE_SLASHES = 0x20 /* Allows all characters except for '/' and '%' */ -} UnsafeCharacterSet; - -static const guchar acceptable[96] = { - /* A table of the ASCII chars from space (32) to DEL (127) */ - /* ! " # $ % & ' ( ) * + , - . / */ - 0x00,0x3F,0x20,0x20,0x28,0x00,0x2C,0x3F,0x3F,0x3F,0x3F,0x2A,0x28,0x3F,0x3F,0x1C, - /* 0 1 2 3 4 5 6 7 8 9 : ; < = > ? */ - 0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x38,0x20,0x20,0x2C,0x20,0x20, - /* @ A B C D E F G H I J K L M N O */ - 0x38,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F, - /* P Q R S T U V W X Y Z [ \ ] ^ _ */ - 0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x20,0x20,0x20,0x20,0x3F, - /* ` a b c d e f g h i j k l m n o */ - 0x20,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F, - /* p q r s t u v w x y z { | } ~ DEL */ - 0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x20,0x20,0x20,0x3F,0x20 -}; - -static const gchar hex[16] = "0123456789ABCDEF"; - -/* Note: This escape function works on file: URIs, but if you want to - * escape something else, please read RFC-2396 */ -static gchar * -g_escape_uri_string (const gchar *string, - UnsafeCharacterSet mask) -{ -#define ACCEPTABLE(a) ((a)>=32 && (a)<128 && (acceptable[(a)-32] & use_mask)) - - const gchar *p; - gchar *q; - gchar *result; - int c; - gint unacceptable; - UnsafeCharacterSet use_mask; - - g_return_val_if_fail (mask == UNSAFE_ALL - || mask == UNSAFE_ALLOW_PLUS - || mask == UNSAFE_PATH - || mask == UNSAFE_HOST - || mask == UNSAFE_SLASHES, NULL); - - unacceptable = 0; - use_mask = mask; - for (p = string; *p != '\0'; p++) - { - c = (guchar) *p; - if (!ACCEPTABLE (c)) - unacceptable++; - } - - result = g_malloc (p - string + unacceptable * 2 + 1); - - use_mask = mask; - for (q = result, p = string; *p != '\0'; p++) - { - c = (guchar) *p; - - if (!ACCEPTABLE (c)) - { - *q++ = '%'; /* means hex coming */ - *q++ = hex[c >> 4]; - *q++ = hex[c & 15]; - } - else - *q++ = *p; - } - - *q = '\0'; - - return result; -} - - -static gchar * -g_escape_file_uri (const gchar *hostname, - const gchar *pathname) -{ - char *escaped_hostname = NULL; - char *escaped_path; - char *res; - -#ifdef G_OS_WIN32 - char *p, *backslash; - - /* Turn backslashes into forward slashes. That's what Netscape - * does, and they are actually more or less equivalent in Windows. - */ - - pathname = g_strdup (pathname); - p = (char *) pathname; - - while ((backslash = strchr (p, '\\')) != NULL) - { - *backslash = '/'; - p = backslash + 1; - } -#endif - - if (hostname && *hostname != '\0') - { - escaped_hostname = g_escape_uri_string (hostname, UNSAFE_HOST); - } - - escaped_path = g_escape_uri_string (pathname, UNSAFE_PATH); - - res = g_strconcat ("file://", - (escaped_hostname) ? escaped_hostname : "", - (*escaped_path != '/') ? "/" : "", - escaped_path, - NULL); - -#ifdef G_OS_WIN32 - g_free ((char *) pathname); -#endif - - g_free (escaped_hostname); - g_free (escaped_path); - - return res; -} - -static int -unescape_character (const char *scanner) -{ - int first_digit; - int second_digit; - - first_digit = g_ascii_xdigit_value (scanner[0]); - if (first_digit < 0) - return -1; - - second_digit = g_ascii_xdigit_value (scanner[1]); - if (second_digit < 0) - return -1; - - return (first_digit << 4) | second_digit; -} - -static gchar * -g_unescape_uri_string (const char *escaped, - int len, - const char *illegal_escaped_characters, - gboolean ascii_must_not_be_escaped) -{ - const gchar *in, *in_end; - gchar *out, *result; - int c; - - if (escaped == NULL) - return NULL; - - if (len < 0) - len = strlen (escaped); - - result = g_malloc (len + 1); - - out = result; - for (in = escaped, in_end = escaped + len; in < in_end; in++) - { - c = *in; - - if (c == '%') - { - /* catch partial escape sequences past the end of the substring */ - if (in + 3 > in_end) - break; - - c = unescape_character (in + 1); - - /* catch bad escape sequences and NUL characters */ - if (c <= 0) - break; - - /* catch escaped ASCII */ - if (ascii_must_not_be_escaped && c <= 0x7F) - break; - - /* catch other illegal escaped characters */ - if (strchr (illegal_escaped_characters, c) != NULL) - break; - - in += 2; - } - - *out++ = c; - } - - g_assert (out - result <= len); - *out = '\0'; - - if (in != in_end) - { - g_free (result); - return NULL; - } - - return result; -} - -static gboolean -is_asciialphanum (gunichar c) -{ - return c <= 0x7F && g_ascii_isalnum (c); -} - -static gboolean -is_asciialpha (gunichar c) -{ - return c <= 0x7F && g_ascii_isalpha (c); -} - -/* allows an empty string */ -static gboolean -hostname_validate (const char *hostname) -{ - const char *p; - gunichar c, first_char, last_char; - - p = hostname; - if (*p == '\0') - return TRUE; - do - { - /* read in a label */ - c = g_utf8_get_char (p); - p = g_utf8_next_char (p); - if (!is_asciialphanum (c)) - return FALSE; - first_char = c; - do - { - last_char = c; - c = g_utf8_get_char (p); - p = g_utf8_next_char (p); - } - while (is_asciialphanum (c) || c == '-'); - if (last_char == '-') - return FALSE; - - /* if that was the last label, check that it was a toplabel */ - if (c == '\0' || (c == '.' && *p == '\0')) - return is_asciialpha (first_char); - } - while (c == '.'); - return FALSE; -} - -/** - * g_filename_from_uri: - * @uri: a uri describing a filename (escaped, encoded in ASCII). - * @hostname: Location to store hostname for the URI, or %NULL. - * If there is no hostname in the URI, %NULL will be - * stored in this location. - * @error: location to store the error occuring, or %NULL to ignore - * errors. Any of the errors in #GConvertError may occur. - * - * Converts an escaped ASCII-encoded URI to a local filename in the - * encoding used for filenames. - * - * Return value: a newly-allocated string holding the resulting - * filename, or %NULL on an error. - **/ -gchar * -g_filename_from_uri (const gchar *uri, - gchar **hostname, - GError **error) -{ - const char *path_part; - const char *host_part; - char *unescaped_hostname; - char *result; - char *filename; - int offs; -#ifdef G_OS_WIN32 - char *p, *slash; -#endif - - if (hostname) - *hostname = NULL; - - if (!has_case_prefix (uri, "file:/")) - { - g_set_error (error, G_CONVERT_ERROR, G_CONVERT_ERROR_BAD_URI, - _("The URI '%s' is not an absolute URI using the \"file\" scheme"), - uri); - return NULL; - } - - path_part = uri + strlen ("file:"); - - if (strchr (path_part, '#') != NULL) - { - g_set_error (error, G_CONVERT_ERROR, G_CONVERT_ERROR_BAD_URI, - _("The local file URI '%s' may not include a '#'"), - uri); - return NULL; - } - - if (has_case_prefix (path_part, "///")) - path_part += 2; - else if (has_case_prefix (path_part, "//")) - { - path_part += 2; - host_part = path_part; - - path_part = strchr (path_part, '/'); - - if (path_part == NULL) - { - g_set_error (error, G_CONVERT_ERROR, G_CONVERT_ERROR_BAD_URI, - _("The URI '%s' is invalid"), - uri); - return NULL; - } - - unescaped_hostname = g_unescape_uri_string (host_part, path_part - host_part, "", TRUE); - - if (unescaped_hostname == NULL || - !hostname_validate (unescaped_hostname)) - { - g_free (unescaped_hostname); - g_set_error (error, G_CONVERT_ERROR, G_CONVERT_ERROR_BAD_URI, - _("The hostname of the URI '%s' is invalid"), - uri); - return NULL; - } - - if (hostname) - *hostname = unescaped_hostname; - else - g_free (unescaped_hostname); - } - - filename = g_unescape_uri_string (path_part, -1, "/", FALSE); - - if (filename == NULL) - { - g_set_error (error, G_CONVERT_ERROR, G_CONVERT_ERROR_BAD_URI, - _("The URI '%s' contains invalidly escaped characters"), - uri); - return NULL; - } - - offs = 0; -#ifdef G_OS_WIN32 - /* Drop localhost */ - if (hostname && *hostname != NULL && - g_ascii_strcasecmp (*hostname, "localhost") == 0) - { - g_free (*hostname); - *hostname = NULL; - } - - /* Turn slashes into backslashes, because that's the canonical spelling */ - p = filename; - while ((slash = strchr (p, '/')) != NULL) - { - *slash = '\\'; - p = slash + 1; - } - - /* Windows URIs with a drive letter can be like "file://host/c:/foo" - * or "file://host/c|/foo" (some Netscape versions). In those cases, start - * the filename from the drive letter. - */ - if (g_ascii_isalpha (filename[1])) - { - if (filename[2] == ':') - offs = 1; - else if (filename[2] == '|') - { - filename[2] = ':'; - offs = 1; - } - } -#endif - - result = g_strdup (filename + offs); - g_free (filename); - - return result; -} - -#if defined (G_OS_WIN32) && !defined (_WIN64) - -#undef g_filename_from_uri - -gchar * -g_filename_from_uri (const gchar *uri, - gchar **hostname, - GError **error) -{ - gchar *utf8_filename; - gchar *retval = NULL; - - utf8_filename = g_filename_from_uri_utf8 (uri, hostname, error); - if (utf8_filename) - { - retval = g_locale_from_utf8 (utf8_filename, -1, NULL, NULL, error); - g_free (utf8_filename); - } - return retval; -} - -#endif - -/** - * g_filename_to_uri: - * @filename: an absolute filename specified in the GLib file name encoding, - * which is the on-disk file name bytes on Unix, and UTF-8 on - * Windows - * @hostname: A UTF-8 encoded hostname, or %NULL for none. - * @error: location to store the error occuring, or %NULL to ignore - * errors. Any of the errors in #GConvertError may occur. - * - * Converts an absolute filename to an escaped ASCII-encoded URI, with the path - * component following Section 3.3. of RFC 2396. - * - * Return value: a newly-allocated string holding the resulting - * URI, or %NULL on an error. - **/ -gchar * -g_filename_to_uri (const gchar *filename, - const gchar *hostname, - GError **error) -{ - char *escaped_uri; - - g_return_val_if_fail (filename != NULL, NULL); - - if (!g_path_is_absolute (filename)) - { - g_set_error (error, G_CONVERT_ERROR, G_CONVERT_ERROR_NOT_ABSOLUTE_PATH, - _("The pathname '%s' is not an absolute path"), - filename); - return NULL; - } - - if (hostname && - !(g_utf8_validate (hostname, -1, NULL) - && hostname_validate (hostname))) - { - g_set_error_literal (error, G_CONVERT_ERROR, G_CONVERT_ERROR_ILLEGAL_SEQUENCE, - _("Invalid hostname")); - return NULL; - } - -#ifdef G_OS_WIN32 - /* Don't use localhost unnecessarily */ - if (hostname && g_ascii_strcasecmp (hostname, "localhost") == 0) - hostname = NULL; -#endif - - escaped_uri = g_escape_file_uri (hostname, filename); - - return escaped_uri; -} - -#if defined (G_OS_WIN32) && !defined (_WIN64) - -#undef g_filename_to_uri - -gchar * -g_filename_to_uri (const gchar *filename, - const gchar *hostname, - GError **error) -{ - gchar *utf8_filename; - gchar *retval = NULL; - - utf8_filename = g_locale_to_utf8 (filename, -1, NULL, NULL, error); - - if (utf8_filename) - { - retval = g_filename_to_uri_utf8 (utf8_filename, hostname, error); - g_free (utf8_filename); - } - - return retval; -} - -#endif - -/** - * g_uri_list_extract_uris: - * @uri_list: an URI list - * - * Splits an URI list conforming to the text/uri-list - * mime type defined in RFC 2483 into individual URIs, - * discarding any comments. The URIs are not validated. - * - * Returns: a newly allocated %NULL-terminated list of - * strings holding the individual URIs. The array should - * be freed with g_strfreev(). - * - * Since: 2.6 - */ -gchar ** -g_uri_list_extract_uris (const gchar *uri_list) -{ - GSList *uris, *u; - const gchar *p, *q; - gchar **result; - gint n_uris = 0; - - uris = NULL; - - p = uri_list; - - /* We don't actually try to validate the URI according to RFC - * 2396, or even check for allowed characters - we just ignore - * comments and trim whitespace off the ends. We also - * allow LF delimination as well as the specified CRLF. - * - * We do allow comments like specified in RFC 2483. - */ - while (p) - { - if (*p != '#') - { - while (g_ascii_isspace (*p)) - p++; - - q = p; - while (*q && (*q != '\n') && (*q != '\r')) - q++; - - if (q > p) - { - q--; - while (q > p && g_ascii_isspace (*q)) - q--; - - if (q > p) - { - uris = g_slist_prepend (uris, g_strndup (p, q - p + 1)); - n_uris++; - } - } - } - p = strchr (p, '\n'); - if (p) - p++; - } - - result = g_new (gchar *, n_uris + 1); - - result[n_uris--] = NULL; - for (u = uris; u; u = u->next) - result[n_uris--] = u->data; - - g_slist_free (uris); - - return result; -} - -/** - * g_filename_display_basename: - * @filename: an absolute pathname in the GLib file name encoding - * - * Returns the display basename for the particular filename, guaranteed - * to be valid UTF-8. The display name might not be identical to the filename, - * for instance there might be problems converting it to UTF-8, and some files - * can be translated in the display. - * - * If GLib can not make sense of the encoding of @filename, as a last resort it - * replaces unknown characters with U+FFFD, the Unicode replacement character. - * You can search the result for the UTF-8 encoding of this character (which is - * "\357\277\275" in octal notation) to find out if @filename was in an invalid - * encoding. - * - * You must pass the whole absolute pathname to this functions so that - * translation of well known locations can be done. - * - * This function is preferred over g_filename_display_name() if you know the - * whole path, as it allows translation. - * - * Return value: a newly allocated string containing - * a rendition of the basename of the filename in valid UTF-8 - * - * Since: 2.6 - **/ -gchar * -g_filename_display_basename (const gchar *filename) -{ - char *basename; - char *display_name; - - g_return_val_if_fail (filename != NULL, NULL); - - basename = g_path_get_basename (filename); - display_name = g_filename_display_name (basename); - g_free (basename); - return display_name; -} - -/** - * g_filename_display_name: - * @filename: a pathname hopefully in the GLib file name encoding - * - * Converts a filename into a valid UTF-8 string. The conversion is - * not necessarily reversible, so you should keep the original around - * and use the return value of this function only for display purposes. - * Unlike g_filename_to_utf8(), the result is guaranteed to be non-%NULL - * even if the filename actually isn't in the GLib file name encoding. - * - * If GLib can not make sense of the encoding of @filename, as a last resort it - * replaces unknown characters with U+FFFD, the Unicode replacement character. - * You can search the result for the UTF-8 encoding of this character (which is - * "\357\277\275" in octal notation) to find out if @filename was in an invalid - * encoding. - * - * If you know the whole pathname of the file you should use - * g_filename_display_basename(), since that allows location-based - * translation of filenames. - * - * Return value: a newly allocated string containing - * a rendition of the filename in valid UTF-8 - * - * Since: 2.6 - **/ -gchar * -g_filename_display_name (const gchar *filename) -{ - gint i; - const gchar **charsets; - gchar *display_name = NULL; - gboolean is_utf8; - - is_utf8 = g_get_filename_charsets (&charsets); - - if (is_utf8) - { - if (g_utf8_validate (filename, -1, NULL)) - display_name = g_strdup (filename); - } - - if (!display_name) - { - /* Try to convert from the filename charsets to UTF-8. - * Skip the first charset if it is UTF-8. - */ - for (i = is_utf8 ? 1 : 0; charsets[i]; i++) - { - display_name = g_convert (filename, -1, "UTF-8", charsets[i], - NULL, NULL, NULL); - - if (display_name) - break; - } - } - - /* if all conversions failed, we replace invalid UTF-8 - * by a question mark - */ - if (!display_name) - display_name = _g_utf8_make_valid (filename); - - return display_name; -} - -#define __G_CONVERT_C__ -#include "galiasdef.c" diff --git a/lib/win32/glib-2.20.4/glib/gconvert.h b/lib/win32/glib-2.20.4/glib/gconvert.h deleted file mode 100644 index 4d767841d15e4..0000000000000 --- a/lib/win32/glib-2.20.4/glib/gconvert.h +++ /dev/null @@ -1,138 +0,0 @@ -/* GLIB - Library of useful routines for C programming - * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library 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 - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ - -/* - * Modified by the GLib Team and others 1997-2000. See the AUTHORS - * file for a list of people on the GLib Team. See the ChangeLog - * files for a list of changes. These files are distributed with - * GLib at ftp://ftp.gtk.org/pub/gtk/. - */ - -#if defined(G_DISABLE_SINGLE_INCLUDES) && !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION) -#error "Only can be included directly." -#endif - -#ifndef __G_CONVERT_H__ -#define __G_CONVERT_H__ - -#include - -G_BEGIN_DECLS - -typedef enum -{ - G_CONVERT_ERROR_NO_CONVERSION, - G_CONVERT_ERROR_ILLEGAL_SEQUENCE, - G_CONVERT_ERROR_FAILED, - G_CONVERT_ERROR_PARTIAL_INPUT, - G_CONVERT_ERROR_BAD_URI, - G_CONVERT_ERROR_NOT_ABSOLUTE_PATH -} GConvertError; - -#define G_CONVERT_ERROR g_convert_error_quark() -GQuark g_convert_error_quark (void); - -/* Thin wrappers around iconv - */ -typedef struct _GIConv *GIConv; - -GIConv g_iconv_open (const gchar *to_codeset, - const gchar *from_codeset); -gsize g_iconv (GIConv converter, - gchar **inbuf, - gsize *inbytes_left, - gchar **outbuf, - gsize *outbytes_left); -gint g_iconv_close (GIConv converter); - - -gchar* g_convert (const gchar *str, - gssize len, - const gchar *to_codeset, - const gchar *from_codeset, - gsize *bytes_read, - gsize *bytes_written, - GError **error) G_GNUC_MALLOC; -gchar* g_convert_with_iconv (const gchar *str, - gssize len, - GIConv converter, - gsize *bytes_read, - gsize *bytes_written, - GError **error) G_GNUC_MALLOC; -gchar* g_convert_with_fallback (const gchar *str, - gssize len, - const gchar *to_codeset, - const gchar *from_codeset, - gchar *fallback, - gsize *bytes_read, - gsize *bytes_written, - GError **error) G_GNUC_MALLOC; - - -/* Convert between libc's idea of strings and UTF-8. - */ -gchar* g_locale_to_utf8 (const gchar *opsysstring, - gssize len, - gsize *bytes_read, - gsize *bytes_written, - GError **error) G_GNUC_MALLOC; -gchar* g_locale_from_utf8 (const gchar *utf8string, - gssize len, - gsize *bytes_read, - gsize *bytes_written, - GError **error) G_GNUC_MALLOC; - -/* Convert between the operating system (or C runtime) - * representation of file names and UTF-8. - */ -#ifdef G_OS_WIN32 -#define g_filename_to_utf8 g_filename_to_utf8_utf8 -#define g_filename_from_utf8 g_filename_from_utf8_utf8 -#define g_filename_from_uri g_filename_from_uri_utf8 -#define g_filename_to_uri g_filename_to_uri_utf8 -#endif - -gchar* g_filename_to_utf8 (const gchar *opsysstring, - gssize len, - gsize *bytes_read, - gsize *bytes_written, - GError **error) G_GNUC_MALLOC; -gchar* g_filename_from_utf8 (const gchar *utf8string, - gssize len, - gsize *bytes_read, - gsize *bytes_written, - GError **error) G_GNUC_MALLOC; - -gchar *g_filename_from_uri (const gchar *uri, - gchar **hostname, - GError **error) G_GNUC_MALLOC; - -gchar *g_filename_to_uri (const gchar *filename, - const gchar *hostname, - GError **error) G_GNUC_MALLOC; -gchar *g_filename_display_name (const gchar *filename) G_GNUC_MALLOC; -gboolean g_get_filename_charsets (G_CONST_RETURN gchar ***charsets); - -gchar *g_filename_display_basename (const gchar *filename) G_GNUC_MALLOC; - -gchar **g_uri_list_extract_uris (const gchar *uri_list) G_GNUC_MALLOC; - -G_END_DECLS - -#endif /* __G_CONVERT_H__ */ diff --git a/lib/win32/glib-2.20.4/glib/gdataset.c b/lib/win32/glib-2.20.4/glib/gdataset.c deleted file mode 100644 index bf5eafe3215f2..0000000000000 --- a/lib/win32/glib-2.20.4/glib/gdataset.c +++ /dev/null @@ -1,759 +0,0 @@ -/* GLIB - Library of useful routines for C programming - * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald - * - * gdataset.c: Generic dataset mechanism, similar to GtkObject data. - * Copyright (C) 1998 Tim Janik - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library 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 - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. - */ - -/* - * Modified by the GLib Team and others 1997-2000. See the AUTHORS - * file for a list of people on the GLib Team. See the ChangeLog - * files for a list of changes. These files are distributed with - * GLib at ftp://ftp.gtk.org/pub/gtk/. - */ - -/* - * MT safe ; except for g_data*_foreach() - */ - -#include "config.h" - -#include - -#include "glib.h" -#include "gdatasetprivate.h" -#include "galias.h" - - -/* --- defines --- */ -#define G_QUARK_BLOCK_SIZE (512) - -/* datalist pointer accesses have to be carried out atomically */ -#define G_DATALIST_GET_POINTER(datalist) \ - ((GData*) ((gsize) g_atomic_pointer_get (datalist) & ~(gsize) G_DATALIST_FLAGS_MASK)) - -#define G_DATALIST_SET_POINTER(datalist, pointer) G_STMT_START { \ - gpointer _oldv, _newv; \ - do { \ - _oldv = g_atomic_pointer_get (datalist); \ - _newv = (gpointer) (((gsize) _oldv & G_DATALIST_FLAGS_MASK) | (gsize) pointer); \ - } while (!g_atomic_pointer_compare_and_exchange ((void**) datalist, _oldv, _newv)); \ -} G_STMT_END - -/* --- structures --- */ -typedef struct _GDataset GDataset; -struct _GData -{ - GData *next; - GQuark id; - gpointer data; - GDestroyNotify destroy_func; -}; - -struct _GDataset -{ - gconstpointer location; - GData *datalist; -}; - - -/* --- prototypes --- */ -static inline GDataset* g_dataset_lookup (gconstpointer dataset_location); -static inline void g_datalist_clear_i (GData **datalist); -static void g_dataset_destroy_internal (GDataset *dataset); -static inline gpointer g_data_set_internal (GData **datalist, - GQuark key_id, - gpointer data, - GDestroyNotify destroy_func, - GDataset *dataset); -static void g_data_initialize (void); -static inline GQuark g_quark_new (gchar *string); - - -/* --- variables --- */ -G_LOCK_DEFINE_STATIC (g_dataset_global); -static GHashTable *g_dataset_location_ht = NULL; -static GDataset *g_dataset_cached = NULL; /* should this be - threadspecific? */ -G_LOCK_DEFINE_STATIC (g_quark_global); -static GHashTable *g_quark_ht = NULL; -static gchar **g_quarks = NULL; -static GQuark g_quark_seq_id = 0; - -/* --- functions --- */ - -/* HOLDS: g_dataset_global_lock */ -static inline void -g_datalist_clear_i (GData **datalist) -{ - register GData *list; - - /* unlink *all* items before walking their destructors - */ - list = G_DATALIST_GET_POINTER (datalist); - G_DATALIST_SET_POINTER (datalist, NULL); - - while (list) - { - register GData *prev; - - prev = list; - list = prev->next; - - if (prev->destroy_func) - { - G_UNLOCK (g_dataset_global); - prev->destroy_func (prev->data); - G_LOCK (g_dataset_global); - } - - g_slice_free (GData, prev); - } -} - -void -g_datalist_clear (GData **datalist) -{ - g_return_if_fail (datalist != NULL); - - G_LOCK (g_dataset_global); - if (!g_dataset_location_ht) - g_data_initialize (); - - while (G_DATALIST_GET_POINTER (datalist)) - g_datalist_clear_i (datalist); - G_UNLOCK (g_dataset_global); -} - -/* HOLDS: g_dataset_global_lock */ -static inline GDataset* -g_dataset_lookup (gconstpointer dataset_location) -{ - register GDataset *dataset; - - if (g_dataset_cached && g_dataset_cached->location == dataset_location) - return g_dataset_cached; - - dataset = g_hash_table_lookup (g_dataset_location_ht, dataset_location); - if (dataset) - g_dataset_cached = dataset; - - return dataset; -} - -/* HOLDS: g_dataset_global_lock */ -static void -g_dataset_destroy_internal (GDataset *dataset) -{ - register gconstpointer dataset_location; - - dataset_location = dataset->location; - while (dataset) - { - if (!dataset->datalist) - { - if (dataset == g_dataset_cached) - g_dataset_cached = NULL; - g_hash_table_remove (g_dataset_location_ht, dataset_location); - g_slice_free (GDataset, dataset); - break; - } - - g_datalist_clear_i (&dataset->datalist); - dataset = g_dataset_lookup (dataset_location); - } -} - -void -g_dataset_destroy (gconstpointer dataset_location) -{ - g_return_if_fail (dataset_location != NULL); - - G_LOCK (g_dataset_global); - if (g_dataset_location_ht) - { - register GDataset *dataset; - - dataset = g_dataset_lookup (dataset_location); - if (dataset) - g_dataset_destroy_internal (dataset); - } - G_UNLOCK (g_dataset_global); -} - -/* HOLDS: g_dataset_global_lock */ -static inline gpointer -g_data_set_internal (GData **datalist, - GQuark key_id, - gpointer data, - GDestroyNotify destroy_func, - GDataset *dataset) -{ - register GData *list; - - list = G_DATALIST_GET_POINTER (datalist); - if (!data) - { - register GData *prev; - - prev = NULL; - while (list) - { - if (list->id == key_id) - { - gpointer ret_data = NULL; - - if (prev) - prev->next = list->next; - else - { - G_DATALIST_SET_POINTER (datalist, list->next); - - /* the dataset destruction *must* be done - * prior to invocation of the data destroy function - */ - if (!list->next && dataset) - g_dataset_destroy_internal (dataset); - } - - /* the GData struct *must* already be unlinked - * when invoking the destroy function. - * we use (data==NULL && destroy_func!=NULL) as - * a special hint combination to "steal" - * data without destroy notification - */ - if (list->destroy_func && !destroy_func) - { - G_UNLOCK (g_dataset_global); - list->destroy_func (list->data); - G_LOCK (g_dataset_global); - } - else - ret_data = list->data; - - g_slice_free (GData, list); - - return ret_data; - } - - prev = list; - list = list->next; - } - } - else - { - while (list) - { - if (list->id == key_id) - { - if (!list->destroy_func) - { - list->data = data; - list->destroy_func = destroy_func; - } - else - { - register GDestroyNotify dfunc; - register gpointer ddata; - - dfunc = list->destroy_func; - ddata = list->data; - list->data = data; - list->destroy_func = destroy_func; - - /* we need to have updated all structures prior to - * invocation of the destroy function - */ - G_UNLOCK (g_dataset_global); - dfunc (ddata); - G_LOCK (g_dataset_global); - } - - return NULL; - } - - list = list->next; - } - - list = g_slice_new (GData); - list->next = G_DATALIST_GET_POINTER (datalist); - list->id = key_id; - list->data = data; - list->destroy_func = destroy_func; - G_DATALIST_SET_POINTER (datalist, list); - } - - return NULL; -} - -void -g_dataset_id_set_data_full (gconstpointer dataset_location, - GQuark key_id, - gpointer data, - GDestroyNotify destroy_func) -{ - register GDataset *dataset; - - g_return_if_fail (dataset_location != NULL); - if (!data) - g_return_if_fail (destroy_func == NULL); - if (!key_id) - { - if (data) - g_return_if_fail (key_id > 0); - else - return; - } - - G_LOCK (g_dataset_global); - if (!g_dataset_location_ht) - g_data_initialize (); - - dataset = g_dataset_lookup (dataset_location); - if (!dataset) - { - dataset = g_slice_new (GDataset); - dataset->location = dataset_location; - g_datalist_init (&dataset->datalist); - g_hash_table_insert (g_dataset_location_ht, - (gpointer) dataset->location, - dataset); - } - - g_data_set_internal (&dataset->datalist, key_id, data, destroy_func, dataset); - G_UNLOCK (g_dataset_global); -} - -void -g_datalist_id_set_data_full (GData **datalist, - GQuark key_id, - gpointer data, - GDestroyNotify destroy_func) -{ - g_return_if_fail (datalist != NULL); - if (!data) - g_return_if_fail (destroy_func == NULL); - if (!key_id) - { - if (data) - g_return_if_fail (key_id > 0); - else - return; - } - - G_LOCK (g_dataset_global); - if (!g_dataset_location_ht) - g_data_initialize (); - - g_data_set_internal (datalist, key_id, data, destroy_func, NULL); - G_UNLOCK (g_dataset_global); -} - -gpointer -g_dataset_id_remove_no_notify (gconstpointer dataset_location, - GQuark key_id) -{ - gpointer ret_data = NULL; - - g_return_val_if_fail (dataset_location != NULL, NULL); - - G_LOCK (g_dataset_global); - if (key_id && g_dataset_location_ht) - { - GDataset *dataset; - - dataset = g_dataset_lookup (dataset_location); - if (dataset) - ret_data = g_data_set_internal (&dataset->datalist, key_id, NULL, (GDestroyNotify) 42, dataset); - } - G_UNLOCK (g_dataset_global); - - return ret_data; -} - -gpointer -g_datalist_id_remove_no_notify (GData **datalist, - GQuark key_id) -{ - gpointer ret_data = NULL; - - g_return_val_if_fail (datalist != NULL, NULL); - - G_LOCK (g_dataset_global); - if (key_id && g_dataset_location_ht) - ret_data = g_data_set_internal (datalist, key_id, NULL, (GDestroyNotify) 42, NULL); - G_UNLOCK (g_dataset_global); - - return ret_data; -} - -gpointer -g_dataset_id_get_data (gconstpointer dataset_location, - GQuark key_id) -{ - g_return_val_if_fail (dataset_location != NULL, NULL); - - G_LOCK (g_dataset_global); - if (key_id && g_dataset_location_ht) - { - register GDataset *dataset; - - dataset = g_dataset_lookup (dataset_location); - if (dataset) - { - register GData *list; - - for (list = dataset->datalist; list; list = list->next) - if (list->id == key_id) - { - G_UNLOCK (g_dataset_global); - return list->data; - } - } - } - G_UNLOCK (g_dataset_global); - - return NULL; -} - -gpointer -g_datalist_id_get_data (GData **datalist, - GQuark key_id) -{ - gpointer data = NULL; - g_return_val_if_fail (datalist != NULL, NULL); - if (key_id) - { - register GData *list; - G_LOCK (g_dataset_global); - for (list = G_DATALIST_GET_POINTER (datalist); list; list = list->next) - if (list->id == key_id) - { - data = list->data; - break; - } - G_UNLOCK (g_dataset_global); - } - return data; -} - -void -g_dataset_foreach (gconstpointer dataset_location, - GDataForeachFunc func, - gpointer user_data) -{ - register GDataset *dataset; - - g_return_if_fail (dataset_location != NULL); - g_return_if_fail (func != NULL); - - G_LOCK (g_dataset_global); - if (g_dataset_location_ht) - { - dataset = g_dataset_lookup (dataset_location); - G_UNLOCK (g_dataset_global); - if (dataset) - { - register GData *list, *next; - - for (list = dataset->datalist; list; list = next) - { - next = list->next; - func (list->id, list->data, user_data); - } - } - } - else - { - G_UNLOCK (g_dataset_global); - } -} - -void -g_datalist_foreach (GData **datalist, - GDataForeachFunc func, - gpointer user_data) -{ - register GData *list, *next; - - g_return_if_fail (datalist != NULL); - g_return_if_fail (func != NULL); - - for (list = G_DATALIST_GET_POINTER (datalist); list; list = next) - { - next = list->next; - func (list->id, list->data, user_data); - } -} - -void -g_datalist_init (GData **datalist) -{ - g_return_if_fail (datalist != NULL); - - g_atomic_pointer_set (datalist, NULL); -} - -/** - * g_datalist_set_flags: - * @datalist: pointer to the location that holds a list - * @flags: the flags to turn on. The values of the flags are - * restricted by %G_DATALIST_FLAGS_MASK (currently - * 3; giving two possible boolean flags). - * A value for @flags that doesn't fit within the mask is - * an error. - * - * Turns on flag values for a data list. This function is used - * to keep a small number of boolean flags in an object with - * a data list without using any additional space. It is - * not generally useful except in circumstances where space - * is very tight. (It is used in the base #GObject type, for - * example.) - * - * Since: 2.8 - **/ -void -g_datalist_set_flags (GData **datalist, - guint flags) -{ - gpointer oldvalue; - g_return_if_fail (datalist != NULL); - g_return_if_fail ((flags & ~G_DATALIST_FLAGS_MASK) == 0); - - do - { - oldvalue = g_atomic_pointer_get (datalist); - } - while (!g_atomic_pointer_compare_and_exchange ((void**) datalist, oldvalue, - (gpointer) ((gsize) oldvalue | flags))); -} - -/** - * g_datalist_unset_flags: - * @datalist: pointer to the location that holds a list - * @flags: the flags to turn off. The values of the flags are - * restricted by %G_DATALIST_FLAGS_MASK (currently - * 3: giving two possible boolean flags). - * A value for @flags that doesn't fit within the mask is - * an error. - * - * Turns off flag values for a data list. See g_datalist_unset_flags() - * - * Since: 2.8 - **/ -void -g_datalist_unset_flags (GData **datalist, - guint flags) -{ - gpointer oldvalue; - g_return_if_fail (datalist != NULL); - g_return_if_fail ((flags & ~G_DATALIST_FLAGS_MASK) == 0); - - do - { - oldvalue = g_atomic_pointer_get (datalist); - } - while (!g_atomic_pointer_compare_and_exchange ((void**) datalist, oldvalue, - (gpointer) ((gsize) oldvalue & ~(gsize) flags))); -} - -/** - * g_datalist_get_flags: - * @datalist: pointer to the location that holds a list - * - * Gets flags values packed in together with the datalist. - * See g_datalist_set_flags(). - * - * Return value: the flags of the datalist - * - * Since: 2.8 - **/ -guint -g_datalist_get_flags (GData **datalist) -{ - g_return_val_if_fail (datalist != NULL, 0); - - return G_DATALIST_GET_FLAGS (datalist); /* atomic macro */ -} - -/* HOLDS: g_dataset_global_lock */ -static void -g_data_initialize (void) -{ - g_return_if_fail (g_dataset_location_ht == NULL); - - g_dataset_location_ht = g_hash_table_new (g_direct_hash, NULL); - g_dataset_cached = NULL; -} - -GQuark -g_quark_try_string (const gchar *string) -{ - GQuark quark = 0; - g_return_val_if_fail (string != NULL, 0); - - G_LOCK (g_quark_global); - if (g_quark_ht) - quark = GPOINTER_TO_UINT (g_hash_table_lookup (g_quark_ht, string)); - G_UNLOCK (g_quark_global); - - return quark; -} - -/* HOLDS: g_quark_global_lock */ -static inline GQuark -g_quark_from_string_internal (const gchar *string, - gboolean duplicate) -{ - GQuark quark = 0; - - if (g_quark_ht) - quark = GPOINTER_TO_UINT (g_hash_table_lookup (g_quark_ht, string)); - - if (!quark) - quark = g_quark_new (duplicate ? g_strdup (string) : (gchar *)string); - - return quark; -} - -GQuark -g_quark_from_string (const gchar *string) -{ - GQuark quark; - - if (!string) - return 0; - - G_LOCK (g_quark_global); - quark = g_quark_from_string_internal (string, TRUE); - G_UNLOCK (g_quark_global); - - return quark; -} - -GQuark -g_quark_from_static_string (const gchar *string) -{ - GQuark quark; - - if (!string) - return 0; - - G_LOCK (g_quark_global); - quark = g_quark_from_string_internal (string, FALSE); - G_UNLOCK (g_quark_global); - - return quark; -} - -G_CONST_RETURN gchar* -g_quark_to_string (GQuark quark) -{ - gchar* result = NULL; - - G_LOCK (g_quark_global); - if (quark < g_quark_seq_id) - result = g_quarks[quark]; - G_UNLOCK (g_quark_global); - - return result; -} - -/* HOLDS: g_quark_global_lock */ -static inline GQuark -g_quark_new (gchar *string) -{ - GQuark quark; - - if (g_quark_seq_id % G_QUARK_BLOCK_SIZE == 0) - g_quarks = g_renew (gchar*, g_quarks, g_quark_seq_id + G_QUARK_BLOCK_SIZE); - if (!g_quark_ht) - { - g_assert (g_quark_seq_id == 0); - g_quark_ht = g_hash_table_new (g_str_hash, g_str_equal); - g_quarks[g_quark_seq_id++] = NULL; - } - - quark = g_quark_seq_id++; - g_quarks[quark] = string; - g_hash_table_insert (g_quark_ht, string, GUINT_TO_POINTER (quark)); - - return quark; -} - -/** - * g_intern_string: - * @string: a string - * - * Returns a canonical representation for @string. Interned strings can - * be compared for equality by comparing the pointers, instead of using strcmp(). - * - * Returns: a canonical representation for the string - * - * Since: 2.10 - */ -G_CONST_RETURN gchar* -g_intern_string (const gchar *string) -{ - const gchar *result; - GQuark quark; - - if (!string) - return NULL; - - G_LOCK (g_quark_global); - quark = g_quark_from_string_internal (string, TRUE); - result = g_quarks[quark]; - G_UNLOCK (g_quark_global); - - return result; -} - -/** - * g_intern_static_string: - * @string: a static string - * - * Returns a canonical representation for @string. Interned strings can - * be compared for equality by comparing the pointers, instead of using strcmp(). - * g_intern_static_string() does not copy the string, therefore @string must - * not be freed or modified. - * - * Returns: a canonical representation for the string - * - * Since: 2.10 - */ -G_CONST_RETURN gchar* -g_intern_static_string (const gchar *string) -{ - GQuark quark; - const gchar *result; - - if (!string) - return NULL; - - G_LOCK (g_quark_global); - quark = g_quark_from_string_internal (string, FALSE); - result = g_quarks[quark]; - G_UNLOCK (g_quark_global); - - return result; -} - - - -#define __G_DATASET_C__ -#include "galiasdef.c" diff --git a/lib/win32/glib-2.20.4/glib/gdataset.h b/lib/win32/glib-2.20.4/glib/gdataset.h deleted file mode 100644 index 2733ffb033552..0000000000000 --- a/lib/win32/glib-2.20.4/glib/gdataset.h +++ /dev/null @@ -1,122 +0,0 @@ -/* GLIB - Library of useful routines for C programming - * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library 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 - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ - -/* - * Modified by the GLib Team and others 1997-2000. See the AUTHORS - * file for a list of people on the GLib Team. See the ChangeLog - * files for a list of changes. These files are distributed with - * GLib at ftp://ftp.gtk.org/pub/gtk/. - */ - -#if defined(G_DISABLE_SINGLE_INCLUDES) && !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION) -#error "Only can be included directly." -#endif - -#ifndef __G_DATASET_H__ -#define __G_DATASET_H__ - -#include - -G_BEGIN_DECLS - -typedef struct _GData GData; - -typedef void (*GDataForeachFunc) (GQuark key_id, - gpointer data, - gpointer user_data); - -/* Keyed Data List - */ -void g_datalist_init (GData **datalist); -void g_datalist_clear (GData **datalist); -gpointer g_datalist_id_get_data (GData **datalist, - GQuark key_id); -void g_datalist_id_set_data_full (GData **datalist, - GQuark key_id, - gpointer data, - GDestroyNotify destroy_func); -gpointer g_datalist_id_remove_no_notify (GData **datalist, - GQuark key_id); -void g_datalist_foreach (GData **datalist, - GDataForeachFunc func, - gpointer user_data); - -/** - * G_DATALIST_FLAGS_MASK: - * - * A bitmask that restricts the possible flags passed to - * g_datalist_set_flags(). Passing a flags value where - * flags & ~G_DATALIST_FLAGS_MASK != 0 is an error. - */ -#define G_DATALIST_FLAGS_MASK 0x3 - -void g_datalist_set_flags (GData **datalist, - guint flags); -void g_datalist_unset_flags (GData **datalist, - guint flags); -guint g_datalist_get_flags (GData **datalist); - -#define g_datalist_id_set_data(dl, q, d) \ - g_datalist_id_set_data_full ((dl), (q), (d), NULL) -#define g_datalist_id_remove_data(dl, q) \ - g_datalist_id_set_data ((dl), (q), NULL) -#define g_datalist_get_data(dl, k) \ - (g_datalist_id_get_data ((dl), g_quark_try_string (k))) -#define g_datalist_set_data_full(dl, k, d, f) \ - g_datalist_id_set_data_full ((dl), g_quark_from_string (k), (d), (f)) -#define g_datalist_remove_no_notify(dl, k) \ - g_datalist_id_remove_no_notify ((dl), g_quark_try_string (k)) -#define g_datalist_set_data(dl, k, d) \ - g_datalist_set_data_full ((dl), (k), (d), NULL) -#define g_datalist_remove_data(dl, k) \ - g_datalist_id_set_data ((dl), g_quark_try_string (k), NULL) - - -/* Location Associated Keyed Data - */ -void g_dataset_destroy (gconstpointer dataset_location); -gpointer g_dataset_id_get_data (gconstpointer dataset_location, - GQuark key_id); -void g_dataset_id_set_data_full (gconstpointer dataset_location, - GQuark key_id, - gpointer data, - GDestroyNotify destroy_func); -gpointer g_dataset_id_remove_no_notify (gconstpointer dataset_location, - GQuark key_id); -void g_dataset_foreach (gconstpointer dataset_location, - GDataForeachFunc func, - gpointer user_data); -#define g_dataset_id_set_data(l, k, d) \ - g_dataset_id_set_data_full ((l), (k), (d), NULL) -#define g_dataset_id_remove_data(l, k) \ - g_dataset_id_set_data ((l), (k), NULL) -#define g_dataset_get_data(l, k) \ - (g_dataset_id_get_data ((l), g_quark_try_string (k))) -#define g_dataset_set_data_full(l, k, d, f) \ - g_dataset_id_set_data_full ((l), g_quark_from_string (k), (d), (f)) -#define g_dataset_remove_no_notify(l, k) \ - g_dataset_id_remove_no_notify ((l), g_quark_try_string (k)) -#define g_dataset_set_data(l, k, d) \ - g_dataset_set_data_full ((l), (k), (d), NULL) -#define g_dataset_remove_data(l, k) \ - g_dataset_id_set_data ((l), g_quark_try_string (k), NULL) - -G_END_DECLS - -#endif /* __G_DATASET_H__ */ diff --git a/lib/win32/glib-2.20.4/glib/gdatasetprivate.h b/lib/win32/glib-2.20.4/glib/gdatasetprivate.h deleted file mode 100644 index fdbb87ab48714..0000000000000 --- a/lib/win32/glib-2.20.4/glib/gdatasetprivate.h +++ /dev/null @@ -1,44 +0,0 @@ -/* GLIB - Library of useful routines for C programming - * gdataset-private.h: Internal macros for accessing dataset values - * Copyright (C) 2005 Red Hat - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library 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 - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ - -/* - * Modified by the GLib Team and others 1997-2000. See the AUTHORS - * file for a list of people on the GLib Team. See the ChangeLog - * files for a list of changes. These files are distributed with - * GLib at ftp://ftp.gtk.org/pub/gtk/. - */ - -#ifndef __G_DATASETPRIVATE_H__ -#define __G_DATASETPRIVATE_H__ - -#include - -G_BEGIN_DECLS - -/* GET_FLAGS is implemented via atomic pointer access, to allow memory - * barriers to take effect without acquiring the global dataset mutex. - */ -#define G_DATALIST_GET_FLAGS(datalist) \ - ((gsize) g_atomic_pointer_get (datalist) & G_DATALIST_FLAGS_MASK) - - -G_END_DECLS - -#endif /* __G_DATASETPRIVATE_H__ */ diff --git a/lib/win32/glib-2.20.4/glib/gdate.c b/lib/win32/glib-2.20.4/glib/gdate.c deleted file mode 100644 index cb25f3c568f95..0000000000000 --- a/lib/win32/glib-2.20.4/glib/gdate.c +++ /dev/null @@ -1,1905 +0,0 @@ -/* GLIB - Library of useful routines for C programming - * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library 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 - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ - -/* - * Modified by the GLib Team and others 1997-2000. See the AUTHORS - * file for a list of people on the GLib Team. See the ChangeLog - * files for a list of changes. These files are distributed with - * GLib at ftp://ftp.gtk.org/pub/gtk/. - */ - -/* - * MT safe - */ - -#include "config.h" - -#define DEBUG_MSG(x) /* */ -#ifdef G_ENABLE_DEBUG -/* #define DEBUG_MSG(args) g_message args ; */ -#endif - -#include "glib.h" - -#include -#include -#include -#include - -#ifdef G_OS_WIN32 -#include -#endif - -#include "galias.h" - -GDate* -g_date_new (void) -{ - GDate *d = g_new0 (GDate, 1); /* happily, 0 is the invalid flag for everything. */ - - return d; -} - -GDate* -g_date_new_dmy (GDateDay day, - GDateMonth m, - GDateYear y) -{ - GDate *d; - g_return_val_if_fail (g_date_valid_dmy (day, m, y), NULL); - - d = g_new (GDate, 1); - - d->julian = FALSE; - d->dmy = TRUE; - - d->month = m; - d->day = day; - d->year = y; - - g_assert (g_date_valid (d)); - - return d; -} - -GDate* -g_date_new_julian (guint32 j) -{ - GDate *d; - g_return_val_if_fail (g_date_valid_julian (j), NULL); - - d = g_new (GDate, 1); - - d->julian = TRUE; - d->dmy = FALSE; - - d->julian_days = j; - - g_assert (g_date_valid (d)); - - return d; -} - -void -g_date_free (GDate *d) -{ - g_return_if_fail (d != NULL); - - g_free (d); -} - -gboolean -g_date_valid (const GDate *d) -{ - g_return_val_if_fail (d != NULL, FALSE); - - return (d->julian || d->dmy); -} - -static const guint8 days_in_months[2][13] = -{ /* error, jan feb mar apr may jun jul aug sep oct nov dec */ - { 0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 }, - { 0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 } /* leap year */ -}; - -static const guint16 days_in_year[2][14] = -{ /* 0, jan feb mar apr may jun jul aug sep oct nov dec */ - { 0, 0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334, 365 }, - { 0, 0, 31, 60, 91, 121, 152, 182, 213, 244, 274, 305, 335, 366 } -}; - -gboolean -g_date_valid_month (GDateMonth m) -{ - return ( (m > G_DATE_BAD_MONTH) && (m < 13) ); -} - -gboolean -g_date_valid_year (GDateYear y) -{ - return ( y > G_DATE_BAD_YEAR ); -} - -gboolean -g_date_valid_day (GDateDay d) -{ - return ( (d > G_DATE_BAD_DAY) && (d < 32) ); -} - -gboolean -g_date_valid_weekday (GDateWeekday w) -{ - return ( (w > G_DATE_BAD_WEEKDAY) && (w < 8) ); -} - -gboolean -g_date_valid_julian (guint32 j) -{ - return (j > G_DATE_BAD_JULIAN); -} - -gboolean -g_date_valid_dmy (GDateDay d, - GDateMonth m, - GDateYear y) -{ - return ( (m > G_DATE_BAD_MONTH) && - (m < 13) && - (d > G_DATE_BAD_DAY) && - (y > G_DATE_BAD_YEAR) && /* must check before using g_date_is_leap_year */ - (d <= (g_date_is_leap_year (y) ? - days_in_months[1][m] : days_in_months[0][m])) ); -} - - -/* "Julian days" just means an absolute number of days, where Day 1 == - * Jan 1, Year 1 - */ -static void -g_date_update_julian (const GDate *const_d) -{ - GDate *d = (GDate *) const_d; - GDateYear year; - gint idx; - - g_return_if_fail (d != NULL); - g_return_if_fail (d->dmy); - g_return_if_fail (!d->julian); - g_return_if_fail (g_date_valid_dmy (d->day, d->month, d->year)); - - /* What we actually do is: multiply years * 365 days in the year, - * add the number of years divided by 4, subtract the number of - * years divided by 100 and add the number of years divided by 400, - * which accounts for leap year stuff. Code from Steffen Beyer's - * DateCalc. - */ - - year = d->year - 1; /* we know d->year > 0 since it's valid */ - - d->julian_days = year * 365U; - d->julian_days += (year >>= 2); /* divide by 4 and add */ - d->julian_days -= (year /= 25); /* divides original # years by 100 */ - d->julian_days += year >> 2; /* divides by 4, which divides original by 400 */ - - idx = g_date_is_leap_year (d->year) ? 1 : 0; - - d->julian_days += days_in_year[idx][d->month] + d->day; - - g_return_if_fail (g_date_valid_julian (d->julian_days)); - - d->julian = TRUE; -} - -static void -g_date_update_dmy (const GDate *const_d) -{ - GDate *d = (GDate *) const_d; - GDateYear y; - GDateMonth m; - GDateDay day; - - guint32 A, B, C, D, E, M; - - g_return_if_fail (d != NULL); - g_return_if_fail (d->julian); - g_return_if_fail (!d->dmy); - g_return_if_fail (g_date_valid_julian (d->julian_days)); - - /* Formula taken from the Calendar FAQ; the formula was for the - * Julian Period which starts on 1 January 4713 BC, so we add - * 1,721,425 to the number of days before doing the formula. - * - * I'm sure this can be simplified for our 1 January 1 AD period - * start, but I can't figure out how to unpack the formula. - */ - - A = d->julian_days + 1721425 + 32045; - B = ( 4 *(A + 36524) )/ 146097 - 1; - C = A - (146097 * B)/4; - D = ( 4 * (C + 365) ) / 1461 - 1; - E = C - ((1461*D) / 4); - M = (5 * (E - 1) + 2)/153; - - m = M + 3 - (12*(M/10)); - day = E - (153*M + 2)/5; - y = 100 * B + D - 4800 + (M/10); - -#ifdef G_ENABLE_DEBUG - if (!g_date_valid_dmy (day, m, y)) - g_warning ("\nOOPS julian: %u computed dmy: %u %u %u\n", - d->julian_days, day, m, y); -#endif - - d->month = m; - d->day = day; - d->year = y; - - d->dmy = TRUE; -} - -GDateWeekday -g_date_get_weekday (const GDate *d) -{ - g_return_val_if_fail (g_date_valid (d), G_DATE_BAD_WEEKDAY); - - if (!d->julian) - g_date_update_julian (d); - - g_return_val_if_fail (d->julian, G_DATE_BAD_WEEKDAY); - - return ((d->julian_days - 1) % 7) + 1; -} - -GDateMonth -g_date_get_month (const GDate *d) -{ - g_return_val_if_fail (g_date_valid (d), G_DATE_BAD_MONTH); - - if (!d->dmy) - g_date_update_dmy (d); - - g_return_val_if_fail (d->dmy, G_DATE_BAD_MONTH); - - return d->month; -} - -GDateYear -g_date_get_year (const GDate *d) -{ - g_return_val_if_fail (g_date_valid (d), G_DATE_BAD_YEAR); - - if (!d->dmy) - g_date_update_dmy (d); - - g_return_val_if_fail (d->dmy, G_DATE_BAD_YEAR); - - return d->year; -} - -GDateDay -g_date_get_day (const GDate *d) -{ - g_return_val_if_fail (g_date_valid (d), G_DATE_BAD_DAY); - - if (!d->dmy) - g_date_update_dmy (d); - - g_return_val_if_fail (d->dmy, G_DATE_BAD_DAY); - - return d->day; -} - -guint32 -g_date_get_julian (const GDate *d) -{ - g_return_val_if_fail (g_date_valid (d), G_DATE_BAD_JULIAN); - - if (!d->julian) - g_date_update_julian (d); - - g_return_val_if_fail (d->julian, G_DATE_BAD_JULIAN); - - return d->julian_days; -} - -guint -g_date_get_day_of_year (const GDate *d) -{ - gint idx; - - g_return_val_if_fail (g_date_valid (d), 0); - - if (!d->dmy) - g_date_update_dmy (d); - - g_return_val_if_fail (d->dmy, 0); - - idx = g_date_is_leap_year (d->year) ? 1 : 0; - - return (days_in_year[idx][d->month] + d->day); -} - -guint -g_date_get_monday_week_of_year (const GDate *d) -{ - GDateWeekday wd; - guint day; - GDate first; - - g_return_val_if_fail (g_date_valid (d), 0); - - if (!d->dmy) - g_date_update_dmy (d); - - g_return_val_if_fail (d->dmy, 0); - - g_date_clear (&first, 1); - - g_date_set_dmy (&first, 1, 1, d->year); - - wd = g_date_get_weekday (&first) - 1; /* make Monday day 0 */ - day = g_date_get_day_of_year (d) - 1; - - return ((day + wd)/7U + (wd == 0 ? 1 : 0)); -} - -guint -g_date_get_sunday_week_of_year (const GDate *d) -{ - GDateWeekday wd; - guint day; - GDate first; - - g_return_val_if_fail (g_date_valid (d), 0); - - if (!d->dmy) - g_date_update_dmy (d); - - g_return_val_if_fail (d->dmy, 0); - - g_date_clear (&first, 1); - - g_date_set_dmy (&first, 1, 1, d->year); - - wd = g_date_get_weekday (&first); - if (wd == 7) wd = 0; /* make Sunday day 0 */ - day = g_date_get_day_of_year (d) - 1; - - return ((day + wd)/7U + (wd == 0 ? 1 : 0)); -} - -/** - * g_date_get_iso8601_week_of_year: - * @date: a valid #GDate - * - * Returns the week of the year, where weeks are interpreted according - * to ISO 8601. - * - * Returns: ISO 8601 week number of the year. - * - * Since: 2.6 - **/ -guint -g_date_get_iso8601_week_of_year (const GDate *d) -{ - guint j, d4, L, d1, w; - - g_return_val_if_fail (g_date_valid (d), 0); - - if (!d->julian) - g_date_update_julian (d); - - g_return_val_if_fail (d->julian, 0); - - /* Formula taken from the Calendar FAQ; the formula was for the - * Julian Period which starts on 1 January 4713 BC, so we add - * 1,721,425 to the number of days before doing the formula. - */ - j = d->julian_days + 1721425; - d4 = (j + 31741 - (j % 7)) % 146097 % 36524 % 1461; - L = d4 / 1460; - d1 = ((d4 - L) % 365) + L; - w = d1 / 7 + 1; - - return w; -} - -gint -g_date_days_between (const GDate *d1, - const GDate *d2) -{ - g_return_val_if_fail (g_date_valid (d1), 0); - g_return_val_if_fail (g_date_valid (d2), 0); - - return (gint)g_date_get_julian (d2) - (gint)g_date_get_julian (d1); -} - -void -g_date_clear (GDate *d, guint ndates) -{ - g_return_if_fail (d != NULL); - g_return_if_fail (ndates != 0); - - memset (d, 0x0, ndates*sizeof (GDate)); -} - -G_LOCK_DEFINE_STATIC (g_date_global); - -/* These are for the parser, output to the user should use * - * g_date_strftime () - this creates more never-freed memory to annoy - * all those memory debugger users. :-) - */ - -static gchar *long_month_names[13] = -{ - NULL, -}; - -static gchar *short_month_names[13] = -{ - NULL, -}; - -/* This tells us if we need to update the parse info */ -static gchar *current_locale = NULL; - -/* order of these in the current locale */ -static GDateDMY dmy_order[3] = -{ - G_DATE_DAY, G_DATE_MONTH, G_DATE_YEAR -}; - -/* Where to chop two-digit years: i.e., for the 1930 default, numbers - * 29 and below are counted as in the year 2000, numbers 30 and above - * are counted as in the year 1900. - */ - -static const GDateYear twodigit_start_year = 1930; - -/* It is impossible to enter a year between 1 AD and 99 AD with this - * in effect. - */ -static gboolean using_twodigit_years = FALSE; - -/* Adjustment of locale era to AD, non-zero means using locale era - */ -static gint locale_era_adjust = 0; - -struct _GDateParseTokens { - gint num_ints; - gint n[3]; - guint month; -}; - -typedef struct _GDateParseTokens GDateParseTokens; - -#define NUM_LEN 10 - -/* HOLDS: g_date_global_lock */ -static void -g_date_fill_parse_tokens (const gchar *str, GDateParseTokens *pt) -{ - gchar num[4][NUM_LEN+1]; - gint i; - const guchar *s; - - /* We count 4, but store 3; so we can give an error - * if there are 4. - */ - num[0][0] = num[1][0] = num[2][0] = num[3][0] = '\0'; - - s = (const guchar *) str; - pt->num_ints = 0; - while (*s && pt->num_ints < 4) - { - - i = 0; - while (*s && g_ascii_isdigit (*s) && i < NUM_LEN) - { - num[pt->num_ints][i] = *s; - ++s; - ++i; - } - - if (i > 0) - { - num[pt->num_ints][i] = '\0'; - ++(pt->num_ints); - } - - if (*s == '\0') break; - - ++s; - } - - pt->n[0] = pt->num_ints > 0 ? atoi (num[0]) : 0; - pt->n[1] = pt->num_ints > 1 ? atoi (num[1]) : 0; - pt->n[2] = pt->num_ints > 2 ? atoi (num[2]) : 0; - - pt->month = G_DATE_BAD_MONTH; - - if (pt->num_ints < 3) - { - gchar *casefold; - gchar *normalized; - - casefold = g_utf8_casefold (str, -1); - normalized = g_utf8_normalize (casefold, -1, G_NORMALIZE_ALL); - g_free (casefold); - - i = 1; - while (i < 13) - { - if (long_month_names[i] != NULL) - { - const gchar *found = strstr (normalized, long_month_names[i]); - - if (found != NULL) - { - pt->month = i; - break; - } - } - - if (short_month_names[i] != NULL) - { - const gchar *found = strstr (normalized, short_month_names[i]); - - if (found != NULL) - { - pt->month = i; - break; - } - } - - ++i; - } - - g_free (normalized); - } -} - -/* HOLDS: g_date_global_lock */ -static void -g_date_prepare_to_parse (const gchar *str, - GDateParseTokens *pt) -{ - const gchar *locale = setlocale (LC_TIME, NULL); - gboolean recompute_localeinfo = FALSE; - GDate d; - - g_return_if_fail (locale != NULL); /* should not happen */ - - g_date_clear (&d, 1); /* clear for scratch use */ - - if ( (current_locale == NULL) || (strcmp (locale, current_locale) != 0) ) - recompute_localeinfo = TRUE; /* Uh, there used to be a reason for the temporary */ - - if (recompute_localeinfo) - { - int i = 1; - GDateParseTokens testpt; - gchar buf[128]; - - g_free (current_locale); /* still works if current_locale == NULL */ - - current_locale = g_strdup (locale); - - short_month_names[0] = "Error"; - long_month_names[0] = "Error"; - - while (i < 13) - { - gchar *casefold; - - g_date_set_dmy (&d, 1, i, 1); - - g_return_if_fail (g_date_valid (&d)); - - g_date_strftime (buf, 127, "%b", &d); - - casefold = g_utf8_casefold (buf, -1); - g_free (short_month_names[i]); - short_month_names[i] = g_utf8_normalize (casefold, -1, G_NORMALIZE_ALL); - g_free (casefold); - - g_date_strftime (buf, 127, "%B", &d); - casefold = g_utf8_casefold (buf, -1); - g_free (long_month_names[i]); - long_month_names[i] = g_utf8_normalize (casefold, -1, G_NORMALIZE_ALL); - g_free (casefold); - - ++i; - } - - /* Determine DMY order */ - - /* had to pick a random day - don't change this, some strftimes - * are broken on some days, and this one is good so far. */ - g_date_set_dmy (&d, 4, 7, 1976); - - g_date_strftime (buf, 127, "%x", &d); - - g_date_fill_parse_tokens (buf, &testpt); - - i = 0; - while (i < testpt.num_ints) - { - switch (testpt.n[i]) - { - case 7: - dmy_order[i] = G_DATE_MONTH; - break; - case 4: - dmy_order[i] = G_DATE_DAY; - break; - case 76: - using_twodigit_years = TRUE; /* FALL THRU */ - case 1976: - dmy_order[i] = G_DATE_YEAR; - break; - default: - /* assume locale era */ - locale_era_adjust = 1976 - testpt.n[i]; - dmy_order[i] = G_DATE_YEAR; - break; - } - ++i; - } - -#ifdef G_ENABLE_DEBUG - DEBUG_MSG (("**GDate prepared a new set of locale-specific parse rules.")); - i = 1; - while (i < 13) - { - DEBUG_MSG ((" %s %s", long_month_names[i], short_month_names[i])); - ++i; - } - if (using_twodigit_years) - { - DEBUG_MSG (("**Using twodigit years with cutoff year: %u", twodigit_start_year)); - } - { - gchar *strings[3]; - i = 0; - while (i < 3) - { - switch (dmy_order[i]) - { - case G_DATE_MONTH: - strings[i] = "Month"; - break; - case G_DATE_YEAR: - strings[i] = "Year"; - break; - case G_DATE_DAY: - strings[i] = "Day"; - break; - default: - strings[i] = NULL; - break; - } - ++i; - } - DEBUG_MSG (("**Order: %s, %s, %s", strings[0], strings[1], strings[2])); - DEBUG_MSG (("**Sample date in this locale: `%s'", buf)); - } -#endif - } - - g_date_fill_parse_tokens (str, pt); -} - -void -g_date_set_parse (GDate *d, - const gchar *str) -{ - GDateParseTokens pt; - guint m = G_DATE_BAD_MONTH, day = G_DATE_BAD_DAY, y = G_DATE_BAD_YEAR; - - g_return_if_fail (d != NULL); - - /* set invalid */ - g_date_clear (d, 1); - - G_LOCK (g_date_global); - - g_date_prepare_to_parse (str, &pt); - - DEBUG_MSG (("Found %d ints, `%d' `%d' `%d' and written out month %d", - pt.num_ints, pt.n[0], pt.n[1], pt.n[2], pt.month)); - - - if (pt.num_ints == 4) - { - G_UNLOCK (g_date_global); - return; /* presumably a typo; bail out. */ - } - - if (pt.num_ints > 1) - { - int i = 0; - int j = 0; - - g_assert (pt.num_ints < 4); /* i.e., it is 2 or 3 */ - - while (i < pt.num_ints && j < 3) - { - switch (dmy_order[j]) - { - case G_DATE_MONTH: - { - if (pt.num_ints == 2 && pt.month != G_DATE_BAD_MONTH) - { - m = pt.month; - ++j; /* skip months, but don't skip this number */ - continue; - } - else - m = pt.n[i]; - } - break; - case G_DATE_DAY: - { - if (pt.num_ints == 2 && pt.month == G_DATE_BAD_MONTH) - { - day = 1; - ++j; /* skip days, since we may have month/year */ - continue; - } - day = pt.n[i]; - } - break; - case G_DATE_YEAR: - { - y = pt.n[i]; - - if (locale_era_adjust != 0) - { - y += locale_era_adjust; - } - else if (using_twodigit_years && y < 100) - { - guint two = twodigit_start_year % 100; - guint century = (twodigit_start_year / 100) * 100; - - if (y < two) - century += 100; - - y += century; - } - } - break; - default: - break; - } - - ++i; - ++j; - } - - - if (pt.num_ints == 3 && !g_date_valid_dmy (day, m, y)) - { - /* Try YYYY MM DD */ - y = pt.n[0]; - m = pt.n[1]; - day = pt.n[2]; - - if (using_twodigit_years && y < 100) - y = G_DATE_BAD_YEAR; /* avoids ambiguity */ - } - else if (pt.num_ints == 2) - { - if (m == G_DATE_BAD_MONTH && pt.month != G_DATE_BAD_MONTH) - m = pt.month; - } - } - else if (pt.num_ints == 1) - { - if (pt.month != G_DATE_BAD_MONTH) - { - /* Month name and year? */ - m = pt.month; - day = 1; - y = pt.n[0]; - } - else - { - /* Try yyyymmdd and yymmdd */ - - m = (pt.n[0]/100) % 100; - day = pt.n[0] % 100; - y = pt.n[0]/10000; - - /* FIXME move this into a separate function */ - if (using_twodigit_years && y < 100) - { - guint two = twodigit_start_year % 100; - guint century = (twodigit_start_year / 100) * 100; - - if (y < two) - century += 100; - - y += century; - } - } - } - - /* See if we got anything valid out of all this. */ - /* y < 8000 is to catch 19998 style typos; the library is OK up to 65535 or so */ - if (y < 8000 && g_date_valid_dmy (day, m, y)) - { - d->month = m; - d->day = day; - d->year = y; - d->dmy = TRUE; - } -#ifdef G_ENABLE_DEBUG - else - { - DEBUG_MSG (("Rejected DMY %u %u %u", day, m, y)); - } -#endif - G_UNLOCK (g_date_global); -} - -/** - * g_date_set_time_t: - * @date: a #GDate - * @timet: time_t value to set - * - * Sets the value of a date to the date corresponding to a time - * specified as a time_t. The time to date conversion is done using - * the user's current timezone. - * - * To set the value of a date to the current day, you could write: - * |[ - * g_date_set_time_t (date, time (NULL)); - * ]| - * - * Since: 2.10 - */ -void -g_date_set_time_t (GDate *date, - time_t timet) -{ - struct tm tm; - - g_return_if_fail (date != NULL); - -#ifdef HAVE_LOCALTIME_R - localtime_r (&timet, &tm); -#else - { - struct tm *ptm = localtime (&timet); - - if (ptm == NULL) - { - /* Happens at least in Microsoft's C library if you pass a - * negative time_t. Use 2000-01-01 as default date. - */ -#ifndef G_DISABLE_CHECKS - g_return_if_fail_warning (G_LOG_DOMAIN, "g_date_set_time", "ptm != NULL"); -#endif - - tm.tm_mon = 0; - tm.tm_mday = 1; - tm.tm_year = 100; - } - else - memcpy ((void *) &tm, (void *) ptm, sizeof(struct tm)); - } -#endif - - date->julian = FALSE; - - date->month = tm.tm_mon + 1; - date->day = tm.tm_mday; - date->year = tm.tm_year + 1900; - - g_return_if_fail (g_date_valid_dmy (date->day, date->month, date->year)); - - date->dmy = TRUE; -} - - -/** - * g_date_set_time: - * @date: a #GDate. - * @time_: #GTime value to set. - * - * Sets the value of a date from a #GTime value. - * The time to date conversion is done using the user's current timezone. - * - * @Deprecated:2.10: Use g_date_set_time_t() instead. - */ -void -g_date_set_time (GDate *date, - GTime time_) -{ - g_date_set_time_t (date, (time_t) time_); -} - -/** - * g_date_set_time_val: - * @date: a #GDate - * @timeval: #GTimeVal value to set - * - * Sets the value of a date from a #GTimeVal value. Note that the - * @tv_usec member is ignored, because #GDate can't make use of the - * additional precision. - * - * Since: 2.10 - */ -void -g_date_set_time_val (GDate *date, - GTimeVal *timeval) -{ - g_date_set_time_t (date, (time_t) timeval->tv_sec); -} - -void -g_date_set_month (GDate *d, - GDateMonth m) -{ - g_return_if_fail (d != NULL); - g_return_if_fail (g_date_valid_month (m)); - - if (d->julian && !d->dmy) g_date_update_dmy(d); - d->julian = FALSE; - - d->month = m; - - if (g_date_valid_dmy (d->day, d->month, d->year)) - d->dmy = TRUE; - else - d->dmy = FALSE; -} - -void -g_date_set_day (GDate *d, - GDateDay day) -{ - g_return_if_fail (d != NULL); - g_return_if_fail (g_date_valid_day (day)); - - if (d->julian && !d->dmy) g_date_update_dmy(d); - d->julian = FALSE; - - d->day = day; - - if (g_date_valid_dmy (d->day, d->month, d->year)) - d->dmy = TRUE; - else - d->dmy = FALSE; -} - -void -g_date_set_year (GDate *d, - GDateYear y) -{ - g_return_if_fail (d != NULL); - g_return_if_fail (g_date_valid_year (y)); - - if (d->julian && !d->dmy) g_date_update_dmy(d); - d->julian = FALSE; - - d->year = y; - - if (g_date_valid_dmy (d->day, d->month, d->year)) - d->dmy = TRUE; - else - d->dmy = FALSE; -} - -void -g_date_set_dmy (GDate *d, - GDateDay day, - GDateMonth m, - GDateYear y) -{ - g_return_if_fail (d != NULL); - g_return_if_fail (g_date_valid_dmy (day, m, y)); - - d->julian = FALSE; - - d->month = m; - d->day = day; - d->year = y; - - d->dmy = TRUE; -} - -void -g_date_set_julian (GDate *d, - guint32 j) -{ - g_return_if_fail (d != NULL); - g_return_if_fail (g_date_valid_julian (j)); - - d->julian_days = j; - d->julian = TRUE; - d->dmy = FALSE; -} - - -gboolean -g_date_is_first_of_month (const GDate *d) -{ - g_return_val_if_fail (g_date_valid (d), FALSE); - - if (!d->dmy) - g_date_update_dmy (d); - - g_return_val_if_fail (d->dmy, FALSE); - - if (d->day == 1) return TRUE; - else return FALSE; -} - -gboolean -g_date_is_last_of_month (const GDate *d) -{ - gint idx; - - g_return_val_if_fail (g_date_valid (d), FALSE); - - if (!d->dmy) - g_date_update_dmy (d); - - g_return_val_if_fail (d->dmy, FALSE); - - idx = g_date_is_leap_year (d->year) ? 1 : 0; - - if (d->day == days_in_months[idx][d->month]) return TRUE; - else return FALSE; -} - -void -g_date_add_days (GDate *d, - guint ndays) -{ - g_return_if_fail (g_date_valid (d)); - - if (!d->julian) - g_date_update_julian (d); - - g_return_if_fail (d->julian); - - d->julian_days += ndays; - d->dmy = FALSE; -} - -void -g_date_subtract_days (GDate *d, - guint ndays) -{ - g_return_if_fail (g_date_valid (d)); - - if (!d->julian) - g_date_update_julian (d); - - g_return_if_fail (d->julian); - g_return_if_fail (d->julian_days > ndays); - - d->julian_days -= ndays; - d->dmy = FALSE; -} - -void -g_date_add_months (GDate *d, - guint nmonths) -{ - guint years, months; - gint idx; - - g_return_if_fail (g_date_valid (d)); - - if (!d->dmy) - g_date_update_dmy (d); - - g_return_if_fail (d->dmy); - - nmonths += d->month - 1; - - years = nmonths/12; - months = nmonths%12; - - d->month = months + 1; - d->year += years; - - idx = g_date_is_leap_year (d->year) ? 1 : 0; - - if (d->day > days_in_months[idx][d->month]) - d->day = days_in_months[idx][d->month]; - - d->julian = FALSE; - - g_return_if_fail (g_date_valid (d)); -} - -void -g_date_subtract_months (GDate *d, - guint nmonths) -{ - guint years, months; - gint idx; - - g_return_if_fail (g_date_valid (d)); - - if (!d->dmy) - g_date_update_dmy (d); - - g_return_if_fail (d->dmy); - - years = nmonths/12; - months = nmonths%12; - - g_return_if_fail (d->year > years); - - d->year -= years; - - if (d->month > months) d->month -= months; - else - { - months -= d->month; - d->month = 12 - months; - d->year -= 1; - } - - idx = g_date_is_leap_year (d->year) ? 1 : 0; - - if (d->day > days_in_months[idx][d->month]) - d->day = days_in_months[idx][d->month]; - - d->julian = FALSE; - - g_return_if_fail (g_date_valid (d)); -} - -void -g_date_add_years (GDate *d, - guint nyears) -{ - g_return_if_fail (g_date_valid (d)); - - if (!d->dmy) - g_date_update_dmy (d); - - g_return_if_fail (d->dmy); - - d->year += nyears; - - if (d->month == 2 && d->day == 29) - { - if (!g_date_is_leap_year (d->year)) - d->day = 28; - } - - d->julian = FALSE; -} - -void -g_date_subtract_years (GDate *d, - guint nyears) -{ - g_return_if_fail (g_date_valid (d)); - - if (!d->dmy) - g_date_update_dmy (d); - - g_return_if_fail (d->dmy); - g_return_if_fail (d->year > nyears); - - d->year -= nyears; - - if (d->month == 2 && d->day == 29) - { - if (!g_date_is_leap_year (d->year)) - d->day = 28; - } - - d->julian = FALSE; -} - -gboolean -g_date_is_leap_year (GDateYear year) -{ - g_return_val_if_fail (g_date_valid_year (year), FALSE); - - return ( (((year % 4) == 0) && ((year % 100) != 0)) || - (year % 400) == 0 ); -} - -guint8 -g_date_get_days_in_month (GDateMonth month, - GDateYear year) -{ - gint idx; - - g_return_val_if_fail (g_date_valid_year (year), 0); - g_return_val_if_fail (g_date_valid_month (month), 0); - - idx = g_date_is_leap_year (year) ? 1 : 0; - - return days_in_months[idx][month]; -} - -guint8 -g_date_get_monday_weeks_in_year (GDateYear year) -{ - GDate d; - - g_return_val_if_fail (g_date_valid_year (year), 0); - - g_date_clear (&d, 1); - g_date_set_dmy (&d, 1, 1, year); - if (g_date_get_weekday (&d) == G_DATE_MONDAY) return 53; - g_date_set_dmy (&d, 31, 12, year); - if (g_date_get_weekday (&d) == G_DATE_MONDAY) return 53; - if (g_date_is_leap_year (year)) - { - g_date_set_dmy (&d, 2, 1, year); - if (g_date_get_weekday (&d) == G_DATE_MONDAY) return 53; - g_date_set_dmy (&d, 30, 12, year); - if (g_date_get_weekday (&d) == G_DATE_MONDAY) return 53; - } - return 52; -} - -guint8 -g_date_get_sunday_weeks_in_year (GDateYear year) -{ - GDate d; - - g_return_val_if_fail (g_date_valid_year (year), 0); - - g_date_clear (&d, 1); - g_date_set_dmy (&d, 1, 1, year); - if (g_date_get_weekday (&d) == G_DATE_SUNDAY) return 53; - g_date_set_dmy (&d, 31, 12, year); - if (g_date_get_weekday (&d) == G_DATE_SUNDAY) return 53; - if (g_date_is_leap_year (year)) - { - g_date_set_dmy (&d, 2, 1, year); - if (g_date_get_weekday (&d) == G_DATE_SUNDAY) return 53; - g_date_set_dmy (&d, 30, 12, year); - if (g_date_get_weekday (&d) == G_DATE_SUNDAY) return 53; - } - return 52; -} - -gint -g_date_compare (const GDate *lhs, - const GDate *rhs) -{ - g_return_val_if_fail (lhs != NULL, 0); - g_return_val_if_fail (rhs != NULL, 0); - g_return_val_if_fail (g_date_valid (lhs), 0); - g_return_val_if_fail (g_date_valid (rhs), 0); - - /* Remember the self-comparison case! I think it works right now. */ - - while (TRUE) - { - if (lhs->julian && rhs->julian) - { - if (lhs->julian_days < rhs->julian_days) return -1; - else if (lhs->julian_days > rhs->julian_days) return 1; - else return 0; - } - else if (lhs->dmy && rhs->dmy) - { - if (lhs->year < rhs->year) return -1; - else if (lhs->year > rhs->year) return 1; - else - { - if (lhs->month < rhs->month) return -1; - else if (lhs->month > rhs->month) return 1; - else - { - if (lhs->day < rhs->day) return -1; - else if (lhs->day > rhs->day) return 1; - else return 0; - } - - } - - } - else - { - if (!lhs->julian) g_date_update_julian (lhs); - if (!rhs->julian) g_date_update_julian (rhs); - g_return_val_if_fail (lhs->julian, 0); - g_return_val_if_fail (rhs->julian, 0); - } - - } - return 0; /* warnings */ -} - - -void -g_date_to_struct_tm (const GDate *d, - struct tm *tm) -{ - GDateWeekday day; - - g_return_if_fail (g_date_valid (d)); - g_return_if_fail (tm != NULL); - - if (!d->dmy) - g_date_update_dmy (d); - - g_return_if_fail (d->dmy); - - /* zero all the irrelevant fields to be sure they're valid */ - - /* On Linux and maybe other systems, there are weird non-POSIX - * fields on the end of struct tm that choke strftime if they - * contain garbage. So we need to 0 the entire struct, not just the - * fields we know to exist. - */ - - memset (tm, 0x0, sizeof (struct tm)); - - tm->tm_mday = d->day; - tm->tm_mon = d->month - 1; /* 0-11 goes in tm */ - tm->tm_year = ((int)d->year) - 1900; /* X/Open says tm_year can be negative */ - - day = g_date_get_weekday (d); - if (day == 7) day = 0; /* struct tm wants days since Sunday, so Sunday is 0 */ - - tm->tm_wday = (int)day; - - tm->tm_yday = g_date_get_day_of_year (d) - 1; /* 0 to 365 */ - tm->tm_isdst = -1; /* -1 means "information not available" */ -} - -void -g_date_clamp (GDate *date, - const GDate *min_date, - const GDate *max_date) -{ - g_return_if_fail (g_date_valid (date)); - - if (min_date != NULL) - g_return_if_fail (g_date_valid (min_date)); - - if (max_date != NULL) - g_return_if_fail (g_date_valid (max_date)); - - if (min_date != NULL && max_date != NULL) - g_return_if_fail (g_date_compare (min_date, max_date) <= 0); - - if (min_date && g_date_compare (date, min_date) < 0) - *date = *min_date; - - if (max_date && g_date_compare (max_date, date) < 0) - *date = *max_date; -} - -void -g_date_order (GDate *date1, - GDate *date2) -{ - g_return_if_fail (g_date_valid (date1)); - g_return_if_fail (g_date_valid (date2)); - - if (g_date_compare (date1, date2) > 0) - { - GDate tmp = *date1; - *date1 = *date2; - *date2 = tmp; - } -} - -#ifdef G_OS_WIN32 -static gsize -win32_strftime_helper (const GDate *d, - const gchar *format, - const struct tm *tm, - gchar *s, - gsize slen) -{ - SYSTEMTIME systemtime; - TIME_ZONE_INFORMATION tzinfo; - LCID lcid; - int n, k; - GArray *result; - const gchar *p; - gunichar c; - const wchar_t digits[] = L"0123456789"; - gchar *convbuf; - glong convlen = 0; - gsize retval; - - systemtime.wYear = tm->tm_year + 1900; - systemtime.wMonth = tm->tm_mon + 1; - systemtime.wDayOfWeek = tm->tm_wday; - systemtime.wDay = tm->tm_mday; - systemtime.wHour = tm->tm_hour; - systemtime.wMinute = tm->tm_min; - systemtime.wSecond = tm->tm_sec; - systemtime.wMilliseconds = 0; - - lcid = GetThreadLocale (); - result = g_array_sized_new (FALSE, FALSE, sizeof (wchar_t), MAX (128, strlen (format) * 2)); - - p = format; - while (*p) - { - c = g_utf8_get_char (p); - if (c == '%') - { - p = g_utf8_next_char (p); - if (!*p) - { - s[0] = '\0'; - g_array_free (result, TRUE); - - return 0; - } - - c = g_utf8_get_char (p); - if (c == 'E' || c == 'O') - { - /* Ignore modified conversion specifiers for now. */ - p = g_utf8_next_char (p); - if (!*p) - { - s[0] = '\0'; - g_array_free (result, TRUE); - - return 0; - } - - c = g_utf8_get_char (p); - } - - switch (c) - { - case 'a': - if (systemtime.wDayOfWeek == 0) - k = 6; - else - k = systemtime.wDayOfWeek - 1; - n = GetLocaleInfoW (lcid, LOCALE_SABBREVDAYNAME1+k, NULL, 0); - g_array_set_size (result, result->len + n); - GetLocaleInfoW (lcid, LOCALE_SABBREVDAYNAME1+k, ((wchar_t *) result->data) + result->len - n, n); - g_array_set_size (result, result->len - 1); - break; - case 'A': - if (systemtime.wDayOfWeek == 0) - k = 6; - else - k = systemtime.wDayOfWeek - 1; - n = GetLocaleInfoW (lcid, LOCALE_SDAYNAME1+k, NULL, 0); - g_array_set_size (result, result->len + n); - GetLocaleInfoW (lcid, LOCALE_SDAYNAME1+k, ((wchar_t *) result->data) + result->len - n, n); - g_array_set_size (result, result->len - 1); - break; - case 'b': - case 'h': - n = GetLocaleInfoW (lcid, LOCALE_SABBREVMONTHNAME1+systemtime.wMonth-1, NULL, 0); - g_array_set_size (result, result->len + n); - GetLocaleInfoW (lcid, LOCALE_SABBREVMONTHNAME1+systemtime.wMonth-1, ((wchar_t *) result->data) + result->len - n, n); - g_array_set_size (result, result->len - 1); - break; - case 'B': - n = GetLocaleInfoW (lcid, LOCALE_SMONTHNAME1+systemtime.wMonth-1, NULL, 0); - g_array_set_size (result, result->len + n); - GetLocaleInfoW (lcid, LOCALE_SMONTHNAME1+systemtime.wMonth-1, ((wchar_t *) result->data) + result->len - n, n); - g_array_set_size (result, result->len - 1); - break; - case 'c': - n = GetDateFormatW (lcid, 0, &systemtime, NULL, NULL, 0); - if (n > 0) - { - g_array_set_size (result, result->len + n); - GetDateFormatW (lcid, 0, &systemtime, NULL, ((wchar_t *) result->data) + result->len - n, n); - g_array_set_size (result, result->len - 1); - } - g_array_append_vals (result, L" ", 1); - n = GetTimeFormatW (lcid, 0, &systemtime, NULL, NULL, 0); - if (n > 0) - { - g_array_set_size (result, result->len + n); - GetTimeFormatW (lcid, 0, &systemtime, NULL, ((wchar_t *) result->data) + result->len - n, n); - g_array_set_size (result, result->len - 1); - } - break; - case 'C': - g_array_append_vals (result, digits + systemtime.wYear/1000, 1); - g_array_append_vals (result, digits + (systemtime.wYear/1000)%10, 1); - break; - case 'd': - g_array_append_vals (result, digits + systemtime.wDay/10, 1); - g_array_append_vals (result, digits + systemtime.wDay%10, 1); - break; - case 'D': - g_array_append_vals (result, digits + systemtime.wMonth/10, 1); - g_array_append_vals (result, digits + systemtime.wMonth%10, 1); - g_array_append_vals (result, L"/", 1); - g_array_append_vals (result, digits + systemtime.wDay/10, 1); - g_array_append_vals (result, digits + systemtime.wDay%10, 1); - g_array_append_vals (result, L"/", 1); - g_array_append_vals (result, digits + (systemtime.wYear/10)%10, 1); - g_array_append_vals (result, digits + systemtime.wYear%10, 1); - break; - case 'e': - if (systemtime.wDay >= 10) - g_array_append_vals (result, digits + systemtime.wDay/10, 1); - else - g_array_append_vals (result, L" ", 1); - g_array_append_vals (result, digits + systemtime.wDay%10, 1); - break; - - /* A GDate has no time fields, so for now we can - * hardcode all time conversions into zeros (or 12 for - * %I). The alternative code snippets in the #else - * branches are here ready to be taken into use when - * needed by a g_strftime() or g_date_and_time_format() - * or whatever. - */ - case 'H': -#if 1 - g_array_append_vals (result, L"00", 2); -#else - g_array_append_vals (result, digits + systemtime.wHour/10, 1); - g_array_append_vals (result, digits + systemtime.wHour%10, 1); -#endif - break; - case 'I': -#if 1 - g_array_append_vals (result, L"12", 2); -#else - if (systemtime.wHour == 0) - g_array_append_vals (result, L"12", 2); - else - { - g_array_append_vals (result, digits + (systemtime.wHour%12)/10, 1); - g_array_append_vals (result, digits + (systemtime.wHour%12)%10, 1); - } -#endif - break; - case 'j': - g_array_append_vals (result, digits + (tm->tm_yday+1)/100, 1); - g_array_append_vals (result, digits + ((tm->tm_yday+1)/10)%10, 1); - g_array_append_vals (result, digits + (tm->tm_yday+1)%10, 1); - break; - case 'm': - g_array_append_vals (result, digits + systemtime.wMonth/10, 1); - g_array_append_vals (result, digits + systemtime.wMonth%10, 1); - break; - case 'M': -#if 1 - g_array_append_vals (result, L"00", 2); -#else - g_array_append_vals (result, digits + systemtime.wMinute/10, 1); - g_array_append_vals (result, digits + systemtime.wMinute%10, 1); -#endif - break; - case 'n': - g_array_append_vals (result, L"\n", 1); - break; - case 'p': - n = GetTimeFormatW (lcid, 0, &systemtime, L"tt", NULL, 0); - if (n > 0) - { - g_array_set_size (result, result->len + n); - GetTimeFormatW (lcid, 0, &systemtime, L"tt", ((wchar_t *) result->data) + result->len - n, n); - g_array_set_size (result, result->len - 1); - } - break; - case 'r': - /* This is a rather odd format. Hard to say what to do. - * Let's always use the POSIX %I:%M:%S %p - */ -#if 1 - g_array_append_vals (result, L"12:00:00", 8); -#else - if (systemtime.wHour == 0) - g_array_append_vals (result, L"12", 2); - else - { - g_array_append_vals (result, digits + (systemtime.wHour%12)/10, 1); - g_array_append_vals (result, digits + (systemtime.wHour%12)%10, 1); - } - g_array_append_vals (result, L":", 1); - g_array_append_vals (result, digits + systemtime.wMinute/10, 1); - g_array_append_vals (result, digits + systemtime.wMinute%10, 1); - g_array_append_vals (result, L":", 1); - g_array_append_vals (result, digits + systemtime.wSecond/10, 1); - g_array_append_vals (result, digits + systemtime.wSecond%10, 1); - g_array_append_vals (result, L" ", 1); -#endif - n = GetTimeFormatW (lcid, 0, &systemtime, L"tt", NULL, 0); - if (n > 0) - { - g_array_set_size (result, result->len + n); - GetTimeFormatW (lcid, 0, &systemtime, L"tt", ((wchar_t *) result->data) + result->len - n, n); - g_array_set_size (result, result->len - 1); - } - break; - case 'R': -#if 1 - g_array_append_vals (result, L"00:00", 5); -#else - g_array_append_vals (result, digits + systemtime.wHour/10, 1); - g_array_append_vals (result, digits + systemtime.wHour%10, 1); - g_array_append_vals (result, L":", 1); - g_array_append_vals (result, digits + systemtime.wMinute/10, 1); - g_array_append_vals (result, digits + systemtime.wMinute%10, 1); -#endif - break; - case 'S': -#if 1 - g_array_append_vals (result, L"00", 2); -#else - g_array_append_vals (result, digits + systemtime.wSecond/10, 1); - g_array_append_vals (result, digits + systemtime.wSecond%10, 1); -#endif - break; - case 't': - g_array_append_vals (result, L"\t", 1); - break; - case 'T': -#if 1 - g_array_append_vals (result, L"00:00:00", 8); -#else - g_array_append_vals (result, digits + systemtime.wHour/10, 1); - g_array_append_vals (result, digits + systemtime.wHour%10, 1); - g_array_append_vals (result, L":", 1); - g_array_append_vals (result, digits + systemtime.wMinute/10, 1); - g_array_append_vals (result, digits + systemtime.wMinute%10, 1); - g_array_append_vals (result, L":", 1); - g_array_append_vals (result, digits + systemtime.wSecond/10, 1); - g_array_append_vals (result, digits + systemtime.wSecond%10, 1); -#endif - break; - case 'u': - if (systemtime.wDayOfWeek == 0) - g_array_append_vals (result, L"7", 1); - else - g_array_append_vals (result, digits + systemtime.wDayOfWeek, 1); - break; - case 'U': - n = g_date_get_sunday_week_of_year (d); - g_array_append_vals (result, digits + n/10, 1); - g_array_append_vals (result, digits + n%10, 1); - break; - case 'V': - n = g_date_get_iso8601_week_of_year (d); - g_array_append_vals (result, digits + n/10, 1); - g_array_append_vals (result, digits + n%10, 1); - break; - case 'w': - g_array_append_vals (result, digits + systemtime.wDayOfWeek, 1); - break; - case 'W': - n = g_date_get_monday_week_of_year (d); - g_array_append_vals (result, digits + n/10, 1); - g_array_append_vals (result, digits + n%10, 1); - break; - case 'x': - n = GetDateFormatW (lcid, 0, &systemtime, NULL, NULL, 0); - if (n > 0) - { - g_array_set_size (result, result->len + n); - GetDateFormatW (lcid, 0, &systemtime, NULL, ((wchar_t *) result->data) + result->len - n, n); - g_array_set_size (result, result->len - 1); - } - break; - case 'X': - n = GetTimeFormatW (lcid, 0, &systemtime, NULL, NULL, 0); - if (n > 0) - { - g_array_set_size (result, result->len + n); - GetTimeFormatW (lcid, 0, &systemtime, NULL, ((wchar_t *) result->data) + result->len - n, n); - g_array_set_size (result, result->len - 1); - } - break; - case 'y': - g_array_append_vals (result, digits + (systemtime.wYear/10)%10, 1); - g_array_append_vals (result, digits + systemtime.wYear%10, 1); - break; - case 'Y': - g_array_append_vals (result, digits + systemtime.wYear/1000, 1); - g_array_append_vals (result, digits + (systemtime.wYear/100)%10, 1); - g_array_append_vals (result, digits + (systemtime.wYear/10)%10, 1); - g_array_append_vals (result, digits + systemtime.wYear%10, 1); - break; - case 'Z': - n = GetTimeZoneInformation (&tzinfo); - if (n == TIME_ZONE_ID_UNKNOWN) - ; - else if (n == TIME_ZONE_ID_STANDARD) - g_array_append_vals (result, tzinfo.StandardName, wcslen (tzinfo.StandardName)); - else if (n == TIME_ZONE_ID_DAYLIGHT) - g_array_append_vals (result, tzinfo.DaylightName, wcslen (tzinfo.DaylightName)); - break; - case '%': - g_array_append_vals (result, L"%", 1); - break; - } - } - else if (c <= 0xFFFF) - { - wchar_t wc = c; - g_array_append_vals (result, &wc, 1); - } - else - { - glong nwc; - wchar_t *ws; - - ws = g_ucs4_to_utf16 (&c, 1, NULL, &nwc, NULL); - g_array_append_vals (result, ws, nwc); - g_free (ws); - } - p = g_utf8_next_char (p); - } - - convbuf = g_utf16_to_utf8 ((wchar_t *) result->data, result->len, NULL, &convlen, NULL); - g_array_free (result, TRUE); - - if (!convbuf) - { - s[0] = '\0'; - return 0; - } - - if (slen <= convlen) - { - /* Ensure only whole characters are copied into the buffer. */ - gchar *end = g_utf8_find_prev_char (convbuf, convbuf + slen); - g_assert (end != NULL); - convlen = end - convbuf; - - /* Return 0 because the buffer isn't large enough. */ - retval = 0; - } - else - retval = convlen; - - memcpy (s, convbuf, convlen); - s[convlen] = '\0'; - g_free (convbuf); - - return retval; -} - -#endif - -gsize -g_date_strftime (gchar *s, - gsize slen, - const gchar *format, - const GDate *d) -{ - struct tm tm; -#ifndef G_OS_WIN32 - gsize locale_format_len = 0; - gchar *locale_format; - gsize tmplen; - gchar *tmpbuf; - gsize tmpbufsize; - gsize convlen = 0; - gchar *convbuf; - GError *error = NULL; - gsize retval; -#endif - - g_return_val_if_fail (g_date_valid (d), 0); - g_return_val_if_fail (slen > 0, 0); - g_return_val_if_fail (format != NULL, 0); - g_return_val_if_fail (s != NULL, 0); - - g_date_to_struct_tm (d, &tm); - -#ifdef G_OS_WIN32 - if (!g_utf8_validate (format, -1, NULL)) - { - s[0] = '\0'; - return 0; - } - return win32_strftime_helper (d, format, &tm, s, slen); -#else - - locale_format = g_locale_from_utf8 (format, -1, NULL, &locale_format_len, &error); - - if (error) - { - g_warning (G_STRLOC "Error converting format to locale encoding: %s\n", error->message); - g_error_free (error); - - s[0] = '\0'; - return 0; - } - - tmpbufsize = MAX (128, locale_format_len * 2); - while (TRUE) - { - tmpbuf = g_malloc (tmpbufsize); - - /* Set the first byte to something other than '\0', to be able to - * recognize whether strftime actually failed or just returned "". - */ - tmpbuf[0] = '\1'; - tmplen = strftime (tmpbuf, tmpbufsize, locale_format, &tm); - - if (tmplen == 0 && tmpbuf[0] != '\0') - { - g_free (tmpbuf); - tmpbufsize *= 2; - - if (tmpbufsize > 65536) - { - g_warning (G_STRLOC "Maximum buffer size for g_date_strftime exceeded: giving up\n"); - g_free (locale_format); - - s[0] = '\0'; - return 0; - } - } - else - break; - } - g_free (locale_format); - - convbuf = g_locale_to_utf8 (tmpbuf, tmplen, NULL, &convlen, &error); - g_free (tmpbuf); - - if (error) - { - g_warning (G_STRLOC "Error converting results of strftime to UTF-8: %s\n", error->message); - g_error_free (error); - - s[0] = '\0'; - return 0; - } - - if (slen <= convlen) - { - /* Ensure only whole characters are copied into the buffer. - */ - gchar *end = g_utf8_find_prev_char (convbuf, convbuf + slen); - g_assert (end != NULL); - convlen = end - convbuf; - - /* Return 0 because the buffer isn't large enough. - */ - retval = 0; - } - else - retval = convlen; - - memcpy (s, convbuf, convlen); - s[convlen] = '\0'; - g_free (convbuf); - - return retval; -#endif -} - -#define __G_DATE_C__ -#include "galiasdef.c" - diff --git a/lib/win32/glib-2.20.4/glib/gdate.h b/lib/win32/glib-2.20.4/glib/gdate.h deleted file mode 100644 index cb1f566155ad2..0000000000000 --- a/lib/win32/glib-2.20.4/glib/gdate.h +++ /dev/null @@ -1,263 +0,0 @@ -/* GLIB - Library of useful routines for C programming - * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library 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 - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ - -/* - * Modified by the GLib Team and others 1997-2000. See the AUTHORS - * file for a list of people on the GLib Team. See the ChangeLog - * files for a list of changes. These files are distributed with - * GLib at ftp://ftp.gtk.org/pub/gtk/. - */ - -#if defined(G_DISABLE_SINGLE_INCLUDES) && !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION) -#error "Only can be included directly." -#endif - -#ifndef __G_DATE_H__ -#define __G_DATE_H__ - -#include - -#include -#include - -G_BEGIN_DECLS - -/* GDate - * - * Date calculations (not time for now, to be resolved). These are a - * mutant combination of Steffen Beyer's DateCalc routines - * (http://www.perl.com/CPAN/authors/id/STBEY/) and Jon Trowbridge's - * date routines (written for in-house software). Written by Havoc - * Pennington - */ - -typedef gint32 GTime; -typedef guint16 GDateYear; -typedef guint8 GDateDay; /* day of the month */ -typedef struct _GDate GDate; - -/* enum used to specify order of appearance in parsed date strings */ -typedef enum -{ - G_DATE_DAY = 0, - G_DATE_MONTH = 1, - G_DATE_YEAR = 2 -} GDateDMY; - -/* actual week and month values */ -typedef enum -{ - G_DATE_BAD_WEEKDAY = 0, - G_DATE_MONDAY = 1, - G_DATE_TUESDAY = 2, - G_DATE_WEDNESDAY = 3, - G_DATE_THURSDAY = 4, - G_DATE_FRIDAY = 5, - G_DATE_SATURDAY = 6, - G_DATE_SUNDAY = 7 -} GDateWeekday; -typedef enum -{ - G_DATE_BAD_MONTH = 0, - G_DATE_JANUARY = 1, - G_DATE_FEBRUARY = 2, - G_DATE_MARCH = 3, - G_DATE_APRIL = 4, - G_DATE_MAY = 5, - G_DATE_JUNE = 6, - G_DATE_JULY = 7, - G_DATE_AUGUST = 8, - G_DATE_SEPTEMBER = 9, - G_DATE_OCTOBER = 10, - G_DATE_NOVEMBER = 11, - G_DATE_DECEMBER = 12 -} GDateMonth; - -#define G_DATE_BAD_JULIAN 0U -#define G_DATE_BAD_DAY 0U -#define G_DATE_BAD_YEAR 0U - -/* Note: directly manipulating structs is generally a bad idea, but - * in this case it's an *incredibly* bad idea, because all or part - * of this struct can be invalid at any given time. Use the functions, - * or you will get hosed, I promise. - */ -struct _GDate -{ - guint julian_days : 32; /* julian days representation - we use a - * bitfield hoping that 64 bit platforms - * will pack this whole struct in one big - * int - */ - - guint julian : 1; /* julian is valid */ - guint dmy : 1; /* dmy is valid */ - - /* DMY representation */ - guint day : 6; - guint month : 4; - guint year : 16; -}; - -/* g_date_new() returns an invalid date, you then have to _set() stuff - * to get a usable object. You can also allocate a GDate statically, - * then call g_date_clear() to initialize. - */ -GDate* g_date_new (void); -GDate* g_date_new_dmy (GDateDay day, - GDateMonth month, - GDateYear year); -GDate* g_date_new_julian (guint32 julian_day); -void g_date_free (GDate *date); - -/* check g_date_valid() after doing an operation that might fail, like - * _parse. Almost all g_date operations are undefined on invalid - * dates (the exceptions are the mutators, since you need those to - * return to validity). - */ -gboolean g_date_valid (const GDate *date); -gboolean g_date_valid_day (GDateDay day) G_GNUC_CONST; -gboolean g_date_valid_month (GDateMonth month) G_GNUC_CONST; -gboolean g_date_valid_year (GDateYear year) G_GNUC_CONST; -gboolean g_date_valid_weekday (GDateWeekday weekday) G_GNUC_CONST; -gboolean g_date_valid_julian (guint32 julian_date) G_GNUC_CONST; -gboolean g_date_valid_dmy (GDateDay day, - GDateMonth month, - GDateYear year) G_GNUC_CONST; - -GDateWeekday g_date_get_weekday (const GDate *date); -GDateMonth g_date_get_month (const GDate *date); -GDateYear g_date_get_year (const GDate *date); -GDateDay g_date_get_day (const GDate *date); -guint32 g_date_get_julian (const GDate *date); -guint g_date_get_day_of_year (const GDate *date); -/* First monday/sunday is the start of week 1; if we haven't reached - * that day, return 0. These are not ISO weeks of the year; that - * routine needs to be added. - * these functions return the number of weeks, starting on the - * corrsponding day - */ -guint g_date_get_monday_week_of_year (const GDate *date); -guint g_date_get_sunday_week_of_year (const GDate *date); -guint g_date_get_iso8601_week_of_year (const GDate *date); - -/* If you create a static date struct you need to clear it to get it - * in a sane state before use. You can clear a whole array at - * once with the ndates argument. - */ -void g_date_clear (GDate *date, - guint n_dates); - -/* The parse routine is meant for dates typed in by a user, so it - * permits many formats but tries to catch common typos. If your data - * needs to be strictly validated, it is not an appropriate function. - */ -void g_date_set_parse (GDate *date, - const gchar *str); -void g_date_set_time_t (GDate *date, - time_t timet); -void g_date_set_time_val (GDate *date, - GTimeVal *timeval); -#ifndef G_DISABLE_DEPRECATED -void g_date_set_time (GDate *date, - GTime time_); -#endif -void g_date_set_month (GDate *date, - GDateMonth month); -void g_date_set_day (GDate *date, - GDateDay day); -void g_date_set_year (GDate *date, - GDateYear year); -void g_date_set_dmy (GDate *date, - GDateDay day, - GDateMonth month, - GDateYear y); -void g_date_set_julian (GDate *date, - guint32 julian_date); -gboolean g_date_is_first_of_month (const GDate *date); -gboolean g_date_is_last_of_month (const GDate *date); - -/* To go forward by some number of weeks just go forward weeks*7 days */ -void g_date_add_days (GDate *date, - guint n_days); -void g_date_subtract_days (GDate *date, - guint n_days); - -/* If you add/sub months while day > 28, the day might change */ -void g_date_add_months (GDate *date, - guint n_months); -void g_date_subtract_months (GDate *date, - guint n_months); - -/* If it's feb 29, changing years can move you to the 28th */ -void g_date_add_years (GDate *date, - guint n_years); -void g_date_subtract_years (GDate *date, - guint n_years); -gboolean g_date_is_leap_year (GDateYear year) G_GNUC_CONST; -guint8 g_date_get_days_in_month (GDateMonth month, - GDateYear year) G_GNUC_CONST; -guint8 g_date_get_monday_weeks_in_year (GDateYear year) G_GNUC_CONST; -guint8 g_date_get_sunday_weeks_in_year (GDateYear year) G_GNUC_CONST; - -/* Returns the number of days between the two dates. If date2 comes - before date1, a negative value is return. */ -gint g_date_days_between (const GDate *date1, - const GDate *date2); - -/* qsort-friendly (with a cast...) */ -gint g_date_compare (const GDate *lhs, - const GDate *rhs); -void g_date_to_struct_tm (const GDate *date, - struct tm *tm); - -void g_date_clamp (GDate *date, - const GDate *min_date, - const GDate *max_date); - -/* Swap date1 and date2's values if date1 > date2. */ -void g_date_order (GDate *date1, GDate *date2); - -/* Just like strftime() except you can only use date-related formats. - * Using a time format is undefined. - */ -gsize g_date_strftime (gchar *s, - gsize slen, - const gchar *format, - const GDate *date); - -#ifndef G_DISABLE_DEPRECATED - -#define g_date_weekday g_date_get_weekday -#define g_date_month g_date_get_month -#define g_date_year g_date_get_year -#define g_date_day g_date_get_day -#define g_date_julian g_date_get_julian -#define g_date_day_of_year g_date_get_day_of_year -#define g_date_monday_week_of_year g_date_get_monday_week_of_year -#define g_date_sunday_week_of_year g_date_get_sunday_week_of_year -#define g_date_days_in_month g_date_get_days_in_month -#define g_date_monday_weeks_in_year g_date_get_monday_weeks_in_year -#define g_date_sunday_weeks_in_year g_date_get_sunday_weeks_in_year - -#endif /* G_DISABLE_DEPRECATED */ - -G_END_DECLS - -#endif /* __G_DATE_H__ */ diff --git a/lib/win32/glib-2.20.4/glib/gdebug.h b/lib/win32/glib-2.20.4/glib/gdebug.h deleted file mode 100644 index dea3dde7dab60..0000000000000 --- a/lib/win32/glib-2.20.4/glib/gdebug.h +++ /dev/null @@ -1,59 +0,0 @@ -/* GLIB - Library of useful routines for C programming - * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library 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 - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ - -/* - * Modified by the GLib Team and others 1997-2000. See the AUTHORS - * file for a list of people on the GLib Team. See the ChangeLog - * files for a list of changes. These files are distributed with - * GTK+ at ftp://ftp.gtk.org/pub/gtk/. - */ - -#ifndef __G_DEBUG_H__ -#define __G_DEBUG_H__ - -G_BEGIN_DECLS - -typedef enum { - G_DEBUG_FATAL_WARNINGS = 1 << 0, - G_DEBUG_FATAL_CRITICALS = 1 << 1 -} GDebugFlag; - - -#ifdef G_ENABLE_DEBUG - -#define G_NOTE(type, action) G_STMT_START { \ - if (!_g_debug_initialized) \ - { _g_debug_init (); } \ - if (_g_debug_flags & G_DEBUG_##type) \ - { action; }; } G_STMT_END - -#else /* !G_ENABLE_DEBUG */ - -#define G_NOTE(type, action) - -#endif /* G_ENABLE_DEBUG */ - -GLIB_VAR gboolean _g_debug_initialized; -GLIB_VAR guint _g_debug_flags; - -G_GNUC_INTERNAL void _g_debug_init (void); - -G_END_DECLS - -#endif /* __G_DEBUG_H__ */ diff --git a/lib/win32/glib-2.20.4/glib/gdir.c b/lib/win32/glib-2.20.4/glib/gdir.c deleted file mode 100644 index b704f30616933..0000000000000 --- a/lib/win32/glib-2.20.4/glib/gdir.c +++ /dev/null @@ -1,302 +0,0 @@ -/* GLIB - Library of useful routines for C programming - * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald - * - * gdir.c: Simplified wrapper around the DIRENT functions. - * - * Copyright 2001 Hans Breuer - * Copyright 2004 Tor Lillqvist - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library 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 - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ - -#include "config.h" - -#include -#include -#include -#include - -#ifdef HAVE_DIRENT_H -#include -#include -#endif - -#include "glib.h" -#include "gdir.h" - -#include "glibintl.h" - -#include "galias.h" - -#if defined (_MSC_VER) && !defined (HAVE_DIRENT_H) -#include "../build/win32/dirent/dirent.h" -#include "../build/win32/dirent/wdirent.c" -#endif - -struct _GDir -{ -#ifdef G_OS_WIN32 - _WDIR *wdirp; -#else - DIR *dirp; -#endif -#ifdef G_OS_WIN32 - gchar utf8_buf[FILENAME_MAX*4]; -#endif -}; - -/** - * g_dir_open: - * @path: the path to the directory you are interested in. On Unix - * in the on-disk encoding. On Windows in UTF-8 - * @flags: Currently must be set to 0. Reserved for future use. - * @error: return location for a #GError, or %NULL. - * If non-%NULL, an error will be set if and only if - * g_dir_open() fails. - * - * Opens a directory for reading. The names of the files in the - * directory can then be retrieved using g_dir_read_name(). - * - * Return value: a newly allocated #GDir on success, %NULL on failure. - * If non-%NULL, you must free the result with g_dir_close() - * when you are finished with it. - **/ -GDir * -g_dir_open (const gchar *path, - guint flags, - GError **error) -{ - GDir *dir; -#ifdef G_OS_WIN32 - wchar_t *wpath; -#else - gchar *utf8_path; -#endif - - g_return_val_if_fail (path != NULL, NULL); - -#ifdef G_OS_WIN32 - wpath = g_utf8_to_utf16 (path, -1, NULL, NULL, error); - - if (wpath == NULL) - return NULL; - - dir = g_new (GDir, 1); - - dir->wdirp = _wopendir (wpath); - g_free (wpath); - - if (dir->wdirp) - return dir; - - /* error case */ - - g_set_error (error, - G_FILE_ERROR, - g_file_error_from_errno (errno), - _("Error opening directory '%s': %s"), - path, g_strerror (errno)); - - g_free (dir); - - return NULL; -#else - dir = g_new (GDir, 1); - - dir->dirp = opendir (path); - - if (dir->dirp) - return dir; - - /* error case */ - utf8_path = g_filename_to_utf8 (path, -1, - NULL, NULL, NULL); - g_set_error (error, - G_FILE_ERROR, - g_file_error_from_errno (errno), - _("Error opening directory '%s': %s"), - utf8_path, g_strerror (errno)); - - g_free (utf8_path); - g_free (dir); - - return NULL; -#endif -} - -#if defined (G_OS_WIN32) && !defined (_WIN64) - -/* The above function actually is called g_dir_open_utf8, and it's - * that what applications compiled with this GLib version will - * use. - */ - -#undef g_dir_open - -/* Binary compatibility version. Not for newly compiled code. */ - -GDir * -g_dir_open (const gchar *path, - guint flags, - GError **error) -{ - gchar *utf8_path = g_locale_to_utf8 (path, -1, NULL, NULL, error); - GDir *retval; - - if (utf8_path == NULL) - return NULL; - - retval = g_dir_open_utf8 (utf8_path, flags, error); - - g_free (utf8_path); - - return retval; -} -#endif - -/** - * g_dir_read_name: - * @dir: a #GDir* created by g_dir_open() - * - * Retrieves the name of the next entry in the directory. The '.' and - * '..' entries are omitted. On Windows, the returned name is in - * UTF-8. On Unix, it is in the on-disk encoding. - * - * Return value: The entry's name or %NULL if there are no - * more entries. The return value is owned by GLib and - * must not be modified or freed. - **/ -G_CONST_RETURN gchar* -g_dir_read_name (GDir *dir) -{ -#ifdef G_OS_WIN32 - gchar *utf8_name; - struct _wdirent *wentry; -#else - struct dirent *entry; -#endif - - g_return_val_if_fail (dir != NULL, NULL); - -#ifdef G_OS_WIN32 - while (1) - { - wentry = _wreaddir (dir->wdirp); - while (wentry - && (0 == wcscmp (wentry->d_name, L".") || - 0 == wcscmp (wentry->d_name, L".."))) - wentry = _wreaddir (dir->wdirp); - - if (wentry == NULL) - return NULL; - - utf8_name = g_utf16_to_utf8 (wentry->d_name, -1, NULL, NULL, NULL); - - if (utf8_name == NULL) - continue; /* Huh, impossible? Skip it anyway */ - - strcpy (dir->utf8_buf, utf8_name); - g_free (utf8_name); - - return dir->utf8_buf; - } -#else - entry = readdir (dir->dirp); - while (entry - && (0 == strcmp (entry->d_name, ".") || - 0 == strcmp (entry->d_name, ".."))) - entry = readdir (dir->dirp); - - if (entry) - return entry->d_name; - else - return NULL; -#endif -} - -#if defined (G_OS_WIN32) && !defined (_WIN64) - -/* Ditto for g_dir_read_name */ - -#undef g_dir_read_name - -/* Binary compatibility version. Not for newly compiled code. */ - -G_CONST_RETURN gchar* -g_dir_read_name (GDir *dir) -{ - while (1) - { - const gchar *utf8_name = g_dir_read_name_utf8 (dir); - gchar *retval; - - if (utf8_name == NULL) - return NULL; - - retval = g_locale_from_utf8 (utf8_name, -1, NULL, NULL, NULL); - - if (retval != NULL) - { - strcpy (dir->utf8_buf, retval); - g_free (retval); - - return dir->utf8_buf; - } - } -} - -#endif - -/** - * g_dir_rewind: - * @dir: a #GDir* created by g_dir_open() - * - * Resets the given directory. The next call to g_dir_read_name() - * will return the first entry again. - **/ -void -g_dir_rewind (GDir *dir) -{ - g_return_if_fail (dir != NULL); - -#ifdef G_OS_WIN32 - _wrewinddir (dir->wdirp); -#else - rewinddir (dir->dirp); -#endif -} - -/** - * g_dir_close: - * @dir: a #GDir* created by g_dir_open() - * - * Closes the directory and deallocates all related resources. - **/ -void -g_dir_close (GDir *dir) -{ - g_return_if_fail (dir != NULL); - -#ifdef G_OS_WIN32 - _wclosedir (dir->wdirp); -#else - closedir (dir->dirp); -#endif - g_free (dir); -} - -#define __G_DIR_C__ -#include "galiasdef.c" diff --git a/lib/win32/glib-2.20.4/glib/gdir.h b/lib/win32/glib-2.20.4/glib/gdir.h deleted file mode 100644 index 85e989695ab0e..0000000000000 --- a/lib/win32/glib-2.20.4/glib/gdir.h +++ /dev/null @@ -1,52 +0,0 @@ -/* GLIB - Library of useful routines for C programming - * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald - * - * gdir.c: Simplified wrapper around the DIRENT functions. - * - * Copyright 2001 Hans Breuer - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library 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 - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ - -#if defined(G_DISABLE_SINGLE_INCLUDES) && !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION) -#error "Only can be included directly." -#endif - -#ifndef __G_DIR_H__ -#define __G_DIR_H__ - -#include - -G_BEGIN_DECLS - -typedef struct _GDir GDir; - -#ifdef G_OS_WIN32 -/* For DLL ABI stability, keep old names for old (non-UTF-8) functionality. */ -#define g_dir_open g_dir_open_utf8 -#define g_dir_read_name g_dir_read_name_utf8 -#endif - -GDir * g_dir_open (const gchar *path, - guint flags, - GError **error); -G_CONST_RETURN gchar *g_dir_read_name (GDir *dir); -void g_dir_rewind (GDir *dir); -void g_dir_close (GDir *dir); - -G_END_DECLS - -#endif /* __G_DIR_H__ */ diff --git a/lib/win32/glib-2.20.4/glib/gerror.c b/lib/win32/glib-2.20.4/glib/gerror.c deleted file mode 100644 index 940856003b511..0000000000000 --- a/lib/win32/glib-2.20.4/glib/gerror.c +++ /dev/null @@ -1,375 +0,0 @@ -/* GLIB - Library of useful routines for C programming - * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library 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 - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ - -/* - * Modified by the GLib Team and others 1997-2000. See the AUTHORS - * file for a list of people on the GLib Team. See the ChangeLog - * files for a list of changes. These files are distributed with - * GLib at ftp://ftp.gtk.org/pub/gtk/. - */ - -#include "config.h" - -#include "glib.h" -#include "galias.h" - - -static GError* -g_error_new_valist (GQuark domain, - gint code, - const gchar *format, - va_list args) -{ - GError *error; - - error = g_slice_new (GError); - - error->domain = domain; - error->code = code; - error->message = g_strdup_vprintf (format, args); - - return error; -} - -/** - * g_error_new: - * @domain: error domain - * @code: error code - * @format: printf()-style format for error message - * @Varargs: parameters for message format - * - * Creates a new #GError with the given @domain and @code, - * and a message formatted with @format. - * - * Return value: a new #GError - **/ -GError* -g_error_new (GQuark domain, - gint code, - const gchar *format, - ...) -{ - GError* error; - va_list args; - - g_return_val_if_fail (format != NULL, NULL); - g_return_val_if_fail (domain != 0, NULL); - - va_start (args, format); - error = g_error_new_valist (domain, code, format, args); - va_end (args); - - return error; -} - -/** - * g_error_new_literal: - * @domain: error domain - * @code: error code - * @message: error message - * - * Creates a new #GError; unlike g_error_new(), @message is not - * a printf()-style format string. Use this - * function if @message contains text you don't have control over, - * that could include printf() escape sequences. - * - * Return value: a new #GError - **/ -GError* -g_error_new_literal (GQuark domain, - gint code, - const gchar *message) -{ - GError* err; - - g_return_val_if_fail (message != NULL, NULL); - g_return_val_if_fail (domain != 0, NULL); - - err = g_slice_new (GError); - - err->domain = domain; - err->code = code; - err->message = g_strdup (message); - - return err; -} - -/** - * g_error_free: - * @error: a #GError - * - * Frees a #GError and associated resources. - * - **/ -void -g_error_free (GError *error) -{ - g_return_if_fail (error != NULL); - - g_free (error->message); - - g_slice_free (GError, error); -} - -/** - * g_error_copy: - * @error: a #GError - * - * Makes a copy of @error. - * - * Return value: a new #GError - **/ -GError* -g_error_copy (const GError *error) -{ - GError *copy; - - g_return_val_if_fail (error != NULL, NULL); - - copy = g_slice_new (GError); - - *copy = *error; - - copy->message = g_strdup (error->message); - - return copy; -} - -/** - * g_error_matches: - * @error: a #GError - * @domain: an error domain - * @code: an error code - * - * Returns %TRUE if @error matches @domain and @code, %FALSE - * otherwise. - * - * Return value: whether @error has @domain and @code - **/ -gboolean -g_error_matches (const GError *error, - GQuark domain, - gint code) -{ - return error && - error->domain == domain && - error->code == code; -} - -#define ERROR_OVERWRITTEN_WARNING "GError set over the top of a previous GError or uninitialized memory.\n" \ - "This indicates a bug in someone's code. You must ensure an error is NULL before it's set.\n" \ - "The overwriting error message was: %s" - -/** - * g_set_error: - * @err: a return location for a #GError, or %NULL - * @domain: error domain - * @code: error code - * @format: printf()-style format - * @Varargs: args for @format - * - * Does nothing if @err is %NULL; if @err is non-%NULL, then *@err must - * be %NULL. A new #GError is created and assigned to *@err. - **/ -void -g_set_error (GError **err, - GQuark domain, - gint code, - const gchar *format, - ...) -{ - GError *new; - - va_list args; - - if (err == NULL) - return; - - va_start (args, format); - new = g_error_new_valist (domain, code, format, args); - va_end (args); - - if (*err == NULL) - *err = new; - else - g_warning (ERROR_OVERWRITTEN_WARNING, new->message); -} - -/** - * g_set_error_literal: - * @err: a return location for a #GError, or %NULL - * @domain: error domain - * @code: error code - * @message: error message - * - * Does nothing if @err is %NULL; if @err is non-%NULL, then *@err must - * be %NULL. A new #GError is created and assigned to *@err. - * Unlike g_set_error(), @message is not a printf()-style format string. - * Use this function if @message contains text you don't have control over, - * that could include printf() escape sequences. - * - * Since: 2.18 - **/ -void -g_set_error_literal (GError **err, - GQuark domain, - gint code, - const gchar *message) -{ - GError *new; - - if (err == NULL) - return; - - new = g_error_new_literal (domain, code, message); - if (*err == NULL) - *err = new; - else - g_warning (ERROR_OVERWRITTEN_WARNING, new->message); -} - -/** - * g_propagate_error: - * @dest: error return location - * @src: error to move into the return location - * - * If @dest is %NULL, free @src; otherwise, moves @src into *@dest. - * The error variable @dest points to must be %NULL. - **/ -void -g_propagate_error (GError **dest, - GError *src) -{ - g_return_if_fail (src != NULL); - - if (dest == NULL) - { - if (src) - g_error_free (src); - return; - } - else - { - if (*dest != NULL) - g_warning (ERROR_OVERWRITTEN_WARNING, src->message); - else - *dest = src; - } -} - -/** - * g_clear_error: - * @err: a #GError return location - * - * If @err is %NULL, does nothing. If @err is non-%NULL, - * calls g_error_free() on *@err and sets *@err to %NULL. - **/ -void -g_clear_error (GError **err) -{ - if (err && *err) - { - g_error_free (*err); - *err = NULL; - } -} - -static void -g_error_add_prefix (gchar **string, - const gchar *format, - va_list ap) -{ - gchar *oldstring; - gchar *prefix; - - prefix = g_strdup_vprintf (format, ap); - oldstring = *string; - *string = g_strconcat (prefix, oldstring, NULL); - g_free (oldstring); - g_free (prefix); -} - -/** - * g_prefix_error: - * @err: a return location for a #GError, or %NULL - * @format: printf()-style format string - * @...: arguments to @format - * - * Formats a string according to @format and - * prefix it to an existing error message. If - * @err is %NULL (ie: no error variable) then do - * nothing. - * - * If *@err is %NULL (ie: an error variable is - * present but there is no error condition) then - * also do nothing. Whether or not it makes - * sense to take advantage of this feature is up - * to you. - * - * Since: 2.16 - **/ -void -g_prefix_error (GError **err, - const gchar *format, - ...) -{ - if (err && *err) - { - va_list ap; - - va_start (ap, format); - g_error_add_prefix (&(*err)->message, format, ap); - va_end (ap); - } -} - -/** - * g_propagate_prefixed_error: - * @dest: error return location - * @src: error to move into the return location - * @format: printf()-style format string - * @...: arguments to @format - * - * If @dest is %NULL, free @src; otherwise, - * moves @src into *@dest. *@dest must be %NULL. - * After the move, add a prefix as with - * g_prefix_error(). - * - * Since: 2.16 - **/ -void -g_propagate_prefixed_error (GError **dest, - GError *src, - const gchar *format, - ...) -{ - g_propagate_error (dest, src); - - if (dest && *dest) - { - va_list ap; - - va_start (ap, format); - g_error_add_prefix (&(*dest)->message, format, ap); - va_end (ap); - } -} - -#define __G_ERROR_C__ -#include "galiasdef.c" diff --git a/lib/win32/glib-2.20.4/glib/gerror.h b/lib/win32/glib-2.20.4/glib/gerror.h deleted file mode 100644 index d3d42d59c9399..0000000000000 --- a/lib/win32/glib-2.20.4/glib/gerror.h +++ /dev/null @@ -1,92 +0,0 @@ -/* gerror.h - Error reporting system - * - * Copyright 2000 Red Hat, Inc. - * - * The Gnome Library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or (at your option) any later version. - * - * The Gnome Library 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 - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with the Gnome Library; see the file COPYING.LIB. If not, - * write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ - -#if defined(G_DISABLE_SINGLE_INCLUDES) && !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION) -#error "Only can be included directly." -#endif - -#ifndef __G_ERROR_H__ -#define __G_ERROR_H__ - -#include - -G_BEGIN_DECLS - -typedef struct _GError GError; - -struct _GError -{ - GQuark domain; - gint code; - gchar *message; -}; - -GError* g_error_new (GQuark domain, - gint code, - const gchar *format, - ...) G_GNUC_PRINTF (3, 4); - -GError* g_error_new_literal (GQuark domain, - gint code, - const gchar *message); - -void g_error_free (GError *error); -GError* g_error_copy (const GError *error); - -gboolean g_error_matches (const GError *error, - GQuark domain, - gint code); - -/* if (err) *err = g_error_new(domain, code, format, ...), also has - * some sanity checks. - */ -void g_set_error (GError **err, - GQuark domain, - gint code, - const gchar *format, - ...) G_GNUC_PRINTF (4, 5); - -void g_set_error_literal (GError **err, - GQuark domain, - gint code, - const gchar *message); - -/* if (dest) *dest = src; also has some sanity checks. - */ -void g_propagate_error (GError **dest, - GError *src); - -/* if (err && *err) { g_error_free(*err); *err = NULL; } */ -void g_clear_error (GError **err); - -/* if (err) prefix the formatted string to the ->message */ -void g_prefix_error (GError **err, - const gchar *format, - ...) G_GNUC_PRINTF (2, 3); - -/* g_propagate_error then g_error_prefix on dest */ -void g_propagate_prefixed_error (GError **dest, - GError *src, - const gchar *format, - ...) G_GNUC_PRINTF (3, 4); - -G_END_DECLS - -#endif /* __G_ERROR_H__ */ diff --git a/lib/win32/glib-2.20.4/glib/gfileutils.c b/lib/win32/glib-2.20.4/glib/gfileutils.c deleted file mode 100644 index 4f5c669bd45a7..0000000000000 --- a/lib/win32/glib-2.20.4/glib/gfileutils.c +++ /dev/null @@ -1,1965 +0,0 @@ -/* gfileutils.c - File utility functions - * - * Copyright 2000 Red Hat, Inc. - * - * GLib is free software; you can redistribute it and/or modify it - * under the terms of the GNU Lesser General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or (at your option) any later version. - * - * GLib 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 - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with GLib; see the file COPYING.LIB. If not, - * write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ - -#include "config.h" - -#include "glib.h" - -#include -#ifdef HAVE_UNISTD_H -#include -#endif -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#ifdef G_OS_WIN32 -#include -#include -#endif /* G_OS_WIN32 */ - -#ifndef S_ISLNK -#define S_ISLNK(x) 0 -#endif - -#ifndef O_BINARY -#define O_BINARY 0 -#endif - -#include "gstdio.h" -#include "glibintl.h" - -#include "galias.h" - -static gint create_temp_file (gchar *tmpl, - int permissions); - -/** - * g_mkdir_with_parents: - * @pathname: a pathname in the GLib file name encoding - * @mode: permissions to use for newly created directories - * - * Create a directory if it doesn't already exist. Create intermediate - * parent directories as needed, too. - * - * Returns: 0 if the directory already exists, or was successfully - * created. Returns -1 if an error occurred, with errno set. - * - * Since: 2.8 - */ -int -g_mkdir_with_parents (const gchar *pathname, - int mode) -{ - gchar *fn, *p; - - if (pathname == NULL || *pathname == '\0') - { - errno = EINVAL; - return -1; - } - - fn = g_strdup (pathname); - - if (g_path_is_absolute (fn)) - p = (gchar *) g_path_skip_root (fn); - else - p = fn; - - do - { - while (*p && !G_IS_DIR_SEPARATOR (*p)) - p++; - - if (!*p) - p = NULL; - else - *p = '\0'; - - if (!g_file_test (fn, G_FILE_TEST_EXISTS)) - { - if (g_mkdir (fn, mode) == -1) - { - int errno_save = errno; - g_free (fn); - errno = errno_save; - return -1; - } - } - else if (!g_file_test (fn, G_FILE_TEST_IS_DIR)) - { - g_free (fn); - errno = ENOTDIR; - return -1; - } - if (p) - { - *p++ = G_DIR_SEPARATOR; - while (*p && G_IS_DIR_SEPARATOR (*p)) - p++; - } - } - while (p); - - g_free (fn); - - return 0; -} - -/** - * g_file_test: - * @filename: a filename to test in the GLib file name encoding - * @test: bitfield of #GFileTest flags - * - * Returns %TRUE if any of the tests in the bitfield @test are - * %TRUE. For example, (G_FILE_TEST_EXISTS | - * G_FILE_TEST_IS_DIR) will return %TRUE if the file exists; - * the check whether it's a directory doesn't matter since the existence - * test is %TRUE. With the current set of available tests, there's no point - * passing in more than one test at a time. - * - * Apart from %G_FILE_TEST_IS_SYMLINK all tests follow symbolic links, - * so for a symbolic link to a regular file g_file_test() will return - * %TRUE for both %G_FILE_TEST_IS_SYMLINK and %G_FILE_TEST_IS_REGULAR. - * - * Note, that for a dangling symbolic link g_file_test() will return - * %TRUE for %G_FILE_TEST_IS_SYMLINK and %FALSE for all other flags. - * - * You should never use g_file_test() to test whether it is safe - * to perform an operation, because there is always the possibility - * of the condition changing before you actually perform the operation. - * For example, you might think you could use %G_FILE_TEST_IS_SYMLINK - * to know whether it is safe to write to a file without being - * tricked into writing into a different location. It doesn't work! - * |[ - * /* DON'T DO THIS */ - * if (!g_file_test (filename, G_FILE_TEST_IS_SYMLINK)) - * { - * fd = g_open (filename, O_WRONLY); - * /* write to fd */ - * } - * ]| - * - * Another thing to note is that %G_FILE_TEST_EXISTS and - * %G_FILE_TEST_IS_EXECUTABLE are implemented using the access() - * system call. This usually doesn't matter, but if your program - * is setuid or setgid it means that these tests will give you - * the answer for the real user ID and group ID, rather than the - * effective user ID and group ID. - * - * On Windows, there are no symlinks, so testing for - * %G_FILE_TEST_IS_SYMLINK will always return %FALSE. Testing for - * %G_FILE_TEST_IS_EXECUTABLE will just check that the file exists and - * its name indicates that it is executable, checking for well-known - * extensions and those listed in the %PATHEXT environment variable. - * - * Return value: whether a test was %TRUE - **/ -gboolean -g_file_test (const gchar *filename, - GFileTest test) -{ -#ifdef G_OS_WIN32 -/* stuff missing in std vc6 api */ -# ifndef INVALID_FILE_ATTRIBUTES -# define INVALID_FILE_ATTRIBUTES -1 -# endif -# ifndef FILE_ATTRIBUTE_DEVICE -# define FILE_ATTRIBUTE_DEVICE 64 -# endif - int attributes; - wchar_t *wfilename = g_utf8_to_utf16 (filename, -1, NULL, NULL, NULL); - - if (wfilename == NULL) - return FALSE; - - attributes = GetFileAttributesW (wfilename); - - g_free (wfilename); - - if (attributes == INVALID_FILE_ATTRIBUTES) - return FALSE; - - if (test & G_FILE_TEST_EXISTS) - return TRUE; - - if (test & G_FILE_TEST_IS_REGULAR) - return (attributes & (FILE_ATTRIBUTE_DIRECTORY | FILE_ATTRIBUTE_DEVICE)) == 0; - - if (test & G_FILE_TEST_IS_DIR) - return (attributes & FILE_ATTRIBUTE_DIRECTORY) != 0; - - if (test & G_FILE_TEST_IS_EXECUTABLE) - { - const gchar *lastdot = strrchr (filename, '.'); - const gchar *pathext = NULL, *p; - int extlen; - - if (lastdot == NULL) - return FALSE; - - if (_stricmp (lastdot, ".exe") == 0 || - _stricmp (lastdot, ".cmd") == 0 || - _stricmp (lastdot, ".bat") == 0 || - _stricmp (lastdot, ".com") == 0) - return TRUE; - - /* Check if it is one of the types listed in %PATHEXT% */ - - pathext = g_getenv ("PATHEXT"); - if (pathext == NULL) - return FALSE; - - pathext = g_utf8_casefold (pathext, -1); - - lastdot = g_utf8_casefold (lastdot, -1); - extlen = strlen (lastdot); - - p = pathext; - while (TRUE) - { - const gchar *q = strchr (p, ';'); - if (q == NULL) - q = p + strlen (p); - if (extlen == q - p && - memcmp (lastdot, p, extlen) == 0) - { - g_free ((gchar *) pathext); - g_free ((gchar *) lastdot); - return TRUE; - } - if (*q) - p = q + 1; - else - break; - } - - g_free ((gchar *) pathext); - g_free ((gchar *) lastdot); - return FALSE; - } - - return FALSE; -#else - if ((test & G_FILE_TEST_EXISTS) && (access (filename, F_OK) == 0)) - return TRUE; - - if ((test & G_FILE_TEST_IS_EXECUTABLE) && (access (filename, X_OK) == 0)) - { - if (getuid () != 0) - return TRUE; - - /* For root, on some POSIX systems, access (filename, X_OK) - * will succeed even if no executable bits are set on the - * file. We fall through to a stat test to avoid that. - */ - } - else - test &= ~G_FILE_TEST_IS_EXECUTABLE; - - if (test & G_FILE_TEST_IS_SYMLINK) - { - struct stat s; - - if ((lstat (filename, &s) == 0) && S_ISLNK (s.st_mode)) - return TRUE; - } - - if (test & (G_FILE_TEST_IS_REGULAR | - G_FILE_TEST_IS_DIR | - G_FILE_TEST_IS_EXECUTABLE)) - { - struct stat s; - - if (stat (filename, &s) == 0) - { - if ((test & G_FILE_TEST_IS_REGULAR) && S_ISREG (s.st_mode)) - return TRUE; - - if ((test & G_FILE_TEST_IS_DIR) && S_ISDIR (s.st_mode)) - return TRUE; - - /* The extra test for root when access (file, X_OK) succeeds. - */ - if ((test & G_FILE_TEST_IS_EXECUTABLE) && - ((s.st_mode & S_IXOTH) || - (s.st_mode & S_IXUSR) || - (s.st_mode & S_IXGRP))) - return TRUE; - } - } - - return FALSE; -#endif -} - -GQuark -g_file_error_quark (void) -{ - return g_quark_from_static_string ("g-file-error-quark"); -} - -/** - * g_file_error_from_errno: - * @err_no: an "errno" value - * - * Gets a #GFileError constant based on the passed-in @errno. - * For example, if you pass in %EEXIST this function returns - * #G_FILE_ERROR_EXIST. Unlike @errno values, you can portably - * assume that all #GFileError values will exist. - * - * Normally a #GFileError value goes into a #GError returned - * from a function that manipulates files. So you would use - * g_file_error_from_errno() when constructing a #GError. - * - * Return value: #GFileError corresponding to the given @errno - **/ -GFileError -g_file_error_from_errno (gint err_no) -{ - switch (err_no) - { -#ifdef EEXIST - case EEXIST: - return G_FILE_ERROR_EXIST; - break; -#endif - -#ifdef EISDIR - case EISDIR: - return G_FILE_ERROR_ISDIR; - break; -#endif - -#ifdef EACCES - case EACCES: - return G_FILE_ERROR_ACCES; - break; -#endif - -#ifdef ENAMETOOLONG - case ENAMETOOLONG: - return G_FILE_ERROR_NAMETOOLONG; - break; -#endif - -#ifdef ENOENT - case ENOENT: - return G_FILE_ERROR_NOENT; - break; -#endif - -#ifdef ENOTDIR - case ENOTDIR: - return G_FILE_ERROR_NOTDIR; - break; -#endif - -#ifdef ENXIO - case ENXIO: - return G_FILE_ERROR_NXIO; - break; -#endif - -#ifdef ENODEV - case ENODEV: - return G_FILE_ERROR_NODEV; - break; -#endif - -#ifdef EROFS - case EROFS: - return G_FILE_ERROR_ROFS; - break; -#endif - -#ifdef ETXTBSY - case ETXTBSY: - return G_FILE_ERROR_TXTBSY; - break; -#endif - -#ifdef EFAULT - case EFAULT: - return G_FILE_ERROR_FAULT; - break; -#endif - -#ifdef ELOOP - case ELOOP: - return G_FILE_ERROR_LOOP; - break; -#endif - -#ifdef ENOSPC - case ENOSPC: - return G_FILE_ERROR_NOSPC; - break; -#endif - -#ifdef ENOMEM - case ENOMEM: - return G_FILE_ERROR_NOMEM; - break; -#endif - -#ifdef EMFILE - case EMFILE: - return G_FILE_ERROR_MFILE; - break; -#endif - -#ifdef ENFILE - case ENFILE: - return G_FILE_ERROR_NFILE; - break; -#endif - -#ifdef EBADF - case EBADF: - return G_FILE_ERROR_BADF; - break; -#endif - -#ifdef EINVAL - case EINVAL: - return G_FILE_ERROR_INVAL; - break; -#endif - -#ifdef EPIPE - case EPIPE: - return G_FILE_ERROR_PIPE; - break; -#endif - -#ifdef EAGAIN - case EAGAIN: - return G_FILE_ERROR_AGAIN; - break; -#endif - -#ifdef EINTR - case EINTR: - return G_FILE_ERROR_INTR; - break; -#endif - -#ifdef EIO - case EIO: - return G_FILE_ERROR_IO; - break; -#endif - -#ifdef EPERM - case EPERM: - return G_FILE_ERROR_PERM; - break; -#endif - -#ifdef ENOSYS - case ENOSYS: - return G_FILE_ERROR_NOSYS; - break; -#endif - - default: - return G_FILE_ERROR_FAILED; - break; - } -} - -static gboolean -get_contents_stdio (const gchar *display_filename, - FILE *f, - gchar **contents, - gsize *length, - GError **error) -{ - gchar buf[4096]; - gsize bytes; - gchar *str = NULL; - gsize total_bytes = 0; - gsize total_allocated = 0; - gchar *tmp; - - g_assert (f != NULL); - - while (!feof (f)) - { - gint save_errno; - - bytes = fread (buf, 1, sizeof (buf), f); - save_errno = errno; - - while ((total_bytes + bytes + 1) > total_allocated) - { - if (str) - total_allocated *= 2; - else - total_allocated = MIN (bytes + 1, sizeof (buf)); - - tmp = g_try_realloc (str, total_allocated); - - if (tmp == NULL) - { - g_set_error (error, - G_FILE_ERROR, - G_FILE_ERROR_NOMEM, - _("Could not allocate %lu bytes to read file \"%s\""), - (gulong) total_allocated, - display_filename); - - goto error; - } - - str = tmp; - } - - if (ferror (f)) - { - g_set_error (error, - G_FILE_ERROR, - g_file_error_from_errno (save_errno), - _("Error reading file '%s': %s"), - display_filename, - g_strerror (save_errno)); - - goto error; - } - - memcpy (str + total_bytes, buf, bytes); - - if (total_bytes + bytes < total_bytes) - { - g_set_error (error, - G_FILE_ERROR, - G_FILE_ERROR_FAILED, - _("File \"%s\" is too large"), - display_filename); - - goto error; - } - - total_bytes += bytes; - } - - fclose (f); - - if (total_allocated == 0) - { - str = g_new (gchar, 1); - total_bytes = 0; - } - - str[total_bytes] = '\0'; - - if (length) - *length = total_bytes; - - *contents = str; - - return TRUE; - - error: - - g_free (str); - fclose (f); - - return FALSE; -} - -#ifndef G_OS_WIN32 - -static gboolean -get_contents_regfile (const gchar *display_filename, - struct stat *stat_buf, - gint fd, - gchar **contents, - gsize *length, - GError **error) -{ - gchar *buf; - gsize bytes_read; - gsize size; - gsize alloc_size; - - size = stat_buf->st_size; - - alloc_size = size + 1; - buf = g_try_malloc (alloc_size); - - if (buf == NULL) - { - g_set_error (error, - G_FILE_ERROR, - G_FILE_ERROR_NOMEM, - _("Could not allocate %lu bytes to read file \"%s\""), - (gulong) alloc_size, - display_filename); - - goto error; - } - - bytes_read = 0; - while (bytes_read < size) - { - gssize rc; - - rc = read (fd, buf + bytes_read, size - bytes_read); - - if (rc < 0) - { - if (errno != EINTR) - { - int save_errno = errno; - - g_free (buf); - g_set_error (error, - G_FILE_ERROR, - g_file_error_from_errno (save_errno), - _("Failed to read from file '%s': %s"), - display_filename, - g_strerror (save_errno)); - - goto error; - } - } - else if (rc == 0) - break; - else - bytes_read += rc; - } - - buf[bytes_read] = '\0'; - - if (length) - *length = bytes_read; - - *contents = buf; - - close (fd); - - return TRUE; - - error: - - close (fd); - - return FALSE; -} - -static gboolean -get_contents_posix (const gchar *filename, - gchar **contents, - gsize *length, - GError **error) -{ - struct stat stat_buf; - gint fd; - gchar *display_filename = g_filename_display_name (filename); - - /* O_BINARY useful on Cygwin */ - fd = open (filename, O_RDONLY|O_BINARY); - - if (fd < 0) - { - int save_errno = errno; - - g_set_error (error, - G_FILE_ERROR, - g_file_error_from_errno (save_errno), - _("Failed to open file '%s': %s"), - display_filename, - g_strerror (save_errno)); - g_free (display_filename); - - return FALSE; - } - - /* I don't think this will ever fail, aside from ENOMEM, but. */ - if (fstat (fd, &stat_buf) < 0) - { - int save_errno = errno; - - close (fd); - g_set_error (error, - G_FILE_ERROR, - g_file_error_from_errno (save_errno), - _("Failed to get attributes of file '%s': fstat() failed: %s"), - display_filename, - g_strerror (save_errno)); - g_free (display_filename); - - return FALSE; - } - - if (stat_buf.st_size > 0 && S_ISREG (stat_buf.st_mode)) - { - gboolean retval = get_contents_regfile (display_filename, - &stat_buf, - fd, - contents, - length, - error); - g_free (display_filename); - - return retval; - } - else - { - FILE *f; - gboolean retval; - - f = fdopen (fd, "r"); - - if (f == NULL) - { - int save_errno = errno; - - g_set_error (error, - G_FILE_ERROR, - g_file_error_from_errno (save_errno), - _("Failed to open file '%s': fdopen() failed: %s"), - display_filename, - g_strerror (save_errno)); - g_free (display_filename); - - return FALSE; - } - - retval = get_contents_stdio (display_filename, f, contents, length, error); - g_free (display_filename); - - return retval; - } -} - -#else /* G_OS_WIN32 */ - -static gboolean -get_contents_win32 (const gchar *filename, - gchar **contents, - gsize *length, - GError **error) -{ - FILE *f; - gboolean retval; - gchar *display_filename = g_filename_display_name (filename); - int save_errno; - - f = g_fopen (filename, "rb"); - save_errno = errno; - - if (f == NULL) - { - g_set_error (error, - G_FILE_ERROR, - g_file_error_from_errno (save_errno), - _("Failed to open file '%s': %s"), - display_filename, - g_strerror (save_errno)); - g_free (display_filename); - - return FALSE; - } - - retval = get_contents_stdio (display_filename, f, contents, length, error); - g_free (display_filename); - - return retval; -} - -#endif - -/** - * g_file_get_contents: - * @filename: name of a file to read contents from, in the GLib file name encoding - * @contents: location to store an allocated string, use g_free() to free - * the returned string - * @length: location to store length in bytes of the contents, or %NULL - * @error: return location for a #GError, or %NULL - * - * Reads an entire file into allocated memory, with good error - * checking. - * - * If the call was successful, it returns %TRUE and sets @contents to the file - * contents and @length to the length of the file contents in bytes. The string - * stored in @contents will be nul-terminated, so for text files you can pass - * %NULL for the @length argument. If the call was not successful, it returns - * %FALSE and sets @error. The error domain is #G_FILE_ERROR. Possible error - * codes are those in the #GFileError enumeration. In the error case, - * @contents is set to %NULL and @length is set to zero. - * - * Return value: %TRUE on success, %FALSE if an error occurred - **/ -gboolean -g_file_get_contents (const gchar *filename, - gchar **contents, - gsize *length, - GError **error) -{ - g_return_val_if_fail (filename != NULL, FALSE); - g_return_val_if_fail (contents != NULL, FALSE); - - *contents = NULL; - if (length) - *length = 0; - -#ifdef G_OS_WIN32 - return get_contents_win32 (filename, contents, length, error); -#else - return get_contents_posix (filename, contents, length, error); -#endif -} - -static gboolean -rename_file (const char *old_name, - const char *new_name, - GError **err) -{ - errno = 0; - if (g_rename (old_name, new_name) == -1) - { - int save_errno = errno; - gchar *display_old_name = g_filename_display_name (old_name); - gchar *display_new_name = g_filename_display_name (new_name); - - g_set_error (err, - G_FILE_ERROR, - g_file_error_from_errno (save_errno), - _("Failed to rename file '%s' to '%s': g_rename() failed: %s"), - display_old_name, - display_new_name, - g_strerror (save_errno)); - - g_free (display_old_name); - g_free (display_new_name); - - return FALSE; - } - - return TRUE; -} - -static gchar * -write_to_temp_file (const gchar *contents, - gssize length, - const gchar *dest_file, - GError **err) -{ - gchar *tmp_name; - gchar *display_name; - gchar *retval; - FILE *file; - gint fd; - int save_errno; - - retval = NULL; - - tmp_name = g_strdup_printf ("%s.XXXXXX", dest_file); - - errno = 0; - fd = create_temp_file (tmp_name, 0666); - save_errno = errno; - - display_name = g_filename_display_name (tmp_name); - - if (fd == -1) - { - g_set_error (err, - G_FILE_ERROR, - g_file_error_from_errno (save_errno), - _("Failed to create file '%s': %s"), - display_name, g_strerror (save_errno)); - - goto out; - } - - errno = 0; - file = fdopen (fd, "wb"); - if (!file) - { - save_errno = errno; - g_set_error (err, - G_FILE_ERROR, - g_file_error_from_errno (save_errno), - _("Failed to open file '%s' for writing: fdopen() failed: %s"), - display_name, - g_strerror (save_errno)); - - close (fd); - g_unlink (tmp_name); - - goto out; - } - - if (length > 0) - { - gsize n_written; - - errno = 0; - - n_written = fwrite (contents, 1, length, file); - - if (n_written < length) - { - save_errno = errno; - - g_set_error (err, - G_FILE_ERROR, - g_file_error_from_errno (save_errno), - _("Failed to write file '%s': fwrite() failed: %s"), - display_name, - g_strerror (save_errno)); - - fclose (file); - g_unlink (tmp_name); - - goto out; - } - } - - errno = 0; - if (fflush (file) != 0) - { - save_errno = errno; - - g_set_error (err, - G_FILE_ERROR, - g_file_error_from_errno (save_errno), - _("Failed to write file '%s': fflush() failed: %s"), - display_name, - g_strerror (save_errno)); - - g_unlink (tmp_name); - - goto out; - } - -#ifdef HAVE_FSYNC - errno = 0; - /* If the final destination exists, we want to sync the newly written - * file to ensure the data is on disk when we rename over the destination. - * otherwise if we get a system crash we can lose both the new and the - * old file on some filesystems. (I.E. those that don't guarantee the - * data is written to the disk before the metadata.) - */ - if (g_file_test (dest_file, G_FILE_TEST_EXISTS) && - fsync (fileno (file)) != 0) - { - save_errno = errno; - - g_set_error (err, - G_FILE_ERROR, - g_file_error_from_errno (save_errno), - _("Failed to write file '%s': fsync() failed: %s"), - display_name, - g_strerror (save_errno)); - - g_unlink (tmp_name); - - goto out; - } -#endif - - errno = 0; - if (fclose (file) == EOF) - { - save_errno = errno; - - g_set_error (err, - G_FILE_ERROR, - g_file_error_from_errno (save_errno), - _("Failed to close file '%s': fclose() failed: %s"), - display_name, - g_strerror (save_errno)); - - g_unlink (tmp_name); - - goto out; - } - - retval = g_strdup (tmp_name); - - out: - g_free (tmp_name); - g_free (display_name); - - return retval; -} - -/** - * g_file_set_contents: - * @filename: name of a file to write @contents to, in the GLib file name - * encoding - * @contents: string to write to the file - * @length: length of @contents, or -1 if @contents is a nul-terminated string - * @error: return location for a #GError, or %NULL - * - * Writes all of @contents to a file named @filename, with good error checking. - * If a file called @filename already exists it will be overwritten. - * - * This write is atomic in the sense that it is first written to a temporary - * file which is then renamed to the final name. Notes: - * - * - * On Unix, if @filename already exists hard links to @filename will break. - * Also since the file is recreated, existing permissions, access control - * lists, metadata etc. may be lost. If @filename is a symbolic link, - * the link itself will be replaced, not the linked file. - * - * - * On Windows renaming a file will not remove an existing file with the - * new name, so on Windows there is a race condition between the existing - * file being removed and the temporary file being renamed. - * - * - * On Windows there is no way to remove a file that is open to some - * process, or mapped into memory. Thus, this function will fail if - * @filename already exists and is open. - * - * - * - * If the call was sucessful, it returns %TRUE. If the call was not successful, - * it returns %FALSE and sets @error. The error domain is #G_FILE_ERROR. - * Possible error codes are those in the #GFileError enumeration. - * - * Return value: %TRUE on success, %FALSE if an error occurred - * - * Since: 2.8 - **/ -gboolean -g_file_set_contents (const gchar *filename, - const gchar *contents, - gssize length, - GError **error) -{ - gchar *tmp_filename; - gboolean retval; - GError *rename_error = NULL; - - g_return_val_if_fail (filename != NULL, FALSE); - g_return_val_if_fail (error == NULL || *error == NULL, FALSE); - g_return_val_if_fail (contents != NULL || length == 0, FALSE); - g_return_val_if_fail (length >= -1, FALSE); - - if (length == -1) - length = strlen (contents); - - tmp_filename = write_to_temp_file (contents, length, filename, error); - - if (!tmp_filename) - { - retval = FALSE; - goto out; - } - - if (!rename_file (tmp_filename, filename, &rename_error)) - { -#ifndef G_OS_WIN32 - - g_unlink (tmp_filename); - g_propagate_error (error, rename_error); - retval = FALSE; - goto out; - -#else /* G_OS_WIN32 */ - - /* Renaming failed, but on Windows this may just mean - * the file already exists. So if the target file - * exists, try deleting it and do the rename again. - */ - if (!g_file_test (filename, G_FILE_TEST_EXISTS)) - { - g_unlink (tmp_filename); - g_propagate_error (error, rename_error); - retval = FALSE; - goto out; - } - - g_error_free (rename_error); - - if (g_unlink (filename) == -1) - { - gchar *display_filename = g_filename_display_name (filename); - - int save_errno = errno; - - g_set_error (error, - G_FILE_ERROR, - g_file_error_from_errno (save_errno), - _("Existing file '%s' could not be removed: g_unlink() failed: %s"), - display_filename, - g_strerror (save_errno)); - - g_free (display_filename); - g_unlink (tmp_filename); - retval = FALSE; - goto out; - } - - if (!rename_file (tmp_filename, filename, error)) - { - g_unlink (tmp_filename); - retval = FALSE; - goto out; - } - -#endif - } - - retval = TRUE; - - out: - g_free (tmp_filename); - return retval; -} - -/* - * create_temp_file based on the mkstemp implementation from the GNU C library. - * Copyright (C) 1991,92,93,94,95,96,97,98,99 Free Software Foundation, Inc. - */ -static gint -create_temp_file (gchar *tmpl, - int permissions) -{ - char *XXXXXX; - int count, fd; - static const char letters[] = - "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"; - static const int NLETTERS = sizeof (letters) - 1; - glong value; - GTimeVal tv; - static int counter = 0; - - /* find the last occurrence of "XXXXXX" */ - XXXXXX = g_strrstr (tmpl, "XXXXXX"); - - if (!XXXXXX || strncmp (XXXXXX, "XXXXXX", 6)) - { - errno = EINVAL; - return -1; - } - - /* Get some more or less random data. */ - g_get_current_time (&tv); - value = (tv.tv_usec ^ tv.tv_sec) + counter++; - - for (count = 0; count < 100; value += 7777, ++count) - { - glong v = value; - - /* Fill in the random bits. */ - XXXXXX[0] = letters[v % NLETTERS]; - v /= NLETTERS; - XXXXXX[1] = letters[v % NLETTERS]; - v /= NLETTERS; - XXXXXX[2] = letters[v % NLETTERS]; - v /= NLETTERS; - XXXXXX[3] = letters[v % NLETTERS]; - v /= NLETTERS; - XXXXXX[4] = letters[v % NLETTERS]; - v /= NLETTERS; - XXXXXX[5] = letters[v % NLETTERS]; - - /* tmpl is in UTF-8 on Windows, thus use g_open() */ - fd = g_open (tmpl, O_RDWR | O_CREAT | O_EXCL | O_BINARY, permissions); - - if (fd >= 0) - return fd; - else if (errno != EEXIST) - /* Any other error will apply also to other names we might - * try, and there are 2^32 or so of them, so give up now. - */ - return -1; - } - - /* We got out of the loop because we ran out of combinations to try. */ - errno = EEXIST; - return -1; -} - -/** - * g_mkstemp: - * @tmpl: template filename - * - * Opens a temporary file. See the mkstemp() documentation - * on most UNIX-like systems. - * - * The parameter is a string that should follow the rules for - * mkstemp() templates, i.e. contain the string "XXXXXX". - * g_mkstemp() is slightly more flexible than mkstemp() - * in that the sequence does not have to occur at the very end of the - * template. The X string will - * be modified to form the name of a file that didn't exist. - * The string should be in the GLib file name encoding. Most importantly, - * on Windows it should be in UTF-8. - * - * Return value: A file handle (as from open()) to the file - * opened for reading and writing. The file is opened in binary mode - * on platforms where there is a difference. The file handle should be - * closed with close(). In case of errors, -1 is returned. - */ -gint -g_mkstemp (gchar *tmpl) -{ - return create_temp_file (tmpl, 0600); -} - -/** - * g_file_open_tmp: - * @tmpl: Template for file name, as in g_mkstemp(), basename only, - * or %NULL, to a default template - * @name_used: location to store actual name used, or %NULL - * @error: return location for a #GError - * - * Opens a file for writing in the preferred directory for temporary - * files (as returned by g_get_tmp_dir()). - * - * @tmpl should be a string in the GLib file name encoding containing - * a sequence of six 'X' characters, as the parameter to g_mkstemp(). - * However, unlike these functions, the template should only be a - * basename, no directory components are allowed. If template is - * %NULL, a default template is used. - * - * Note that in contrast to g_mkstemp() (and mkstemp()) - * @tmpl is not modified, and might thus be a read-only literal string. - * - * The actual name used is returned in @name_used if non-%NULL. This - * string should be freed with g_free() when not needed any longer. - * The returned name is in the GLib file name encoding. - * - * Return value: A file handle (as from open()) to - * the file opened for reading and writing. The file is opened in binary - * mode on platforms where there is a difference. The file handle should be - * closed with close(). In case of errors, -1 is returned - * and @error will be set. - **/ -gint -g_file_open_tmp (const gchar *tmpl, - gchar **name_used, - GError **error) -{ - int retval; - const char *tmpdir; - const char *sep; - char *fulltemplate; - const char *slash; - - if (tmpl == NULL) - tmpl = ".XXXXXX"; - - if ((slash = strchr (tmpl, G_DIR_SEPARATOR)) != NULL -#ifdef G_OS_WIN32 - || (strchr (tmpl, '/') != NULL && (slash = "/")) -#endif - ) - { - gchar *display_tmpl = g_filename_display_name (tmpl); - char c[2]; - c[0] = *slash; - c[1] = '\0'; - - g_set_error (error, - G_FILE_ERROR, - G_FILE_ERROR_FAILED, - _("Template '%s' invalid, should not contain a '%s'"), - display_tmpl, c); - g_free (display_tmpl); - - return -1; - } - - if (strstr (tmpl, "XXXXXX") == NULL) - { - gchar *display_tmpl = g_filename_display_name (tmpl); - g_set_error (error, - G_FILE_ERROR, - G_FILE_ERROR_FAILED, - _("Template '%s' doesn't contain XXXXXX"), - display_tmpl); - g_free (display_tmpl); - return -1; - } - - tmpdir = g_get_tmp_dir (); - - if (G_IS_DIR_SEPARATOR (tmpdir [strlen (tmpdir) - 1])) - sep = ""; - else - sep = G_DIR_SEPARATOR_S; - - fulltemplate = g_strconcat (tmpdir, sep, tmpl, NULL); - - retval = g_mkstemp (fulltemplate); - - if (retval == -1) - { - int save_errno = errno; - gchar *display_fulltemplate = g_filename_display_name (fulltemplate); - - g_set_error (error, - G_FILE_ERROR, - g_file_error_from_errno (save_errno), - _("Failed to create file '%s': %s"), - display_fulltemplate, g_strerror (save_errno)); - g_free (display_fulltemplate); - g_free (fulltemplate); - return -1; - } - - if (name_used) - *name_used = fulltemplate; - else - g_free (fulltemplate); - - return retval; -} - -static gchar * -g_build_path_va (const gchar *separator, - const gchar *first_element, - va_list *args, - gchar **str_array) -{ - GString *result; - gint separator_len = strlen (separator); - gboolean is_first = TRUE; - gboolean have_leading = FALSE; - const gchar *single_element = NULL; - const gchar *next_element; - const gchar *last_trailing = NULL; - gint i = 0; - - result = g_string_new (NULL); - - if (str_array) - next_element = str_array[i++]; - else - next_element = first_element; - - while (TRUE) - { - const gchar *element; - const gchar *start; - const gchar *end; - - if (next_element) - { - element = next_element; - if (str_array) - next_element = str_array[i++]; - else - next_element = va_arg (*args, gchar *); - } - else - break; - - /* Ignore empty elements */ - if (!*element) - continue; - - start = element; - - if (separator_len) - { - while (start && - strncmp (start, separator, separator_len) == 0) - start += separator_len; - } - - end = start + strlen (start); - - if (separator_len) - { - while (end >= start + separator_len && - strncmp (end - separator_len, separator, separator_len) == 0) - end -= separator_len; - - last_trailing = end; - while (last_trailing >= element + separator_len && - strncmp (last_trailing - separator_len, separator, separator_len) == 0) - last_trailing -= separator_len; - - if (!have_leading) - { - /* If the leading and trailing separator strings are in the - * same element and overlap, the result is exactly that element - */ - if (last_trailing <= start) - single_element = element; - - g_string_append_len (result, element, start - element); - have_leading = TRUE; - } - else - single_element = NULL; - } - - if (end == start) - continue; - - if (!is_first) - g_string_append (result, separator); - - g_string_append_len (result, start, end - start); - is_first = FALSE; - } - - if (single_element) - { - g_string_free (result, TRUE); - return g_strdup (single_element); - } - else - { - if (last_trailing) - g_string_append (result, last_trailing); - - return g_string_free (result, FALSE); - } -} - -/** - * g_build_pathv: - * @separator: a string used to separator the elements of the path. - * @args: %NULL-terminated array of strings containing the path elements. - * - * Behaves exactly like g_build_path(), but takes the path elements - * as a string array, instead of varargs. This function is mainly - * meant for language bindings. - * - * Return value: a newly-allocated string that must be freed with g_free(). - * - * Since: 2.8 - */ -gchar * -g_build_pathv (const gchar *separator, - gchar **args) -{ - if (!args) - return NULL; - - return g_build_path_va (separator, NULL, NULL, args); -} - - -/** - * g_build_path: - * @separator: a string used to separator the elements of the path. - * @first_element: the first element in the path - * @Varargs: remaining elements in path, terminated by %NULL - * - * Creates a path from a series of elements using @separator as the - * separator between elements. At the boundary between two elements, - * any trailing occurrences of separator in the first element, or - * leading occurrences of separator in the second element are removed - * and exactly one copy of the separator is inserted. - * - * Empty elements are ignored. - * - * The number of leading copies of the separator on the result is - * the same as the number of leading copies of the separator on - * the first non-empty element. - * - * The number of trailing copies of the separator on the result is - * the same as the number of trailing copies of the separator on - * the last non-empty element. (Determination of the number of - * trailing copies is done without stripping leading copies, so - * if the separator is ABA, ABABA - * has 1 trailing copy.) - * - * However, if there is only a single non-empty element, and there - * are no characters in that element not part of the leading or - * trailing separators, then the result is exactly the original value - * of that element. - * - * Other than for determination of the number of leading and trailing - * copies of the separator, elements consisting only of copies - * of the separator are ignored. - * - * Return value: a newly-allocated string that must be freed with g_free(). - **/ -gchar * -g_build_path (const gchar *separator, - const gchar *first_element, - ...) -{ - gchar *str; - va_list args; - - g_return_val_if_fail (separator != NULL, NULL); - - va_start (args, first_element); - str = g_build_path_va (separator, first_element, &args, NULL); - va_end (args); - - return str; -} - -#ifdef G_OS_WIN32 - -static gchar * -g_build_pathname_va (const gchar *first_element, - va_list *args, - gchar **str_array) -{ - /* Code copied from g_build_pathv(), and modified to use two - * alternative single-character separators. - */ - GString *result; - gboolean is_first = TRUE; - gboolean have_leading = FALSE; - const gchar *single_element = NULL; - const gchar *next_element; - const gchar *last_trailing = NULL; - gchar current_separator = '\\'; - gint i = 0; - - result = g_string_new (NULL); - - if (str_array) - next_element = str_array[i++]; - else - next_element = first_element; - - while (TRUE) - { - const gchar *element; - const gchar *start; - const gchar *end; - - if (next_element) - { - element = next_element; - if (str_array) - next_element = str_array[i++]; - else - next_element = va_arg (*args, gchar *); - } - else - break; - - /* Ignore empty elements */ - if (!*element) - continue; - - start = element; - - if (TRUE) - { - while (start && - (*start == '\\' || *start == '/')) - { - current_separator = *start; - start++; - } - } - - end = start + strlen (start); - - if (TRUE) - { - while (end >= start + 1 && - (end[-1] == '\\' || end[-1] == '/')) - { - current_separator = end[-1]; - end--; - } - - last_trailing = end; - while (last_trailing >= element + 1 && - (last_trailing[-1] == '\\' || last_trailing[-1] == '/')) - last_trailing--; - - if (!have_leading) - { - /* If the leading and trailing separator strings are in the - * same element and overlap, the result is exactly that element - */ - if (last_trailing <= start) - single_element = element; - - g_string_append_len (result, element, start - element); - have_leading = TRUE; - } - else - single_element = NULL; - } - - if (end == start) - continue; - - if (!is_first) - g_string_append_len (result, ¤t_separator, 1); - - g_string_append_len (result, start, end - start); - is_first = FALSE; - } - - if (single_element) - { - g_string_free (result, TRUE); - return g_strdup (single_element); - } - else - { - if (last_trailing) - g_string_append (result, last_trailing); - - return g_string_free (result, FALSE); - } -} - -#endif - -/** - * g_build_filenamev: - * @args: %NULL-terminated array of strings containing the path elements. - * - * Behaves exactly like g_build_filename(), but takes the path elements - * as a string array, instead of varargs. This function is mainly - * meant for language bindings. - * - * Return value: a newly-allocated string that must be freed with g_free(). - * - * Since: 2.8 - */ -gchar * -g_build_filenamev (gchar **args) -{ - gchar *str; - -#ifndef G_OS_WIN32 - str = g_build_path_va (G_DIR_SEPARATOR_S, NULL, NULL, args); -#else - str = g_build_pathname_va (NULL, NULL, args); -#endif - - return str; -} - -/** - * g_build_filename: - * @first_element: the first element in the path - * @Varargs: remaining elements in path, terminated by %NULL - * - * Creates a filename from a series of elements using the correct - * separator for filenames. - * - * On Unix, this function behaves identically to g_build_path - * (G_DIR_SEPARATOR_S, first_element, ....). - * - * On Windows, it takes into account that either the backslash - * (\ or slash (/) can be used - * as separator in filenames, but otherwise behaves as on Unix. When - * file pathname separators need to be inserted, the one that last - * previously occurred in the parameters (reading from left to right) - * is used. - * - * No attempt is made to force the resulting filename to be an absolute - * path. If the first element is a relative path, the result will - * be a relative path. - * - * Return value: a newly-allocated string that must be freed with g_free(). - **/ -gchar * -g_build_filename (const gchar *first_element, - ...) -{ - gchar *str; - va_list args; - - va_start (args, first_element); -#ifndef G_OS_WIN32 - str = g_build_path_va (G_DIR_SEPARATOR_S, first_element, &args, NULL); -#else - str = g_build_pathname_va (first_element, &args, NULL); -#endif - va_end (args); - - return str; -} - -#define KILOBYTE_FACTOR 1024.0 -#define MEGABYTE_FACTOR (1024.0 * 1024.0) -#define GIGABYTE_FACTOR (1024.0 * 1024.0 * 1024.0) - -/** - * g_format_size_for_display: - * @size: a size in bytes. - * - * Formats a size (for example the size of a file) into a human readable string. - * Sizes are rounded to the nearest size prefix (KB, MB, GB) and are displayed - * rounded to the nearest tenth. E.g. the file size 3292528 bytes will be - * converted into the string "3.1 MB". - * - * The prefix units base is 1024 (i.e. 1 KB is 1024 bytes). - * - * This string should be freed with g_free() when not needed any longer. - * - * Returns: a newly-allocated formatted string containing a human readable - * file size. - * - * Since: 2.16 - **/ -char * -g_format_size_for_display (goffset size) -{ - if (size < (goffset) KILOBYTE_FACTOR) - return g_strdup_printf (g_dngettext(GETTEXT_PACKAGE, "%u byte", "%u bytes",(guint) size), (guint) size); - else - { - gdouble displayed_size; - - if (size < (goffset) MEGABYTE_FACTOR) - { - displayed_size = (gdouble) size / KILOBYTE_FACTOR; - return g_strdup_printf (_("%.1f KB"), displayed_size); - } - else if (size < (goffset) GIGABYTE_FACTOR) - { - displayed_size = (gdouble) size / MEGABYTE_FACTOR; - return g_strdup_printf (_("%.1f MB"), displayed_size); - } - else - { - displayed_size = (gdouble) size / GIGABYTE_FACTOR; - return g_strdup_printf (_("%.1f GB"), displayed_size); - } - } -} - - -/** - * g_file_read_link: - * @filename: the symbolic link - * @error: return location for a #GError - * - * Reads the contents of the symbolic link @filename like the POSIX - * readlink() function. The returned string is in the encoding used - * for filenames. Use g_filename_to_utf8() to convert it to UTF-8. - * - * Returns: A newly-allocated string with the contents of the symbolic link, - * or %NULL if an error occurred. - * - * Since: 2.4 - */ -gchar * -g_file_read_link (const gchar *filename, - GError **error) -{ -#ifdef HAVE_READLINK - gchar *buffer; - guint size; - gint read_size; - - size = 256; - buffer = g_malloc (size); - - while (TRUE) - { - read_size = readlink (filename, buffer, size); - if (read_size < 0) { - int save_errno = errno; - gchar *display_filename = g_filename_display_name (filename); - - g_free (buffer); - g_set_error (error, - G_FILE_ERROR, - g_file_error_from_errno (save_errno), - _("Failed to read the symbolic link '%s': %s"), - display_filename, - g_strerror (save_errno)); - g_free (display_filename); - - return NULL; - } - - if (read_size < size) - { - buffer[read_size] = 0; - return buffer; - } - - size *= 2; - buffer = g_realloc (buffer, size); - } -#else - g_set_error_literal (error, - G_FILE_ERROR, - G_FILE_ERROR_INVAL, - _("Symbolic links not supported")); - - return NULL; -#endif -} - -/* NOTE : Keep this part last to ensure nothing in this file uses the - * below binary compatibility versions. - */ -#if defined (G_OS_WIN32) && !defined (_WIN64) - -/* Binary compatibility versions. Will be called by code compiled - * against quite old (pre-2.8, I think) headers only, not from more - * recently compiled code. - */ - -#undef g_file_test - -gboolean -g_file_test (const gchar *filename, - GFileTest test) -{ - gchar *utf8_filename = g_locale_to_utf8 (filename, -1, NULL, NULL, NULL); - gboolean retval; - - if (utf8_filename == NULL) - return FALSE; - - retval = g_file_test_utf8 (utf8_filename, test); - - g_free (utf8_filename); - - return retval; -} - -#undef g_file_get_contents - -gboolean -g_file_get_contents (const gchar *filename, - gchar **contents, - gsize *length, - GError **error) -{ - gchar *utf8_filename = g_locale_to_utf8 (filename, -1, NULL, NULL, error); - gboolean retval; - - if (utf8_filename == NULL) - return FALSE; - - retval = g_file_get_contents_utf8 (utf8_filename, contents, length, error); - - g_free (utf8_filename); - - return retval; -} - -#undef g_mkstemp - -gint -g_mkstemp (gchar *tmpl) -{ - char *XXXXXX; - int count, fd; - static const char letters[] = - "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"; - static const int NLETTERS = sizeof (letters) - 1; - glong value; - GTimeVal tv; - static int counter = 0; - - /* find the last occurrence of 'XXXXXX' */ - XXXXXX = g_strrstr (tmpl, "XXXXXX"); - - if (!XXXXXX) - { - errno = EINVAL; - return -1; - } - - /* Get some more or less random data. */ - g_get_current_time (&tv); - value = (tv.tv_usec ^ tv.tv_sec) + counter++; - - for (count = 0; count < 100; value += 7777, ++count) - { - glong v = value; - - /* Fill in the random bits. */ - XXXXXX[0] = letters[v % NLETTERS]; - v /= NLETTERS; - XXXXXX[1] = letters[v % NLETTERS]; - v /= NLETTERS; - XXXXXX[2] = letters[v % NLETTERS]; - v /= NLETTERS; - XXXXXX[3] = letters[v % NLETTERS]; - v /= NLETTERS; - XXXXXX[4] = letters[v % NLETTERS]; - v /= NLETTERS; - XXXXXX[5] = letters[v % NLETTERS]; - - /* This is the backward compatibility system codepage version, - * thus use normal open(). - */ - fd = open (tmpl, O_RDWR | O_CREAT | O_EXCL | O_BINARY, 0600); - - if (fd >= 0) - return fd; - else if (errno != EEXIST) - /* Any other error will apply also to other names we might - * try, and there are 2^32 or so of them, so give up now. - */ - return -1; - } - - /* We got out of the loop because we ran out of combinations to try. */ - errno = EEXIST; - return -1; -} - -#undef g_file_open_tmp - -gint -g_file_open_tmp (const gchar *tmpl, - gchar **name_used, - GError **error) -{ - gchar *utf8_tmpl = g_locale_to_utf8 (tmpl, -1, NULL, NULL, error); - gchar *utf8_name_used; - gint retval; - - if (utf8_tmpl == NULL) - return -1; - - retval = g_file_open_tmp_utf8 (utf8_tmpl, &utf8_name_used, error); - - if (retval == -1) - return -1; - - if (name_used) - *name_used = g_locale_from_utf8 (utf8_name_used, -1, NULL, NULL, NULL); - - g_free (utf8_name_used); - - return retval; -} - -#endif - -#define __G_FILEUTILS_C__ -#include "galiasdef.c" diff --git a/lib/win32/glib-2.20.4/glib/gfileutils.h b/lib/win32/glib-2.20.4/glib/gfileutils.h deleted file mode 100644 index 9a4b2af38dc01..0000000000000 --- a/lib/win32/glib-2.20.4/glib/gfileutils.h +++ /dev/null @@ -1,125 +0,0 @@ -/* gfileutils.h - File utility functions - * - * Copyright 2000 Red Hat, Inc. - * - * GLib is free software; you can redistribute it and/or modify it - * under the terms of the GNU Lesser General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or (at your option) any later version. - * - * GLib 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 - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with GLib; see the file COPYING.LIB. If not, - * write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ - -#if defined(G_DISABLE_SINGLE_INCLUDES) && !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION) -#error "Only can be included directly." -#endif - -#ifndef __G_FILEUTILS_H__ -#define __G_FILEUTILS_H__ - -#include - -G_BEGIN_DECLS - -#define G_FILE_ERROR g_file_error_quark () - -typedef enum -{ - G_FILE_ERROR_EXIST, - G_FILE_ERROR_ISDIR, - G_FILE_ERROR_ACCES, - G_FILE_ERROR_NAMETOOLONG, - G_FILE_ERROR_NOENT, - G_FILE_ERROR_NOTDIR, - G_FILE_ERROR_NXIO, - G_FILE_ERROR_NODEV, - G_FILE_ERROR_ROFS, - G_FILE_ERROR_TXTBSY, - G_FILE_ERROR_FAULT, - G_FILE_ERROR_LOOP, - G_FILE_ERROR_NOSPC, - G_FILE_ERROR_NOMEM, - G_FILE_ERROR_MFILE, - G_FILE_ERROR_NFILE, - G_FILE_ERROR_BADF, - G_FILE_ERROR_INVAL, - G_FILE_ERROR_PIPE, - G_FILE_ERROR_AGAIN, - G_FILE_ERROR_INTR, - G_FILE_ERROR_IO, - G_FILE_ERROR_PERM, - G_FILE_ERROR_NOSYS, - G_FILE_ERROR_FAILED -} GFileError; - -/* For backward-compat reasons, these are synced to an old - * anonymous enum in libgnome. But don't use that enum - * in new code. - */ -typedef enum -{ - G_FILE_TEST_IS_REGULAR = 1 << 0, - G_FILE_TEST_IS_SYMLINK = 1 << 1, - G_FILE_TEST_IS_DIR = 1 << 2, - G_FILE_TEST_IS_EXECUTABLE = 1 << 3, - G_FILE_TEST_EXISTS = 1 << 4 -} GFileTest; - -GQuark g_file_error_quark (void); -/* So other code can generate a GFileError */ -GFileError g_file_error_from_errno (gint err_no); - -#ifdef G_OS_WIN32 -#define g_file_test g_file_test_utf8 -#define g_file_get_contents g_file_get_contents_utf8 -#define g_mkstemp g_mkstemp_utf8 -#define g_file_open_tmp g_file_open_tmp_utf8 -#endif - -gboolean g_file_test (const gchar *filename, - GFileTest test); -gboolean g_file_get_contents (const gchar *filename, - gchar **contents, - gsize *length, - GError **error); -gboolean g_file_set_contents (const gchar *filename, - const gchar *contents, - gssize length, - GError **error); -gchar *g_file_read_link (const gchar *filename, - GError **error); - -/* Wrapper / workalike for mkstemp() */ -gint g_mkstemp (gchar *tmpl); - -/* Wrapper for g_mkstemp */ -gint g_file_open_tmp (const gchar *tmpl, - gchar **name_used, - GError **error); - -char *g_format_size_for_display (goffset size); - -gchar *g_build_path (const gchar *separator, - const gchar *first_element, - ...) G_GNUC_MALLOC G_GNUC_NULL_TERMINATED; -gchar *g_build_pathv (const gchar *separator, - gchar **args) G_GNUC_MALLOC; - -gchar *g_build_filename (const gchar *first_element, - ...) G_GNUC_MALLOC G_GNUC_NULL_TERMINATED; -gchar *g_build_filenamev (gchar **args) G_GNUC_MALLOC; - -int g_mkdir_with_parents (const gchar *pathname, - int mode); - -G_END_DECLS - -#endif /* __G_FILEUTILS_H__ */ diff --git a/lib/win32/glib-2.20.4/glib/ghash.c b/lib/win32/glib-2.20.4/glib/ghash.c deleted file mode 100644 index ba332669dc1b5..0000000000000 --- a/lib/win32/glib-2.20.4/glib/ghash.c +++ /dev/null @@ -1,1346 +0,0 @@ -/* GLIB - Library of useful routines for C programming - * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library 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 - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ - -/* - * Modified by the GLib Team and others 1997-2000. See the AUTHORS - * file for a list of people on the GLib Team. See the ChangeLog - * files for a list of changes. These files are distributed with - * GLib at ftp://ftp.gtk.org/pub/gtk/. - */ - -/* - * MT safe - */ - -#include "config.h" - -#include /* memset */ - -#include "glib.h" -#include "galias.h" - -#define HASH_TABLE_MIN_SHIFT 3 /* 1 << 3 == 8 buckets */ - -typedef struct _GHashNode GHashNode; - -struct _GHashNode -{ - gpointer key; - gpointer value; - - /* If key_hash == 0, node is not in use - * If key_hash == 1, node is a tombstone - * If key_hash >= 2, node contains data */ - guint key_hash; -}; - -struct _GHashTable -{ - gint size; - gint mod; - guint mask; - gint nnodes; - gint noccupied; /* nnodes + tombstones */ - GHashNode *nodes; - GHashFunc hash_func; - GEqualFunc key_equal_func; - volatile gint ref_count; -#ifndef G_DISABLE_ASSERT - /* - * Tracks the structure of the hash table, not its contents: is only - * incremented when a node is added or removed (is not incremented - * when the key or data of a node is modified). - */ - int version; -#endif - GDestroyNotify key_destroy_func; - GDestroyNotify value_destroy_func; -}; - -typedef struct -{ - GHashTable *hash_table; - gpointer dummy1; - gpointer dummy2; - int position; - gboolean dummy3; - int version; -} RealIter; - -/* Each table size has an associated prime modulo (the first prime - * lower than the table size) used to find the initial bucket. Probing - * then works modulo 2^n. The prime modulo is necessary to get a - * good distribution with poor hash functions. */ -static const gint prime_mod [] = -{ - 1, /* For 1 << 0 */ - 2, - 3, - 7, - 13, - 31, - 61, - 127, - 251, - 509, - 1021, - 2039, - 4093, - 8191, - 16381, - 32749, - 65521, /* For 1 << 16 */ - 131071, - 262139, - 524287, - 1048573, - 2097143, - 4194301, - 8388593, - 16777213, - 33554393, - 67108859, - 134217689, - 268435399, - 536870909, - 1073741789, - 2147483647 /* For 1 << 31 */ -}; - -static void -g_hash_table_set_shift (GHashTable *hash_table, gint shift) -{ - gint i; - guint mask = 0; - - hash_table->size = 1 << shift; - hash_table->mod = prime_mod [shift]; - - for (i = 0; i < shift; i++) - { - mask <<= 1; - mask |= 1; - } - - hash_table->mask = mask; -} - -static gint -g_hash_table_find_closest_shift (gint n) -{ - gint i; - - for (i = 0; n; i++) - n >>= 1; - - return i; -} - -static void -g_hash_table_set_shift_from_size (GHashTable *hash_table, gint size) -{ - gint shift; - - shift = g_hash_table_find_closest_shift (size); - shift = MAX (shift, HASH_TABLE_MIN_SHIFT); - - g_hash_table_set_shift (hash_table, shift); -} - -/* - * g_hash_table_lookup_node: - * @hash_table: our #GHashTable - * @key: the key to lookup against - * @hash_return: optional key hash return location - * Return value: index of the described #GHashNode - * - * Performs a lookup in the hash table. Virtually all hash operations - * will use this function internally. - * - * This function first computes the hash value of the key using the - * user's hash function. - * - * If an entry in the table matching @key is found then this function - * returns the index of that entry in the table, and if not, the - * index of an empty node (never a tombstone). - */ -static inline guint -g_hash_table_lookup_node (GHashTable *hash_table, - gconstpointer key) -{ - GHashNode *node; - guint node_index; - guint hash_value; - guint step = 0; - - /* Empty buckets have hash_value set to 0, and for tombstones, it's 1. - * We need to make sure our hash value is not one of these. */ - - hash_value = (* hash_table->hash_func) (key); - if (G_UNLIKELY (hash_value <= 1)) - hash_value = 2; - - node_index = hash_value % hash_table->mod; - node = &hash_table->nodes [node_index]; - - while (node->key_hash) - { - /* We first check if our full hash values - * are equal so we can avoid calling the full-blown - * key equality function in most cases. - */ - - if (node->key_hash == hash_value) - { - if (hash_table->key_equal_func) - { - if (hash_table->key_equal_func (node->key, key)) - break; - } - else if (node->key == key) - { - break; - } - } - - step++; - node_index += step; - node_index &= hash_table->mask; - node = &hash_table->nodes [node_index]; - } - - return node_index; -} - -/* - * g_hash_table_lookup_node_for_insertion: - * @hash_table: our #GHashTable - * @key: the key to lookup against - * @hash_return: key hash return location - * Return value: index of the described #GHashNode - * - * Performs a lookup in the hash table, preserving extra information - * usually needed for insertion. - * - * This function first computes the hash value of the key using the - * user's hash function. - * - * If an entry in the table matching @key is found then this function - * returns the index of that entry in the table, and if not, the - * index of an unused node (empty or tombstone) where the key can be - * inserted. - * - * The computed hash value is returned in the variable pointed to - * by @hash_return. This is to save insertions from having to compute - * the hash record again for the new record. - */ -static inline guint -g_hash_table_lookup_node_for_insertion (GHashTable *hash_table, - gconstpointer key, - guint *hash_return) -{ - GHashNode *node; - guint node_index; - guint hash_value; - guint first_tombstone; - gboolean have_tombstone = FALSE; - guint step = 0; - - /* Empty buckets have hash_value set to 0, and for tombstones, it's 1. - * We need to make sure our hash value is not one of these. */ - - hash_value = (* hash_table->hash_func) (key); - if (G_UNLIKELY (hash_value <= 1)) - hash_value = 2; - - *hash_return = hash_value; - - node_index = hash_value % hash_table->mod; - node = &hash_table->nodes [node_index]; - - while (node->key_hash) - { - /* We first check if our full hash values - * are equal so we can avoid calling the full-blown - * key equality function in most cases. - */ - - if (node->key_hash == hash_value) - { - if (hash_table->key_equal_func) - { - if (hash_table->key_equal_func (node->key, key)) - return node_index; - } - else if (node->key == key) - { - return node_index; - } - } - else if (node->key_hash == 1 && !have_tombstone) - { - first_tombstone = node_index; - have_tombstone = TRUE; - } - - step++; - node_index += step; - node_index &= hash_table->mask; - node = &hash_table->nodes [node_index]; - } - - if (have_tombstone) - return first_tombstone; - - return node_index; -} - -/* - * g_hash_table_remove_node: - * @hash_table: our #GHashTable - * @node: pointer to node to remove - * @notify: %TRUE if the destroy notify handlers are to be called - * - * Removes a node from the hash table and updates the node count. - * The node is replaced by a tombstone. No table resize is performed. - * - * If @notify is %TRUE then the destroy notify functions are called - * for the key and value of the hash node. - */ -static void -g_hash_table_remove_node (GHashTable *hash_table, - GHashNode *node, - gboolean notify) -{ - if (notify && hash_table->key_destroy_func) - hash_table->key_destroy_func (node->key); - - if (notify && hash_table->value_destroy_func) - hash_table->value_destroy_func (node->value); - - /* Erect tombstone */ - node->key_hash = 1; - - /* Be GC friendly */ - node->key = NULL; - node->value = NULL; - - hash_table->nnodes--; -} - -/* - * g_hash_table_remove_all_nodes: - * @hash_table: our #GHashTable - * @notify: %TRUE if the destroy notify handlers are to be called - * - * Removes all nodes from the table. Since this may be a precursor to - * freeing the table entirely, no resize is performed. - * - * If @notify is %TRUE then the destroy notify functions are called - * for the key and value of the hash node. - */ -static void -g_hash_table_remove_all_nodes (GHashTable *hash_table, - gboolean notify) -{ - int i; - - for (i = 0; i < hash_table->size; i++) - { - GHashNode *node = &hash_table->nodes [i]; - - if (node->key_hash > 1) - { - if (notify && hash_table->key_destroy_func) - hash_table->key_destroy_func (node->key); - - if (notify && hash_table->value_destroy_func) - hash_table->value_destroy_func (node->value); - } - } - - /* We need to set node->key_hash = 0 for all nodes - might as well be GC - * friendly and clear everything */ - memset (hash_table->nodes, 0, hash_table->size * sizeof (GHashNode)); - - hash_table->nnodes = 0; - hash_table->noccupied = 0; -} - -/* - * g_hash_table_resize: - * @hash_table: our #GHashTable - * - * Resizes the hash table to the optimal size based on the number of - * nodes currently held. If you call this function then a resize will - * occur, even if one does not need to occur. Use - * g_hash_table_maybe_resize() instead. - * - * This function may "resize" the hash table to its current size, with - * the side effect of cleaning up tombstones and otherwise optimizing - * the probe sequences. - */ -static void -g_hash_table_resize (GHashTable *hash_table) -{ - GHashNode *new_nodes; - gint old_size; - gint i; - - old_size = hash_table->size; - g_hash_table_set_shift_from_size (hash_table, hash_table->nnodes * 2); - - new_nodes = g_new0 (GHashNode, hash_table->size); - - for (i = 0; i < old_size; i++) - { - GHashNode *node = &hash_table->nodes [i]; - GHashNode *new_node; - guint hash_val; - guint step = 0; - - if (node->key_hash <= 1) - continue; - - hash_val = node->key_hash % hash_table->mod; - new_node = &new_nodes [hash_val]; - - while (new_node->key_hash) - { - step++; - hash_val += step; - hash_val &= hash_table->mask; - new_node = &new_nodes [hash_val]; - } - - *new_node = *node; - } - - g_free (hash_table->nodes); - hash_table->nodes = new_nodes; - hash_table->noccupied = hash_table->nnodes; -} - -/* - * g_hash_table_maybe_resize: - * @hash_table: our #GHashTable - * - * Resizes the hash table, if needed. - * - * Essentially, calls g_hash_table_resize() if the table has strayed - * too far from its ideal size for its number of nodes. - */ -static inline void -g_hash_table_maybe_resize (GHashTable *hash_table) -{ - gint noccupied = hash_table->noccupied; - gint size = hash_table->size; - - if ((size > hash_table->nnodes * 4 && size > 1 << HASH_TABLE_MIN_SHIFT) || - (size <= noccupied + (noccupied / 16))) - g_hash_table_resize (hash_table); -} - -/** - * g_hash_table_new: - * @hash_func: a function to create a hash value from a key. - * Hash values are used to determine where keys are stored within the - * #GHashTable data structure. The g_direct_hash(), g_int_hash() and - * g_str_hash() functions are provided for some common types of keys. - * If hash_func is %NULL, g_direct_hash() is used. - * @key_equal_func: a function to check two keys for equality. This is - * used when looking up keys in the #GHashTable. The g_direct_equal(), - * g_int_equal() and g_str_equal() functions are provided for the most - * common types of keys. If @key_equal_func is %NULL, keys are compared - * directly in a similar fashion to g_direct_equal(), but without the - * overhead of a function call. - * - * Creates a new #GHashTable with a reference count of 1. - * - * Return value: a new #GHashTable. - **/ -GHashTable* -g_hash_table_new (GHashFunc hash_func, - GEqualFunc key_equal_func) -{ - return g_hash_table_new_full (hash_func, key_equal_func, NULL, NULL); -} - - -/** - * g_hash_table_new_full: - * @hash_func: a function to create a hash value from a key. - * @key_equal_func: a function to check two keys for equality. - * @key_destroy_func: a function to free the memory allocated for the key - * used when removing the entry from the #GHashTable or %NULL if you - * don't want to supply such a function. - * @value_destroy_func: a function to free the memory allocated for the - * value used when removing the entry from the #GHashTable or %NULL if - * you don't want to supply such a function. - * - * Creates a new #GHashTable like g_hash_table_new() with a reference count - * of 1 and allows to specify functions to free the memory allocated for the - * key and value that get called when removing the entry from the #GHashTable. - * - * Return value: a new #GHashTable. - **/ -GHashTable* -g_hash_table_new_full (GHashFunc hash_func, - GEqualFunc key_equal_func, - GDestroyNotify key_destroy_func, - GDestroyNotify value_destroy_func) -{ - GHashTable *hash_table; - - hash_table = g_slice_new (GHashTable); - g_hash_table_set_shift (hash_table, HASH_TABLE_MIN_SHIFT); - hash_table->nnodes = 0; - hash_table->noccupied = 0; - hash_table->hash_func = hash_func ? hash_func : g_direct_hash; - hash_table->key_equal_func = key_equal_func; - hash_table->ref_count = 1; -#ifndef G_DISABLE_ASSERT - hash_table->version = 0; -#endif - hash_table->key_destroy_func = key_destroy_func; - hash_table->value_destroy_func = value_destroy_func; - hash_table->nodes = g_new0 (GHashNode, hash_table->size); - - return hash_table; -} - -/** - * g_hash_table_iter_init: - * @iter: an uninitialized #GHashTableIter. - * @hash_table: a #GHashTable. - * - * Initializes a key/value pair iterator and associates it with - * @hash_table. Modifying the hash table after calling this function - * invalidates the returned iterator. - * |[ - * GHashTableIter iter; - * gpointer key, value; - * - * g_hash_table_iter_init (&iter, hash_table); - * while (g_hash_table_iter_next (&iter, &key, &value)) - * { - * /* do something with key and value */ - * } - * ]| - * - * Since: 2.16 - **/ -void -g_hash_table_iter_init (GHashTableIter *iter, - GHashTable *hash_table) -{ - RealIter *ri = (RealIter *) iter; - - g_return_if_fail (iter != NULL); - g_return_if_fail (hash_table != NULL); - - ri->hash_table = hash_table; - ri->position = -1; -#ifndef G_DISABLE_ASSERT - ri->version = hash_table->version; -#endif -} - -/** - * g_hash_table_iter_next: - * @iter: an initialized #GHashTableIter. - * @key: a location to store the key, or %NULL. - * @value: a location to store the value, or %NULL. - * - * Advances @iter and retrieves the key and/or value that are now - * pointed to as a result of this advancement. If %FALSE is returned, - * @key and @value are not set, and the iterator becomes invalid. - * - * Return value: %FALSE if the end of the #GHashTable has been reached. - * - * Since: 2.16 - **/ -gboolean -g_hash_table_iter_next (GHashTableIter *iter, - gpointer *key, - gpointer *value) -{ - RealIter *ri = (RealIter *) iter; - GHashNode *node; - gint position; - - g_return_val_if_fail (iter != NULL, FALSE); -#ifndef G_DISABLE_ASSERT - g_return_val_if_fail (ri->version == ri->hash_table->version, FALSE); -#endif - g_return_val_if_fail (ri->position < ri->hash_table->size, FALSE); - - position = ri->position; - - do - { - position++; - if (position >= ri->hash_table->size) - { - ri->position = position; - return FALSE; - } - - node = &ri->hash_table->nodes [position]; - } - while (node->key_hash <= 1); - - if (key != NULL) - *key = node->key; - if (value != NULL) - *value = node->value; - - ri->position = position; - return TRUE; -} - -/** - * g_hash_table_iter_get_hash_table: - * @iter: an initialized #GHashTableIter. - * - * Returns the #GHashTable associated with @iter. - * - * Return value: the #GHashTable associated with @iter. - * - * Since: 2.16 - **/ -GHashTable * -g_hash_table_iter_get_hash_table (GHashTableIter *iter) -{ - g_return_val_if_fail (iter != NULL, NULL); - - return ((RealIter *) iter)->hash_table; -} - -static void -iter_remove_or_steal (RealIter *ri, gboolean notify) -{ - g_return_if_fail (ri != NULL); -#ifndef G_DISABLE_ASSERT - g_return_if_fail (ri->version == ri->hash_table->version); -#endif - g_return_if_fail (ri->position >= 0); - g_return_if_fail (ri->position < ri->hash_table->size); - - g_hash_table_remove_node (ri->hash_table, &ri->hash_table->nodes [ri->position], notify); - -#ifndef G_DISABLE_ASSERT - ri->version++; - ri->hash_table->version++; -#endif -} - -/** - * g_hash_table_iter_remove(): - * @iter: an initialized #GHashTableIter. - * - * Removes the key/value pair currently pointed to by the iterator - * from its associated #GHashTable. Can only be called after - * g_hash_table_iter_next() returned %TRUE, and cannot be called more - * than once for the same key/value pair. - * - * If the #GHashTable was created using g_hash_table_new_full(), the - * key and value are freed using the supplied destroy functions, otherwise - * you have to make sure that any dynamically allocated values are freed - * yourself. - * - * Since: 2.16 - **/ -void -g_hash_table_iter_remove (GHashTableIter *iter) -{ - iter_remove_or_steal ((RealIter *) iter, TRUE); -} - -/** - * g_hash_table_iter_steal(): - * @iter: an initialized #GHashTableIter. - * - * Removes the key/value pair currently pointed to by the iterator - * from its associated #GHashTable, without calling the key and value - * destroy functions. Can only be called after - * g_hash_table_iter_next() returned %TRUE, and cannot be called more - * than once for the same key/value pair. - * - * Since: 2.16 - **/ -void -g_hash_table_iter_steal (GHashTableIter *iter) -{ - iter_remove_or_steal ((RealIter *) iter, FALSE); -} - - -/** - * g_hash_table_ref: - * @hash_table: a valid #GHashTable. - * - * Atomically increments the reference count of @hash_table by one. - * This function is MT-safe and may be called from any thread. - * - * Return value: the passed in #GHashTable. - * - * Since: 2.10 - **/ -GHashTable* -g_hash_table_ref (GHashTable *hash_table) -{ - g_return_val_if_fail (hash_table != NULL, NULL); - g_return_val_if_fail (hash_table->ref_count > 0, hash_table); - - g_atomic_int_add (&hash_table->ref_count, 1); - return hash_table; -} - -/** - * g_hash_table_unref: - * @hash_table: a valid #GHashTable. - * - * Atomically decrements the reference count of @hash_table by one. - * If the reference count drops to 0, all keys and values will be - * destroyed, and all memory allocated by the hash table is released. - * This function is MT-safe and may be called from any thread. - * - * Since: 2.10 - **/ -void -g_hash_table_unref (GHashTable *hash_table) -{ - g_return_if_fail (hash_table != NULL); - g_return_if_fail (hash_table->ref_count > 0); - - if (g_atomic_int_exchange_and_add (&hash_table->ref_count, -1) - 1 == 0) - { - g_hash_table_remove_all_nodes (hash_table, TRUE); - g_free (hash_table->nodes); - g_slice_free (GHashTable, hash_table); - } -} - -/** - * g_hash_table_destroy: - * @hash_table: a #GHashTable. - * - * Destroys all keys and values in the #GHashTable and decrements its - * reference count by 1. If keys and/or values are dynamically allocated, - * you should either free them first or create the #GHashTable with destroy - * notifiers using g_hash_table_new_full(). In the latter case the destroy - * functions you supplied will be called on all keys and values during the - * destruction phase. - **/ -void -g_hash_table_destroy (GHashTable *hash_table) -{ - g_return_if_fail (hash_table != NULL); - g_return_if_fail (hash_table->ref_count > 0); - - g_hash_table_remove_all (hash_table); - g_hash_table_unref (hash_table); -} - -/** - * g_hash_table_lookup: - * @hash_table: a #GHashTable. - * @key: the key to look up. - * - * Looks up a key in a #GHashTable. Note that this function cannot - * distinguish between a key that is not present and one which is present - * and has the value %NULL. If you need this distinction, use - * g_hash_table_lookup_extended(). - * - * Return value: the associated value, or %NULL if the key is not found. - **/ -gpointer -g_hash_table_lookup (GHashTable *hash_table, - gconstpointer key) -{ - GHashNode *node; - guint node_index; - - g_return_val_if_fail (hash_table != NULL, NULL); - - node_index = g_hash_table_lookup_node (hash_table, key); - node = &hash_table->nodes [node_index]; - - return node->key_hash ? node->value : NULL; -} - -/** - * g_hash_table_lookup_extended: - * @hash_table: a #GHashTable - * @lookup_key: the key to look up - * @orig_key: return location for the original key, or %NULL - * @value: return location for the value associated with the key, or %NULL - * - * Looks up a key in the #GHashTable, returning the original key and the - * associated value and a #gboolean which is %TRUE if the key was found. This - * is useful if you need to free the memory allocated for the original key, - * for example before calling g_hash_table_remove(). - * - * You can actually pass %NULL for @lookup_key to test - * whether the %NULL key exists. - * - * Return value: %TRUE if the key was found in the #GHashTable. - **/ -gboolean -g_hash_table_lookup_extended (GHashTable *hash_table, - gconstpointer lookup_key, - gpointer *orig_key, - gpointer *value) -{ - GHashNode *node; - guint node_index; - - g_return_val_if_fail (hash_table != NULL, FALSE); - - node_index = g_hash_table_lookup_node (hash_table, lookup_key); - node = &hash_table->nodes [node_index]; - - if (!node->key_hash) - return FALSE; - - if (orig_key) - *orig_key = node->key; - - if (value) - *value = node->value; - - return TRUE; -} - -/* - * g_hash_table_insert_internal: - * @hash_table: our #GHashTable - * @key: the key to insert - * @value: the value to insert - * @keep_new_key: if %TRUE and this key already exists in the table - * then call the destroy notify function on the old key. If %FALSE - * then call the destroy notify function on the new key. - * - * Implements the common logic for the g_hash_table_insert() and - * g_hash_table_replace() functions. - * - * Do a lookup of @key. If it is found, replace it with the new - * @value (and perhaps the new @key). If it is not found, create a - * new node. - */ -static void -g_hash_table_insert_internal (GHashTable *hash_table, - gpointer key, - gpointer value, - gboolean keep_new_key) -{ - GHashNode *node; - guint node_index; - guint key_hash; - guint old_hash; - - g_return_if_fail (hash_table != NULL); - g_return_if_fail (hash_table->ref_count > 0); - - node_index = g_hash_table_lookup_node_for_insertion (hash_table, key, &key_hash); - node = &hash_table->nodes [node_index]; - - old_hash = node->key_hash; - - if (old_hash > 1) - { - if (keep_new_key) - { - if (hash_table->key_destroy_func) - hash_table->key_destroy_func (node->key); - node->key = key; - } - else - { - if (hash_table->key_destroy_func) - hash_table->key_destroy_func (key); - } - - if (hash_table->value_destroy_func) - hash_table->value_destroy_func (node->value); - - node->value = value; - } - else - { - node->key = key; - node->value = value; - node->key_hash = key_hash; - - hash_table->nnodes++; - - if (old_hash == 0) - { - /* We replaced an empty node, and not a tombstone */ - hash_table->noccupied++; - g_hash_table_maybe_resize (hash_table); - } - -#ifndef G_DISABLE_ASSERT - hash_table->version++; -#endif - } -} - -/** - * g_hash_table_insert: - * @hash_table: a #GHashTable. - * @key: a key to insert. - * @value: the value to associate with the key. - * - * Inserts a new key and value into a #GHashTable. - * - * If the key already exists in the #GHashTable its current value is replaced - * with the new value. If you supplied a @value_destroy_func when creating the - * #GHashTable, the old value is freed using that function. If you supplied - * a @key_destroy_func when creating the #GHashTable, the passed key is freed - * using that function. - **/ -void -g_hash_table_insert (GHashTable *hash_table, - gpointer key, - gpointer value) -{ - g_hash_table_insert_internal (hash_table, key, value, FALSE); -} - -/** - * g_hash_table_replace: - * @hash_table: a #GHashTable. - * @key: a key to insert. - * @value: the value to associate with the key. - * - * Inserts a new key and value into a #GHashTable similar to - * g_hash_table_insert(). The difference is that if the key already exists - * in the #GHashTable, it gets replaced by the new key. If you supplied a - * @value_destroy_func when creating the #GHashTable, the old value is freed - * using that function. If you supplied a @key_destroy_func when creating the - * #GHashTable, the old key is freed using that function. - **/ -void -g_hash_table_replace (GHashTable *hash_table, - gpointer key, - gpointer value) -{ - g_hash_table_insert_internal (hash_table, key, value, TRUE); -} - -/* - * g_hash_table_remove_internal: - * @hash_table: our #GHashTable - * @key: the key to remove - * @notify: %TRUE if the destroy notify handlers are to be called - * Return value: %TRUE if a node was found and removed, else %FALSE - * - * Implements the common logic for the g_hash_table_remove() and - * g_hash_table_steal() functions. - * - * Do a lookup of @key and remove it if it is found, calling the - * destroy notify handlers only if @notify is %TRUE. - */ -static gboolean -g_hash_table_remove_internal (GHashTable *hash_table, - gconstpointer key, - gboolean notify) -{ - GHashNode *node; - guint node_index; - - g_return_val_if_fail (hash_table != NULL, FALSE); - - node_index = g_hash_table_lookup_node (hash_table, key); - node = &hash_table->nodes [node_index]; - - /* g_hash_table_lookup_node() never returns a tombstone, so this is safe */ - if (!node->key_hash) - return FALSE; - - g_hash_table_remove_node (hash_table, node, notify); - g_hash_table_maybe_resize (hash_table); - -#ifndef G_DISABLE_ASSERT - hash_table->version++; -#endif - - return TRUE; -} - -/** - * g_hash_table_remove: - * @hash_table: a #GHashTable. - * @key: the key to remove. - * - * Removes a key and its associated value from a #GHashTable. - * - * If the #GHashTable was created using g_hash_table_new_full(), the - * key and value are freed using the supplied destroy functions, otherwise - * you have to make sure that any dynamically allocated values are freed - * yourself. - * - * Return value: %TRUE if the key was found and removed from the #GHashTable. - **/ -gboolean -g_hash_table_remove (GHashTable *hash_table, - gconstpointer key) -{ - return g_hash_table_remove_internal (hash_table, key, TRUE); -} - -/** - * g_hash_table_steal: - * @hash_table: a #GHashTable. - * @key: the key to remove. - * - * Removes a key and its associated value from a #GHashTable without - * calling the key and value destroy functions. - * - * Return value: %TRUE if the key was found and removed from the #GHashTable. - **/ -gboolean -g_hash_table_steal (GHashTable *hash_table, - gconstpointer key) -{ - return g_hash_table_remove_internal (hash_table, key, FALSE); -} - -/** - * g_hash_table_remove_all: - * @hash_table: a #GHashTable - * - * Removes all keys and their associated values from a #GHashTable. - * - * If the #GHashTable was created using g_hash_table_new_full(), the keys - * and values are freed using the supplied destroy functions, otherwise you - * have to make sure that any dynamically allocated values are freed - * yourself. - * - * Since: 2.12 - **/ -void -g_hash_table_remove_all (GHashTable *hash_table) -{ - g_return_if_fail (hash_table != NULL); - -#ifndef G_DISABLE_ASSERT - if (hash_table->nnodes != 0) - hash_table->version++; -#endif - - g_hash_table_remove_all_nodes (hash_table, TRUE); - g_hash_table_maybe_resize (hash_table); -} - -/** - * g_hash_table_steal_all: - * @hash_table: a #GHashTable. - * - * Removes all keys and their associated values from a #GHashTable - * without calling the key and value destroy functions. - * - * Since: 2.12 - **/ -void -g_hash_table_steal_all (GHashTable *hash_table) -{ - g_return_if_fail (hash_table != NULL); - -#ifndef G_DISABLE_ASSERT - if (hash_table->nnodes != 0) - hash_table->version++; -#endif - - g_hash_table_remove_all_nodes (hash_table, FALSE); - g_hash_table_maybe_resize (hash_table); -} - -/* - * g_hash_table_foreach_remove_or_steal: - * @hash_table: our #GHashTable - * @func: the user's callback function - * @user_data: data for @func - * @notify: %TRUE if the destroy notify handlers are to be called - * - * Implements the common logic for g_hash_table_foreach_remove() and - * g_hash_table_foreach_steal(). - * - * Iterates over every node in the table, calling @func with the key - * and value of the node (and @user_data). If @func returns %TRUE the - * node is removed from the table. - * - * If @notify is true then the destroy notify handlers will be called - * for each removed node. - */ -static guint -g_hash_table_foreach_remove_or_steal (GHashTable *hash_table, - GHRFunc func, - gpointer user_data, - gboolean notify) -{ - guint deleted = 0; - gint i; - - for (i = 0; i < hash_table->size; i++) - { - GHashNode *node = &hash_table->nodes [i]; - - if (node->key_hash > 1 && (* func) (node->key, node->value, user_data)) - { - g_hash_table_remove_node (hash_table, node, notify); - deleted++; - } - } - - g_hash_table_maybe_resize (hash_table); - -#ifndef G_DISABLE_ASSERT - if (deleted > 0) - hash_table->version++; -#endif - - return deleted; -} - -/** - * g_hash_table_foreach_remove: - * @hash_table: a #GHashTable. - * @func: the function to call for each key/value pair. - * @user_data: user data to pass to the function. - * - * Calls the given function for each key/value pair in the #GHashTable. - * If the function returns %TRUE, then the key/value pair is removed from the - * #GHashTable. If you supplied key or value destroy functions when creating - * the #GHashTable, they are used to free the memory allocated for the removed - * keys and values. - * - * See #GHashTableIter for an alternative way to loop over the - * key/value pairs in the hash table. - * - * Return value: the number of key/value pairs removed. - **/ -guint -g_hash_table_foreach_remove (GHashTable *hash_table, - GHRFunc func, - gpointer user_data) -{ - g_return_val_if_fail (hash_table != NULL, 0); - g_return_val_if_fail (func != NULL, 0); - - return g_hash_table_foreach_remove_or_steal (hash_table, func, user_data, TRUE); -} - -/** - * g_hash_table_foreach_steal: - * @hash_table: a #GHashTable. - * @func: the function to call for each key/value pair. - * @user_data: user data to pass to the function. - * - * Calls the given function for each key/value pair in the #GHashTable. - * If the function returns %TRUE, then the key/value pair is removed from the - * #GHashTable, but no key or value destroy functions are called. - * - * See #GHashTableIter for an alternative way to loop over the - * key/value pairs in the hash table. - * - * Return value: the number of key/value pairs removed. - **/ -guint -g_hash_table_foreach_steal (GHashTable *hash_table, - GHRFunc func, - gpointer user_data) -{ - g_return_val_if_fail (hash_table != NULL, 0); - g_return_val_if_fail (func != NULL, 0); - - return g_hash_table_foreach_remove_or_steal (hash_table, func, user_data, FALSE); -} - -/** - * g_hash_table_foreach: - * @hash_table: a #GHashTable. - * @func: the function to call for each key/value pair. - * @user_data: user data to pass to the function. - * - * Calls the given function for each of the key/value pairs in the - * #GHashTable. The function is passed the key and value of each - * pair, and the given @user_data parameter. The hash table may not - * be modified while iterating over it (you can't add/remove - * items). To remove all items matching a predicate, use - * g_hash_table_foreach_remove(). - * - * See g_hash_table_find() for performance caveats for linear - * order searches in contrast to g_hash_table_lookup(). - **/ -void -g_hash_table_foreach (GHashTable *hash_table, - GHFunc func, - gpointer user_data) -{ - gint i; - - g_return_if_fail (hash_table != NULL); - g_return_if_fail (func != NULL); - - for (i = 0; i < hash_table->size; i++) - { - GHashNode *node = &hash_table->nodes [i]; - - if (node->key_hash > 1) - (* func) (node->key, node->value, user_data); - } -} - -/** - * g_hash_table_find: - * @hash_table: a #GHashTable. - * @predicate: function to test the key/value pairs for a certain property. - * @user_data: user data to pass to the function. - * - * Calls the given function for key/value pairs in the #GHashTable until - * @predicate returns %TRUE. The function is passed the key and value of - * each pair, and the given @user_data parameter. The hash table may not - * be modified while iterating over it (you can't add/remove items). - * - * Note, that hash tables are really only optimized for forward lookups, - * i.e. g_hash_table_lookup(). - * So code that frequently issues g_hash_table_find() or - * g_hash_table_foreach() (e.g. in the order of once per every entry in a - * hash table) should probably be reworked to use additional or different - * data structures for reverse lookups (keep in mind that an O(n) find/foreach - * operation issued for all n values in a hash table ends up needing O(n*n) - * operations). - * - * Return value: The value of the first key/value pair is returned, for which - * func evaluates to %TRUE. If no pair with the requested property is found, - * %NULL is returned. - * - * Since: 2.4 - **/ -gpointer -g_hash_table_find (GHashTable *hash_table, - GHRFunc predicate, - gpointer user_data) -{ - gint i; - - g_return_val_if_fail (hash_table != NULL, NULL); - g_return_val_if_fail (predicate != NULL, NULL); - - for (i = 0; i < hash_table->size; i++) - { - GHashNode *node = &hash_table->nodes [i]; - - if (node->key_hash > 1 && predicate (node->key, node->value, user_data)) - return node->value; - } - - return NULL; -} - -/** - * g_hash_table_size: - * @hash_table: a #GHashTable. - * - * Returns the number of elements contained in the #GHashTable. - * - * Return value: the number of key/value pairs in the #GHashTable. - **/ -guint -g_hash_table_size (GHashTable *hash_table) -{ - g_return_val_if_fail (hash_table != NULL, 0); - - return hash_table->nnodes; -} - -/** - * g_hash_table_get_keys: - * @hash_table: a #GHashTable - * - * Retrieves every key inside @hash_table. The returned data is valid - * until @hash_table is modified. - * - * Return value: a #GList containing all the keys inside the hash - * table. The content of the list is owned by the hash table and - * should not be modified or freed. Use g_list_free() when done - * using the list. - * - * Since: 2.14 - */ -GList * -g_hash_table_get_keys (GHashTable *hash_table) -{ - gint i; - GList *retval; - - g_return_val_if_fail (hash_table != NULL, NULL); - - retval = NULL; - for (i = 0; i < hash_table->size; i++) - { - GHashNode *node = &hash_table->nodes [i]; - - if (node->key_hash > 1) - retval = g_list_prepend (retval, node->key); - } - - return retval; -} - -/** - * g_hash_table_get_values: - * @hash_table: a #GHashTable - * - * Retrieves every value inside @hash_table. The returned data is - * valid until @hash_table is modified. - * - * Return value: a #GList containing all the values inside the hash - * table. The content of the list is owned by the hash table and - * should not be modified or freed. Use g_list_free() when done - * using the list. - * - * Since: 2.14 - */ -GList * -g_hash_table_get_values (GHashTable *hash_table) -{ - gint i; - GList *retval; - - g_return_val_if_fail (hash_table != NULL, NULL); - - retval = NULL; - for (i = 0; i < hash_table->size; i++) - { - GHashNode *node = &hash_table->nodes [i]; - - if (node->key_hash > 1) - retval = g_list_prepend (retval, node->value); - } - - return retval; -} - -#define __G_HASH_C__ -#include "galiasdef.c" diff --git a/lib/win32/glib-2.20.4/glib/ghash.h b/lib/win32/glib-2.20.4/glib/ghash.h deleted file mode 100644 index afdd0729764c8..0000000000000 --- a/lib/win32/glib-2.20.4/glib/ghash.h +++ /dev/null @@ -1,145 +0,0 @@ -/* GLIB - Library of useful routines for C programming - * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library 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 - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ - -/* - * Modified by the GLib Team and others 1997-2000. See the AUTHORS - * file for a list of people on the GLib Team. See the ChangeLog - * files for a list of changes. These files are distributed with - * GLib at ftp://ftp.gtk.org/pub/gtk/. - */ - -#if defined(G_DISABLE_SINGLE_INCLUDES) && !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION) -#error "Only can be included directly." -#endif - -#ifndef __G_HASH_H__ -#define __G_HASH_H__ - -#include -#include - -G_BEGIN_DECLS - -typedef struct _GHashTable GHashTable; - -typedef gboolean (*GHRFunc) (gpointer key, - gpointer value, - gpointer user_data); - -typedef struct _GHashTableIter GHashTableIter; - -struct _GHashTableIter -{ - /*< private >*/ - gpointer dummy1; - gpointer dummy2; - gpointer dummy3; - int dummy4; - gboolean dummy5; - gpointer dummy6; -}; - -/* Hash tables - */ -GHashTable* g_hash_table_new (GHashFunc hash_func, - GEqualFunc key_equal_func); -GHashTable* g_hash_table_new_full (GHashFunc hash_func, - GEqualFunc key_equal_func, - GDestroyNotify key_destroy_func, - GDestroyNotify value_destroy_func); -void g_hash_table_destroy (GHashTable *hash_table); -void g_hash_table_insert (GHashTable *hash_table, - gpointer key, - gpointer value); -void g_hash_table_replace (GHashTable *hash_table, - gpointer key, - gpointer value); -gboolean g_hash_table_remove (GHashTable *hash_table, - gconstpointer key); -void g_hash_table_remove_all (GHashTable *hash_table); -gboolean g_hash_table_steal (GHashTable *hash_table, - gconstpointer key); -void g_hash_table_steal_all (GHashTable *hash_table); -gpointer g_hash_table_lookup (GHashTable *hash_table, - gconstpointer key); -gboolean g_hash_table_lookup_extended (GHashTable *hash_table, - gconstpointer lookup_key, - gpointer *orig_key, - gpointer *value); -void g_hash_table_foreach (GHashTable *hash_table, - GHFunc func, - gpointer user_data); -gpointer g_hash_table_find (GHashTable *hash_table, - GHRFunc predicate, - gpointer user_data); -guint g_hash_table_foreach_remove (GHashTable *hash_table, - GHRFunc func, - gpointer user_data); -guint g_hash_table_foreach_steal (GHashTable *hash_table, - GHRFunc func, - gpointer user_data); -guint g_hash_table_size (GHashTable *hash_table); -GList * g_hash_table_get_keys (GHashTable *hash_table); -GList * g_hash_table_get_values (GHashTable *hash_table); - -void g_hash_table_iter_init (GHashTableIter *iter, - GHashTable *hash_table); -gboolean g_hash_table_iter_next (GHashTableIter *iter, - gpointer *key, - gpointer *value); -GHashTable* g_hash_table_iter_get_hash_table (GHashTableIter *iter); -void g_hash_table_iter_remove (GHashTableIter *iter); -void g_hash_table_iter_steal (GHashTableIter *iter); - -/* keeping hash tables alive */ -GHashTable* g_hash_table_ref (GHashTable *hash_table); -void g_hash_table_unref (GHashTable *hash_table); - -#ifndef G_DISABLE_DEPRECATED - -/* The following two functions are deprecated and will be removed in - * the next major release. They do no good. */ -#define g_hash_table_freeze(hash_table) ((void)0) -#define g_hash_table_thaw(hash_table) ((void)0) - -#endif /* G_DISABLE_DEPRECATED */ - -/* Hash Functions - */ -gboolean g_str_equal (gconstpointer v1, - gconstpointer v2); -guint g_str_hash (gconstpointer v); - -gboolean g_int_equal (gconstpointer v1, - gconstpointer v2); -guint g_int_hash (gconstpointer v); - -/* This "hash" function will just return the key's address as an - * unsigned integer. Useful for hashing on plain addresses or - * simple integer values. - * Passing NULL into g_hash_table_new() as GHashFunc has the - * same effect as passing g_direct_hash(). - */ -guint g_direct_hash (gconstpointer v) G_GNUC_CONST; -gboolean g_direct_equal (gconstpointer v1, - gconstpointer v2) G_GNUC_CONST; - -G_END_DECLS - -#endif /* __G_HASH_H__ */ diff --git a/lib/win32/glib-2.20.4/glib/ghook.c b/lib/win32/glib-2.20.4/glib/ghook.c deleted file mode 100644 index d038ee2c2a11d..0000000000000 --- a/lib/win32/glib-2.20.4/glib/ghook.c +++ /dev/null @@ -1,638 +0,0 @@ -/* GLIB - Library of useful routines for C programming - * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald - * - * GHook: Callback maintenance functions - * Copyright (C) 1998 Tim Janik - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library 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 - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ - -/* - * Modified by the GLib Team and others 1997-2000. See the AUTHORS - * file for a list of people on the GLib Team. See the ChangeLog - * files for a list of changes. These files are distributed with - * GLib at ftp://ftp.gtk.org/pub/gtk/. - */ - -/* - * MT safe - */ - -#include "config.h" - -#include "glib.h" -#include "galias.h" - - -/* --- functions --- */ -static void -default_finalize_hook (GHookList *hook_list, - GHook *hook) -{ - GDestroyNotify destroy = hook->destroy; - - if (destroy) - { - hook->destroy = NULL; - destroy (hook->data); - } -} - -void -g_hook_list_init (GHookList *hook_list, - guint hook_size) -{ - g_return_if_fail (hook_list != NULL); - g_return_if_fail (hook_size >= sizeof (GHook)); - - hook_list->seq_id = 1; - hook_list->hook_size = hook_size; - hook_list->is_setup = TRUE; - hook_list->hooks = NULL; - hook_list->dummy3 = NULL; - hook_list->finalize_hook = default_finalize_hook; - hook_list->dummy[0] = NULL; - hook_list->dummy[1] = NULL; -} - -void -g_hook_list_clear (GHookList *hook_list) -{ - g_return_if_fail (hook_list != NULL); - - if (hook_list->is_setup) - { - GHook *hook; - - hook_list->is_setup = FALSE; - - hook = hook_list->hooks; - if (!hook) - { - /* destroy hook_list->hook_memchunk */ - } - else - do - { - GHook *tmp; - - g_hook_ref (hook_list, hook); - g_hook_destroy_link (hook_list, hook); - tmp = hook->next; - g_hook_unref (hook_list, hook); - hook = tmp; - } - while (hook); - } -} - -GHook* -g_hook_alloc (GHookList *hook_list) -{ - GHook *hook; - - g_return_val_if_fail (hook_list != NULL, NULL); - g_return_val_if_fail (hook_list->is_setup, NULL); - - hook = g_slice_alloc0 (hook_list->hook_size); - hook->data = NULL; - hook->next = NULL; - hook->prev = NULL; - hook->flags = G_HOOK_FLAG_ACTIVE; - hook->ref_count = 0; - hook->hook_id = 0; - hook->func = NULL; - hook->destroy = NULL; - - return hook; -} - -void -g_hook_free (GHookList *hook_list, - GHook *hook) -{ - g_return_if_fail (hook_list != NULL); - g_return_if_fail (hook_list->is_setup); - g_return_if_fail (hook != NULL); - g_return_if_fail (G_HOOK_IS_UNLINKED (hook)); - g_return_if_fail (!G_HOOK_IN_CALL (hook)); - - if(hook_list->finalize_hook != NULL) - hook_list->finalize_hook (hook_list, hook); - g_slice_free1 (hook_list->hook_size, hook); -} - -void -g_hook_destroy_link (GHookList *hook_list, - GHook *hook) -{ - g_return_if_fail (hook_list != NULL); - g_return_if_fail (hook != NULL); - - hook->flags &= ~G_HOOK_FLAG_ACTIVE; - if (hook->hook_id) - { - hook->hook_id = 0; - g_hook_unref (hook_list, hook); /* counterpart to g_hook_insert_before */ - } -} - -gboolean -g_hook_destroy (GHookList *hook_list, - gulong hook_id) -{ - GHook *hook; - - g_return_val_if_fail (hook_list != NULL, FALSE); - g_return_val_if_fail (hook_id > 0, FALSE); - - hook = g_hook_get (hook_list, hook_id); - if (hook) - { - g_hook_destroy_link (hook_list, hook); - return TRUE; - } - - return FALSE; -} - -void -g_hook_unref (GHookList *hook_list, - GHook *hook) -{ - g_return_if_fail (hook_list != NULL); - g_return_if_fail (hook != NULL); - g_return_if_fail (hook->ref_count > 0); - - hook->ref_count--; - if (!hook->ref_count) - { - g_return_if_fail (hook->hook_id == 0); - g_return_if_fail (!G_HOOK_IN_CALL (hook)); - - if (hook->prev) - hook->prev->next = hook->next; - else - hook_list->hooks = hook->next; - if (hook->next) - { - hook->next->prev = hook->prev; - hook->next = NULL; - } - hook->prev = NULL; - - if (!hook_list->is_setup) - { - hook_list->is_setup = TRUE; - g_hook_free (hook_list, hook); - hook_list->is_setup = FALSE; - - if (!hook_list->hooks) - { - /* destroy hook_list->hook_memchunk */ - } - } - else - g_hook_free (hook_list, hook); - } -} - -GHook * -g_hook_ref (GHookList *hook_list, - GHook *hook) -{ - g_return_val_if_fail (hook_list != NULL, NULL); - g_return_val_if_fail (hook != NULL, NULL); - g_return_val_if_fail (hook->ref_count > 0, NULL); - - hook->ref_count++; - - return hook; -} - -void -g_hook_prepend (GHookList *hook_list, - GHook *hook) -{ - g_return_if_fail (hook_list != NULL); - - g_hook_insert_before (hook_list, hook_list->hooks, hook); -} - -void -g_hook_insert_before (GHookList *hook_list, - GHook *sibling, - GHook *hook) -{ - g_return_if_fail (hook_list != NULL); - g_return_if_fail (hook_list->is_setup); - g_return_if_fail (hook != NULL); - g_return_if_fail (G_HOOK_IS_UNLINKED (hook)); - g_return_if_fail (hook->ref_count == 0); - - hook->hook_id = hook_list->seq_id++; - hook->ref_count = 1; /* counterpart to g_hook_destroy_link */ - - if (sibling) - { - if (sibling->prev) - { - hook->prev = sibling->prev; - hook->prev->next = hook; - hook->next = sibling; - sibling->prev = hook; - } - else - { - hook_list->hooks = hook; - hook->next = sibling; - sibling->prev = hook; - } - } - else - { - if (hook_list->hooks) - { - sibling = hook_list->hooks; - while (sibling->next) - sibling = sibling->next; - hook->prev = sibling; - sibling->next = hook; - } - else - hook_list->hooks = hook; - } -} - -void -g_hook_list_invoke (GHookList *hook_list, - gboolean may_recurse) -{ - GHook *hook; - - g_return_if_fail (hook_list != NULL); - g_return_if_fail (hook_list->is_setup); - - hook = g_hook_first_valid (hook_list, may_recurse); - while (hook) - { - GHookFunc func; - gboolean was_in_call; - - func = (GHookFunc) hook->func; - - was_in_call = G_HOOK_IN_CALL (hook); - hook->flags |= G_HOOK_FLAG_IN_CALL; - func (hook->data); - if (!was_in_call) - hook->flags &= ~G_HOOK_FLAG_IN_CALL; - - hook = g_hook_next_valid (hook_list, hook, may_recurse); - } -} - -void -g_hook_list_invoke_check (GHookList *hook_list, - gboolean may_recurse) -{ - GHook *hook; - - g_return_if_fail (hook_list != NULL); - g_return_if_fail (hook_list->is_setup); - - hook = g_hook_first_valid (hook_list, may_recurse); - while (hook) - { - GHookCheckFunc func; - gboolean was_in_call; - gboolean need_destroy; - - func = (GHookCheckFunc) hook->func; - - was_in_call = G_HOOK_IN_CALL (hook); - hook->flags |= G_HOOK_FLAG_IN_CALL; - need_destroy = !func (hook->data); - if (!was_in_call) - hook->flags &= ~G_HOOK_FLAG_IN_CALL; - if (need_destroy) - g_hook_destroy_link (hook_list, hook); - - hook = g_hook_next_valid (hook_list, hook, may_recurse); - } -} - -void -g_hook_list_marshal_check (GHookList *hook_list, - gboolean may_recurse, - GHookCheckMarshaller marshaller, - gpointer data) -{ - GHook *hook; - - g_return_if_fail (hook_list != NULL); - g_return_if_fail (hook_list->is_setup); - g_return_if_fail (marshaller != NULL); - - hook = g_hook_first_valid (hook_list, may_recurse); - while (hook) - { - gboolean was_in_call; - gboolean need_destroy; - - was_in_call = G_HOOK_IN_CALL (hook); - hook->flags |= G_HOOK_FLAG_IN_CALL; - need_destroy = !marshaller (hook, data); - if (!was_in_call) - hook->flags &= ~G_HOOK_FLAG_IN_CALL; - if (need_destroy) - g_hook_destroy_link (hook_list, hook); - - hook = g_hook_next_valid (hook_list, hook, may_recurse); - } -} - -void -g_hook_list_marshal (GHookList *hook_list, - gboolean may_recurse, - GHookMarshaller marshaller, - gpointer data) -{ - GHook *hook; - - g_return_if_fail (hook_list != NULL); - g_return_if_fail (hook_list->is_setup); - g_return_if_fail (marshaller != NULL); - - hook = g_hook_first_valid (hook_list, may_recurse); - while (hook) - { - gboolean was_in_call; - - was_in_call = G_HOOK_IN_CALL (hook); - hook->flags |= G_HOOK_FLAG_IN_CALL; - marshaller (hook, data); - if (!was_in_call) - hook->flags &= ~G_HOOK_FLAG_IN_CALL; - - hook = g_hook_next_valid (hook_list, hook, may_recurse); - } -} - -GHook* -g_hook_first_valid (GHookList *hook_list, - gboolean may_be_in_call) -{ - g_return_val_if_fail (hook_list != NULL, NULL); - - if (hook_list->is_setup) - { - GHook *hook; - - hook = hook_list->hooks; - if (hook) - { - g_hook_ref (hook_list, hook); - if (G_HOOK_IS_VALID (hook) && (may_be_in_call || !G_HOOK_IN_CALL (hook))) - return hook; - else - return g_hook_next_valid (hook_list, hook, may_be_in_call); - } - } - - return NULL; -} - -GHook* -g_hook_next_valid (GHookList *hook_list, - GHook *hook, - gboolean may_be_in_call) -{ - GHook *ohook = hook; - - g_return_val_if_fail (hook_list != NULL, NULL); - - if (!hook) - return NULL; - - hook = hook->next; - while (hook) - { - if (G_HOOK_IS_VALID (hook) && (may_be_in_call || !G_HOOK_IN_CALL (hook))) - { - g_hook_ref (hook_list, hook); - g_hook_unref (hook_list, ohook); - - return hook; - } - hook = hook->next; - } - g_hook_unref (hook_list, ohook); - - return NULL; -} - -GHook* -g_hook_get (GHookList *hook_list, - gulong hook_id) -{ - GHook *hook; - - g_return_val_if_fail (hook_list != NULL, NULL); - g_return_val_if_fail (hook_id > 0, NULL); - - hook = hook_list->hooks; - while (hook) - { - if (hook->hook_id == hook_id) - return hook; - hook = hook->next; - } - - return NULL; -} - -GHook* -g_hook_find (GHookList *hook_list, - gboolean need_valids, - GHookFindFunc func, - gpointer data) -{ - GHook *hook; - - g_return_val_if_fail (hook_list != NULL, NULL); - g_return_val_if_fail (func != NULL, NULL); - - hook = hook_list->hooks; - while (hook) - { - GHook *tmp; - - /* test only non-destroyed hooks */ - if (!hook->hook_id) - { - hook = hook->next; - continue; - } - - g_hook_ref (hook_list, hook); - - if (func (hook, data) && hook->hook_id && (!need_valids || G_HOOK_ACTIVE (hook))) - { - g_hook_unref (hook_list, hook); - - return hook; - } - - tmp = hook->next; - g_hook_unref (hook_list, hook); - hook = tmp; - } - - return NULL; -} - -GHook* -g_hook_find_data (GHookList *hook_list, - gboolean need_valids, - gpointer data) -{ - GHook *hook; - - g_return_val_if_fail (hook_list != NULL, NULL); - - hook = hook_list->hooks; - while (hook) - { - /* test only non-destroyed hooks */ - if (hook->data == data && - hook->hook_id && - (!need_valids || G_HOOK_ACTIVE (hook))) - return hook; - - hook = hook->next; - } - - return NULL; -} - -GHook* -g_hook_find_func (GHookList *hook_list, - gboolean need_valids, - gpointer func) -{ - GHook *hook; - - g_return_val_if_fail (hook_list != NULL, NULL); - g_return_val_if_fail (func != NULL, NULL); - - hook = hook_list->hooks; - while (hook) - { - /* test only non-destroyed hooks */ - if (hook->func == func && - hook->hook_id && - (!need_valids || G_HOOK_ACTIVE (hook))) - return hook; - - hook = hook->next; - } - - return NULL; -} - -GHook* -g_hook_find_func_data (GHookList *hook_list, - gboolean need_valids, - gpointer func, - gpointer data) -{ - GHook *hook; - - g_return_val_if_fail (hook_list != NULL, NULL); - g_return_val_if_fail (func != NULL, NULL); - - hook = hook_list->hooks; - while (hook) - { - /* test only non-destroyed hooks */ - if (hook->data == data && - hook->func == func && - hook->hook_id && - (!need_valids || G_HOOK_ACTIVE (hook))) - return hook; - - hook = hook->next; - } - - return NULL; -} - -void -g_hook_insert_sorted (GHookList *hook_list, - GHook *hook, - GHookCompareFunc func) -{ - GHook *sibling; - - g_return_if_fail (hook_list != NULL); - g_return_if_fail (hook_list->is_setup); - g_return_if_fail (hook != NULL); - g_return_if_fail (G_HOOK_IS_UNLINKED (hook)); - g_return_if_fail (hook->func != NULL); - g_return_if_fail (func != NULL); - - /* first non-destroyed hook */ - sibling = hook_list->hooks; - while (sibling && !sibling->hook_id) - sibling = sibling->next; - - while (sibling) - { - GHook *tmp; - - g_hook_ref (hook_list, sibling); - if (func (hook, sibling) <= 0 && sibling->hook_id) - { - g_hook_unref (hook_list, sibling); - break; - } - - /* next non-destroyed hook */ - tmp = sibling->next; - while (tmp && !tmp->hook_id) - tmp = tmp->next; - - g_hook_unref (hook_list, sibling); - sibling = tmp; - } - - g_hook_insert_before (hook_list, sibling, hook); -} - -gint -g_hook_compare_ids (GHook *new_hook, - GHook *sibling) -{ - if (new_hook->hook_id < sibling->hook_id) - return -1; - else if (new_hook->hook_id > sibling->hook_id) - return 1; - - return 0; -} - -#define __G_HOOK_C__ -#include "galiasdef.c" diff --git a/lib/win32/glib-2.20.4/glib/ghook.h b/lib/win32/glib-2.20.4/glib/ghook.h deleted file mode 100644 index 5577fc3e215e4..0000000000000 --- a/lib/win32/glib-2.20.4/glib/ghook.h +++ /dev/null @@ -1,181 +0,0 @@ -/* GLIB - Library of useful routines for C programming - * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library 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 - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ - -/* - * Modified by the GLib Team and others 1997-2000. See the AUTHORS - * file for a list of people on the GLib Team. See the ChangeLog - * files for a list of changes. These files are distributed with - * GLib at ftp://ftp.gtk.org/pub/gtk/. - */ - -#if defined(G_DISABLE_SINGLE_INCLUDES) && !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION) -#error "Only can be included directly." -#endif - -#ifndef __G_HOOK_H__ -#define __G_HOOK_H__ - -#include - -G_BEGIN_DECLS - - -/* --- typedefs --- */ -typedef struct _GHook GHook; -typedef struct _GHookList GHookList; - -typedef gint (*GHookCompareFunc) (GHook *new_hook, - GHook *sibling); -typedef gboolean (*GHookFindFunc) (GHook *hook, - gpointer data); -typedef void (*GHookMarshaller) (GHook *hook, - gpointer marshal_data); -typedef gboolean (*GHookCheckMarshaller) (GHook *hook, - gpointer marshal_data); -typedef void (*GHookFunc) (gpointer data); -typedef gboolean (*GHookCheckFunc) (gpointer data); -typedef void (*GHookFinalizeFunc) (GHookList *hook_list, - GHook *hook); -typedef enum -{ - G_HOOK_FLAG_ACTIVE = 1 << 0, - G_HOOK_FLAG_IN_CALL = 1 << 1, - G_HOOK_FLAG_MASK = 0x0f -} GHookFlagMask; -#define G_HOOK_FLAG_USER_SHIFT (4) - - -/* --- structures --- */ -struct _GHookList -{ - gulong seq_id; - guint hook_size : 16; - guint is_setup : 1; - GHook *hooks; - gpointer dummy3; - GHookFinalizeFunc finalize_hook; - gpointer dummy[2]; -}; -struct _GHook -{ - gpointer data; - GHook *next; - GHook *prev; - guint ref_count; - gulong hook_id; - guint flags; - gpointer func; - GDestroyNotify destroy; -}; - - -/* --- macros --- */ -#define G_HOOK(hook) ((GHook*) (hook)) -#define G_HOOK_FLAGS(hook) (G_HOOK (hook)->flags) -#define G_HOOK_ACTIVE(hook) ((G_HOOK_FLAGS (hook) & \ - G_HOOK_FLAG_ACTIVE) != 0) -#define G_HOOK_IN_CALL(hook) ((G_HOOK_FLAGS (hook) & \ - G_HOOK_FLAG_IN_CALL) != 0) -#define G_HOOK_IS_VALID(hook) (G_HOOK (hook)->hook_id != 0 && \ - (G_HOOK_FLAGS (hook) & \ - G_HOOK_FLAG_ACTIVE)) -#define G_HOOK_IS_UNLINKED(hook) (G_HOOK (hook)->next == NULL && \ - G_HOOK (hook)->prev == NULL && \ - G_HOOK (hook)->hook_id == 0 && \ - G_HOOK (hook)->ref_count == 0) - - -/* --- prototypes --- */ -/* callback maintenance functions */ -void g_hook_list_init (GHookList *hook_list, - guint hook_size); -void g_hook_list_clear (GHookList *hook_list); -GHook* g_hook_alloc (GHookList *hook_list); -void g_hook_free (GHookList *hook_list, - GHook *hook); -GHook * g_hook_ref (GHookList *hook_list, - GHook *hook); -void g_hook_unref (GHookList *hook_list, - GHook *hook); -gboolean g_hook_destroy (GHookList *hook_list, - gulong hook_id); -void g_hook_destroy_link (GHookList *hook_list, - GHook *hook); -void g_hook_prepend (GHookList *hook_list, - GHook *hook); -void g_hook_insert_before (GHookList *hook_list, - GHook *sibling, - GHook *hook); -void g_hook_insert_sorted (GHookList *hook_list, - GHook *hook, - GHookCompareFunc func); -GHook* g_hook_get (GHookList *hook_list, - gulong hook_id); -GHook* g_hook_find (GHookList *hook_list, - gboolean need_valids, - GHookFindFunc func, - gpointer data); -GHook* g_hook_find_data (GHookList *hook_list, - gboolean need_valids, - gpointer data); -GHook* g_hook_find_func (GHookList *hook_list, - gboolean need_valids, - gpointer func); -GHook* g_hook_find_func_data (GHookList *hook_list, - gboolean need_valids, - gpointer func, - gpointer data); -/* return the first valid hook, and increment its reference count */ -GHook* g_hook_first_valid (GHookList *hook_list, - gboolean may_be_in_call); -/* return the next valid hook with incremented reference count, and - * decrement the reference count of the original hook - */ -GHook* g_hook_next_valid (GHookList *hook_list, - GHook *hook, - gboolean may_be_in_call); -/* GHookCompareFunc implementation to insert hooks sorted by their id */ -gint g_hook_compare_ids (GHook *new_hook, - GHook *sibling); -/* convenience macros */ -#define g_hook_append( hook_list, hook ) \ - g_hook_insert_before ((hook_list), NULL, (hook)) -/* invoke all valid hooks with the (*GHookFunc) signature. - */ -void g_hook_list_invoke (GHookList *hook_list, - gboolean may_recurse); -/* invoke all valid hooks with the (*GHookCheckFunc) signature, - * and destroy the hook if FALSE is returned. - */ -void g_hook_list_invoke_check (GHookList *hook_list, - gboolean may_recurse); -/* invoke a marshaller on all valid hooks. - */ -void g_hook_list_marshal (GHookList *hook_list, - gboolean may_recurse, - GHookMarshaller marshaller, - gpointer marshal_data); -void g_hook_list_marshal_check (GHookList *hook_list, - gboolean may_recurse, - GHookCheckMarshaller marshaller, - gpointer marshal_data); - -G_END_DECLS - -#endif /* __G_HOOK_H__ */ diff --git a/lib/win32/glib-2.20.4/glib/gi18n-lib.h b/lib/win32/glib-2.20.4/glib/gi18n-lib.h deleted file mode 100644 index ca002a722198e..0000000000000 --- a/lib/win32/glib-2.20.4/glib/gi18n-lib.h +++ /dev/null @@ -1,38 +0,0 @@ -/* GLIB - Library of useful routines for C programming - * Copyright (C) 1995-1997, 2002 Peter Mattis, Red Hat, Inc. - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library 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 - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ - -#ifndef __G_I18N_LIB_H__ -#define __G_I18N_LIB_H__ - -#include - -#include -#include - -#ifndef GETTEXT_PACKAGE -#error You must define GETTEXT_PACKAGE before including gi18n-lib.h. Did you forget to include config.h? -#endif - -#define _(String) ((char *) g_dgettext (GETTEXT_PACKAGE, String)) -#define Q_(String) g_dpgettext (GETTEXT_PACKAGE, String, 0) -#define N_(String) (String) -#define C_(Context,String) g_dpgettext (GETTEXT_PACKAGE, Context "\004" String, strlen (Context) + 1) -#define NC_(Context, String) (String) - -#endif /* __G_I18N_LIB_H__ */ diff --git a/lib/win32/glib-2.20.4/glib/gi18n.h b/lib/win32/glib-2.20.4/glib/gi18n.h deleted file mode 100644 index c710046ee7e0e..0000000000000 --- a/lib/win32/glib-2.20.4/glib/gi18n.h +++ /dev/null @@ -1,34 +0,0 @@ -/* GLIB - Library of useful routines for C programming - * Copyright (C) 1995-1997, 2002 Peter Mattis, Red Hat, Inc. - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library 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 - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ - -#ifndef __G_I18N_H__ -#define __G_I18N_H__ - -#include - -#include -#include - -#define _(String) gettext (String) -#define Q_(String) g_dpgettext (NULL, String, 0) -#define N_(String) (String) -#define C_(Context,String) g_dpgettext (NULL, Context "\004" String, strlen (Context) + 1) -#define NC_(Context, String) (String) - -#endif /* __G_I18N_H__ */ diff --git a/lib/win32/glib-2.20.4/glib/giochannel.c b/lib/win32/glib-2.20.4/glib/giochannel.c deleted file mode 100644 index 537fdb65490c1..0000000000000 --- a/lib/win32/glib-2.20.4/glib/giochannel.c +++ /dev/null @@ -1,2389 +0,0 @@ -/* GLIB - Library of useful routines for C programming - * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald - * - * giochannel.c: IO Channel abstraction - * Copyright 1998 Owen Taylor - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library 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 - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ - -/* - * Modified by the GLib Team and others 1997-2000. See the AUTHORS - * file for a list of people on the GLib Team. See the ChangeLog - * files for a list of changes. These files are distributed with - * GLib at ftp://ftp.gtk.org/pub/gtk/. - */ - -/* - * MT safe - */ - -#include "config.h" - -#include -#include - -#ifdef HAVE_UNISTD_H -#include -#endif - -#undef G_DISABLE_DEPRECATED - -#include "glib.h" - -#include "giochannel.h" - -#include "glibintl.h" - -#include "galias.h" - -#define G_IO_NICE_BUF_SIZE 1024 - -/* This needs to be as wide as the largest character in any possible encoding */ -#define MAX_CHAR_SIZE 10 - -/* Some simplifying macros, which reduce the need to worry whether the - * buffers have been allocated. These also make USE_BUF () an lvalue, - * which is used in g_io_channel_read_to_end (). - */ -#define USE_BUF(channel) ((channel)->encoding ? (channel)->encoded_read_buf \ - : (channel)->read_buf) -#define BUF_LEN(string) ((string) ? (string)->len : 0) - -static GIOError g_io_error_get_from_g_error (GIOStatus status, - GError *err); -static void g_io_channel_purge (GIOChannel *channel); -static GIOStatus g_io_channel_fill_buffer (GIOChannel *channel, - GError **err); -static GIOStatus g_io_channel_read_line_backend (GIOChannel *channel, - gsize *length, - gsize *terminator_pos, - GError **error); - -/** - * g_io_channel_init: - * @channel: a #GIOChannel - * - * Initializes a #GIOChannel struct. - * - * This is called by each of the above functions when creating a - * #GIOChannel, and so is not often needed by the application - * programmer (unless you are creating a new type of #GIOChannel). - */ -void -g_io_channel_init (GIOChannel *channel) -{ - channel->ref_count = 1; - channel->encoding = g_strdup ("UTF-8"); - channel->line_term = NULL; - channel->line_term_len = 0; - channel->buf_size = G_IO_NICE_BUF_SIZE; - channel->read_cd = (GIConv) -1; - channel->write_cd = (GIConv) -1; - channel->read_buf = NULL; /* Lazy allocate buffers */ - channel->encoded_read_buf = NULL; - channel->write_buf = NULL; - channel->partial_write_buf[0] = '\0'; - channel->use_buffer = TRUE; - channel->do_encode = FALSE; - channel->close_on_unref = FALSE; -} - -/** - * g_io_channel_ref: - * @channel: a #GIOChannel - * - * Increments the reference count of a #GIOChannel. - * - * Returns: the @channel that was passed in (since 2.6) - */ -GIOChannel * -g_io_channel_ref (GIOChannel *channel) -{ - g_return_val_if_fail (channel != NULL, NULL); - - g_atomic_int_inc (&channel->ref_count); - - return channel; -} - -/** - * g_io_channel_unref: - * @channel: a #GIOChannel - * - * Decrements the reference count of a #GIOChannel. - */ -void -g_io_channel_unref (GIOChannel *channel) -{ - gboolean is_zero; - - g_return_if_fail (channel != NULL); - - is_zero = g_atomic_int_dec_and_test (&channel->ref_count); - - if (G_UNLIKELY (is_zero)) - { - if (channel->close_on_unref) - g_io_channel_shutdown (channel, TRUE, NULL); - else - g_io_channel_purge (channel); - g_free (channel->encoding); - if (channel->read_cd != (GIConv) -1) - g_iconv_close (channel->read_cd); - if (channel->write_cd != (GIConv) -1) - g_iconv_close (channel->write_cd); - g_free (channel->line_term); - if (channel->read_buf) - g_string_free (channel->read_buf, TRUE); - if (channel->write_buf) - g_string_free (channel->write_buf, TRUE); - if (channel->encoded_read_buf) - g_string_free (channel->encoded_read_buf, TRUE); - channel->funcs->io_free (channel); - } -} - -static GIOError -g_io_error_get_from_g_error (GIOStatus status, - GError *err) -{ - switch (status) - { - case G_IO_STATUS_NORMAL: - case G_IO_STATUS_EOF: - return G_IO_ERROR_NONE; - case G_IO_STATUS_AGAIN: - return G_IO_ERROR_AGAIN; - case G_IO_STATUS_ERROR: - g_return_val_if_fail (err != NULL, G_IO_ERROR_UNKNOWN); - - if (err->domain != G_IO_CHANNEL_ERROR) - return G_IO_ERROR_UNKNOWN; - switch (err->code) - { - case G_IO_CHANNEL_ERROR_INVAL: - return G_IO_ERROR_INVAL; - default: - return G_IO_ERROR_UNKNOWN; - } - default: - g_assert_not_reached (); - } -} - -/** - * g_io_channel_read: - * @channel: a #GIOChannel - * @buf: a buffer to read the data into (which should be at least - * count bytes long) - * @count: the number of bytes to read from the #GIOChannel - * @bytes_read: returns the number of bytes actually read - * - * Reads data from a #GIOChannel. - * - * Return value: %G_IO_ERROR_NONE if the operation was successful. - * - * Deprecated:2.2: Use g_io_channel_read_chars() instead. - **/ -GIOError -g_io_channel_read (GIOChannel *channel, - gchar *buf, - gsize count, - gsize *bytes_read) -{ - GError *err = NULL; - GIOError error; - GIOStatus status; - - g_return_val_if_fail (channel != NULL, G_IO_ERROR_UNKNOWN); - g_return_val_if_fail (bytes_read != NULL, G_IO_ERROR_UNKNOWN); - - if (count == 0) - { - if (bytes_read) - *bytes_read = 0; - return G_IO_ERROR_NONE; - } - - g_return_val_if_fail (buf != NULL, G_IO_ERROR_UNKNOWN); - - status = channel->funcs->io_read (channel, buf, count, bytes_read, &err); - - error = g_io_error_get_from_g_error (status, err); - - if (err) - g_error_free (err); - - return error; -} - -/** - * g_io_channel_write: - * @channel: a #GIOChannel - * @buf: the buffer containing the data to write - * @count: the number of bytes to write - * @bytes_written: the number of bytes actually written - * - * Writes data to a #GIOChannel. - * - * Return value: %G_IO_ERROR_NONE if the operation was successful. - * - * Deprecated:2.2: Use g_io_channel_write_chars() instead. - **/ -GIOError -g_io_channel_write (GIOChannel *channel, - const gchar *buf, - gsize count, - gsize *bytes_written) -{ - GError *err = NULL; - GIOError error; - GIOStatus status; - - g_return_val_if_fail (channel != NULL, G_IO_ERROR_UNKNOWN); - g_return_val_if_fail (bytes_written != NULL, G_IO_ERROR_UNKNOWN); - - status = channel->funcs->io_write (channel, buf, count, bytes_written, &err); - - error = g_io_error_get_from_g_error (status, err); - - if (err) - g_error_free (err); - - return error; -} - -/** - * g_io_channel_seek: - * @channel: a #GIOChannel - * @offset: an offset, in bytes, which is added to the position specified - * by @type - * @type: the position in the file, which can be %G_SEEK_CUR (the current - * position), %G_SEEK_SET (the start of the file), or %G_SEEK_END - * (the end of the file) - * - * Sets the current position in the #GIOChannel, similar to the standard - * library function fseek(). - * - * Return value: %G_IO_ERROR_NONE if the operation was successful. - * - * Deprecated:2.2: Use g_io_channel_seek_position() instead. - **/ -GIOError -g_io_channel_seek (GIOChannel *channel, - gint64 offset, - GSeekType type) -{ - GError *err = NULL; - GIOError error; - GIOStatus status; - - g_return_val_if_fail (channel != NULL, G_IO_ERROR_UNKNOWN); - g_return_val_if_fail (channel->is_seekable, G_IO_ERROR_UNKNOWN); - - switch (type) - { - case G_SEEK_CUR: - case G_SEEK_SET: - case G_SEEK_END: - break; - default: - g_warning ("g_io_channel_seek: unknown seek type"); - return G_IO_ERROR_UNKNOWN; - } - - status = channel->funcs->io_seek (channel, offset, type, &err); - - error = g_io_error_get_from_g_error (status, err); - - if (err) - g_error_free (err); - - return error; -} - -/* The function g_io_channel_new_file() is prototyped in both - * giounix.c and giowin32.c, so we stick its documentation here. - */ - -/** - * g_io_channel_new_file: - * @filename: A string containing the name of a file - * @mode: One of "r", "w", "a", "r+", "w+", "a+". These have - * the same meaning as in fopen() - * @error: A location to return an error of type %G_FILE_ERROR - * - * Open a file @filename as a #GIOChannel using mode @mode. This - * channel will be closed when the last reference to it is dropped, - * so there is no need to call g_io_channel_close() (though doing - * so will not cause problems, as long as no attempt is made to - * access the channel after it is closed). - * - * Return value: A #GIOChannel on success, %NULL on failure. - **/ - -/** - * g_io_channel_close: - * @channel: A #GIOChannel - * - * Close an IO channel. Any pending data to be written will be - * flushed, ignoring errors. The channel will not be freed until the - * last reference is dropped using g_io_channel_unref(). - * - * Deprecated:2.2: Use g_io_channel_shutdown() instead. - **/ -void -g_io_channel_close (GIOChannel *channel) -{ - GError *err = NULL; - - g_return_if_fail (channel != NULL); - - g_io_channel_purge (channel); - - channel->funcs->io_close (channel, &err); - - if (err) - { /* No way to return the error */ - g_warning ("Error closing channel: %s", err->message); - g_error_free (err); - } - - channel->close_on_unref = FALSE; /* Because we already did */ - channel->is_readable = FALSE; - channel->is_writeable = FALSE; - channel->is_seekable = FALSE; -} - -/** - * g_io_channel_shutdown: - * @channel: a #GIOChannel - * @flush: if %TRUE, flush pending - * @err: location to store a #GIOChannelError - * - * Close an IO channel. Any pending data to be written will be - * flushed if @flush is %TRUE. The channel will not be freed until the - * last reference is dropped using g_io_channel_unref(). - * - * Return value: the status of the operation. - **/ -GIOStatus -g_io_channel_shutdown (GIOChannel *channel, - gboolean flush, - GError **err) -{ - GIOStatus status, result; - GError *tmperr = NULL; - - g_return_val_if_fail (channel != NULL, G_IO_STATUS_ERROR); - g_return_val_if_fail (err == NULL || *err == NULL, G_IO_STATUS_ERROR); - - if (channel->write_buf && channel->write_buf->len > 0) - { - if (flush) - { - GIOFlags flags; - - /* Set the channel to blocking, to avoid a busy loop - */ - flags = g_io_channel_get_flags (channel); - /* Ignore any errors here, they're irrelevant */ - g_io_channel_set_flags (channel, flags & ~G_IO_FLAG_NONBLOCK, NULL); - - result = g_io_channel_flush (channel, &tmperr); - } - else - result = G_IO_STATUS_NORMAL; - - g_string_truncate(channel->write_buf, 0); - } - else - result = G_IO_STATUS_NORMAL; - - if (channel->partial_write_buf[0] != '\0') - { - if (flush) - g_warning ("Partial character at end of write buffer not flushed.\n"); - channel->partial_write_buf[0] = '\0'; - } - - status = channel->funcs->io_close (channel, err); - - channel->close_on_unref = FALSE; /* Because we already did */ - channel->is_readable = FALSE; - channel->is_writeable = FALSE; - channel->is_seekable = FALSE; - - if (status != G_IO_STATUS_NORMAL) - { - g_clear_error (&tmperr); - return status; - } - else if (result != G_IO_STATUS_NORMAL) - { - g_propagate_error (err, tmperr); - return result; - } - else - return G_IO_STATUS_NORMAL; -} - -/* This function is used for the final flush on close or unref */ -static void -g_io_channel_purge (GIOChannel *channel) -{ - GError *err = NULL; - GIOStatus status; - - g_return_if_fail (channel != NULL); - - if (channel->write_buf && channel->write_buf->len > 0) - { - GIOFlags flags; - - /* Set the channel to blocking, to avoid a busy loop - */ - flags = g_io_channel_get_flags (channel); - g_io_channel_set_flags (channel, flags & ~G_IO_FLAG_NONBLOCK, NULL); - - status = g_io_channel_flush (channel, &err); - - if (err) - { /* No way to return the error */ - g_warning ("Error flushing string: %s", err->message); - g_error_free (err); - } - } - - /* Flush these in case anyone tries to close without unrefing */ - - if (channel->read_buf) - g_string_truncate (channel->read_buf, 0); - if (channel->write_buf) - g_string_truncate (channel->write_buf, 0); - if (channel->encoding) - { - if (channel->encoded_read_buf) - g_string_truncate (channel->encoded_read_buf, 0); - - if (channel->partial_write_buf[0] != '\0') - { - g_warning ("Partial character at end of write buffer not flushed.\n"); - channel->partial_write_buf[0] = '\0'; - } - } -} - -/** - * g_io_create_watch: - * @channel: a #GIOChannel to watch - * @condition: conditions to watch for - * - * Creates a #GSource that's dispatched when @condition is met for the - * given @channel. For example, if condition is #G_IO_IN, the source will - * be dispatched when there's data available for reading. - * - * g_io_add_watch() is a simpler interface to this same functionality, for - * the case where you want to add the source to the default main loop context - * at the default priority. - * - * On Windows, polling a #GSource created to watch a channel for a socket - * puts the socket in non-blocking mode. This is a side-effect of the - * implementation and unavoidable. - * - * Returns: a new #GSource - */ -GSource * -g_io_create_watch (GIOChannel *channel, - GIOCondition condition) -{ - g_return_val_if_fail (channel != NULL, NULL); - - return channel->funcs->io_create_watch (channel, condition); -} - -/** - * g_io_add_watch_full: - * @channel: a #GIOChannel - * @priority: the priority of the #GIOChannel source - * @condition: the condition to watch for - * @func: the function to call when the condition is satisfied - * @user_data: user data to pass to @func - * @notify: the function to call when the source is removed - * - * Adds the #GIOChannel into the default main loop context - * with the given priority. - * - * This internally creates a main loop source using g_io_create_watch() - * and attaches it to the main loop context with g_source_attach(). - * You can do these steps manuallt if you need greater control. - * - * Returns: the event source id - */ -guint -g_io_add_watch_full (GIOChannel *channel, - gint priority, - GIOCondition condition, - GIOFunc func, - gpointer user_data, - GDestroyNotify notify) -{ - GSource *source; - guint id; - - g_return_val_if_fail (channel != NULL, 0); - - source = g_io_create_watch (channel, condition); - - if (priority != G_PRIORITY_DEFAULT) - g_source_set_priority (source, priority); - g_source_set_callback (source, (GSourceFunc)func, user_data, notify); - - id = g_source_attach (source, NULL); - g_source_unref (source); - - return id; -} - -/** - * g_io_add_watch: - * @channel: a #GIOChannel - * @condition: the condition to watch for - * @func: the function to call when the condition is satisfied - * @user_data: user data to pass to @func - * - * Adds the #GIOChannel into the default main loop context - * with the default priority. - * - * Returns: the event source id - */ -guint -g_io_add_watch (GIOChannel *channel, - GIOCondition condition, - GIOFunc func, - gpointer user_data) -{ - return g_io_add_watch_full (channel, G_PRIORITY_DEFAULT, condition, func, user_data, NULL); -} - -/** - * g_io_channel_get_buffer_condition: - * @channel: A #GIOChannel - * - * This function returns a #GIOCondition depending on whether there - * is data to be read/space to write data in the internal buffers in - * the #GIOChannel. Only the flags %G_IO_IN and %G_IO_OUT may be set. - * - * Return value: A #GIOCondition - **/ -GIOCondition -g_io_channel_get_buffer_condition (GIOChannel *channel) -{ - GIOCondition condition = 0; - - if (channel->encoding) - { - if (channel->encoded_read_buf && (channel->encoded_read_buf->len > 0)) - condition |= G_IO_IN; /* Only return if we have full characters */ - } - else - { - if (channel->read_buf && (channel->read_buf->len > 0)) - condition |= G_IO_IN; - } - - if (channel->write_buf && (channel->write_buf->len < channel->buf_size)) - condition |= G_IO_OUT; - - return condition; -} - -/** - * g_io_channel_error_from_errno: - * @en: an errno error number, e.g. %EINVAL - * - * Converts an errno error number to a #GIOChannelError. - * - * Return value: a #GIOChannelError error number, e.g. - * %G_IO_CHANNEL_ERROR_INVAL. - **/ -GIOChannelError -g_io_channel_error_from_errno (gint en) -{ -#ifdef EAGAIN - g_return_val_if_fail (en != EAGAIN, G_IO_CHANNEL_ERROR_FAILED); -#endif - - switch (en) - { -#ifdef EBADF - case EBADF: - g_warning("Invalid file descriptor.\n"); - return G_IO_CHANNEL_ERROR_FAILED; -#endif - -#ifdef EFAULT - case EFAULT: - g_warning("Buffer outside valid address space.\n"); - return G_IO_CHANNEL_ERROR_FAILED; -#endif - -#ifdef EFBIG - case EFBIG: - return G_IO_CHANNEL_ERROR_FBIG; -#endif - -#ifdef EINTR - /* In general, we should catch EINTR before we get here, - * but close() is allowed to return EINTR by POSIX, so - * we need to catch it here; EINTR from close() is - * unrecoverable, because it's undefined whether - * the fd was actually closed or not, so we just return - * a generic error code. - */ - case EINTR: - return G_IO_CHANNEL_ERROR_FAILED; -#endif - -#ifdef EINVAL - case EINVAL: - return G_IO_CHANNEL_ERROR_INVAL; -#endif - -#ifdef EIO - case EIO: - return G_IO_CHANNEL_ERROR_IO; -#endif - -#ifdef EISDIR - case EISDIR: - return G_IO_CHANNEL_ERROR_ISDIR; -#endif - -#ifdef ENOSPC - case ENOSPC: - return G_IO_CHANNEL_ERROR_NOSPC; -#endif - -#ifdef ENXIO - case ENXIO: - return G_IO_CHANNEL_ERROR_NXIO; -#endif - -#ifdef EOVERFLOW - case EOVERFLOW: - return G_IO_CHANNEL_ERROR_OVERFLOW; -#endif - -#ifdef EPIPE - case EPIPE: - return G_IO_CHANNEL_ERROR_PIPE; -#endif - - default: - return G_IO_CHANNEL_ERROR_FAILED; - } -} - -/** - * g_io_channel_set_buffer_size: - * @channel: a #GIOChannel - * @size: the size of the buffer, or 0 to let GLib pick a good size - * - * Sets the buffer size. - **/ -void -g_io_channel_set_buffer_size (GIOChannel *channel, - gsize size) -{ - g_return_if_fail (channel != NULL); - - if (size == 0) - size = G_IO_NICE_BUF_SIZE; - - if (size < MAX_CHAR_SIZE) - size = MAX_CHAR_SIZE; - - channel->buf_size = size; -} - -/** - * g_io_channel_get_buffer_size: - * @channel: a #GIOChannel - * - * Gets the buffer size. - * - * Return value: the size of the buffer. - **/ -gsize -g_io_channel_get_buffer_size (GIOChannel *channel) -{ - g_return_val_if_fail (channel != NULL, 0); - - return channel->buf_size; -} - -/** - * g_io_channel_set_line_term: - * @channel: a #GIOChannel - * @line_term: The line termination string. Use %NULL for autodetect. - * Autodetection breaks on "\n", "\r\n", "\r", "\0", and - * the Unicode paragraph separator. Autodetection should - * not be used for anything other than file-based channels. - * @length: The length of the termination string. If -1 is passed, the - * string is assumed to be nul-terminated. This option allows - * termination strings with embedded nuls. - * - * This sets the string that #GIOChannel uses to determine - * where in the file a line break occurs. - **/ -void -g_io_channel_set_line_term (GIOChannel *channel, - const gchar *line_term, - gint length) -{ - g_return_if_fail (channel != NULL); - g_return_if_fail (line_term == NULL || length != 0); /* Disallow "" */ - - if (line_term == NULL) - length = 0; - else if (length < 0) - length = strlen (line_term); - - g_free (channel->line_term); - channel->line_term = line_term ? g_memdup (line_term, length) : NULL; - channel->line_term_len = length; -} - -/** - * g_io_channel_get_line_term: - * @channel: a #GIOChannel - * @length: a location to return the length of the line terminator - * - * This returns the string that #GIOChannel uses to determine - * where in the file a line break occurs. A value of %NULL - * indicates autodetection. - * - * Return value: The line termination string. This value - * is owned by GLib and must not be freed. - **/ -G_CONST_RETURN gchar* -g_io_channel_get_line_term (GIOChannel *channel, - gint *length) -{ - g_return_val_if_fail (channel != NULL, NULL); - - if (length) - *length = channel->line_term_len; - - return channel->line_term; -} - -/** - * g_io_channel_set_flags: - * @channel: a #GIOChannel - * @flags: the flags to set on the IO channel - * @error: A location to return an error of type #GIOChannelError - * - * Sets the (writeable) flags in @channel to (@flags & %G_IO_CHANNEL_SET_MASK). - * - * Return value: the status of the operation. - **/ -GIOStatus -g_io_channel_set_flags (GIOChannel *channel, - GIOFlags flags, - GError **error) -{ - g_return_val_if_fail (channel != NULL, G_IO_STATUS_ERROR); - g_return_val_if_fail ((error == NULL) || (*error == NULL), - G_IO_STATUS_ERROR); - - return (*channel->funcs->io_set_flags) (channel, - flags & G_IO_FLAG_SET_MASK, - error); -} - -/** - * g_io_channel_get_flags: - * @channel: a #GIOChannel - * - * Gets the current flags for a #GIOChannel, including read-only - * flags such as %G_IO_FLAG_IS_READABLE. - * - * The values of the flags %G_IO_FLAG_IS_READABLE and %G_IO_FLAG_IS_WRITEABLE - * are cached for internal use by the channel when it is created. - * If they should change at some later point (e.g. partial shutdown - * of a socket with the UNIX shutdown() function), the user - * should immediately call g_io_channel_get_flags() to update - * the internal values of these flags. - * - * Return value: the flags which are set on the channel - **/ -GIOFlags -g_io_channel_get_flags (GIOChannel *channel) -{ - GIOFlags flags; - - g_return_val_if_fail (channel != NULL, 0); - - flags = (* channel->funcs->io_get_flags) (channel); - - /* Cross implementation code */ - - if (channel->is_seekable) - flags |= G_IO_FLAG_IS_SEEKABLE; - if (channel->is_readable) - flags |= G_IO_FLAG_IS_READABLE; - if (channel->is_writeable) - flags |= G_IO_FLAG_IS_WRITEABLE; - - return flags; -} - -/** - * g_io_channel_set_close_on_unref: - * @channel: a #GIOChannel - * @do_close: Whether to close the channel on the final unref of - * the GIOChannel data structure. The default value of - * this is %TRUE for channels created by g_io_channel_new_file (), - * and %FALSE for all other channels. - * - * Setting this flag to %TRUE for a channel you have already closed - * can cause problems. - **/ -void -g_io_channel_set_close_on_unref (GIOChannel *channel, - gboolean do_close) -{ - g_return_if_fail (channel != NULL); - - channel->close_on_unref = do_close; -} - -/** - * g_io_channel_get_close_on_unref: - * @channel: a #GIOChannel. - * - * Returns whether the file/socket/whatever associated with @channel - * will be closed when @channel receives its final unref and is - * destroyed. The default value of this is %TRUE for channels created - * by g_io_channel_new_file (), and %FALSE for all other channels. - * - * Return value: Whether the channel will be closed on the final unref of - * the GIOChannel data structure. - **/ -gboolean -g_io_channel_get_close_on_unref (GIOChannel *channel) -{ - g_return_val_if_fail (channel != NULL, FALSE); - - return channel->close_on_unref; -} - -/** - * g_io_channel_seek_position: - * @channel: a #GIOChannel - * @offset: The offset in bytes from the position specified by @type - * @type: a #GSeekType. The type %G_SEEK_CUR is only allowed in those - * cases where a call to g_io_channel_set_encoding () - * is allowed. See the documentation for - * g_io_channel_set_encoding () for details. - * @error: A location to return an error of type #GIOChannelError - * - * Replacement for g_io_channel_seek() with the new API. - * - * Return value: the status of the operation. - **/ -GIOStatus -g_io_channel_seek_position (GIOChannel *channel, - gint64 offset, - GSeekType type, - GError **error) -{ - GIOStatus status; - - /* For files, only one of the read and write buffers can contain data. - * For sockets, both can contain data. - */ - - g_return_val_if_fail (channel != NULL, G_IO_STATUS_ERROR); - g_return_val_if_fail ((error == NULL) || (*error == NULL), - G_IO_STATUS_ERROR); - g_return_val_if_fail (channel->is_seekable, G_IO_STATUS_ERROR); - - switch (type) - { - case G_SEEK_CUR: /* The user is seeking relative to the head of the buffer */ - if (channel->use_buffer) - { - if (channel->do_encode && channel->encoded_read_buf - && channel->encoded_read_buf->len > 0) - { - g_warning ("Seek type G_SEEK_CUR not allowed for this" - " channel's encoding.\n"); - return G_IO_STATUS_ERROR; - } - if (channel->read_buf) - offset -= channel->read_buf->len; - if (channel->encoded_read_buf) - { - g_assert (channel->encoded_read_buf->len == 0 || !channel->do_encode); - - /* If there's anything here, it's because the encoding is UTF-8, - * so we can just subtract the buffer length, the same as for - * the unencoded data. - */ - - offset -= channel->encoded_read_buf->len; - } - } - break; - case G_SEEK_SET: - case G_SEEK_END: - break; - default: - g_warning ("g_io_channel_seek_position: unknown seek type"); - return G_IO_STATUS_ERROR; - } - - if (channel->use_buffer) - { - status = g_io_channel_flush (channel, error); - if (status != G_IO_STATUS_NORMAL) - return status; - } - - status = channel->funcs->io_seek (channel, offset, type, error); - - if ((status == G_IO_STATUS_NORMAL) && (channel->use_buffer)) - { - if (channel->read_buf) - g_string_truncate (channel->read_buf, 0); - - /* Conversion state no longer matches position in file */ - if (channel->read_cd != (GIConv) -1) - g_iconv (channel->read_cd, NULL, NULL, NULL, NULL); - if (channel->write_cd != (GIConv) -1) - g_iconv (channel->write_cd, NULL, NULL, NULL, NULL); - - if (channel->encoded_read_buf) - { - g_assert (channel->encoded_read_buf->len == 0 || !channel->do_encode); - g_string_truncate (channel->encoded_read_buf, 0); - } - - if (channel->partial_write_buf[0] != '\0') - { - g_warning ("Partial character at end of write buffer not flushed.\n"); - channel->partial_write_buf[0] = '\0'; - } - } - - return status; -} - -/** - * g_io_channel_flush: - * @channel: a #GIOChannel - * @error: location to store an error of type #GIOChannelError - * - * Flushes the write buffer for the GIOChannel. - * - * Return value: the status of the operation: One of - * #G_IO_STATUS_NORMAL, #G_IO_STATUS_AGAIN, or - * #G_IO_STATUS_ERROR. - **/ -GIOStatus -g_io_channel_flush (GIOChannel *channel, - GError **error) -{ - GIOStatus status; - gsize this_time = 1, bytes_written = 0; - - g_return_val_if_fail (channel != NULL, G_IO_STATUS_ERROR); - g_return_val_if_fail ((error == NULL) || (*error == NULL), G_IO_STATUS_ERROR); - - if (channel->write_buf == NULL || channel->write_buf->len == 0) - return G_IO_STATUS_NORMAL; - - do - { - g_assert (this_time > 0); - - status = channel->funcs->io_write (channel, - channel->write_buf->str + bytes_written, - channel->write_buf->len - bytes_written, - &this_time, error); - bytes_written += this_time; - } - while ((bytes_written < channel->write_buf->len) - && (status == G_IO_STATUS_NORMAL)); - - g_string_erase (channel->write_buf, 0, bytes_written); - - return status; -} - -/** - * g_io_channel_set_buffered: - * @channel: a #GIOChannel - * @buffered: whether to set the channel buffered or unbuffered - * - * The buffering state can only be set if the channel's encoding - * is %NULL. For any other encoding, the channel must be buffered. - * - * A buffered channel can only be set unbuffered if the channel's - * internal buffers have been flushed. Newly created channels or - * channels which have returned %G_IO_STATUS_EOF - * not require such a flush. For write-only channels, a call to - * g_io_channel_flush () is sufficient. For all other channels, - * the buffers may be flushed by a call to g_io_channel_seek_position (). - * This includes the possibility of seeking with seek type %G_SEEK_CUR - * and an offset of zero. Note that this means that socket-based - * channels cannot be set unbuffered once they have had data - * read from them. - * - * On unbuffered channels, it is safe to mix read and write - * calls from the new and old APIs, if this is necessary for - * maintaining old code. - * - * The default state of the channel is buffered. - **/ -void -g_io_channel_set_buffered (GIOChannel *channel, - gboolean buffered) -{ - g_return_if_fail (channel != NULL); - - if (channel->encoding != NULL) - { - g_warning ("Need to have NULL encoding to set the buffering state of the " - "channel.\n"); - return; - } - - g_return_if_fail (!channel->read_buf || channel->read_buf->len == 0); - g_return_if_fail (!channel->write_buf || channel->write_buf->len == 0); - - channel->use_buffer = buffered; -} - -/** - * g_io_channel_get_buffered: - * @channel: a #GIOChannel - * - * Returns whether @channel is buffered. - * - * Return Value: %TRUE if the @channel is buffered. - **/ -gboolean -g_io_channel_get_buffered (GIOChannel *channel) -{ - g_return_val_if_fail (channel != NULL, FALSE); - - return channel->use_buffer; -} - -/** - * g_io_channel_set_encoding: - * @channel: a #GIOChannel - * @encoding: the encoding type - * @error: location to store an error of type #GConvertError - * - * Sets the encoding for the input/output of the channel. - * The internal encoding is always UTF-8. The default encoding - * for the external file is UTF-8. - * - * The encoding %NULL is safe to use with binary data. - * - * The encoding can only be set if one of the following conditions - * is true: - * - * - * The channel was just created, and has not been written to or read - * from yet. - * - * - * The channel is write-only. - * - * - * The channel is a file, and the file pointer was just - * repositioned by a call to g_io_channel_seek_position(). - * (This flushes all the internal buffers.) - * - * - * The current encoding is %NULL or UTF-8. - * - * - * One of the (new API) read functions has just returned %G_IO_STATUS_EOF - * (or, in the case of g_io_channel_read_to_end(), %G_IO_STATUS_NORMAL). - * - * - * One of the functions g_io_channel_read_chars() or - * g_io_channel_read_unichar() has returned %G_IO_STATUS_AGAIN or - * %G_IO_STATUS_ERROR. This may be useful in the case of - * %G_CONVERT_ERROR_ILLEGAL_SEQUENCE. - * Returning one of these statuses from g_io_channel_read_line(), - * g_io_channel_read_line_string(), or g_io_channel_read_to_end() - * does not guarantee that the encoding can - * be changed. - * - * - * Channels which do not meet one of the above conditions cannot call - * g_io_channel_seek_position() with an offset of %G_SEEK_CUR, and, if - * they are "seekable", cannot call g_io_channel_write_chars() after - * calling one of the API "read" functions. - * - * Return Value: %G_IO_STATUS_NORMAL if the encoding was successfully set. - **/ -GIOStatus -g_io_channel_set_encoding (GIOChannel *channel, - const gchar *encoding, - GError **error) -{ - GIConv read_cd, write_cd; - gboolean did_encode; - - g_return_val_if_fail (channel != NULL, G_IO_STATUS_ERROR); - g_return_val_if_fail ((error == NULL) || (*error == NULL), G_IO_STATUS_ERROR); - - /* Make sure the encoded buffers are empty */ - - g_return_val_if_fail (!channel->do_encode || !channel->encoded_read_buf || - channel->encoded_read_buf->len == 0, G_IO_STATUS_ERROR); - - if (!channel->use_buffer) - { - g_warning ("Need to set the channel buffered before setting the encoding.\n"); - g_warning ("Assuming this is what you meant and acting accordingly.\n"); - - channel->use_buffer = TRUE; - } - - if (channel->partial_write_buf[0] != '\0') - { - g_warning ("Partial character at end of write buffer not flushed.\n"); - channel->partial_write_buf[0] = '\0'; - } - - did_encode = channel->do_encode; - - if (!encoding || strcmp (encoding, "UTF8") == 0 || strcmp (encoding, "UTF-8") == 0) - { - channel->do_encode = FALSE; - read_cd = write_cd = (GIConv) -1; - } - else - { - gint err = 0; - const gchar *from_enc = NULL, *to_enc = NULL; - - if (channel->is_readable) - { - read_cd = g_iconv_open ("UTF-8", encoding); - - if (read_cd == (GIConv) -1) - { - err = errno; - from_enc = encoding; - to_enc = "UTF-8"; - } - } - else - read_cd = (GIConv) -1; - - if (channel->is_writeable && err == 0) - { - write_cd = g_iconv_open (encoding, "UTF-8"); - - if (write_cd == (GIConv) -1) - { - err = errno; - from_enc = "UTF-8"; - to_enc = encoding; - } - } - else - write_cd = (GIConv) -1; - - if (err != 0) - { - g_assert (from_enc); - g_assert (to_enc); - - if (err == EINVAL) - g_set_error (error, G_CONVERT_ERROR, G_CONVERT_ERROR_NO_CONVERSION, - _("Conversion from character set '%s' to '%s' is not supported"), - from_enc, to_enc); - else - g_set_error (error, G_CONVERT_ERROR, G_CONVERT_ERROR_FAILED, - _("Could not open converter from '%s' to '%s': %s"), - from_enc, to_enc, g_strerror (err)); - - if (read_cd != (GIConv) -1) - g_iconv_close (read_cd); - if (write_cd != (GIConv) -1) - g_iconv_close (write_cd); - - return G_IO_STATUS_ERROR; - } - - channel->do_encode = TRUE; - } - - /* The encoding is ok, so set the fields in channel */ - - if (channel->read_cd != (GIConv) -1) - g_iconv_close (channel->read_cd); - if (channel->write_cd != (GIConv) -1) - g_iconv_close (channel->write_cd); - - if (channel->encoded_read_buf && channel->encoded_read_buf->len > 0) - { - g_assert (!did_encode); /* Encoding UTF-8, NULL doesn't use encoded_read_buf */ - - /* This is just validated UTF-8, so we can copy it back into read_buf - * so it can be encoded in whatever the new encoding is. - */ - - g_string_prepend_len (channel->read_buf, channel->encoded_read_buf->str, - channel->encoded_read_buf->len); - g_string_truncate (channel->encoded_read_buf, 0); - } - - channel->read_cd = read_cd; - channel->write_cd = write_cd; - - g_free (channel->encoding); - channel->encoding = g_strdup (encoding); - - return G_IO_STATUS_NORMAL; -} - -/** - * g_io_channel_get_encoding: - * @channel: a #GIOChannel - * - * Gets the encoding for the input/output of the channel. - * The internal encoding is always UTF-8. The encoding %NULL - * makes the channel safe for binary data. - * - * Return value: A string containing the encoding, this string is - * owned by GLib and must not be freed. - **/ -G_CONST_RETURN gchar* -g_io_channel_get_encoding (GIOChannel *channel) -{ - g_return_val_if_fail (channel != NULL, NULL); - - return channel->encoding; -} - -static GIOStatus -g_io_channel_fill_buffer (GIOChannel *channel, - GError **err) -{ - gsize read_size, cur_len, oldlen; - GIOStatus status; - - if (channel->is_seekable && channel->write_buf && channel->write_buf->len > 0) - { - status = g_io_channel_flush (channel, err); - if (status != G_IO_STATUS_NORMAL) - return status; - } - if (channel->is_seekable && channel->partial_write_buf[0] != '\0') - { - g_warning ("Partial character at end of write buffer not flushed.\n"); - channel->partial_write_buf[0] = '\0'; - } - - if (!channel->read_buf) - channel->read_buf = g_string_sized_new (channel->buf_size); - - cur_len = channel->read_buf->len; - - g_string_set_size (channel->read_buf, channel->read_buf->len + channel->buf_size); - - status = channel->funcs->io_read (channel, channel->read_buf->str + cur_len, - channel->buf_size, &read_size, err); - - g_assert ((status == G_IO_STATUS_NORMAL) || (read_size == 0)); - - g_string_truncate (channel->read_buf, read_size + cur_len); - - if ((status != G_IO_STATUS_NORMAL) && - ((status != G_IO_STATUS_EOF) || (channel->read_buf->len == 0))) - return status; - - g_assert (channel->read_buf->len > 0); - - if (channel->encoded_read_buf) - oldlen = channel->encoded_read_buf->len; - else - { - oldlen = 0; - if (channel->encoding) - channel->encoded_read_buf = g_string_sized_new (channel->buf_size); - } - - if (channel->do_encode) - { - gsize errnum, inbytes_left, outbytes_left; - gchar *inbuf, *outbuf; - int errval; - - g_assert (channel->encoded_read_buf); - -reencode: - - inbytes_left = channel->read_buf->len; - outbytes_left = MAX (channel->read_buf->len, - channel->encoded_read_buf->allocated_len - - channel->encoded_read_buf->len - 1); /* 1 for NULL */ - outbytes_left = MAX (outbytes_left, 6); - - inbuf = channel->read_buf->str; - g_string_set_size (channel->encoded_read_buf, - channel->encoded_read_buf->len + outbytes_left); - outbuf = channel->encoded_read_buf->str + channel->encoded_read_buf->len - - outbytes_left; - - errnum = g_iconv (channel->read_cd, &inbuf, &inbytes_left, - &outbuf, &outbytes_left); - errval = errno; - - g_assert (inbuf + inbytes_left == channel->read_buf->str - + channel->read_buf->len); - g_assert (outbuf + outbytes_left == channel->encoded_read_buf->str - + channel->encoded_read_buf->len); - - g_string_erase (channel->read_buf, 0, - channel->read_buf->len - inbytes_left); - g_string_truncate (channel->encoded_read_buf, - channel->encoded_read_buf->len - outbytes_left); - - if (errnum == (gsize) -1) - { - switch (errval) - { - case EINVAL: - if ((oldlen == channel->encoded_read_buf->len) - && (status == G_IO_STATUS_EOF)) - status = G_IO_STATUS_EOF; - else - status = G_IO_STATUS_NORMAL; - break; - case E2BIG: - /* Buffer size at least 6, wrote at least on character */ - g_assert (inbuf != channel->read_buf->str); - goto reencode; - case EILSEQ: - if (oldlen < channel->encoded_read_buf->len) - status = G_IO_STATUS_NORMAL; - else - { - g_set_error_literal (err, G_CONVERT_ERROR, - G_CONVERT_ERROR_ILLEGAL_SEQUENCE, - _("Invalid byte sequence in conversion input")); - return G_IO_STATUS_ERROR; - } - break; - default: - g_assert (errval != EBADF); /* The converter should be open */ - g_set_error (err, G_CONVERT_ERROR, G_CONVERT_ERROR_FAILED, - _("Error during conversion: %s"), g_strerror (errval)); - return G_IO_STATUS_ERROR; - } - } - g_assert ((status != G_IO_STATUS_NORMAL) - || (channel->encoded_read_buf->len > 0)); - } - else if (channel->encoding) /* UTF-8 */ - { - gchar *nextchar, *lastchar; - - g_assert (channel->encoded_read_buf); - - nextchar = channel->read_buf->str; - lastchar = channel->read_buf->str + channel->read_buf->len; - - while (nextchar < lastchar) - { - gunichar val_char; - - val_char = g_utf8_get_char_validated (nextchar, lastchar - nextchar); - - switch (val_char) - { - case -2: - /* stop, leave partial character in buffer */ - lastchar = nextchar; - break; - case -1: - if (oldlen < channel->encoded_read_buf->len) - status = G_IO_STATUS_NORMAL; - else - { - g_set_error_literal (err, G_CONVERT_ERROR, - G_CONVERT_ERROR_ILLEGAL_SEQUENCE, - _("Invalid byte sequence in conversion input")); - status = G_IO_STATUS_ERROR; - } - lastchar = nextchar; - break; - default: - nextchar = g_utf8_next_char (nextchar); - break; - } - } - - if (lastchar > channel->read_buf->str) - { - gint copy_len = lastchar - channel->read_buf->str; - - g_string_append_len (channel->encoded_read_buf, channel->read_buf->str, - copy_len); - g_string_erase (channel->read_buf, 0, copy_len); - } - } - - return status; -} - -/** - * g_io_channel_read_line: - * @channel: a #GIOChannel - * @str_return: The line read from the #GIOChannel, including the - * line terminator. This data should be freed with g_free() - * when no longer needed. This is a nul-terminated string. - * If a @length of zero is returned, this will be %NULL instead. - * @length: location to store length of the read data, or %NULL - * @terminator_pos: location to store position of line terminator, or %NULL - * @error: A location to return an error of type #GConvertError - * or #GIOChannelError - * - * Reads a line, including the terminating character(s), - * from a #GIOChannel into a newly-allocated string. - * @str_return will contain allocated memory if the return - * is %G_IO_STATUS_NORMAL. - * - * Return value: the status of the operation. - **/ -GIOStatus -g_io_channel_read_line (GIOChannel *channel, - gchar **str_return, - gsize *length, - gsize *terminator_pos, - GError **error) -{ - GIOStatus status; - gsize got_length; - - g_return_val_if_fail (channel != NULL, G_IO_STATUS_ERROR); - g_return_val_if_fail (str_return != NULL, G_IO_STATUS_ERROR); - g_return_val_if_fail ((error == NULL) || (*error == NULL), - G_IO_STATUS_ERROR); - g_return_val_if_fail (channel->is_readable, G_IO_STATUS_ERROR); - - status = g_io_channel_read_line_backend (channel, &got_length, terminator_pos, error); - - if (length) - *length = got_length; - - if (status == G_IO_STATUS_NORMAL) - { - g_assert (USE_BUF (channel)); - *str_return = g_strndup (USE_BUF (channel)->str, got_length); - g_string_erase (USE_BUF (channel), 0, got_length); - } - else - *str_return = NULL; - - return status; -} - -/** - * g_io_channel_read_line_string: - * @channel: a #GIOChannel - * @buffer: a #GString into which the line will be written. - * If @buffer already contains data, the old data will - * be overwritten. - * @terminator_pos: location to store position of line terminator, or %NULL - * @error: a location to store an error of type #GConvertError - * or #GIOChannelError - * - * Reads a line from a #GIOChannel, using a #GString as a buffer. - * - * Return value: the status of the operation. - **/ -GIOStatus -g_io_channel_read_line_string (GIOChannel *channel, - GString *buffer, - gsize *terminator_pos, - GError **error) -{ - gsize length; - GIOStatus status; - - g_return_val_if_fail (channel != NULL, G_IO_STATUS_ERROR); - g_return_val_if_fail (buffer != NULL, G_IO_STATUS_ERROR); - g_return_val_if_fail ((error == NULL) || (*error == NULL), - G_IO_STATUS_ERROR); - g_return_val_if_fail (channel->is_readable, G_IO_STATUS_ERROR); - - if (buffer->len > 0) - g_string_truncate (buffer, 0); /* clear out the buffer */ - - status = g_io_channel_read_line_backend (channel, &length, terminator_pos, error); - - if (status == G_IO_STATUS_NORMAL) - { - g_assert (USE_BUF (channel)); - g_string_append_len (buffer, USE_BUF (channel)->str, length); - g_string_erase (USE_BUF (channel), 0, length); - } - - return status; -} - - -static GIOStatus -g_io_channel_read_line_backend (GIOChannel *channel, - gsize *length, - gsize *terminator_pos, - GError **error) -{ - GIOStatus status; - gsize checked_to, line_term_len, line_length, got_term_len; - gboolean first_time = TRUE; - - if (!channel->use_buffer) - { - /* Can't do a raw read in read_line */ - g_set_error_literal (error, G_CONVERT_ERROR, G_CONVERT_ERROR_FAILED, - _("Can't do a raw read in g_io_channel_read_line_string")); - return G_IO_STATUS_ERROR; - } - - status = G_IO_STATUS_NORMAL; - - if (channel->line_term) - line_term_len = channel->line_term_len; - else - line_term_len = 3; - /* This value used for setting checked_to, it's the longest of the four - * we autodetect for. - */ - - checked_to = 0; - - while (TRUE) - { - gchar *nextchar, *lastchar; - GString *use_buf; - - if (!first_time || (BUF_LEN (USE_BUF (channel)) == 0)) - { -read_again: - status = g_io_channel_fill_buffer (channel, error); - switch (status) - { - case G_IO_STATUS_NORMAL: - if (BUF_LEN (USE_BUF (channel)) == 0) - /* Can happen when using conversion and only read - * part of a character - */ - { - first_time = FALSE; - continue; - } - break; - case G_IO_STATUS_EOF: - if (BUF_LEN (USE_BUF (channel)) == 0) - { - if (length) - *length = 0; - - if (channel->encoding && channel->read_buf->len != 0) - { - g_set_error_literal (error, G_CONVERT_ERROR, - G_CONVERT_ERROR_PARTIAL_INPUT, - _("Leftover unconverted data in " - "read buffer")); - return G_IO_STATUS_ERROR; - } - else - return G_IO_STATUS_EOF; - } - break; - default: - if (length) - *length = 0; - return status; - } - } - - g_assert (BUF_LEN (USE_BUF (channel)) != 0); - - use_buf = USE_BUF (channel); /* The buffer has been created by this point */ - - first_time = FALSE; - - lastchar = use_buf->str + use_buf->len; - - for (nextchar = use_buf->str + checked_to; nextchar < lastchar; - channel->encoding ? nextchar = g_utf8_next_char (nextchar) : nextchar++) - { - if (channel->line_term) - { - if (memcmp (channel->line_term, nextchar, line_term_len) == 0) - { - line_length = nextchar - use_buf->str; - got_term_len = line_term_len; - goto done; - } - } - else /* auto detect */ - { - switch (*nextchar) - { - case '\n': /* unix */ - line_length = nextchar - use_buf->str; - got_term_len = 1; - goto done; - case '\r': /* Warning: do not use with sockets */ - line_length = nextchar - use_buf->str; - if ((nextchar == lastchar - 1) && (status != G_IO_STATUS_EOF) - && (lastchar == use_buf->str + use_buf->len)) - goto read_again; /* Try to read more data */ - if ((nextchar < lastchar - 1) && (*(nextchar + 1) == '\n')) /* dos */ - got_term_len = 2; - else /* mac */ - got_term_len = 1; - goto done; - case '\xe2': /* Unicode paragraph separator */ - if (strncmp ("\xe2\x80\xa9", nextchar, 3) == 0) - { - line_length = nextchar - use_buf->str; - got_term_len = 3; - goto done; - } - break; - case '\0': /* Embeded null in input */ - line_length = nextchar - use_buf->str; - got_term_len = 1; - goto done; - default: /* no match */ - break; - } - } - } - - /* If encoding != NULL, valid UTF-8, didn't overshoot */ - g_assert (nextchar == lastchar); - - /* Check for EOF */ - - if (status == G_IO_STATUS_EOF) - { - if (channel->encoding && channel->read_buf->len > 0) - { - g_set_error_literal (error, G_CONVERT_ERROR, G_CONVERT_ERROR_PARTIAL_INPUT, - _("Channel terminates in a partial character")); - return G_IO_STATUS_ERROR; - } - line_length = use_buf->len; - got_term_len = 0; - break; - } - - if (use_buf->len > line_term_len - 1) - checked_to = use_buf->len - (line_term_len - 1); - else - checked_to = 0; - } - -done: - - if (terminator_pos) - *terminator_pos = line_length; - - if (length) - *length = line_length + got_term_len; - - return G_IO_STATUS_NORMAL; -} - -/** - * g_io_channel_read_to_end: - * @channel: a #GIOChannel - * @str_return: Location to store a pointer to a string holding - * the remaining data in the #GIOChannel. This data should - * be freed with g_free() when no longer needed. This - * data is terminated by an extra nul character, but there - * may be other nuls in the intervening data. - * @length: location to store length of the data - * @error: location to return an error of type #GConvertError - * or #GIOChannelError - * - * Reads all the remaining data from the file. - * - * Return value: %G_IO_STATUS_NORMAL on success. - * This function never returns %G_IO_STATUS_EOF. - **/ -GIOStatus -g_io_channel_read_to_end (GIOChannel *channel, - gchar **str_return, - gsize *length, - GError **error) -{ - GIOStatus status; - - g_return_val_if_fail (channel != NULL, G_IO_STATUS_ERROR); - g_return_val_if_fail ((error == NULL) || (*error == NULL), - G_IO_STATUS_ERROR); - g_return_val_if_fail (channel->is_readable, G_IO_STATUS_ERROR); - - if (str_return) - *str_return = NULL; - if (length) - *length = 0; - - if (!channel->use_buffer) - { - g_set_error_literal (error, G_CONVERT_ERROR, G_CONVERT_ERROR_FAILED, - _("Can't do a raw read in g_io_channel_read_to_end")); - return G_IO_STATUS_ERROR; - } - - do - status = g_io_channel_fill_buffer (channel, error); - while (status == G_IO_STATUS_NORMAL); - - if (status != G_IO_STATUS_EOF) - return status; - - if (channel->encoding && channel->read_buf->len > 0) - { - g_set_error_literal (error, G_CONVERT_ERROR, G_CONVERT_ERROR_PARTIAL_INPUT, - _("Channel terminates in a partial character")); - return G_IO_STATUS_ERROR; - } - - if (USE_BUF (channel) == NULL) - { - /* length is already set to zero */ - if (str_return) - *str_return = g_strdup (""); - } - else - { - if (length) - *length = USE_BUF (channel)->len; - - if (str_return) - *str_return = g_string_free (USE_BUF (channel), FALSE); - else - g_string_free (USE_BUF (channel), TRUE); - - if (channel->encoding) - channel->encoded_read_buf = NULL; - else - channel->read_buf = NULL; - } - - return G_IO_STATUS_NORMAL; -} - -/** - * g_io_channel_read_chars: - * @channel: a #GIOChannel - * @buf: a buffer to read data into - * @count: the size of the buffer. Note that the buffer may - * not be complelely filled even if there is data - * in the buffer if the remaining data is not a - * complete character. - * @bytes_read: The number of bytes read. This may be zero even on - * success if count < 6 and the channel's encoding is non-%NULL. - * This indicates that the next UTF-8 character is too wide for - * the buffer. - * @error: a location to return an error of type #GConvertError - * or #GIOChannelError. - * - * Replacement for g_io_channel_read() with the new API. - * - * Return value: the status of the operation. - **/ -GIOStatus -g_io_channel_read_chars (GIOChannel *channel, - gchar *buf, - gsize count, - gsize *bytes_read, - GError **error) -{ - GIOStatus status; - gsize got_bytes; - - g_return_val_if_fail (channel != NULL, G_IO_STATUS_ERROR); - g_return_val_if_fail ((error == NULL) || (*error == NULL), - G_IO_STATUS_ERROR); - g_return_val_if_fail (channel->is_readable, G_IO_STATUS_ERROR); - - if (count == 0) - { - *bytes_read = 0; - return G_IO_STATUS_NORMAL; - } - g_return_val_if_fail (buf != NULL, G_IO_STATUS_ERROR); - - if (!channel->use_buffer) - { - gsize tmp_bytes; - - g_assert (!channel->read_buf || channel->read_buf->len == 0); - - status = channel->funcs->io_read (channel, buf, count, &tmp_bytes, error); - - if (bytes_read) - *bytes_read = tmp_bytes; - - return status; - } - - status = G_IO_STATUS_NORMAL; - - while (BUF_LEN (USE_BUF (channel)) < count && status == G_IO_STATUS_NORMAL) - status = g_io_channel_fill_buffer (channel, error); - - /* Only return an error if we have no data */ - - if (BUF_LEN (USE_BUF (channel)) == 0) - { - g_assert (status != G_IO_STATUS_NORMAL); - - if (status == G_IO_STATUS_EOF && channel->encoding - && BUF_LEN (channel->read_buf) > 0) - { - g_set_error_literal (error, G_CONVERT_ERROR, - G_CONVERT_ERROR_PARTIAL_INPUT, - _("Leftover unconverted data in read buffer")); - status = G_IO_STATUS_ERROR; - } - - if (bytes_read) - *bytes_read = 0; - - return status; - } - - if (status == G_IO_STATUS_ERROR) - g_clear_error (error); - - got_bytes = MIN (count, BUF_LEN (USE_BUF (channel))); - - g_assert (got_bytes > 0); - - if (channel->encoding) - /* Don't validate for NULL encoding, binary safe */ - { - gchar *nextchar, *prevchar; - - g_assert (USE_BUF (channel) == channel->encoded_read_buf); - - nextchar = channel->encoded_read_buf->str; - - do - { - prevchar = nextchar; - nextchar = g_utf8_next_char (nextchar); - g_assert (nextchar != prevchar); /* Possible for *prevchar of -1 or -2 */ - } - while (nextchar < channel->encoded_read_buf->str + got_bytes); - - if (nextchar > channel->encoded_read_buf->str + got_bytes) - got_bytes = prevchar - channel->encoded_read_buf->str; - - g_assert (got_bytes > 0 || count < 6); - } - - memcpy (buf, USE_BUF (channel)->str, got_bytes); - g_string_erase (USE_BUF (channel), 0, got_bytes); - - if (bytes_read) - *bytes_read = got_bytes; - - return G_IO_STATUS_NORMAL; -} - -/** - * g_io_channel_read_unichar: - * @channel: a #GIOChannel - * @thechar: a location to return a character - * @error: a location to return an error of type #GConvertError - * or #GIOChannelError - * - * Reads a Unicode character from @channel. - * This function cannot be called on a channel with %NULL encoding. - * - * Return value: a #GIOStatus - **/ -GIOStatus -g_io_channel_read_unichar (GIOChannel *channel, - gunichar *thechar, - GError **error) -{ - GIOStatus status = G_IO_STATUS_NORMAL; - - g_return_val_if_fail (channel != NULL, G_IO_STATUS_ERROR); - g_return_val_if_fail (channel->encoding != NULL, G_IO_STATUS_ERROR); - g_return_val_if_fail ((error == NULL) || (*error == NULL), - G_IO_STATUS_ERROR); - g_return_val_if_fail (channel->is_readable, G_IO_STATUS_ERROR); - - while (BUF_LEN (channel->encoded_read_buf) == 0 && status == G_IO_STATUS_NORMAL) - status = g_io_channel_fill_buffer (channel, error); - - /* Only return an error if we have no data */ - - if (BUF_LEN (USE_BUF (channel)) == 0) - { - g_assert (status != G_IO_STATUS_NORMAL); - - if (status == G_IO_STATUS_EOF && BUF_LEN (channel->read_buf) > 0) - { - g_set_error_literal (error, G_CONVERT_ERROR, - G_CONVERT_ERROR_PARTIAL_INPUT, - _("Leftover unconverted data in read buffer")); - status = G_IO_STATUS_ERROR; - } - - if (thechar) - *thechar = (gunichar) -1; - - return status; - } - - if (status == G_IO_STATUS_ERROR) - g_clear_error (error); - - if (thechar) - *thechar = g_utf8_get_char (channel->encoded_read_buf->str); - - g_string_erase (channel->encoded_read_buf, 0, - g_utf8_next_char (channel->encoded_read_buf->str) - - channel->encoded_read_buf->str); - - return G_IO_STATUS_NORMAL; -} - -/** - * g_io_channel_write_chars: - * @channel: a #GIOChannel - * @buf: a buffer to write data from - * @count: the size of the buffer. If -1, the buffer - * is taken to be a nul-terminated string. - * @bytes_written: The number of bytes written. This can be nonzero - * even if the return value is not %G_IO_STATUS_NORMAL. - * If the return value is %G_IO_STATUS_NORMAL and the - * channel is blocking, this will always be equal - * to @count if @count >= 0. - * @error: a location to return an error of type #GConvertError - * or #GIOChannelError - * - * Replacement for g_io_channel_write() with the new API. - * - * On seekable channels with encodings other than %NULL or UTF-8, generic - * mixing of reading and writing is not allowed. A call to g_io_channel_write_chars () - * may only be made on a channel from which data has been read in the - * cases described in the documentation for g_io_channel_set_encoding (). - * - * Return value: the status of the operation. - **/ -GIOStatus -g_io_channel_write_chars (GIOChannel *channel, - const gchar *buf, - gssize count, - gsize *bytes_written, - GError **error) -{ - GIOStatus status; - gssize wrote_bytes = 0; - - g_return_val_if_fail (channel != NULL, G_IO_STATUS_ERROR); - g_return_val_if_fail ((error == NULL) || (*error == NULL), - G_IO_STATUS_ERROR); - g_return_val_if_fail (channel->is_writeable, G_IO_STATUS_ERROR); - - if ((count < 0) && buf) - count = strlen (buf); - - if (count == 0) - { - if (bytes_written) - *bytes_written = 0; - return G_IO_STATUS_NORMAL; - } - - g_return_val_if_fail (buf != NULL, G_IO_STATUS_ERROR); - g_return_val_if_fail (count > 0, G_IO_STATUS_ERROR); - - /* Raw write case */ - - if (!channel->use_buffer) - { - gsize tmp_bytes; - - g_assert (!channel->write_buf || channel->write_buf->len == 0); - g_assert (channel->partial_write_buf[0] == '\0'); - - status = channel->funcs->io_write (channel, buf, count, &tmp_bytes, error); - - if (bytes_written) - *bytes_written = tmp_bytes; - - return status; - } - - /* General case */ - - if (channel->is_seekable && (( BUF_LEN (channel->read_buf) > 0) - || (BUF_LEN (channel->encoded_read_buf) > 0))) - { - if (channel->do_encode && BUF_LEN (channel->encoded_read_buf) > 0) - { - g_warning("Mixed reading and writing not allowed on encoded files"); - return G_IO_STATUS_ERROR; - } - status = g_io_channel_seek_position (channel, 0, G_SEEK_CUR, error); - if (status != G_IO_STATUS_NORMAL) - { - if (bytes_written) - *bytes_written = 0; - return status; - } - } - - if (!channel->write_buf) - channel->write_buf = g_string_sized_new (channel->buf_size); - - while (wrote_bytes < count) - { - gsize space_in_buf; - - /* If the buffer is full, try a write immediately. In - * the nonblocking case, this prevents the user from - * writing just a little bit to the buffer every time - * and never receiving an EAGAIN. - */ - - if (channel->write_buf->len >= channel->buf_size - MAX_CHAR_SIZE) - { - gsize did_write = 0, this_time; - - do - { - status = channel->funcs->io_write (channel, channel->write_buf->str - + did_write, channel->write_buf->len - - did_write, &this_time, error); - did_write += this_time; - } - while (status == G_IO_STATUS_NORMAL && - did_write < MIN (channel->write_buf->len, MAX_CHAR_SIZE)); - - g_string_erase (channel->write_buf, 0, did_write); - - if (status != G_IO_STATUS_NORMAL) - { - if (status == G_IO_STATUS_AGAIN && wrote_bytes > 0) - status = G_IO_STATUS_NORMAL; - if (bytes_written) - *bytes_written = wrote_bytes; - return status; - } - } - - space_in_buf = MAX (channel->buf_size, channel->write_buf->allocated_len - 1) - - channel->write_buf->len; /* 1 for NULL */ - - /* This is only true because g_io_channel_set_buffer_size () - * ensures that channel->buf_size >= MAX_CHAR_SIZE. - */ - g_assert (space_in_buf >= MAX_CHAR_SIZE); - - if (!channel->encoding) - { - gssize write_this = MIN (space_in_buf, count - wrote_bytes); - - g_string_append_len (channel->write_buf, buf, write_this); - buf += write_this; - wrote_bytes += write_this; - } - else - { - const gchar *from_buf; - gsize from_buf_len, from_buf_old_len, left_len; - gsize err; - gint errnum; - - if (channel->partial_write_buf[0] != '\0') - { - g_assert (wrote_bytes == 0); - - from_buf = channel->partial_write_buf; - from_buf_old_len = strlen (channel->partial_write_buf); - g_assert (from_buf_old_len > 0); - from_buf_len = MIN (6, from_buf_old_len + count); - - memcpy (channel->partial_write_buf + from_buf_old_len, buf, - from_buf_len - from_buf_old_len); - } - else - { - from_buf = buf; - from_buf_len = count - wrote_bytes; - from_buf_old_len = 0; - } - -reconvert: - - if (!channel->do_encode) /* UTF-8 encoding */ - { - const gchar *badchar; - gsize try_len = MIN (from_buf_len, space_in_buf); - - /* UTF-8, just validate, emulate g_iconv */ - - if (!g_utf8_validate (from_buf, try_len, &badchar)) - { - gunichar try_char; - gsize incomplete_len = from_buf + try_len - badchar; - - left_len = from_buf + from_buf_len - badchar; - - try_char = g_utf8_get_char_validated (badchar, incomplete_len); - - switch (try_char) - { - case -2: - g_assert (incomplete_len < 6); - if (try_len == from_buf_len) - { - errnum = EINVAL; - err = (gsize) -1; - } - else - { - errnum = 0; - err = (gsize) 0; - } - break; - case -1: - g_warning ("Invalid UTF-8 passed to g_io_channel_write_chars()."); - /* FIXME bail here? */ - errnum = EILSEQ; - err = (gsize) -1; - break; - default: - g_assert_not_reached (); - err = (gsize) -1; - errnum = 0; /* Don't confunse the compiler */ - } - } - else - { - err = (gsize) 0; - errnum = 0; - left_len = from_buf_len - try_len; - } - - g_string_append_len (channel->write_buf, from_buf, - from_buf_len - left_len); - from_buf += from_buf_len - left_len; - } - else - { - gchar *outbuf; - - left_len = from_buf_len; - g_string_set_size (channel->write_buf, channel->write_buf->len - + space_in_buf); - outbuf = channel->write_buf->str + channel->write_buf->len - - space_in_buf; - err = g_iconv (channel->write_cd, (gchar **) &from_buf, &left_len, - &outbuf, &space_in_buf); - errnum = errno; - g_string_truncate (channel->write_buf, channel->write_buf->len - - space_in_buf); - } - - if (err == (gsize) -1) - { - switch (errnum) - { - case EINVAL: - g_assert (left_len < 6); - - if (from_buf_old_len == 0) - { - /* Not from partial_write_buf */ - - memcpy (channel->partial_write_buf, from_buf, left_len); - channel->partial_write_buf[left_len] = '\0'; - if (bytes_written) - *bytes_written = count; - return G_IO_STATUS_NORMAL; - } - - /* Working in partial_write_buf */ - - if (left_len == from_buf_len) - { - /* Didn't convert anything, must still have - * less than a full character - */ - - g_assert (count == from_buf_len - from_buf_old_len); - - channel->partial_write_buf[from_buf_len] = '\0'; - - if (bytes_written) - *bytes_written = count; - - return G_IO_STATUS_NORMAL; - } - - g_assert (from_buf_len - left_len >= from_buf_old_len); - - /* We converted all the old data. This is fine */ - - break; - case E2BIG: - if (from_buf_len == left_len) - { - /* Nothing was written, add enough space for - * at least one character. - */ - space_in_buf += MAX_CHAR_SIZE; - goto reconvert; - } - break; - case EILSEQ: - g_set_error_literal (error, G_CONVERT_ERROR, - G_CONVERT_ERROR_ILLEGAL_SEQUENCE, - _("Invalid byte sequence in conversion input")); - if (from_buf_old_len > 0 && from_buf_len == left_len) - g_warning ("Illegal sequence due to partial character " - "at the end of a previous write.\n"); - else - wrote_bytes += from_buf_len - left_len - from_buf_old_len; - if (bytes_written) - *bytes_written = wrote_bytes; - channel->partial_write_buf[0] = '\0'; - return G_IO_STATUS_ERROR; - default: - g_set_error (error, G_CONVERT_ERROR, G_CONVERT_ERROR_FAILED, - _("Error during conversion: %s"), g_strerror (errnum)); - if (from_buf_len >= left_len + from_buf_old_len) - wrote_bytes += from_buf_len - left_len - from_buf_old_len; - if (bytes_written) - *bytes_written = wrote_bytes; - channel->partial_write_buf[0] = '\0'; - return G_IO_STATUS_ERROR; - } - } - - g_assert (from_buf_len - left_len >= from_buf_old_len); - - wrote_bytes += from_buf_len - left_len - from_buf_old_len; - - if (from_buf_old_len > 0) - { - /* We were working in partial_write_buf */ - - buf += from_buf_len - left_len - from_buf_old_len; - channel->partial_write_buf[0] = '\0'; - } - else - buf = from_buf; - } - } - - if (bytes_written) - *bytes_written = count; - - return G_IO_STATUS_NORMAL; -} - -/** - * g_io_channel_write_unichar: - * @channel: a #GIOChannel - * @thechar: a character - * @error: location to return an error of type #GConvertError - * or #GIOChannelError - * - * Writes a Unicode character to @channel. - * This function cannot be called on a channel with %NULL encoding. - * - * Return value: a #GIOStatus - **/ -GIOStatus -g_io_channel_write_unichar (GIOChannel *channel, - gunichar thechar, - GError **error) -{ - GIOStatus status; - gchar static_buf[6]; - gsize char_len, wrote_len; - - g_return_val_if_fail (channel != NULL, G_IO_STATUS_ERROR); - g_return_val_if_fail (channel->encoding != NULL, G_IO_STATUS_ERROR); - g_return_val_if_fail ((error == NULL) || (*error == NULL), - G_IO_STATUS_ERROR); - g_return_val_if_fail (channel->is_writeable, G_IO_STATUS_ERROR); - - char_len = g_unichar_to_utf8 (thechar, static_buf); - - if (channel->partial_write_buf[0] != '\0') - { - g_warning ("Partial charater written before writing unichar.\n"); - channel->partial_write_buf[0] = '\0'; - } - - status = g_io_channel_write_chars (channel, static_buf, - char_len, &wrote_len, error); - - /* We validate UTF-8, so we can't get a partial write */ - - g_assert (wrote_len == char_len || status != G_IO_STATUS_NORMAL); - - return status; -} - -/** - * g_io_channel_error_quark: - * - * Return value: the quark used as %G_IO_CHANNEL_ERROR - **/ -GQuark -g_io_channel_error_quark (void) -{ - return g_quark_from_static_string ("g-io-channel-error-quark"); -} - -#define __G_IOCHANNEL_C__ -#include "galiasdef.c" diff --git a/lib/win32/glib-2.20.4/glib/giochannel.h b/lib/win32/glib-2.20.4/glib/giochannel.h deleted file mode 100644 index 2a40aa29ae60e..0000000000000 --- a/lib/win32/glib-2.20.4/glib/giochannel.h +++ /dev/null @@ -1,366 +0,0 @@ -/* GLIB - Library of useful routines for C programming - * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library 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 - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ - -/* - * Modified by the GLib Team and others 1997-2000. See the AUTHORS - * file for a list of people on the GLib Team. See the ChangeLog - * files for a list of changes. These files are distributed with - * GLib at ftp://ftp.gtk.org/pub/gtk/. - */ - -#if defined(G_DISABLE_SINGLE_INCLUDES) && !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION) -#error "Only can be included directly." -#endif - -#ifndef __G_IOCHANNEL_H__ -#define __G_IOCHANNEL_H__ - -#include -#include -#include - -G_BEGIN_DECLS - -/* GIOChannel - */ - -typedef struct _GIOChannel GIOChannel; -typedef struct _GIOFuncs GIOFuncs; - -typedef enum -{ - G_IO_ERROR_NONE, - G_IO_ERROR_AGAIN, - G_IO_ERROR_INVAL, - G_IO_ERROR_UNKNOWN -} GIOError; - -#define G_IO_CHANNEL_ERROR g_io_channel_error_quark() - -typedef enum -{ - /* Derived from errno */ - G_IO_CHANNEL_ERROR_FBIG, - G_IO_CHANNEL_ERROR_INVAL, - G_IO_CHANNEL_ERROR_IO, - G_IO_CHANNEL_ERROR_ISDIR, - G_IO_CHANNEL_ERROR_NOSPC, - G_IO_CHANNEL_ERROR_NXIO, - G_IO_CHANNEL_ERROR_OVERFLOW, - G_IO_CHANNEL_ERROR_PIPE, - /* Other */ - G_IO_CHANNEL_ERROR_FAILED -} GIOChannelError; - -typedef enum -{ - G_IO_STATUS_ERROR, - G_IO_STATUS_NORMAL, - G_IO_STATUS_EOF, - G_IO_STATUS_AGAIN -} GIOStatus; - -typedef enum -{ - G_SEEK_CUR, - G_SEEK_SET, - G_SEEK_END -} GSeekType; - -typedef enum -{ - G_IO_IN GLIB_SYSDEF_POLLIN, - G_IO_OUT GLIB_SYSDEF_POLLOUT, - G_IO_PRI GLIB_SYSDEF_POLLPRI, - G_IO_ERR GLIB_SYSDEF_POLLERR, - G_IO_HUP GLIB_SYSDEF_POLLHUP, - G_IO_NVAL GLIB_SYSDEF_POLLNVAL -} GIOCondition; - -typedef enum -{ - G_IO_FLAG_APPEND = 1 << 0, - G_IO_FLAG_NONBLOCK = 1 << 1, - G_IO_FLAG_IS_READABLE = 1 << 2, /* Read only flag */ - G_IO_FLAG_IS_WRITEABLE = 1 << 3, /* Read only flag */ - G_IO_FLAG_IS_SEEKABLE = 1 << 4, /* Read only flag */ - G_IO_FLAG_MASK = (1 << 5) - 1, - G_IO_FLAG_GET_MASK = G_IO_FLAG_MASK, - G_IO_FLAG_SET_MASK = G_IO_FLAG_APPEND | G_IO_FLAG_NONBLOCK -} GIOFlags; - -struct _GIOChannel -{ - /*< private >*/ - gint ref_count; - GIOFuncs *funcs; - - gchar *encoding; - GIConv read_cd; - GIConv write_cd; - gchar *line_term; /* String which indicates the end of a line of text */ - guint line_term_len; /* So we can have null in the line term */ - - gsize buf_size; - GString *read_buf; /* Raw data from the channel */ - GString *encoded_read_buf; /* Channel data converted to UTF-8 */ - GString *write_buf; /* Data ready to be written to the file */ - gchar partial_write_buf[6]; /* UTF-8 partial characters, null terminated */ - - /* Group the flags together, immediately after partial_write_buf, to save memory */ - - guint use_buffer : 1; /* The encoding uses the buffers */ - guint do_encode : 1; /* The encoding uses the GIConv coverters */ - guint close_on_unref : 1; /* Close the channel on final unref */ - guint is_readable : 1; /* Cached GIOFlag */ - guint is_writeable : 1; /* ditto */ - guint is_seekable : 1; /* ditto */ - - gpointer reserved1; - gpointer reserved2; -}; - -typedef gboolean (*GIOFunc) (GIOChannel *source, - GIOCondition condition, - gpointer data); -struct _GIOFuncs -{ - GIOStatus (*io_read) (GIOChannel *channel, - gchar *buf, - gsize count, - gsize *bytes_read, - GError **err); - GIOStatus (*io_write) (GIOChannel *channel, - const gchar *buf, - gsize count, - gsize *bytes_written, - GError **err); - GIOStatus (*io_seek) (GIOChannel *channel, - gint64 offset, - GSeekType type, - GError **err); - GIOStatus (*io_close) (GIOChannel *channel, - GError **err); - GSource* (*io_create_watch) (GIOChannel *channel, - GIOCondition condition); - void (*io_free) (GIOChannel *channel); - GIOStatus (*io_set_flags) (GIOChannel *channel, - GIOFlags flags, - GError **err); - GIOFlags (*io_get_flags) (GIOChannel *channel); -}; - -void g_io_channel_init (GIOChannel *channel); -GIOChannel *g_io_channel_ref (GIOChannel *channel); -void g_io_channel_unref (GIOChannel *channel); - -#ifndef G_DISABLE_DEPRECATED -GIOError g_io_channel_read (GIOChannel *channel, - gchar *buf, - gsize count, - gsize *bytes_read); -GIOError g_io_channel_write (GIOChannel *channel, - const gchar *buf, - gsize count, - gsize *bytes_written); -GIOError g_io_channel_seek (GIOChannel *channel, - gint64 offset, - GSeekType type); -void g_io_channel_close (GIOChannel *channel); -#endif /* G_DISABLE_DEPRECATED */ - -GIOStatus g_io_channel_shutdown (GIOChannel *channel, - gboolean flush, - GError **err); -guint g_io_add_watch_full (GIOChannel *channel, - gint priority, - GIOCondition condition, - GIOFunc func, - gpointer user_data, - GDestroyNotify notify); -GSource * g_io_create_watch (GIOChannel *channel, - GIOCondition condition); -guint g_io_add_watch (GIOChannel *channel, - GIOCondition condition, - GIOFunc func, - gpointer user_data); - -/* character encoding conversion involved functions. - */ - -void g_io_channel_set_buffer_size (GIOChannel *channel, - gsize size); -gsize g_io_channel_get_buffer_size (GIOChannel *channel); -GIOCondition g_io_channel_get_buffer_condition (GIOChannel *channel); -GIOStatus g_io_channel_set_flags (GIOChannel *channel, - GIOFlags flags, - GError **error); -GIOFlags g_io_channel_get_flags (GIOChannel *channel); -void g_io_channel_set_line_term (GIOChannel *channel, - const gchar *line_term, - gint length); -G_CONST_RETURN gchar* g_io_channel_get_line_term (GIOChannel *channel, - gint *length); -void g_io_channel_set_buffered (GIOChannel *channel, - gboolean buffered); -gboolean g_io_channel_get_buffered (GIOChannel *channel); -GIOStatus g_io_channel_set_encoding (GIOChannel *channel, - const gchar *encoding, - GError **error); -G_CONST_RETURN gchar* g_io_channel_get_encoding (GIOChannel *channel); -void g_io_channel_set_close_on_unref (GIOChannel *channel, - gboolean do_close); -gboolean g_io_channel_get_close_on_unref (GIOChannel *channel); - - -GIOStatus g_io_channel_flush (GIOChannel *channel, - GError **error); -GIOStatus g_io_channel_read_line (GIOChannel *channel, - gchar **str_return, - gsize *length, - gsize *terminator_pos, - GError **error); -GIOStatus g_io_channel_read_line_string (GIOChannel *channel, - GString *buffer, - gsize *terminator_pos, - GError **error); -GIOStatus g_io_channel_read_to_end (GIOChannel *channel, - gchar **str_return, - gsize *length, - GError **error); -GIOStatus g_io_channel_read_chars (GIOChannel *channel, - gchar *buf, - gsize count, - gsize *bytes_read, - GError **error); -GIOStatus g_io_channel_read_unichar (GIOChannel *channel, - gunichar *thechar, - GError **error); -GIOStatus g_io_channel_write_chars (GIOChannel *channel, - const gchar *buf, - gssize count, - gsize *bytes_written, - GError **error); -GIOStatus g_io_channel_write_unichar (GIOChannel *channel, - gunichar thechar, - GError **error); -GIOStatus g_io_channel_seek_position (GIOChannel *channel, - gint64 offset, - GSeekType type, - GError **error); -#ifdef G_OS_WIN32 -#define g_io_channel_new_file g_io_channel_new_file_utf8 -#endif - -GIOChannel* g_io_channel_new_file (const gchar *filename, - const gchar *mode, - GError **error); - -/* Error handling */ - -GQuark g_io_channel_error_quark (void); -GIOChannelError g_io_channel_error_from_errno (gint en); - -/* On Unix, IO channels created with this function for any file - * descriptor or socket. - * - * On Win32, this can be used either for files opened with the MSVCRT - * (the Microsoft run-time C library) _open() or _pipe, including file - * descriptors 0, 1 and 2 (corresponding to stdin, stdout and stderr), - * or for Winsock SOCKETs. If the parameter is a legal file - * descriptor, it is assumed to be such, otherwise it should be a - * SOCKET. This relies on SOCKETs and file descriptors not - * overlapping. If you want to be certain, call either - * g_io_channel_win32_new_fd() or g_io_channel_win32_new_socket() - * instead as appropriate. - * - * The term file descriptor as used in the context of Win32 refers to - * the emulated Unix-like file descriptors MSVCRT provides. The native - * corresponding concept is file HANDLE. There isn't as of yet a way to - * get GIOChannels for Win32 file HANDLEs. - */ -GIOChannel* g_io_channel_unix_new (int fd); -gint g_io_channel_unix_get_fd (GIOChannel *channel); - - -/* Hook for GClosure / GSource integration. Don't touch */ -GLIB_VAR GSourceFuncs g_io_watch_funcs; - -#ifdef G_OS_WIN32 - -/* You can use this "pseudo file descriptor" in a GPollFD to add - * polling for Windows messages. GTK applications should not do that. - */ - -#define G_WIN32_MSG_HANDLE 19981206 - -/* Use this to get a GPollFD from a GIOChannel, so that you can call - * g_io_channel_win32_poll(). After calling this you should only use - * g_io_channel_read() to read from the GIOChannel, i.e. never read() - * from the underlying file descriptor. For SOCKETs, it is possible to call - * recv(). - */ -void g_io_channel_win32_make_pollfd (GIOChannel *channel, - GIOCondition condition, - GPollFD *fd); - -/* This can be used to wait a until at least one of the channels is readable. - * On Unix you would do a select() on the file descriptors of the channels. - */ -gint g_io_channel_win32_poll (GPollFD *fds, - gint n_fds, - gint timeout_); - -/* Create an IO channel for Windows messages for window handle hwnd. */ -#if GLIB_SIZEOF_VOID_P == 8 -/* We use gsize here so that it is still an integer type and not a - * pointer, like the guint in the traditional prototype. We can't use - * intptr_t as that is not portable enough. - */ -GIOChannel *g_io_channel_win32_new_messages (gsize hwnd); -#else -GIOChannel *g_io_channel_win32_new_messages (guint hwnd); -#endif - -/* Create an IO channel for C runtime (emulated Unix-like) file - * descriptors. After calling g_io_add_watch() on a IO channel - * returned by this function, you shouldn't call read() on the file - * descriptor. This is because adding polling for a file descriptor is - * implemented on Win32 by starting a thread that sits blocked in a - * read() from the file descriptor most of the time. All reads from - * the file descriptor should be done by this internal GLib - * thread. Your code should call only g_io_channel_read_chars(). - */ -GIOChannel* g_io_channel_win32_new_fd (gint fd); - -/* Get the C runtime file descriptor of a channel. */ -gint g_io_channel_win32_get_fd (GIOChannel *channel); - -/* Create an IO channel for a winsock socket. The parameter should be - * a SOCKET. Contrary to IO channels for file descriptors (on *Win32), - * you can use normal recv() or recvfrom() on sockets even if GLib - * is polling them. - */ -GIOChannel *g_io_channel_win32_new_socket (gint socket); - -#endif - -G_END_DECLS - -#endif /* __G_IOCHANNEL_H__ */ diff --git a/lib/win32/glib-2.20.4/glib/giounix.c b/lib/win32/glib-2.20.4/glib/giounix.c deleted file mode 100644 index eaff939ae9c42..0000000000000 --- a/lib/win32/glib-2.20.4/glib/giounix.c +++ /dev/null @@ -1,609 +0,0 @@ -/* GLIB - Library of useful routines for C programming - * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald - * - * giounix.c: IO Channels using unix file descriptors - * Copyright 1998 Owen Taylor - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library 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 - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ - -/* - * Modified by the GLib Team and others 1997-2000. See the AUTHORS - * file for a list of people on the GLib Team. See the ChangeLog - * files for a list of changes. These files are distributed with - * GLib at ftp://ftp.gtk.org/pub/gtk/. - */ - -/* - * MT safe - */ - -#include "config.h" - -#define _POSIX_SOURCE /* for SSIZE_MAX */ - -#include -#include -#include -#include -#include -#include -#include - -#include "glib.h" -#include "galias.h" - -/* - * Unix IO Channels - */ - -typedef struct _GIOUnixChannel GIOUnixChannel; -typedef struct _GIOUnixWatch GIOUnixWatch; - -struct _GIOUnixChannel -{ - GIOChannel channel; - gint fd; -}; - -struct _GIOUnixWatch -{ - GSource source; - GPollFD pollfd; - GIOChannel *channel; - GIOCondition condition; -}; - - -static GIOStatus g_io_unix_read (GIOChannel *channel, - gchar *buf, - gsize count, - gsize *bytes_read, - GError **err); -static GIOStatus g_io_unix_write (GIOChannel *channel, - const gchar *buf, - gsize count, - gsize *bytes_written, - GError **err); -static GIOStatus g_io_unix_seek (GIOChannel *channel, - gint64 offset, - GSeekType type, - GError **err); -static GIOStatus g_io_unix_close (GIOChannel *channel, - GError **err); -static void g_io_unix_free (GIOChannel *channel); -static GSource* g_io_unix_create_watch (GIOChannel *channel, - GIOCondition condition); -static GIOStatus g_io_unix_set_flags (GIOChannel *channel, - GIOFlags flags, - GError **err); -static GIOFlags g_io_unix_get_flags (GIOChannel *channel); - -static gboolean g_io_unix_prepare (GSource *source, - gint *timeout); -static gboolean g_io_unix_check (GSource *source); -static gboolean g_io_unix_dispatch (GSource *source, - GSourceFunc callback, - gpointer user_data); -static void g_io_unix_finalize (GSource *source); - -GSourceFuncs g_io_watch_funcs = { - g_io_unix_prepare, - g_io_unix_check, - g_io_unix_dispatch, - g_io_unix_finalize -}; - -static GIOFuncs unix_channel_funcs = { - g_io_unix_read, - g_io_unix_write, - g_io_unix_seek, - g_io_unix_close, - g_io_unix_create_watch, - g_io_unix_free, - g_io_unix_set_flags, - g_io_unix_get_flags, -}; - -static gboolean -g_io_unix_prepare (GSource *source, - gint *timeout) -{ - GIOUnixWatch *watch = (GIOUnixWatch *)source; - GIOCondition buffer_condition = g_io_channel_get_buffer_condition (watch->channel); - - *timeout = -1; - - /* Only return TRUE here if _all_ bits in watch->condition will be set - */ - return ((watch->condition & buffer_condition) == watch->condition); -} - -static gboolean -g_io_unix_check (GSource *source) -{ - GIOUnixWatch *watch = (GIOUnixWatch *)source; - GIOCondition buffer_condition = g_io_channel_get_buffer_condition (watch->channel); - GIOCondition poll_condition = watch->pollfd.revents; - - return ((poll_condition | buffer_condition) & watch->condition); -} - -static gboolean -g_io_unix_dispatch (GSource *source, - GSourceFunc callback, - gpointer user_data) - -{ - GIOFunc func = (GIOFunc)callback; - GIOUnixWatch *watch = (GIOUnixWatch *)source; - GIOCondition buffer_condition = g_io_channel_get_buffer_condition (watch->channel); - - if (!func) - { - g_warning ("IO watch dispatched without callback\n" - "You must call g_source_connect()."); - return FALSE; - } - - return (*func) (watch->channel, - (watch->pollfd.revents | buffer_condition) & watch->condition, - user_data); -} - -static void -g_io_unix_finalize (GSource *source) -{ - GIOUnixWatch *watch = (GIOUnixWatch *)source; - - g_io_channel_unref (watch->channel); -} - -static GIOStatus -g_io_unix_read (GIOChannel *channel, - gchar *buf, - gsize count, - gsize *bytes_read, - GError **err) -{ - GIOUnixChannel *unix_channel = (GIOUnixChannel *)channel; - gssize result; - - if (count > SSIZE_MAX) /* At least according to the Debian manpage for read */ - count = SSIZE_MAX; - - retry: - result = read (unix_channel->fd, buf, count); - - if (result < 0) - { - int errsv = errno; - *bytes_read = 0; - - switch (errsv) - { -#ifdef EINTR - case EINTR: - goto retry; -#endif -#ifdef EAGAIN - case EAGAIN: - return G_IO_STATUS_AGAIN; -#endif - default: - g_set_error_literal (err, G_IO_CHANNEL_ERROR, - g_io_channel_error_from_errno (errsv), - g_strerror (errsv)); - return G_IO_STATUS_ERROR; - } - } - - *bytes_read = result; - - return (result > 0) ? G_IO_STATUS_NORMAL : G_IO_STATUS_EOF; -} - -static GIOStatus -g_io_unix_write (GIOChannel *channel, - const gchar *buf, - gsize count, - gsize *bytes_written, - GError **err) -{ - GIOUnixChannel *unix_channel = (GIOUnixChannel *)channel; - gssize result; - - retry: - result = write (unix_channel->fd, buf, count); - - if (result < 0) - { - int errsv = errno; - *bytes_written = 0; - - switch (errsv) - { -#ifdef EINTR - case EINTR: - goto retry; -#endif -#ifdef EAGAIN - case EAGAIN: - return G_IO_STATUS_AGAIN; -#endif - default: - g_set_error_literal (err, G_IO_CHANNEL_ERROR, - g_io_channel_error_from_errno (errsv), - g_strerror (errsv)); - return G_IO_STATUS_ERROR; - } - } - - *bytes_written = result; - - return G_IO_STATUS_NORMAL; -} - -static GIOStatus -g_io_unix_seek (GIOChannel *channel, - gint64 offset, - GSeekType type, - GError **err) -{ - GIOUnixChannel *unix_channel = (GIOUnixChannel *)channel; - int whence; - off_t tmp_offset; - off_t result; - - switch (type) - { - case G_SEEK_SET: - whence = SEEK_SET; - break; - case G_SEEK_CUR: - whence = SEEK_CUR; - break; - case G_SEEK_END: - whence = SEEK_END; - break; - default: - whence = -1; /* Shut the compiler up */ - g_assert_not_reached (); - } - - tmp_offset = offset; - if (tmp_offset != offset) - { - g_set_error_literal (err, G_IO_CHANNEL_ERROR, - g_io_channel_error_from_errno (EINVAL), - g_strerror (EINVAL)); - return G_IO_STATUS_ERROR; - } - - result = lseek (unix_channel->fd, tmp_offset, whence); - - if (result < 0) - { - int errsv = errno; - g_set_error_literal (err, G_IO_CHANNEL_ERROR, - g_io_channel_error_from_errno (errsv), - g_strerror (errsv)); - return G_IO_STATUS_ERROR; - } - - return G_IO_STATUS_NORMAL; -} - - -static GIOStatus -g_io_unix_close (GIOChannel *channel, - GError **err) -{ - GIOUnixChannel *unix_channel = (GIOUnixChannel *)channel; - - if (close (unix_channel->fd) < 0) - { - int errsv = errno; - g_set_error_literal (err, G_IO_CHANNEL_ERROR, - g_io_channel_error_from_errno (errsv), - g_strerror (errsv)); - return G_IO_STATUS_ERROR; - } - - return G_IO_STATUS_NORMAL; -} - -static void -g_io_unix_free (GIOChannel *channel) -{ - GIOUnixChannel *unix_channel = (GIOUnixChannel *)channel; - - g_free (unix_channel); -} - -static GSource * -g_io_unix_create_watch (GIOChannel *channel, - GIOCondition condition) -{ - GIOUnixChannel *unix_channel = (GIOUnixChannel *)channel; - GSource *source; - GIOUnixWatch *watch; - - - source = g_source_new (&g_io_watch_funcs, sizeof (GIOUnixWatch)); - watch = (GIOUnixWatch *)source; - - watch->channel = channel; - g_io_channel_ref (channel); - - watch->condition = condition; - - watch->pollfd.fd = unix_channel->fd; - watch->pollfd.events = condition; - - g_source_add_poll (source, &watch->pollfd); - - return source; -} - -static GIOStatus -g_io_unix_set_flags (GIOChannel *channel, - GIOFlags flags, - GError **err) -{ - glong fcntl_flags; - GIOUnixChannel *unix_channel = (GIOUnixChannel *) channel; - - fcntl_flags = 0; - - if (flags & G_IO_FLAG_APPEND) - fcntl_flags |= O_APPEND; - if (flags & G_IO_FLAG_NONBLOCK) -#ifdef O_NONBLOCK - fcntl_flags |= O_NONBLOCK; -#else - fcntl_flags |= O_NDELAY; -#endif - - if (fcntl (unix_channel->fd, F_SETFL, fcntl_flags) == -1) - { - int errsv = errno; - g_set_error_literal (err, G_IO_CHANNEL_ERROR, - g_io_channel_error_from_errno (errsv), - g_strerror (errsv)); - return G_IO_STATUS_ERROR; - } - - return G_IO_STATUS_NORMAL; -} - -static GIOFlags -g_io_unix_get_flags (GIOChannel *channel) -{ - GIOFlags flags = 0; - glong fcntl_flags; - GIOUnixChannel *unix_channel = (GIOUnixChannel *) channel; - - fcntl_flags = fcntl (unix_channel->fd, F_GETFL); - - if (fcntl_flags == -1) - { - int err = errno; - g_warning (G_STRLOC "Error while getting flags for FD: %s (%d)\n", - g_strerror (err), err); - return 0; - } - - if (fcntl_flags & O_APPEND) - flags |= G_IO_FLAG_APPEND; -#ifdef O_NONBLOCK - if (fcntl_flags & O_NONBLOCK) -#else - if (fcntl_flags & O_NDELAY) -#endif - flags |= G_IO_FLAG_NONBLOCK; - - switch (fcntl_flags & (O_RDONLY | O_WRONLY | O_RDWR)) - { - case O_RDONLY: - channel->is_readable = TRUE; - channel->is_writeable = FALSE; - break; - case O_WRONLY: - channel->is_readable = FALSE; - channel->is_writeable = TRUE; - break; - case O_RDWR: - channel->is_readable = TRUE; - channel->is_writeable = TRUE; - break; - default: - g_assert_not_reached (); - } - - return flags; -} - -GIOChannel * -g_io_channel_new_file (const gchar *filename, - const gchar *mode, - GError **error) -{ - int fid, flags; - mode_t create_mode; - GIOChannel *channel; - enum { /* Cheesy hack */ - MODE_R = 1 << 0, - MODE_W = 1 << 1, - MODE_A = 1 << 2, - MODE_PLUS = 1 << 3 - } mode_num; - struct stat buffer; - - g_return_val_if_fail (filename != NULL, NULL); - g_return_val_if_fail (mode != NULL, NULL); - g_return_val_if_fail ((error == NULL) || (*error == NULL), NULL); - - switch (mode[0]) - { - case 'r': - mode_num = MODE_R; - break; - case 'w': - mode_num = MODE_W; - break; - case 'a': - mode_num = MODE_A; - break; - default: - g_warning ("Invalid GIOFileMode %s.\n", mode); - return NULL; - } - - switch (mode[1]) - { - case '\0': - break; - case '+': - if (mode[2] == '\0') - { - mode_num |= MODE_PLUS; - break; - } - /* Fall through */ - default: - g_warning ("Invalid GIOFileMode %s.\n", mode); - return NULL; - } - - switch (mode_num) - { - case MODE_R: - flags = O_RDONLY; - break; - case MODE_W: - flags = O_WRONLY | O_TRUNC | O_CREAT; - break; - case MODE_A: - flags = O_WRONLY | O_APPEND | O_CREAT; - break; - case MODE_R | MODE_PLUS: - flags = O_RDWR; - break; - case MODE_W | MODE_PLUS: - flags = O_RDWR | O_TRUNC | O_CREAT; - break; - case MODE_A | MODE_PLUS: - flags = O_RDWR | O_APPEND | O_CREAT; - break; - default: - g_assert_not_reached (); - flags = 0; - } - - create_mode = S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH | S_IWOTH; - fid = open (filename, flags, create_mode); - if (fid == -1) - { - int err = errno; - g_set_error_literal (error, G_FILE_ERROR, - g_file_error_from_errno (err), - g_strerror (err)); - return (GIOChannel *)NULL; - } - - if (fstat (fid, &buffer) == -1) /* In case someone opens a FIFO */ - { - int err = errno; - close (fid); - g_set_error_literal (error, G_FILE_ERROR, - g_file_error_from_errno (err), - g_strerror (err)); - return (GIOChannel *)NULL; - } - - channel = (GIOChannel *) g_new (GIOUnixChannel, 1); - - channel->is_seekable = S_ISREG (buffer.st_mode) || S_ISCHR (buffer.st_mode) - || S_ISBLK (buffer.st_mode); - - switch (mode_num) - { - case MODE_R: - channel->is_readable = TRUE; - channel->is_writeable = FALSE; - break; - case MODE_W: - case MODE_A: - channel->is_readable = FALSE; - channel->is_writeable = TRUE; - break; - case MODE_R | MODE_PLUS: - case MODE_W | MODE_PLUS: - case MODE_A | MODE_PLUS: - channel->is_readable = TRUE; - channel->is_writeable = TRUE; - break; - default: - g_assert_not_reached (); - } - - g_io_channel_init (channel); - channel->close_on_unref = TRUE; /* must be after g_io_channel_init () */ - channel->funcs = &unix_channel_funcs; - - ((GIOUnixChannel *) channel)->fd = fid; - return channel; -} - -GIOChannel * -g_io_channel_unix_new (gint fd) -{ - struct stat buffer; - GIOUnixChannel *unix_channel = g_new (GIOUnixChannel, 1); - GIOChannel *channel = (GIOChannel *)unix_channel; - - g_io_channel_init (channel); - channel->funcs = &unix_channel_funcs; - - unix_channel->fd = fd; - - /* I'm not sure if fstat on a non-file (e.g., socket) works - * it should be safe to say if it fails, the fd isn't seekable. - */ - /* Newer UNIX versions support S_ISSOCK(), fstat() will probably - * succeed in most cases. - */ - if (fstat (unix_channel->fd, &buffer) == 0) - channel->is_seekable = S_ISREG (buffer.st_mode) || S_ISCHR (buffer.st_mode) - || S_ISBLK (buffer.st_mode); - else /* Assume not seekable */ - channel->is_seekable = FALSE; - - g_io_unix_get_flags (channel); /* Sets is_readable, is_writeable */ - - return channel; -} - -gint -g_io_channel_unix_get_fd (GIOChannel *channel) -{ - GIOUnixChannel *unix_channel = (GIOUnixChannel *)channel; - return unix_channel->fd; -} - -#define __G_IO_UNIX_C__ -#include "galiasdef.c" diff --git a/lib/win32/glib-2.20.4/glib/giowin32.c b/lib/win32/glib-2.20.4/glib/giowin32.c deleted file mode 100644 index 7f395473dd325..0000000000000 --- a/lib/win32/glib-2.20.4/glib/giowin32.c +++ /dev/null @@ -1,2191 +0,0 @@ -/* GLIB - Library of useful routines for C programming - * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald - * - * giowin32.c: IO Channels for Win32. - * Copyright 1998 Owen Taylor and Tor Lillqvist - * Copyright 1999-2000 Tor Lillqvist and Craig Setera - * Copyright 2001-2003 Andrew Lanoix - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library 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 - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ - -/* - * Modified by the GLib Team and others 1997-2000. See the AUTHORS - * file for a list of people on the GLib Team. See the ChangeLog - * files for a list of changes. These files are distributed with - * GLib at ftp://ftp.gtk.org/pub/gtk/. - */ - -/* - * Bugs that are related to the code in this file: - * - * Bug 137968 - Sometimes a GIOFunc on Win32 is called with zero condition - * http://bugzilla.gnome.org/show_bug.cgi?id=137968 - * - * Bug 324234 - Using g_io_add_watch_full() to wait for connect() to return on a non-blocking socket returns prematurely - * http://bugzilla.gnome.org/show_bug.cgi?id=324234 - * - * Bug 331214 - g_io_channel async socket io stalls - * http://bugzilla.gnome.org/show_bug.cgi?id=331214 - * - * Bug 338943 - Multiple watches on the same socket - * http://bugzilla.gnome.org/show_bug.cgi?id=338943 - * - * Bug 357674 - 2 serious bugs in giowin32.c making glib iochannels useless - * http://bugzilla.gnome.org/show_bug.cgi?id=357674 - * - * Bug 425156 - GIOChannel deadlocks on a win32 socket - * http://bugzilla.gnome.org/show_bug.cgi?id=425156 - * - * Bug 468910 - giofunc condition=0 - * http://bugzilla.gnome.org/show_bug.cgi?id=468910 - * - * Bug 500246 - Bug fixes for giowin32 - * http://bugzilla.gnome.org/show_bug.cgi?id=500246 - * - * Bug 548278 - Async GETs connections are always terminated unexpectedly on windows - * http://bugzilla.gnome.org/show_bug.cgi?id=548278 - * - * Bug 548536 - giowin32 problem when adding and removing watches - * http://bugzilla.gnome.org/show_bug.cgi?id=548536 - * - * When fixing bugs related to the code in this file, either the above - * bugs or others, make sure that the test programs attached to the - * above bugs continue to work. - */ - -#include "config.h" - -#include "glib.h" - -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include "gstdio.h" -#include "glibintl.h" - -#include "galias.h" - -typedef struct _GIOWin32Channel GIOWin32Channel; -typedef struct _GIOWin32Watch GIOWin32Watch; - -#define BUFFER_SIZE 4096 - -typedef enum { - G_IO_WIN32_WINDOWS_MESSAGES, /* Windows messages */ - - G_IO_WIN32_FILE_DESC, /* Unix-like file descriptors from - * _open() or _pipe(), except for - * console IO. Separate thread to read - * or write. - */ - - G_IO_WIN32_CONSOLE, /* Console IO (usually stdin, stdout, stderr) */ - - G_IO_WIN32_SOCKET /* Sockets. No separate thread. */ -} GIOWin32ChannelType; - -struct _GIOWin32Channel { - GIOChannel channel; - gint fd; /* Either a Unix-like file handle as provided - * by the Microsoft C runtime, or a SOCKET - * as provided by WinSock. - */ - GIOWin32ChannelType type; - - gboolean debug; - - /* Field used by G_IO_WIN32_WINDOWS_MESSAGES channels */ - HWND hwnd; /* Handle of window, or NULL */ - - /* Fields used by G_IO_WIN32_FILE_DESC channels. */ - CRITICAL_SECTION mutex; - - int direction; /* 0 means we read from it, - * 1 means we write to it. - */ - - gboolean running; /* Is reader or writer thread - * running. FALSE if EOF has been - * reached by the reader thread. - */ - - gboolean needs_close; /* If the channel has been closed while - * the reader thread was still running. - */ - - guint thread_id; /* If non-NULL the channel has or has - * had a reader or writer thread. - */ - HANDLE data_avail_event; - - gushort revents; - - /* Data is kept in a circular buffer. To be able to distinguish between - * empty and full buffers, we cannot fill it completely, but have to - * leave a one character gap. - * - * Data available is between indexes rdp and wrp-1 (modulo BUFFER_SIZE). - * - * Empty: wrp == rdp - * Full: (wrp + 1) % BUFFER_SIZE == rdp - * Partial: otherwise - */ - guchar *buffer; /* (Circular) buffer */ - gint wrp, rdp; /* Buffer indices for writing and reading */ - HANDLE space_avail_event; - - /* Fields used by G_IO_WIN32_SOCKET channels */ - int event_mask; - int last_events; - HANDLE event; - gboolean write_would_have_blocked; - gboolean ever_writable; -}; - -struct _GIOWin32Watch { - GSource source; - GPollFD pollfd; - GIOChannel *channel; - GIOCondition condition; -}; - -static void -g_win32_print_access_mode (int flags) -{ - g_print ("%s%s%s%s%s%s%s%s%s%s", - ((flags & 0x3) == _O_RDWR ? "O_RDWR" : - ((flags & 0x3) == _O_RDONLY ? "O_RDONLY" : - ((flags & 0x3) == _O_WRONLY ? "O_WRONLY" : "0"))), - (flags & _O_APPEND ? "|O_APPEND" : ""), - (flags & _O_RANDOM ? "|O_RANDOM" : ""), - (flags & _O_SEQUENTIAL ? "|O_SEQUENTIAL" : ""), - (flags & _O_TEMPORARY ? "|O_TEMPORARY" : ""), - (flags & _O_CREAT ? "|O_CREAT" : ""), - (flags & _O_TRUNC ? "|O_TRUNC" : ""), - (flags & _O_EXCL ? "|O_EXCL" : ""), - (flags & _O_TEXT ? "|O_TEXT" : ""), - (flags & _O_BINARY ? "|O_BINARY" : "")); -} - -static void -g_win32_print_gioflags (GIOFlags flags) -{ - char *bar = ""; - - if (flags & G_IO_FLAG_APPEND) - bar = "|", g_print ("APPEND"); - if (flags & G_IO_FLAG_NONBLOCK) - g_print ("%sNONBLOCK", bar), bar = "|"; - if (flags & G_IO_FLAG_IS_READABLE) - g_print ("%sREADABLE", bar), bar = "|"; - if (flags & G_IO_FLAG_IS_WRITEABLE) - g_print ("%sWRITEABLE", bar), bar = "|"; - if (flags & G_IO_FLAG_IS_SEEKABLE) - g_print ("%sSEEKABLE", bar), bar = "|"; -} - -static const char * -event_mask_to_string (int mask) -{ - char buf[100]; - int checked_bits = 0; - char *bufp = buf; - - if (mask == 0) - return ""; - -#define BIT(n) checked_bits |= FD_##n; if (mask & FD_##n) bufp += sprintf (bufp, "%s" #n, (bufp>buf ? "|" : "")) - - BIT (READ); - BIT (WRITE); - BIT (OOB); - BIT (ACCEPT); - BIT (CONNECT); - BIT (CLOSE); - BIT (QOS); - BIT (GROUP_QOS); - BIT (ROUTING_INTERFACE_CHANGE); - BIT (ADDRESS_LIST_CHANGE); - -#undef BIT - - if ((mask & ~checked_bits) != 0) - bufp += sprintf (bufp, "|%#x", mask & ~checked_bits); - - return g_quark_to_string (g_quark_from_string (buf)); -} - -static const char * -condition_to_string (GIOCondition condition) -{ - char buf[100]; - int checked_bits = 0; - char *bufp = buf; - - if (condition == 0) - return ""; - -#define BIT(n) checked_bits |= G_IO_##n; if (condition & G_IO_##n) bufp += sprintf (bufp, "%s" #n, (bufp>buf ? "|" : "")) - - BIT (IN); - BIT (OUT); - BIT (PRI); - BIT (ERR); - BIT (HUP); - BIT (NVAL); - -#undef BIT - - if ((condition & ~checked_bits) != 0) - bufp += sprintf (bufp, "|%#x", condition & ~checked_bits); - - return g_quark_to_string (g_quark_from_string (buf)); -} - -static gboolean -g_io_win32_get_debug_flag (void) -{ - return (getenv ("G_IO_WIN32_DEBUG") != NULL); -} - -static void -g_io_channel_win32_init (GIOWin32Channel *channel) -{ - channel->debug = g_io_win32_get_debug_flag (); - - InitializeCriticalSection (&channel->mutex); - channel->running = FALSE; - channel->needs_close = FALSE; - channel->thread_id = 0; - channel->data_avail_event = NULL; - channel->revents = 0; - channel->buffer = NULL; - channel->space_avail_event = NULL; - - channel->event_mask = 0; - channel->last_events = 0; - channel->event = NULL; - channel->write_would_have_blocked = FALSE; - channel->ever_writable = FALSE; -} - -static void -create_events (GIOWin32Channel *channel) -{ - SECURITY_ATTRIBUTES sec_attrs; - - sec_attrs.nLength = sizeof (SECURITY_ATTRIBUTES); - sec_attrs.lpSecurityDescriptor = NULL; - sec_attrs.bInheritHandle = FALSE; - - /* The data available event is manual reset, the space available event - * is automatic reset. - */ - if (!(channel->data_avail_event = CreateEvent (&sec_attrs, TRUE, FALSE, NULL)) - || !(channel->space_avail_event = CreateEvent (&sec_attrs, FALSE, FALSE, NULL))) - { - gchar *emsg = g_win32_error_message (GetLastError ()); - - g_error ("Error creating event: %s", emsg); - g_free (emsg); - } -} - -static unsigned __stdcall -read_thread (void *parameter) -{ - GIOWin32Channel *channel = parameter; - guchar *buffer; - gint nbytes; - - g_io_channel_ref ((GIOChannel *)channel); - - if (channel->debug) - g_print ("read_thread %#x: start fd=%d, data_avail=%p space_avail=%p\n", - channel->thread_id, - channel->fd, - channel->data_avail_event, - channel->space_avail_event); - - channel->direction = 0; - channel->buffer = g_malloc (BUFFER_SIZE); - channel->rdp = channel->wrp = 0; - channel->running = TRUE; - - SetEvent (channel->space_avail_event); - - EnterCriticalSection (&channel->mutex); - while (channel->running) - { - if (channel->debug) - g_print ("read_thread %#x: rdp=%d, wrp=%d\n", - channel->thread_id, channel->rdp, channel->wrp); - if ((channel->wrp + 1) % BUFFER_SIZE == channel->rdp) - { - /* Buffer is full */ - if (channel->debug) - g_print ("read_thread %#x: resetting space_avail\n", - channel->thread_id); - ResetEvent (channel->space_avail_event); - if (channel->debug) - g_print ("read_thread %#x: waiting for space\n", - channel->thread_id); - LeaveCriticalSection (&channel->mutex); - WaitForSingleObject (channel->space_avail_event, INFINITE); - EnterCriticalSection (&channel->mutex); - if (channel->debug) - g_print ("read_thread %#x: rdp=%d, wrp=%d\n", - channel->thread_id, channel->rdp, channel->wrp); - } - - buffer = channel->buffer + channel->wrp; - - /* Always leave at least one byte unused gap to be able to - * distinguish between the full and empty condition... - */ - nbytes = MIN ((channel->rdp + BUFFER_SIZE - channel->wrp - 1) % BUFFER_SIZE, - BUFFER_SIZE - channel->wrp); - - if (channel->debug) - g_print ("read_thread %#x: calling read() for %d bytes\n", - channel->thread_id, nbytes); - - LeaveCriticalSection (&channel->mutex); - - nbytes = read (channel->fd, buffer, nbytes); - - EnterCriticalSection (&channel->mutex); - - channel->revents = G_IO_IN; - if (nbytes == 0) - channel->revents |= G_IO_HUP; - else if (nbytes < 0) - channel->revents |= G_IO_ERR; - - if (channel->debug) - g_print ("read_thread %#x: read() returned %d, rdp=%d, wrp=%d\n", - channel->thread_id, nbytes, channel->rdp, channel->wrp); - - if (nbytes <= 0) - break; - - channel->wrp = (channel->wrp + nbytes) % BUFFER_SIZE; - if (channel->debug) - g_print ("read_thread %#x: rdp=%d, wrp=%d, setting data_avail\n", - channel->thread_id, channel->rdp, channel->wrp); - SetEvent (channel->data_avail_event); - } - - channel->running = FALSE; - if (channel->needs_close) - { - if (channel->debug) - g_print ("read_thread %#x: channel fd %d needs closing\n", - channel->thread_id, channel->fd); - close (channel->fd); - channel->fd = -1; - } - - if (channel->debug) - g_print ("read_thread %#x: EOF, rdp=%d, wrp=%d, setting data_avail\n", - channel->thread_id, channel->rdp, channel->wrp); - SetEvent (channel->data_avail_event); - LeaveCriticalSection (&channel->mutex); - - g_io_channel_unref ((GIOChannel *)channel); - - /* No need to call _endthreadex(), the actual thread starter routine - * in MSVCRT (see crt/src/threadex.c:_threadstartex) calls - * _endthreadex() for us. - */ - - return 0; -} - -static unsigned __stdcall -write_thread (void *parameter) -{ - GIOWin32Channel *channel = parameter; - guchar *buffer; - gint nbytes; - - g_io_channel_ref ((GIOChannel *)channel); - - if (channel->debug) - g_print ("write_thread %#x: start fd=%d, data_avail=%p space_avail=%p\n", - channel->thread_id, - channel->fd, - channel->data_avail_event, - channel->space_avail_event); - - channel->direction = 1; - channel->buffer = g_malloc (BUFFER_SIZE); - channel->rdp = channel->wrp = 0; - channel->running = TRUE; - - SetEvent (channel->space_avail_event); - - /* We use the same event objects as for a reader thread, but with - * reversed meaning. So, space_avail is used if data is available - * for writing, and data_avail is used if space is available in the - * write buffer. - */ - - EnterCriticalSection (&channel->mutex); - while (channel->running || channel->rdp != channel->wrp) - { - if (channel->debug) - g_print ("write_thread %#x: rdp=%d, wrp=%d\n", - channel->thread_id, channel->rdp, channel->wrp); - if (channel->wrp == channel->rdp) - { - /* Buffer is empty. */ - if (channel->debug) - g_print ("write_thread %#x: resetting space_avail\n", - channel->thread_id); - ResetEvent (channel->space_avail_event); - if (channel->debug) - g_print ("write_thread %#x: waiting for data\n", - channel->thread_id); - channel->revents = G_IO_OUT; - SetEvent (channel->data_avail_event); - LeaveCriticalSection (&channel->mutex); - WaitForSingleObject (channel->space_avail_event, INFINITE); - - EnterCriticalSection (&channel->mutex); - if (channel->rdp == channel->wrp) - break; - - if (channel->debug) - g_print ("write_thread %#x: rdp=%d, wrp=%d\n", - channel->thread_id, channel->rdp, channel->wrp); - } - - buffer = channel->buffer + channel->rdp; - if (channel->rdp < channel->wrp) - nbytes = channel->wrp - channel->rdp; - else - nbytes = BUFFER_SIZE - channel->rdp; - - if (channel->debug) - g_print ("write_thread %#x: calling write() for %d bytes\n", - channel->thread_id, nbytes); - - LeaveCriticalSection (&channel->mutex); - nbytes = write (channel->fd, buffer, nbytes); - EnterCriticalSection (&channel->mutex); - - if (channel->debug) - g_print ("write_thread %#x: write(%i) returned %d, rdp=%d, wrp=%d\n", - channel->thread_id, channel->fd, nbytes, channel->rdp, channel->wrp); - - channel->revents = 0; - if (nbytes > 0) - channel->revents |= G_IO_OUT; - else if (nbytes <= 0) - channel->revents |= G_IO_ERR; - - channel->rdp = (channel->rdp + nbytes) % BUFFER_SIZE; - - if (nbytes <= 0) - break; - - if (channel->debug) - g_print ("write_thread: setting data_avail for thread %#x\n", - channel->thread_id); - SetEvent (channel->data_avail_event); - } - - channel->running = FALSE; - if (channel->needs_close) - { - if (channel->debug) - g_print ("write_thread %#x: channel fd %d needs closing\n", - channel->thread_id, channel->fd); - close (channel->fd); - channel->fd = -1; - } - - LeaveCriticalSection (&channel->mutex); - - g_io_channel_unref ((GIOChannel *)channel); - - return 0; -} - -static void -create_thread (GIOWin32Channel *channel, - GIOCondition condition, - unsigned (__stdcall *thread) (void *parameter)) -{ - HANDLE thread_handle; - - thread_handle = (HANDLE) _beginthreadex (NULL, 0, thread, channel, 0, - &channel->thread_id); - if (thread_handle == 0) - g_warning ("Error creating thread: %s.", - g_strerror (errno)); - else if (!CloseHandle (thread_handle)) - { - gchar *emsg = g_win32_error_message (GetLastError ()); - - g_warning ("Error closing thread handle: %s.", emsg); - g_free (emsg); - } - - WaitForSingleObject (channel->space_avail_event, INFINITE); -} - -static GIOStatus -buffer_read (GIOWin32Channel *channel, - gchar *dest, - gsize count, - gsize *bytes_read, - GError **err) -{ - guint nbytes; - guint left = count; - - EnterCriticalSection (&channel->mutex); - if (channel->debug) - g_print ("reading from thread %#x %" G_GSIZE_FORMAT " bytes, rdp=%d, wrp=%d\n", - channel->thread_id, count, channel->rdp, channel->wrp); - - if (channel->wrp == channel->rdp) - { - LeaveCriticalSection (&channel->mutex); - if (channel->debug) - g_print ("waiting for data from thread %#x\n", channel->thread_id); - WaitForSingleObject (channel->data_avail_event, INFINITE); - if (channel->debug) - g_print ("done waiting for data from thread %#x\n", channel->thread_id); - EnterCriticalSection (&channel->mutex); - if (channel->wrp == channel->rdp && !channel->running) - { - if (channel->debug) - g_print ("wrp==rdp, !running\n"); - LeaveCriticalSection (&channel->mutex); - *bytes_read = 0; - return G_IO_STATUS_EOF; - } - } - - if (channel->rdp < channel->wrp) - nbytes = channel->wrp - channel->rdp; - else - nbytes = BUFFER_SIZE - channel->rdp; - LeaveCriticalSection (&channel->mutex); - nbytes = MIN (left, nbytes); - if (channel->debug) - g_print ("moving %d bytes from thread %#x\n", - nbytes, channel->thread_id); - memcpy (dest, channel->buffer + channel->rdp, nbytes); - dest += nbytes; - left -= nbytes; - EnterCriticalSection (&channel->mutex); - channel->rdp = (channel->rdp + nbytes) % BUFFER_SIZE; - if (channel->debug) - g_print ("setting space_avail for thread %#x\n", channel->thread_id); - SetEvent (channel->space_avail_event); - if (channel->debug) - g_print ("for thread %#x: rdp=%d, wrp=%d\n", - channel->thread_id, channel->rdp, channel->wrp); - if (channel->running && channel->wrp == channel->rdp) - { - if (channel->debug) - g_print ("resetting data_avail of thread %#x\n", - channel->thread_id); - ResetEvent (channel->data_avail_event); - }; - LeaveCriticalSection (&channel->mutex); - - /* We have no way to indicate any errors form the actual - * read() or recv() call in the reader thread. Should we have? - */ - *bytes_read = count - left; - return (*bytes_read > 0) ? G_IO_STATUS_NORMAL : G_IO_STATUS_EOF; -} - - -static GIOStatus -buffer_write (GIOWin32Channel *channel, - const gchar *dest, - gsize count, - gsize *bytes_written, - GError **err) -{ - guint nbytes; - guint left = count; - - EnterCriticalSection (&channel->mutex); - if (channel->debug) - g_print ("buffer_write: writing to thread %#x %" G_GSIZE_FORMAT " bytes, rdp=%d, wrp=%d\n", - channel->thread_id, count, channel->rdp, channel->wrp); - - if ((channel->wrp + 1) % BUFFER_SIZE == channel->rdp) - { - /* Buffer is full */ - if (channel->debug) - g_print ("buffer_write: tid %#x: resetting data_avail\n", - channel->thread_id); - ResetEvent (channel->data_avail_event); - if (channel->debug) - g_print ("buffer_write: tid %#x: waiting for space\n", - channel->thread_id); - LeaveCriticalSection (&channel->mutex); - WaitForSingleObject (channel->data_avail_event, INFINITE); - EnterCriticalSection (&channel->mutex); - if (channel->debug) - g_print ("buffer_write: tid %#x: rdp=%d, wrp=%d\n", - channel->thread_id, channel->rdp, channel->wrp); - } - - nbytes = MIN ((channel->rdp + BUFFER_SIZE - channel->wrp - 1) % BUFFER_SIZE, - BUFFER_SIZE - channel->wrp); - - LeaveCriticalSection (&channel->mutex); - nbytes = MIN (left, nbytes); - if (channel->debug) - g_print ("buffer_write: tid %#x: writing %d bytes\n", - channel->thread_id, nbytes); - memcpy (channel->buffer + channel->wrp, dest, nbytes); - dest += nbytes; - left -= nbytes; - EnterCriticalSection (&channel->mutex); - - channel->wrp = (channel->wrp + nbytes) % BUFFER_SIZE; - if (channel->debug) - g_print ("buffer_write: tid %#x: rdp=%d, wrp=%d, setting space_avail\n", - channel->thread_id, channel->rdp, channel->wrp); - SetEvent (channel->space_avail_event); - - if ((channel->wrp + 1) % BUFFER_SIZE == channel->rdp) - { - /* Buffer is full */ - if (channel->debug) - g_print ("buffer_write: tid %#x: resetting data_avail\n", - channel->thread_id); - ResetEvent (channel->data_avail_event); - } - - LeaveCriticalSection (&channel->mutex); - - /* We have no way to indicate any errors form the actual - * write() call in the writer thread. Should we have? - */ - *bytes_written = count - left; - return (*bytes_written > 0) ? G_IO_STATUS_NORMAL : G_IO_STATUS_EOF; -} - - -static gboolean -g_io_win32_prepare (GSource *source, - gint *timeout) -{ - GIOWin32Watch *watch = (GIOWin32Watch *)source; - GIOCondition buffer_condition = g_io_channel_get_buffer_condition (watch->channel); - GIOWin32Channel *channel = (GIOWin32Channel *)watch->channel; - int event_mask; - - *timeout = -1; - - if (channel->debug) - g_print ("g_io_win32_prepare: source=%p channel=%p", source, channel); - - switch (channel->type) - { - case G_IO_WIN32_WINDOWS_MESSAGES: - if (channel->debug) - g_print (" MSG"); - break; - - case G_IO_WIN32_CONSOLE: - if (channel->debug) - g_print (" CON"); - break; - - case G_IO_WIN32_FILE_DESC: - if (channel->debug) - g_print (" FD thread=%#x buffer_condition:{%s}" - "\n watch->pollfd.events:{%s} watch->pollfd.revents:{%s} channel->revents:{%s}", - channel->thread_id, condition_to_string (buffer_condition), - condition_to_string (watch->pollfd.events), - condition_to_string (watch->pollfd.revents), - condition_to_string (channel->revents)); - - EnterCriticalSection (&channel->mutex); - if (channel->running) - { - if (channel->direction == 0 && channel->wrp == channel->rdp) - { - if (channel->debug) - g_print ("\n setting revents=0"); - channel->revents = 0; - } - } - else - { - if (channel->direction == 1 - && (channel->wrp + 1) % BUFFER_SIZE == channel->rdp) - { - if (channel->debug) - g_print ("\n setting revents=0"); - channel->revents = 0; - } - } - LeaveCriticalSection (&channel->mutex); - break; - - case G_IO_WIN32_SOCKET: - if (channel->debug) - g_print (" SOCK"); - event_mask = 0; - if (watch->condition & G_IO_IN) - event_mask |= (FD_READ | FD_ACCEPT); - if (watch->condition & G_IO_OUT) - event_mask |= (FD_WRITE | FD_CONNECT); - event_mask |= FD_CLOSE; - - if (channel->event_mask != event_mask) - { - if (channel->debug) - g_print ("\n WSAEventSelect(%d,%p,{%s})", - channel->fd, (HANDLE) watch->pollfd.fd, - event_mask_to_string (event_mask)); - if (WSAEventSelect (channel->fd, (HANDLE) watch->pollfd.fd, - event_mask) == SOCKET_ERROR) - if (channel->debug) - { - gchar *emsg = g_win32_error_message (WSAGetLastError ()); - - g_print (" failed: %s", emsg); - g_free (emsg); - } - channel->event_mask = event_mask; - - if (channel->debug) - g_print ("\n setting last_events=0"); - channel->last_events = 0; - - if ((event_mask & FD_WRITE) && - channel->ever_writable && - !channel->write_would_have_blocked) - { - if (channel->debug) - g_print (" WSASetEvent(%p)", (WSAEVENT) watch->pollfd.fd); - WSASetEvent ((WSAEVENT) watch->pollfd.fd); - } - } - break; - - default: - g_assert_not_reached (); - abort (); - } - if (channel->debug) - g_print ("\n"); - - return ((watch->condition & buffer_condition) == watch->condition); -} - -static gboolean -g_io_win32_check (GSource *source) -{ - MSG msg; - GIOWin32Watch *watch = (GIOWin32Watch *)source; - GIOWin32Channel *channel = (GIOWin32Channel *)watch->channel; - GIOCondition buffer_condition = g_io_channel_get_buffer_condition (watch->channel); - WSANETWORKEVENTS events; - - if (channel->debug) - g_print ("g_io_win32_check: source=%p channel=%p", source, channel); - - switch (channel->type) - { - case G_IO_WIN32_WINDOWS_MESSAGES: - if (channel->debug) - g_print (" MSG\n"); - return (PeekMessage (&msg, channel->hwnd, 0, 0, PM_NOREMOVE)); - - case G_IO_WIN32_FILE_DESC: - if (channel->debug) - g_print (" FD thread=%#x buffer_condition=%s\n" - " watch->pollfd.events={%s} watch->pollfd.revents={%s} channel->revents={%s}\n", - channel->thread_id, condition_to_string (buffer_condition), - condition_to_string (watch->pollfd.events), - condition_to_string (watch->pollfd.revents), - condition_to_string (channel->revents)); - - watch->pollfd.revents = (watch->pollfd.events & channel->revents); - - return ((watch->pollfd.revents | buffer_condition) & watch->condition); - - case G_IO_WIN32_CONSOLE: - if (channel->debug) - g_print (" CON\n"); - if (watch->channel->is_writeable) - return TRUE; - else if (watch->channel->is_readable) - { - INPUT_RECORD buffer; - DWORD n; - if (PeekConsoleInput ((HANDLE) watch->pollfd.fd, &buffer, 1, &n) && - n == 1) - { - /* _kbhit() does quite complex processing to find out - * whether at least one of the key events pending corresponds - * to a "real" character that can be read. - */ - if (_kbhit ()) - return TRUE; - - /* Discard all other kinds of events */ - ReadConsoleInput ((HANDLE) watch->pollfd.fd, &buffer, 1, &n); - } - } - return FALSE; - - case G_IO_WIN32_SOCKET: - if (channel->debug) - g_print (" SOCK"); - if (channel->last_events & FD_WRITE) - { - if (channel->debug) - g_print (" sock=%d event=%p last_events has FD_WRITE", - channel->fd, (HANDLE) watch->pollfd.fd); - } - else - { - WSAEnumNetworkEvents (channel->fd, 0, &events); - - if (channel->debug) - g_print ("\n revents={%s} condition={%s}" - "\n WSAEnumNetworkEvents(%d,0) sets events={%s}", - condition_to_string (watch->pollfd.revents), - condition_to_string (watch->condition), - channel->fd, - event_mask_to_string (events.lNetworkEvents)); - - if (watch->pollfd.revents != 0 && - events.lNetworkEvents == 0 && - !(channel->event_mask & FD_WRITE)) - { - channel->event_mask = 0; - if (channel->debug) - g_print ("\n WSAEventSelect(%d,%p,{})", - channel->fd, (HANDLE) watch->pollfd.fd); - WSAEventSelect (channel->fd, (HANDLE) watch->pollfd.fd, 0); - if (channel->debug) - g_print (" ResetEvent(%p)", - (HANDLE) watch->pollfd.fd); - ResetEvent ((HANDLE) watch->pollfd.fd); - } - else if (events.lNetworkEvents & FD_WRITE) - channel->ever_writable = TRUE; - channel->last_events = events.lNetworkEvents; - } - - watch->pollfd.revents = 0; - if (channel->last_events & (FD_READ | FD_ACCEPT)) - watch->pollfd.revents |= G_IO_IN; - - if (channel->last_events & FD_WRITE) - watch->pollfd.revents |= G_IO_OUT; - else - { - /* We have called WSAEnumNetworkEvents() above but it didn't - * set FD_WRITE. - */ - if (events.lNetworkEvents & FD_CONNECT) - { - if (events.iErrorCode[FD_CONNECT_BIT] == 0) - watch->pollfd.revents |= G_IO_OUT; - else - watch->pollfd.revents |= (G_IO_HUP | G_IO_ERR); - } - if (watch->pollfd.revents == 0 && (channel->last_events & (FD_CLOSE))) - watch->pollfd.revents |= G_IO_HUP; - } - - /* Regardless of WSAEnumNetworkEvents() result, if watching for - * writability, and if we have ever got a FD_WRITE event, and - * unless last write would have blocked, set G_IO_OUT. But never - * set both G_IO_OUT and G_IO_HUP. - */ - if (!(watch->pollfd.revents & G_IO_HUP) && - channel->ever_writable && - !channel->write_would_have_blocked && - (channel->event_mask & FD_WRITE)) - watch->pollfd.revents |= G_IO_OUT; - - if (channel->debug) - g_print ("\n revents={%s} retval={%s}\n", - condition_to_string (watch->pollfd.revents), - condition_to_string ((watch->pollfd.revents | buffer_condition) & watch->condition)); - - return ((watch->pollfd.revents | buffer_condition) & watch->condition); - - default: - g_assert_not_reached (); - abort (); - } -} - -static gboolean -g_io_win32_dispatch (GSource *source, - GSourceFunc callback, - gpointer user_data) -{ - GIOFunc func = (GIOFunc)callback; - GIOWin32Watch *watch = (GIOWin32Watch *)source; - GIOWin32Channel *channel = (GIOWin32Channel *)watch->channel; - GIOCondition buffer_condition = g_io_channel_get_buffer_condition (watch->channel); - - if (!func) - { - g_warning ("IO Watch dispatched without callback\n" - "You must call g_source_connect()."); - return FALSE; - } - - if (channel->debug) - g_print ("g_io_win32_dispatch: pollfd.revents=%s condition=%s result=%s\n", - condition_to_string (watch->pollfd.revents), - condition_to_string (watch->condition), - condition_to_string ((watch->pollfd.revents | buffer_condition) & watch->condition)); - - return (*func) (watch->channel, - (watch->pollfd.revents | buffer_condition) & watch->condition, - user_data); -} - -static void -g_io_win32_finalize (GSource *source) -{ - GIOWin32Watch *watch = (GIOWin32Watch *)source; - GIOWin32Channel *channel = (GIOWin32Channel *)watch->channel; - - if (channel->debug) - g_print ("g_io_win32_finalize: source=%p channel=%p", source, channel); - - switch (channel->type) - { - case G_IO_WIN32_WINDOWS_MESSAGES: - if (channel->debug) - g_print (" MSG"); - break; - - case G_IO_WIN32_CONSOLE: - if (channel->debug) - g_print (" CON"); - break; - - case G_IO_WIN32_FILE_DESC: - if (channel->debug) - g_print (" FD thread=%#x", channel->thread_id); - break; - - case G_IO_WIN32_SOCKET: - if (channel->debug) - g_print (" SOCK sock=%d", channel->fd); - break; - - default: - g_assert_not_reached (); - abort (); - } - if (channel->debug) - g_print ("\n"); - g_io_channel_unref (watch->channel); -} - -GSourceFuncs g_io_watch_funcs = { - g_io_win32_prepare, - g_io_win32_check, - g_io_win32_dispatch, - g_io_win32_finalize -}; - -static GIOStatus -g_io_win32_msg_read (GIOChannel *channel, - gchar *buf, - gsize count, - gsize *bytes_read, - GError **err) -{ - GIOWin32Channel *win32_channel = (GIOWin32Channel *)channel; - MSG msg; /* In case of alignment problems */ - - if (count < sizeof (MSG)) - { - g_set_error_literal (err, G_IO_CHANNEL_ERROR, G_IO_CHANNEL_ERROR_INVAL, - "Incorrect message size"); /* Informative enough error message? */ - return G_IO_STATUS_ERROR; - } - - if (win32_channel->debug) - g_print ("g_io_win32_msg_read: channel=%p hwnd=%p\n", - channel, win32_channel->hwnd); - if (!PeekMessage (&msg, win32_channel->hwnd, 0, 0, PM_REMOVE)) - return G_IO_STATUS_AGAIN; - - memmove (buf, &msg, sizeof (MSG)); - *bytes_read = sizeof (MSG); - - return G_IO_STATUS_NORMAL; -} - -static GIOStatus -g_io_win32_msg_write (GIOChannel *channel, - const gchar *buf, - gsize count, - gsize *bytes_written, - GError **err) -{ - GIOWin32Channel *win32_channel = (GIOWin32Channel *)channel; - MSG msg; - - if (count != sizeof (MSG)) - { - g_set_error_literal (err, G_IO_CHANNEL_ERROR, G_IO_CHANNEL_ERROR_INVAL, - "Incorrect message size"); /* Informative enough error message? */ - return G_IO_STATUS_ERROR; - } - - /* In case of alignment problems */ - memmove (&msg, buf, sizeof (MSG)); - if (!PostMessage (win32_channel->hwnd, msg.message, msg.wParam, msg.lParam)) - { - gchar *emsg = g_win32_error_message (GetLastError ()); - - g_set_error_literal (err, G_IO_CHANNEL_ERROR, G_IO_CHANNEL_ERROR_FAILED, emsg); - g_free (emsg); - - return G_IO_STATUS_ERROR; - } - - *bytes_written = sizeof (MSG); - - return G_IO_STATUS_NORMAL; -} - -static GIOStatus -g_io_win32_msg_close (GIOChannel *channel, - GError **err) -{ - /* Nothing to be done. Or should we set hwnd to some invalid value? */ - - return G_IO_STATUS_NORMAL; -} - -static void -g_io_win32_free (GIOChannel *channel) -{ - GIOWin32Channel *win32_channel = (GIOWin32Channel *)channel; - - if (win32_channel->debug) - g_print ("g_io_win32_free channel=%p fd=%d\n", channel, win32_channel->fd); - - DeleteCriticalSection (&win32_channel->mutex); - - if (win32_channel->data_avail_event) - if (!CloseHandle (win32_channel->data_avail_event)) - if (win32_channel->debug) - { - gchar *emsg = g_win32_error_message (GetLastError ()); - - g_print (" CloseHandle(%p) failed: %s\n", - win32_channel->data_avail_event, emsg); - g_free (emsg); - } - - g_free (win32_channel->buffer); - - if (win32_channel->space_avail_event) - if (!CloseHandle (win32_channel->space_avail_event)) - if (win32_channel->debug) - { - gchar *emsg = g_win32_error_message (GetLastError ()); - - g_print (" CloseHandle(%p) failed: %s\n", - win32_channel->space_avail_event, emsg); - g_free (emsg); - } - - if (win32_channel->type == G_IO_WIN32_SOCKET) - if (WSAEventSelect (win32_channel->fd, NULL, 0) == SOCKET_ERROR) - if (win32_channel->debug) - { - gchar *emsg = g_win32_error_message (WSAGetLastError ()); - - g_print (" WSAEventSelect(%d,NULL,{}) failed: %s\n", - win32_channel->fd, emsg); - g_free (emsg); - } - - if (win32_channel->event) - if (!WSACloseEvent (win32_channel->event)) - if (win32_channel->debug) - { - gchar *emsg = g_win32_error_message (WSAGetLastError ()); - - g_print (" WSACloseEvent(%p) failed: %s\n", - win32_channel->event, emsg); - g_free (emsg); - } - - g_free (win32_channel); -} - -static GSource * -g_io_win32_msg_create_watch (GIOChannel *channel, - GIOCondition condition) -{ - GIOWin32Watch *watch; - GSource *source; - - source = g_source_new (&g_io_watch_funcs, sizeof (GIOWin32Watch)); - watch = (GIOWin32Watch *)source; - - watch->channel = channel; - g_io_channel_ref (channel); - - watch->condition = condition; - - watch->pollfd.fd = (gintptr) G_WIN32_MSG_HANDLE; - watch->pollfd.events = condition; - - g_source_add_poll (source, &watch->pollfd); - - return source; -} - -static GIOStatus -g_io_win32_fd_and_console_read (GIOChannel *channel, - gchar *buf, - gsize count, - gsize *bytes_read, - GError **err) -{ - GIOWin32Channel *win32_channel = (GIOWin32Channel *)channel; - gint result; - - if (win32_channel->debug) - g_print ("g_io_win32_fd_read: fd=%d count=%" G_GSIZE_FORMAT "\n", - win32_channel->fd, count); - - if (win32_channel->thread_id) - { - return buffer_read (win32_channel, buf, count, bytes_read, err); - } - - result = read (win32_channel->fd, buf, count); - - if (win32_channel->debug) - g_print ("g_io_win32_fd_read: read() => %d\n", result); - - if (result < 0) - { - *bytes_read = 0; - - switch (errno) - { -#ifdef EAGAIN - case EAGAIN: - return G_IO_STATUS_AGAIN; -#endif - default: - g_set_error_literal (err, G_IO_CHANNEL_ERROR, - g_io_channel_error_from_errno (errno), - g_strerror (errno)); - return G_IO_STATUS_ERROR; - } - } - - *bytes_read = result; - - return (result > 0) ? G_IO_STATUS_NORMAL : G_IO_STATUS_EOF; -} - -static GIOStatus -g_io_win32_fd_and_console_write (GIOChannel *channel, - const gchar *buf, - gsize count, - gsize *bytes_written, - GError **err) -{ - GIOWin32Channel *win32_channel = (GIOWin32Channel *)channel; - gint result; - - if (win32_channel->thread_id) - { - return buffer_write (win32_channel, buf, count, bytes_written, err); - } - - result = write (win32_channel->fd, buf, count); - if (win32_channel->debug) - g_print ("g_io_win32_fd_write: fd=%d count=%" G_GSIZE_FORMAT " => %d\n", - win32_channel->fd, count, result); - - if (result < 0) - { - *bytes_written = 0; - - switch (errno) - { -#ifdef EAGAIN - case EAGAIN: - return G_IO_STATUS_AGAIN; -#endif - default: - g_set_error_literal (err, G_IO_CHANNEL_ERROR, - g_io_channel_error_from_errno (errno), - g_strerror (errno)); - return G_IO_STATUS_ERROR; - } - } - - *bytes_written = result; - - return G_IO_STATUS_NORMAL; -} - -static GIOStatus -g_io_win32_fd_seek (GIOChannel *channel, - gint64 offset, - GSeekType type, - GError **err) -{ - GIOWin32Channel *win32_channel = (GIOWin32Channel *)channel; - int whence; - off_t tmp_offset; - off_t result; - - switch (type) - { - case G_SEEK_SET: - whence = SEEK_SET; - break; - case G_SEEK_CUR: - whence = SEEK_CUR; - break; - case G_SEEK_END: - whence = SEEK_END; - break; - default: - whence = -1; /* Keep the compiler quiet */ - g_assert_not_reached (); - abort (); - } - - tmp_offset = offset; - if (tmp_offset != offset) - { - g_set_error_literal (err, G_IO_CHANNEL_ERROR, - g_io_channel_error_from_errno (EINVAL), - g_strerror (EINVAL)); - return G_IO_STATUS_ERROR; - } - - result = lseek (win32_channel->fd, tmp_offset, whence); - - if (result < 0) - { - g_set_error_literal (err, G_IO_CHANNEL_ERROR, - g_io_channel_error_from_errno (errno), - g_strerror (errno)); - return G_IO_STATUS_ERROR; - } - - return G_IO_STATUS_NORMAL; -} - -static GIOStatus -g_io_win32_fd_close (GIOChannel *channel, - GError **err) -{ - GIOWin32Channel *win32_channel = (GIOWin32Channel *)channel; - - if (win32_channel->debug) - g_print ("g_io_win32_fd_close: thread=%#x: fd=%d\n", - win32_channel->thread_id, - win32_channel->fd); - EnterCriticalSection (&win32_channel->mutex); - if (win32_channel->running) - { - if (win32_channel->debug) - g_print ("thread %#x: running, marking fd %d for later close\n", - win32_channel->thread_id, win32_channel->fd); - win32_channel->running = FALSE; - win32_channel->needs_close = TRUE; - if (win32_channel->direction == 0) - SetEvent (win32_channel->data_avail_event); - else - SetEvent (win32_channel->space_avail_event); - } - else - { - if (win32_channel->debug) - g_print ("closing fd %d\n", win32_channel->fd); - close (win32_channel->fd); - if (win32_channel->debug) - g_print ("closed fd %d, setting to -1\n", - win32_channel->fd); - win32_channel->fd = -1; - } - LeaveCriticalSection (&win32_channel->mutex); - - /* FIXME error detection? */ - - return G_IO_STATUS_NORMAL; -} - -static GSource * -g_io_win32_fd_create_watch (GIOChannel *channel, - GIOCondition condition) -{ - GIOWin32Channel *win32_channel = (GIOWin32Channel *)channel; - GSource *source = g_source_new (&g_io_watch_funcs, sizeof (GIOWin32Watch)); - GIOWin32Watch *watch = (GIOWin32Watch *)source; - - watch->channel = channel; - g_io_channel_ref (channel); - - watch->condition = condition; - - if (win32_channel->data_avail_event == NULL) - create_events (win32_channel); - - watch->pollfd.fd = (gintptr) win32_channel->data_avail_event; - watch->pollfd.events = condition; - - if (win32_channel->debug) - g_print ("g_io_win32_fd_create_watch: channel=%p fd=%d condition={%s} event=%p\n", - channel, win32_channel->fd, - condition_to_string (condition), (HANDLE) watch->pollfd.fd); - - EnterCriticalSection (&win32_channel->mutex); - if (win32_channel->thread_id == 0) - { - if (condition & G_IO_IN) - create_thread (win32_channel, condition, read_thread); - else if (condition & G_IO_OUT) - create_thread (win32_channel, condition, write_thread); - } - - g_source_add_poll (source, &watch->pollfd); - LeaveCriticalSection (&win32_channel->mutex); - - return source; -} - -static GIOStatus -g_io_win32_console_close (GIOChannel *channel, - GError **err) -{ - GIOWin32Channel *win32_channel = (GIOWin32Channel *)channel; - - if (close (win32_channel->fd) < 0) - { - g_set_error_literal (err, G_IO_CHANNEL_ERROR, - g_io_channel_error_from_errno (errno), - g_strerror (errno)); - return G_IO_STATUS_ERROR; - } - - return G_IO_STATUS_NORMAL; -} - -static GSource * -g_io_win32_console_create_watch (GIOChannel *channel, - GIOCondition condition) -{ - GIOWin32Channel *win32_channel = (GIOWin32Channel *)channel; - GSource *source = g_source_new (&g_io_watch_funcs, sizeof (GIOWin32Watch)); - GIOWin32Watch *watch = (GIOWin32Watch *)source; - - watch->channel = channel; - g_io_channel_ref (channel); - - watch->condition = condition; - - watch->pollfd.fd = _get_osfhandle (win32_channel->fd); - watch->pollfd.events = condition; - - g_source_add_poll (source, &watch->pollfd); - - return source; -} - -static GIOStatus -g_io_win32_sock_read (GIOChannel *channel, - gchar *buf, - gsize count, - gsize *bytes_read, - GError **err) -{ - GIOWin32Channel *win32_channel = (GIOWin32Channel *)channel; - gint result; - GIOChannelError error; - int winsock_error; - - if (win32_channel->debug) - g_print ("g_io_win32_sock_read: channel=%p sock=%d count=%" G_GSIZE_FORMAT, - channel, win32_channel->fd, count); - - result = recv (win32_channel->fd, buf, count, 0); - if (result == SOCKET_ERROR) - winsock_error = WSAGetLastError (); - - if (win32_channel->debug) - g_print (" recv=%d", result); - - if (result == SOCKET_ERROR) - { - gchar *emsg = g_win32_error_message (winsock_error); - - if (win32_channel->debug) - g_print (" %s\n", emsg); - - *bytes_read = 0; - - switch (winsock_error) - { - case WSAEINVAL: - error = G_IO_CHANNEL_ERROR_INVAL; - break; - case WSAEWOULDBLOCK: - g_free (emsg); - return G_IO_STATUS_AGAIN; - default: - error = G_IO_CHANNEL_ERROR_FAILED; - break; - } - g_set_error_literal (err, G_IO_CHANNEL_ERROR, error, emsg); - g_free (emsg); - - return G_IO_STATUS_ERROR; - } - else - { - if (win32_channel->debug) - g_print ("\n"); - *bytes_read = result; - if (result == 0) - return G_IO_STATUS_EOF; - else - return G_IO_STATUS_NORMAL; - } -} - -static GIOStatus -g_io_win32_sock_write (GIOChannel *channel, - const gchar *buf, - gsize count, - gsize *bytes_written, - GError **err) -{ - GIOWin32Channel *win32_channel = (GIOWin32Channel *)channel; - gint result; - GIOChannelError error; - int winsock_error; - - if (win32_channel->debug) - g_print ("g_io_win32_sock_write: channel=%p sock=%d count=%" G_GSIZE_FORMAT, - channel, win32_channel->fd, count); - - result = send (win32_channel->fd, buf, count, 0); - if (result == SOCKET_ERROR) - winsock_error = WSAGetLastError (); - - if (win32_channel->debug) - g_print (" send=%d", result); - - if (result == SOCKET_ERROR) - { - gchar *emsg = g_win32_error_message (winsock_error); - - if (win32_channel->debug) - g_print (" %s\n", emsg); - - *bytes_written = 0; - - switch (winsock_error) - { - case WSAEINVAL: - error = G_IO_CHANNEL_ERROR_INVAL; - break; - case WSAEWOULDBLOCK: - win32_channel->write_would_have_blocked = TRUE; - win32_channel->last_events = 0; - g_free (emsg); - return G_IO_STATUS_AGAIN; - default: - error = G_IO_CHANNEL_ERROR_FAILED; - break; - } - g_set_error_literal (err, G_IO_CHANNEL_ERROR, error, emsg); - g_free (emsg); - - return G_IO_STATUS_ERROR; - } - else - { - if (win32_channel->debug) - g_print ("\n"); - *bytes_written = result; - win32_channel->write_would_have_blocked = FALSE; - - return G_IO_STATUS_NORMAL; - } -} - -static GIOStatus -g_io_win32_sock_close (GIOChannel *channel, - GError **err) -{ - GIOWin32Channel *win32_channel = (GIOWin32Channel *)channel; - - if (win32_channel->fd != -1) - { - if (win32_channel->debug) - g_print ("g_io_win32_sock_close: channel=%p sock=%d\n", - channel, win32_channel->fd); - - closesocket (win32_channel->fd); - win32_channel->fd = -1; - } - - /* FIXME error detection? */ - - return G_IO_STATUS_NORMAL; -} - -static GSource * -g_io_win32_sock_create_watch (GIOChannel *channel, - GIOCondition condition) -{ - GIOWin32Channel *win32_channel = (GIOWin32Channel *)channel; - GSource *source = g_source_new (&g_io_watch_funcs, sizeof (GIOWin32Watch)); - GIOWin32Watch *watch = (GIOWin32Watch *)source; - - watch->channel = channel; - g_io_channel_ref (channel); - - watch->condition = condition; - - if (win32_channel->event == 0) - win32_channel->event = WSACreateEvent (); - - watch->pollfd.fd = (gintptr) win32_channel->event; - watch->pollfd.events = condition; - - if (win32_channel->debug) - g_print ("g_io_win32_sock_create_watch: channel=%p sock=%d event=%p condition={%s}\n", - channel, win32_channel->fd, (HANDLE) watch->pollfd.fd, - condition_to_string (watch->condition)); - - g_source_add_poll (source, &watch->pollfd); - - return source; -} - -GIOChannel * -g_io_channel_new_file (const gchar *filename, - const gchar *mode, - GError **error) -{ - int fid, flags, pmode; - GIOChannel *channel; - - enum { /* Cheesy hack */ - MODE_R = 1 << 0, - MODE_W = 1 << 1, - MODE_A = 1 << 2, - MODE_PLUS = 1 << 3, - } mode_num; - - g_return_val_if_fail (filename != NULL, NULL); - g_return_val_if_fail (mode != NULL, NULL); - g_return_val_if_fail ((error == NULL) || (*error == NULL), NULL); - - switch (mode[0]) - { - case 'r': - mode_num = MODE_R; - break; - case 'w': - mode_num = MODE_W; - break; - case 'a': - mode_num = MODE_A; - break; - default: - g_warning ("Invalid GIOFileMode %s.", mode); - return NULL; - } - - switch (mode[1]) - { - case '\0': - break; - case '+': - if (mode[2] == '\0') - { - mode_num |= MODE_PLUS; - break; - } - /* Fall through */ - default: - g_warning ("Invalid GIOFileMode %s.", mode); - return NULL; - } - - switch (mode_num) - { - case MODE_R: - flags = O_RDONLY; - pmode = _S_IREAD; - break; - case MODE_W: - flags = O_WRONLY | O_TRUNC | O_CREAT; - pmode = _S_IWRITE; - break; - case MODE_A: - flags = O_WRONLY | O_APPEND | O_CREAT; - pmode = _S_IWRITE; - break; - case MODE_R | MODE_PLUS: - flags = O_RDWR; - pmode = _S_IREAD | _S_IWRITE; - break; - case MODE_W | MODE_PLUS: - flags = O_RDWR | O_TRUNC | O_CREAT; - pmode = _S_IREAD | _S_IWRITE; - break; - case MODE_A | MODE_PLUS: - flags = O_RDWR | O_APPEND | O_CREAT; - pmode = _S_IREAD | _S_IWRITE; - break; - default: - g_assert_not_reached (); - abort (); - } - - /* always open 'untranslated' */ - fid = g_open (filename, flags | _O_BINARY, pmode); - - if (g_io_win32_get_debug_flag ()) - { - g_print ("g_io_channel_win32_new_file: open(\"%s\",", filename); - g_win32_print_access_mode (flags|_O_BINARY); - g_print (",%#o)=%d\n", pmode, fid); - } - - if (fid < 0) - { - g_set_error_literal (error, G_FILE_ERROR, - g_file_error_from_errno (errno), - g_strerror (errno)); - return (GIOChannel *)NULL; - } - - channel = g_io_channel_win32_new_fd (fid); - - /* XXX: move this to g_io_channel_win32_new_fd () */ - channel->close_on_unref = TRUE; - channel->is_seekable = TRUE; - - /* g_io_channel_win32_new_fd sets is_readable and is_writeable to - * correspond to actual readability/writeability. Set to FALSE those - * that mode doesn't allow - */ - switch (mode_num) - { - case MODE_R: - channel->is_writeable = FALSE; - break; - case MODE_W: - case MODE_A: - channel->is_readable = FALSE; - break; - case MODE_R | MODE_PLUS: - case MODE_W | MODE_PLUS: - case MODE_A | MODE_PLUS: - break; - default: - g_assert_not_reached (); - abort (); - } - - return channel; -} - -#if !defined (_WIN64) - -#undef g_io_channel_new_file - -/* Binary compatibility version. Not for newly compiled code. */ - -GIOChannel * -g_io_channel_new_file (const gchar *filename, - const gchar *mode, - GError **error) -{ - gchar *utf8_filename = g_locale_to_utf8 (filename, -1, NULL, NULL, error); - GIOChannel *retval; - - if (utf8_filename == NULL) - return NULL; - - retval = g_io_channel_new_file_utf8 (utf8_filename, mode, error); - - g_free (utf8_filename); - - return retval; -} - -#endif - -static GIOStatus -g_io_win32_unimpl_set_flags (GIOChannel *channel, - GIOFlags flags, - GError **err) -{ - GIOWin32Channel *win32_channel = (GIOWin32Channel *)channel; - - if (win32_channel->debug) - { - g_print ("g_io_win32_unimpl_set_flags: "); - g_win32_print_gioflags (flags); - g_print ("\n"); - } - - g_set_error_literal (err, G_IO_CHANNEL_ERROR, - G_IO_CHANNEL_ERROR_FAILED, - "Not implemented on Win32"); - - return G_IO_STATUS_ERROR; -} - -static GIOFlags -g_io_win32_fd_get_flags_internal (GIOChannel *channel, - struct stat *st) -{ - GIOWin32Channel *win32_channel = (GIOWin32Channel *) channel; - gchar c; - DWORD count; - - if (st->st_mode & _S_IFIFO) - { - channel->is_readable = - (PeekNamedPipe ((HANDLE) _get_osfhandle (win32_channel->fd), &c, 0, &count, NULL, NULL) != 0) || GetLastError () == ERROR_BROKEN_PIPE; - channel->is_writeable = - (WriteFile ((HANDLE) _get_osfhandle (win32_channel->fd), &c, 0, &count, NULL) != 0); - channel->is_seekable = FALSE; - } - else - { - channel->is_readable = - (ReadFile ((HANDLE) _get_osfhandle (win32_channel->fd), &c, 0, &count, NULL) != 0); - channel->is_writeable = - (WriteFile ((HANDLE) _get_osfhandle (win32_channel->fd), &c, 0, &count, NULL) != 0); - channel->is_seekable = TRUE; - } - - /* XXX: G_IO_FLAG_APPEND */ - /* XXX: G_IO_FLAG_NONBLOCK */ - - return 0; -} - -static GIOFlags -g_io_win32_fd_get_flags (GIOChannel *channel) -{ - struct stat st; - GIOWin32Channel *win32_channel = (GIOWin32Channel *)channel; - - g_return_val_if_fail (win32_channel != NULL, 0); - g_return_val_if_fail (win32_channel->type == G_IO_WIN32_FILE_DESC, 0); - - if (0 == fstat (win32_channel->fd, &st)) - return g_io_win32_fd_get_flags_internal (channel, &st); - else - return 0; -} - -static GIOFlags -g_io_win32_console_get_flags_internal (GIOChannel *channel) -{ - GIOWin32Channel *win32_channel = (GIOWin32Channel *) channel; - HANDLE handle = (HANDLE) _get_osfhandle (win32_channel->fd); - gchar c; - DWORD count; - INPUT_RECORD record; - - channel->is_readable = PeekConsoleInput (handle, &record, 1, &count); - channel->is_writeable = WriteFile (handle, &c, 0, &count, NULL); - channel->is_seekable = FALSE; - - return 0; -} - -static GIOFlags -g_io_win32_console_get_flags (GIOChannel *channel) -{ - GIOWin32Channel *win32_channel = (GIOWin32Channel *)channel; - - g_return_val_if_fail (win32_channel != NULL, 0); - g_return_val_if_fail (win32_channel->type == G_IO_WIN32_CONSOLE, 0); - - return g_io_win32_console_get_flags_internal (channel); -} - -static GIOFlags -g_io_win32_msg_get_flags (GIOChannel *channel) -{ - return 0; -} - -static GIOStatus -g_io_win32_sock_set_flags (GIOChannel *channel, - GIOFlags flags, - GError **err) -{ - GIOWin32Channel *win32_channel = (GIOWin32Channel *)channel; - u_long arg; - - if (win32_channel->debug) - { - g_print ("g_io_win32_sock_set_flags: "); - g_win32_print_gioflags (flags); - g_print ("\n"); - } - - if (flags & G_IO_FLAG_NONBLOCK) - { - arg = 1; - if (ioctlsocket (win32_channel->fd, FIONBIO, &arg) == SOCKET_ERROR) - { - gchar *emsg = g_win32_error_message (WSAGetLastError ()); - - g_set_error_literal (err, G_IO_CHANNEL_ERROR, - G_IO_CHANNEL_ERROR_FAILED, - emsg); - g_free (emsg); - - return G_IO_STATUS_ERROR; - } - } - else - { - arg = 0; - if (ioctlsocket (win32_channel->fd, FIONBIO, &arg) == SOCKET_ERROR) - { - gchar *emsg = g_win32_error_message (WSAGetLastError ()); - - g_set_error_literal (err, G_IO_CHANNEL_ERROR, - G_IO_CHANNEL_ERROR_FAILED, - emsg); - g_free (emsg); - - return G_IO_STATUS_ERROR; - } - } - - return G_IO_STATUS_NORMAL; -} - -static GIOFlags -g_io_win32_sock_get_flags (GIOChannel *channel) -{ - /* Could we do something here? */ - return 0; -} - -static GIOFuncs win32_channel_msg_funcs = { - g_io_win32_msg_read, - g_io_win32_msg_write, - NULL, - g_io_win32_msg_close, - g_io_win32_msg_create_watch, - g_io_win32_free, - g_io_win32_unimpl_set_flags, - g_io_win32_msg_get_flags, -}; - -static GIOFuncs win32_channel_fd_funcs = { - g_io_win32_fd_and_console_read, - g_io_win32_fd_and_console_write, - g_io_win32_fd_seek, - g_io_win32_fd_close, - g_io_win32_fd_create_watch, - g_io_win32_free, - g_io_win32_unimpl_set_flags, - g_io_win32_fd_get_flags, -}; - -static GIOFuncs win32_channel_console_funcs = { - g_io_win32_fd_and_console_read, - g_io_win32_fd_and_console_write, - NULL, - g_io_win32_console_close, - g_io_win32_console_create_watch, - g_io_win32_free, - g_io_win32_unimpl_set_flags, - g_io_win32_console_get_flags, -}; - -static GIOFuncs win32_channel_sock_funcs = { - g_io_win32_sock_read, - g_io_win32_sock_write, - NULL, - g_io_win32_sock_close, - g_io_win32_sock_create_watch, - g_io_win32_free, - g_io_win32_sock_set_flags, - g_io_win32_sock_get_flags, -}; - -GIOChannel * -#if GLIB_SIZEOF_VOID_P == 8 -g_io_channel_win32_new_messages (gsize hwnd) -#else -g_io_channel_win32_new_messages (guint hwnd) -#endif -{ - GIOWin32Channel *win32_channel = g_new (GIOWin32Channel, 1); - GIOChannel *channel = (GIOChannel *)win32_channel; - - g_io_channel_init (channel); - g_io_channel_win32_init (win32_channel); - if (win32_channel->debug) - g_print ("g_io_channel_win32_new_messages: channel=%p hwnd=%p\n", - channel, (HWND) hwnd); - channel->funcs = &win32_channel_msg_funcs; - win32_channel->type = G_IO_WIN32_WINDOWS_MESSAGES; - win32_channel->hwnd = (HWND) hwnd; - - /* XXX: check this. */ - channel->is_readable = IsWindow (win32_channel->hwnd); - channel->is_writeable = IsWindow (win32_channel->hwnd); - - channel->is_seekable = FALSE; - - return channel; -} - -static GIOChannel * -g_io_channel_win32_new_fd_internal (gint fd, - struct stat *st) -{ - GIOWin32Channel *win32_channel; - GIOChannel *channel; - - win32_channel = g_new (GIOWin32Channel, 1); - channel = (GIOChannel *)win32_channel; - - g_io_channel_init (channel); - g_io_channel_win32_init (win32_channel); - - win32_channel->fd = fd; - - if (win32_channel->debug) - g_print ("g_io_channel_win32_new_fd: channel=%p fd=%u\n", - channel, fd); - - if (st->st_mode & _S_IFCHR) /* console */ - { - channel->funcs = &win32_channel_console_funcs; - win32_channel->type = G_IO_WIN32_CONSOLE; - g_io_win32_console_get_flags_internal (channel); - } - else - { - channel->funcs = &win32_channel_fd_funcs; - win32_channel->type = G_IO_WIN32_FILE_DESC; - g_io_win32_fd_get_flags_internal (channel, st); - } - - return channel; -} - -GIOChannel * -g_io_channel_win32_new_fd (gint fd) -{ - struct stat st; - - if (fstat (fd, &st) == -1) - { - g_warning ("g_io_channel_win32_new_fd: %d isn't an open file descriptor in the C library GLib uses.", fd); - return NULL; - } - - return g_io_channel_win32_new_fd_internal (fd, &st); -} - -gint -g_io_channel_win32_get_fd (GIOChannel *channel) -{ - GIOWin32Channel *win32_channel = (GIOWin32Channel *)channel; - - return win32_channel->fd; -} - -GIOChannel * -g_io_channel_win32_new_socket (int socket) -{ - GIOWin32Channel *win32_channel = g_new (GIOWin32Channel, 1); - GIOChannel *channel = (GIOChannel *)win32_channel; - - g_io_channel_init (channel); - g_io_channel_win32_init (win32_channel); - if (win32_channel->debug) - g_print ("g_io_channel_win32_new_socket: channel=%p sock=%d\n", - channel, socket); - channel->funcs = &win32_channel_sock_funcs; - win32_channel->type = G_IO_WIN32_SOCKET; - win32_channel->fd = socket; - - channel->is_readable = TRUE; - channel->is_writeable = TRUE; - channel->is_seekable = FALSE; - - return channel; -} - -GIOChannel * -g_io_channel_unix_new (gint fd) -{ - gboolean is_fd, is_socket; - struct stat st; - int optval, optlen; - - is_fd = (fstat (fd, &st) == 0); - - optlen = sizeof (optval); - is_socket = (getsockopt (fd, SOL_SOCKET, SO_TYPE, (char *) &optval, &optlen) != SOCKET_ERROR); - - if (is_fd && is_socket) - g_warning ("g_io_channel_unix_new: %d is both a file descriptor and a socket. File descriptor interpretation assumed. To avoid ambiguity, call either g_io_channel_win32_new_fd() or g_io_channel_win32_new_socket() instead.", fd); - - if (is_fd) - return g_io_channel_win32_new_fd_internal (fd, &st); - - if (is_socket) - return g_io_channel_win32_new_socket(fd); - - g_warning ("g_io_channel_unix_new: %d is neither a file descriptor or a socket.", fd); - - return NULL; -} - -gint -g_io_channel_unix_get_fd (GIOChannel *channel) -{ - return g_io_channel_win32_get_fd (channel); -} - -void -g_io_channel_win32_set_debug (GIOChannel *channel, - gboolean flag) -{ - GIOWin32Channel *win32_channel = (GIOWin32Channel *)channel; - - win32_channel->debug = flag; -} - -gint -g_io_channel_win32_poll (GPollFD *fds, - gint n_fds, - gint timeout) -{ - g_return_val_if_fail (n_fds >= 0, 0); - - return g_poll (fds, n_fds, timeout); -} - -void -g_io_channel_win32_make_pollfd (GIOChannel *channel, - GIOCondition condition, - GPollFD *fd) -{ - GIOWin32Channel *win32_channel = (GIOWin32Channel *)channel; - - switch (win32_channel->type) - { - case G_IO_WIN32_FILE_DESC: - if (win32_channel->data_avail_event == NULL) - create_events (win32_channel); - - fd->fd = (gintptr) win32_channel->data_avail_event; - - if (win32_channel->thread_id == 0) - { - /* Is it meaningful for a file descriptor to be polled for - * both IN and OUT? For what kind of file descriptor would - * that be? Doesn't seem to make sense, in practise the file - * descriptors handled here are always read or write ends of - * pipes surely, and thus unidirectional. - */ - if (condition & G_IO_IN) - create_thread (win32_channel, condition, read_thread); - else if (condition & G_IO_OUT) - create_thread (win32_channel, condition, write_thread); - } - break; - - case G_IO_WIN32_CONSOLE: - fd->fd = _get_osfhandle (win32_channel->fd); - break; - - case G_IO_WIN32_SOCKET: - fd->fd = (gintptr) WSACreateEvent (); - break; - - case G_IO_WIN32_WINDOWS_MESSAGES: - fd->fd = G_WIN32_MSG_HANDLE; - break; - - default: - g_assert_not_reached (); - abort (); - } - - fd->events = condition; -} - -#ifndef _WIN64 - -/* Binary compatibility */ -GIOChannel * -g_io_channel_win32_new_stream_socket (int socket) -{ - return g_io_channel_win32_new_socket (socket); -} - -#endif - -#define __G_IO_WIN32_C__ -#include "galiasdef.c" diff --git a/lib/win32/glib-2.20.4/glib/gkeyfile.c b/lib/win32/glib-2.20.4/glib/gkeyfile.c deleted file mode 100644 index 19301ce8a0d51..0000000000000 --- a/lib/win32/glib-2.20.4/glib/gkeyfile.c +++ /dev/null @@ -1,3780 +0,0 @@ -/* gkeyfile.c - key file parser - * - * Copyright 2004 Red Hat, Inc. - * - * Written by Ray Strode - * Matthias Clasen - * - * GLib is free software; you can redistribute it and/or modify it - * under the terms of the GNU Lesser General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or (at your option) any later version. - * - * GLib 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 - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with GLib; see the file COPYING.LIB. If not, - * write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ - -#include "config.h" - -#include "gkeyfile.h" - -#include -#include -#include -#include -#include -#include -#include -#include -#ifdef HAVE_UNISTD_H -#include -#endif -#ifdef G_OS_WIN32 -#include - -#ifndef S_ISREG -#define S_ISREG(mode) ((mode)&_S_IFREG) -#endif - -#endif /* G_OS_WIN23 */ - -#include "gconvert.h" -#include "gdataset.h" -#include "gerror.h" -#include "gfileutils.h" -#include "ghash.h" -#include "glibintl.h" -#include "glist.h" -#include "gslist.h" -#include "gmem.h" -#include "gmessages.h" -#include "gstdio.h" -#include "gstring.h" -#include "gstrfuncs.h" -#include "gutils.h" - -#include "galias.h" - -typedef struct _GKeyFileGroup GKeyFileGroup; - -struct _GKeyFile -{ - GList *groups; - GHashTable *group_hash; - - GKeyFileGroup *start_group; - GKeyFileGroup *current_group; - - GString *parse_buffer; /* Holds up to one line of not-yet-parsed data */ - - /* Used for sizing the output buffer during serialization - */ - gsize approximate_size; - - gchar list_separator; - - GKeyFileFlags flags; - - gchar **locales; -}; - -typedef struct _GKeyFileKeyValuePair GKeyFileKeyValuePair; - -struct _GKeyFileGroup -{ - const gchar *name; /* NULL for above first group (which will be comments) */ - - GKeyFileKeyValuePair *comment; /* Special comment that is stuck to the top of a group */ - gboolean has_trailing_blank_line; - - GList *key_value_pairs; - - /* Used in parallel with key_value_pairs for - * increased lookup performance - */ - GHashTable *lookup_map; -}; - -struct _GKeyFileKeyValuePair -{ - gchar *key; /* NULL for comments */ - gchar *value; -}; - -static gint find_file_in_data_dirs (const gchar *file, - const gchar **data_dirs, - gchar **output_file, - GError **error); -static gboolean g_key_file_load_from_fd (GKeyFile *key_file, - gint fd, - GKeyFileFlags flags, - GError **error); -static GList *g_key_file_lookup_group_node (GKeyFile *key_file, - const gchar *group_name); -static GKeyFileGroup *g_key_file_lookup_group (GKeyFile *key_file, - const gchar *group_name); - -static GList *g_key_file_lookup_key_value_pair_node (GKeyFile *key_file, - GKeyFileGroup *group, - const gchar *key); -static GKeyFileKeyValuePair *g_key_file_lookup_key_value_pair (GKeyFile *key_file, - GKeyFileGroup *group, - const gchar *key); - -static void g_key_file_remove_group_node (GKeyFile *key_file, - GList *group_node); -static void g_key_file_remove_key_value_pair_node (GKeyFile *key_file, - GKeyFileGroup *group, - GList *pair_node); - -static void g_key_file_add_key (GKeyFile *key_file, - GKeyFileGroup *group, - const gchar *key, - const gchar *value); -static void g_key_file_add_group (GKeyFile *key_file, - const gchar *group_name); -static gboolean g_key_file_is_group_name (const gchar *name); -static gboolean g_key_file_is_key_name (const gchar *name); -static void g_key_file_key_value_pair_free (GKeyFileKeyValuePair *pair); -static gboolean g_key_file_line_is_comment (const gchar *line); -static gboolean g_key_file_line_is_group (const gchar *line); -static gboolean g_key_file_line_is_key_value_pair (const gchar *line); -static gchar *g_key_file_parse_value_as_string (GKeyFile *key_file, - const gchar *value, - GSList **separators, - GError **error); -static gchar *g_key_file_parse_string_as_value (GKeyFile *key_file, - const gchar *string, - gboolean escape_separator); -static gint g_key_file_parse_value_as_integer (GKeyFile *key_file, - const gchar *value, - GError **error); -static gchar *g_key_file_parse_integer_as_value (GKeyFile *key_file, - gint value); -static gdouble g_key_file_parse_value_as_double (GKeyFile *key_file, - const gchar *value, - GError **error); -static gboolean g_key_file_parse_value_as_boolean (GKeyFile *key_file, - const gchar *value, - GError **error); -static gchar *g_key_file_parse_boolean_as_value (GKeyFile *key_file, - gboolean value); -static gchar *g_key_file_parse_value_as_comment (GKeyFile *key_file, - const gchar *value); -static gchar *g_key_file_parse_comment_as_value (GKeyFile *key_file, - const gchar *comment); -static void g_key_file_parse_key_value_pair (GKeyFile *key_file, - const gchar *line, - gsize length, - GError **error); -static void g_key_file_parse_comment (GKeyFile *key_file, - const gchar *line, - gsize length, - GError **error); -static void g_key_file_parse_group (GKeyFile *key_file, - const gchar *line, - gsize length, - GError **error); -static gchar *key_get_locale (const gchar *key); -static void g_key_file_parse_data (GKeyFile *key_file, - const gchar *data, - gsize length, - GError **error); -static void g_key_file_flush_parse_buffer (GKeyFile *key_file, - GError **error); - - -GQuark -g_key_file_error_quark (void) -{ - return g_quark_from_static_string ("g-key-file-error-quark"); -} - -static void -g_key_file_init (GKeyFile *key_file) -{ - key_file->current_group = g_slice_new0 (GKeyFileGroup); - key_file->groups = g_list_prepend (NULL, key_file->current_group); - key_file->group_hash = g_hash_table_new (g_str_hash, g_str_equal); - key_file->start_group = NULL; - key_file->parse_buffer = g_string_sized_new (128); - key_file->approximate_size = 0; - key_file->list_separator = ';'; - key_file->flags = 0; - key_file->locales = g_strdupv ((gchar **)g_get_language_names ()); -} - -static void -g_key_file_clear (GKeyFile *key_file) -{ - GList *tmp, *group_node; - - if (key_file->locales) - { - g_strfreev (key_file->locales); - key_file->locales = NULL; - } - - if (key_file->parse_buffer) - { - g_string_free (key_file->parse_buffer, TRUE); - key_file->parse_buffer = NULL; - } - - tmp = key_file->groups; - while (tmp != NULL) - { - group_node = tmp; - tmp = tmp->next; - g_key_file_remove_group_node (key_file, group_node); - } - - g_hash_table_destroy (key_file->group_hash); - key_file->group_hash = NULL; - - g_warn_if_fail (key_file->groups == NULL); -} - - -/** - * g_key_file_new: - * - * Creates a new empty #GKeyFile object. Use - * g_key_file_load_from_file(), g_key_file_load_from_data(), - * g_key_file_load_from_dirs() or g_key_file_load_from_data_dirs() to - * read an existing key file. - * - * Return value: an empty #GKeyFile. - * - * Since: 2.6 - **/ -GKeyFile * -g_key_file_new (void) -{ - GKeyFile *key_file; - - key_file = g_slice_new0 (GKeyFile); - g_key_file_init (key_file); - - return key_file; -} - -/** - * g_key_file_set_list_separator: - * @key_file: a #GKeyFile - * @separator: the separator - * - * Sets the character which is used to separate - * values in lists. Typically ';' or ',' are used - * as separators. The default list separator is ';'. - * - * Since: 2.6 - */ -void -g_key_file_set_list_separator (GKeyFile *key_file, - gchar separator) -{ - g_return_if_fail (key_file != NULL); - - key_file->list_separator = separator; -} - - -/* Iterates through all the directories in *dirs trying to - * open file. When it successfully locates and opens a file it - * returns the file descriptor to the open file. It also - * outputs the absolute path of the file in output_file. - */ -static gint -find_file_in_data_dirs (const gchar *file, - const gchar **dirs, - gchar **output_file, - GError **error) -{ - const gchar **data_dirs, *data_dir; - gchar *path; - gint fd; - - path = NULL; - fd = -1; - - if (dirs == NULL) - return fd; - - data_dirs = dirs; - - while (data_dirs && (data_dir = *data_dirs) && fd < 0) - { - gchar *candidate_file, *sub_dir; - - candidate_file = (gchar *) file; - sub_dir = g_strdup (""); - while (candidate_file != NULL && fd < 0) - { - gchar *p; - - path = g_build_filename (data_dir, sub_dir, - candidate_file, NULL); - - fd = g_open (path, O_RDONLY, 0); - - if (fd < 0) - { - g_free (path); - path = NULL; - } - - candidate_file = strchr (candidate_file, '-'); - - if (candidate_file == NULL) - break; - - candidate_file++; - - g_free (sub_dir); - sub_dir = g_strndup (file, candidate_file - file - 1); - - for (p = sub_dir; *p != '\0'; p++) - { - if (*p == '-') - *p = G_DIR_SEPARATOR; - } - } - g_free (sub_dir); - data_dirs++; - } - - if (fd < 0) - { - g_set_error_literal (error, G_KEY_FILE_ERROR, - G_KEY_FILE_ERROR_NOT_FOUND, - _("Valid key file could not be " - "found in search dirs")); - } - - if (output_file != NULL && fd > 0) - *output_file = g_strdup (path); - - g_free (path); - - return fd; -} - -static gboolean -g_key_file_load_from_fd (GKeyFile *key_file, - gint fd, - GKeyFileFlags flags, - GError **error) -{ - GError *key_file_error = NULL; - gssize bytes_read; - struct stat stat_buf; - gchar read_buf[4096]; - - if (fstat (fd, &stat_buf) < 0) - { - g_set_error_literal (error, G_FILE_ERROR, - g_file_error_from_errno (errno), - g_strerror (errno)); - return FALSE; - } - - if (!S_ISREG (stat_buf.st_mode)) - { - g_set_error_literal (error, G_KEY_FILE_ERROR, - G_KEY_FILE_ERROR_PARSE, - _("Not a regular file")); - return FALSE; - } - - if (stat_buf.st_size == 0) - { - g_set_error_literal (error, G_KEY_FILE_ERROR, - G_KEY_FILE_ERROR_PARSE, - _("File is empty")); - return FALSE; - } - - if (key_file->approximate_size > 0) - { - g_key_file_clear (key_file); - g_key_file_init (key_file); - } - key_file->flags = flags; - - bytes_read = 0; - do - { - bytes_read = read (fd, read_buf, 4096); - - if (bytes_read == 0) /* End of File */ - break; - - if (bytes_read < 0) - { - if (errno == EINTR || errno == EAGAIN) - continue; - - g_set_error_literal (error, G_FILE_ERROR, - g_file_error_from_errno (errno), - g_strerror (errno)); - return FALSE; - } - - g_key_file_parse_data (key_file, - read_buf, bytes_read, - &key_file_error); - } - while (!key_file_error); - - if (key_file_error) - { - g_propagate_error (error, key_file_error); - return FALSE; - } - - g_key_file_flush_parse_buffer (key_file, &key_file_error); - - if (key_file_error) - { - g_propagate_error (error, key_file_error); - return FALSE; - } - - return TRUE; -} - -/** - * g_key_file_load_from_file: - * @key_file: an empty #GKeyFile struct - * @file: the path of a filename to load, in the GLib filename encoding - * @flags: flags from #GKeyFileFlags - * @error: return location for a #GError, or %NULL - * - * Loads a key file into an empty #GKeyFile structure. - * If the file could not be loaded then %error is set to - * either a #GFileError or #GKeyFileError. - * - * Return value: %TRUE if a key file could be loaded, %FALSE otherwise - * - * Since: 2.6 - **/ -gboolean -g_key_file_load_from_file (GKeyFile *key_file, - const gchar *file, - GKeyFileFlags flags, - GError **error) -{ - GError *key_file_error = NULL; - gint fd; - - g_return_val_if_fail (key_file != NULL, FALSE); - g_return_val_if_fail (file != NULL, FALSE); - - fd = g_open (file, O_RDONLY, 0); - - if (fd < 0) - { - g_set_error_literal (error, G_FILE_ERROR, - g_file_error_from_errno (errno), - g_strerror (errno)); - return FALSE; - } - - g_key_file_load_from_fd (key_file, fd, flags, &key_file_error); - close (fd); - - if (key_file_error) - { - g_propagate_error (error, key_file_error); - return FALSE; - } - - return TRUE; -} - -/** - * g_key_file_load_from_data: - * @key_file: an empty #GKeyFile struct - * @data: key file loaded in memory - * @length: the length of @data in bytes - * @flags: flags from #GKeyFileFlags - * @error: return location for a #GError, or %NULL - * - * Loads a key file from memory into an empty #GKeyFile structure. - * If the object cannot be created then %error is set to a #GKeyFileError. - * - * Return value: %TRUE if a key file could be loaded, %FALSE otherwise - * - * Since: 2.6 - **/ -gboolean -g_key_file_load_from_data (GKeyFile *key_file, - const gchar *data, - gsize length, - GKeyFileFlags flags, - GError **error) -{ - GError *key_file_error = NULL; - - g_return_val_if_fail (key_file != NULL, FALSE); - g_return_val_if_fail (data != NULL, FALSE); - g_return_val_if_fail (length != 0, FALSE); - - if (length == (gsize)-1) - length = strlen (data); - - if (key_file->approximate_size > 0) - { - g_key_file_clear (key_file); - g_key_file_init (key_file); - } - key_file->flags = flags; - - g_key_file_parse_data (key_file, data, length, &key_file_error); - - if (key_file_error) - { - g_propagate_error (error, key_file_error); - return FALSE; - } - - g_key_file_flush_parse_buffer (key_file, &key_file_error); - - if (key_file_error) - { - g_propagate_error (error, key_file_error); - return FALSE; - } - - return TRUE; -} - -/** - * g_key_file_load_from_dirs: - * @key_file: an empty #GKeyFile struct - * @file: a relative path to a filename to open and parse - * @search_dirs: %NULL-terminated array of directories to search - * @full_path: return location for a string containing the full path - * of the file, or %NULL - * @flags: flags from #GKeyFileFlags - * @error: return location for a #GError, or %NULL - * - * This function looks for a key file named @file in the paths - * specified in @search_dirs, loads the file into @key_file and - * returns the file's full path in @full_path. If the file could not - * be loaded then an %error is set to either a #GFileError or - * #GKeyFileError. - * - * Return value: %TRUE if a key file could be loaded, %FALSE otherwise - * - * Since: 2.14 - **/ -gboolean -g_key_file_load_from_dirs (GKeyFile *key_file, - const gchar *file, - const gchar **search_dirs, - gchar **full_path, - GKeyFileFlags flags, - GError **error) -{ - GError *key_file_error = NULL; - const gchar **data_dirs; - gchar *output_path; - gint fd; - gboolean found_file; - - g_return_val_if_fail (key_file != NULL, FALSE); - g_return_val_if_fail (!g_path_is_absolute (file), FALSE); - g_return_val_if_fail (search_dirs != NULL, FALSE); - - found_file = FALSE; - data_dirs = search_dirs; - output_path = NULL; - while (*data_dirs != NULL && !found_file) - { - g_free (output_path); - - fd = find_file_in_data_dirs (file, data_dirs, &output_path, - &key_file_error); - - if (fd < 0) - { - if (key_file_error) - g_propagate_error (error, key_file_error); - break; - } - - found_file = g_key_file_load_from_fd (key_file, fd, flags, - &key_file_error); - close (fd); - - if (key_file_error) - { - g_propagate_error (error, key_file_error); - break; - } - } - - if (found_file && full_path) - *full_path = output_path; - else - g_free (output_path); - - return found_file; -} - -/** - * g_key_file_load_from_data_dirs: - * @key_file: an empty #GKeyFile struct - * @file: a relative path to a filename to open and parse - * @full_path: return location for a string containing the full path - * of the file, or %NULL - * @flags: flags from #GKeyFileFlags - * @error: return location for a #GError, or %NULL - * - * This function looks for a key file named @file in the paths - * returned from g_get_user_data_dir() and g_get_system_data_dirs(), - * loads the file into @key_file and returns the file's full path in - * @full_path. If the file could not be loaded then an %error is - * set to either a #GFileError or #GKeyFileError. - * - * Return value: %TRUE if a key file could be loaded, %FALSE othewise - * Since: 2.6 - **/ -gboolean -g_key_file_load_from_data_dirs (GKeyFile *key_file, - const gchar *file, - gchar **full_path, - GKeyFileFlags flags, - GError **error) -{ - gchar **all_data_dirs; - const gchar * user_data_dir; - const gchar * const * system_data_dirs; - gsize i, j; - gboolean found_file; - - g_return_val_if_fail (key_file != NULL, FALSE); - g_return_val_if_fail (!g_path_is_absolute (file), FALSE); - - user_data_dir = g_get_user_data_dir (); - system_data_dirs = g_get_system_data_dirs (); - all_data_dirs = g_new (gchar *, g_strv_length ((gchar **)system_data_dirs) + 2); - - i = 0; - all_data_dirs[i++] = g_strdup (user_data_dir); - - j = 0; - while (system_data_dirs[j] != NULL) - all_data_dirs[i++] = g_strdup (system_data_dirs[j++]); - all_data_dirs[i] = NULL; - - found_file = g_key_file_load_from_dirs (key_file, - file, - (const gchar **)all_data_dirs, - full_path, - flags, - error); - - g_strfreev (all_data_dirs); - - return found_file; -} - -/** - * g_key_file_free: - * @key_file: a #GKeyFile - * - * Frees a #GKeyFile. - * - * Since: 2.6 - **/ -void -g_key_file_free (GKeyFile *key_file) -{ - g_return_if_fail (key_file != NULL); - - g_key_file_clear (key_file); - g_slice_free (GKeyFile, key_file); -} - -/* If G_KEY_FILE_KEEP_TRANSLATIONS is not set, only returns - * true for locales that match those in g_get_language_names(). - */ -static gboolean -g_key_file_locale_is_interesting (GKeyFile *key_file, - const gchar *locale) -{ - gsize i; - - if (key_file->flags & G_KEY_FILE_KEEP_TRANSLATIONS) - return TRUE; - - for (i = 0; key_file->locales[i] != NULL; i++) - { - if (g_ascii_strcasecmp (key_file->locales[i], locale) == 0) - return TRUE; - } - - return FALSE; -} - -static void -g_key_file_parse_line (GKeyFile *key_file, - const gchar *line, - gsize length, - GError **error) -{ - GError *parse_error = NULL; - gchar *line_start; - - g_return_if_fail (key_file != NULL); - g_return_if_fail (line != NULL); - - line_start = (gchar *) line; - while (g_ascii_isspace (*line_start)) - line_start++; - - if (g_key_file_line_is_comment (line_start)) - g_key_file_parse_comment (key_file, line, length, &parse_error); - else if (g_key_file_line_is_group (line_start)) - g_key_file_parse_group (key_file, line_start, - length - (line_start - line), - &parse_error); - else if (g_key_file_line_is_key_value_pair (line_start)) - g_key_file_parse_key_value_pair (key_file, line_start, - length - (line_start - line), - &parse_error); - else - { - gchar *line_utf8 = _g_utf8_make_valid (line); - g_set_error (error, G_KEY_FILE_ERROR, - G_KEY_FILE_ERROR_PARSE, - _("Key file contains line '%s' which is not " - "a key-value pair, group, or comment"), - line_utf8); - g_free (line_utf8); - - return; - } - - if (parse_error) - g_propagate_error (error, parse_error); -} - -static void -g_key_file_parse_comment (GKeyFile *key_file, - const gchar *line, - gsize length, - GError **error) -{ - GKeyFileKeyValuePair *pair; - - if (!(key_file->flags & G_KEY_FILE_KEEP_COMMENTS)) - return; - - g_warn_if_fail (key_file->current_group != NULL); - - pair = g_slice_new (GKeyFileKeyValuePair); - pair->key = NULL; - pair->value = g_strndup (line, length); - - key_file->current_group->key_value_pairs = - g_list_prepend (key_file->current_group->key_value_pairs, pair); - - if (length == 0 || line[0] != '#') - key_file->current_group->has_trailing_blank_line = TRUE; -} - -static void -g_key_file_parse_group (GKeyFile *key_file, - const gchar *line, - gsize length, - GError **error) -{ - gchar *group_name; - const gchar *group_name_start, *group_name_end; - - /* advance past opening '[' - */ - group_name_start = line + 1; - group_name_end = line + length - 1; - - while (*group_name_end != ']') - group_name_end--; - - group_name = g_strndup (group_name_start, - group_name_end - group_name_start); - - if (!g_key_file_is_group_name (group_name)) - { - g_set_error (error, G_KEY_FILE_ERROR, - G_KEY_FILE_ERROR_PARSE, - _("Invalid group name: %s"), group_name); - g_free (group_name); - return; - } - - g_key_file_add_group (key_file, group_name); - g_free (group_name); -} - -static void -g_key_file_parse_key_value_pair (GKeyFile *key_file, - const gchar *line, - gsize length, - GError **error) -{ - gchar *key, *value, *key_end, *value_start, *locale; - gsize key_len, value_len; - - if (key_file->current_group == NULL || key_file->current_group->name == NULL) - { - g_set_error_literal (error, G_KEY_FILE_ERROR, - G_KEY_FILE_ERROR_GROUP_NOT_FOUND, - _("Key file does not start with a group")); - return; - } - - key_end = value_start = strchr (line, '='); - - g_warn_if_fail (key_end != NULL); - - key_end--; - value_start++; - - /* Pull the key name from the line (chomping trailing whitespace) - */ - while (g_ascii_isspace (*key_end)) - key_end--; - - key_len = key_end - line + 2; - - g_warn_if_fail (key_len <= length); - - key = g_strndup (line, key_len - 1); - - if (!g_key_file_is_key_name (key)) - { - g_set_error (error, G_KEY_FILE_ERROR, - G_KEY_FILE_ERROR_PARSE, - _("Invalid key name: %s"), key); - g_free (key); - return; - } - - /* Pull the value from the line (chugging leading whitespace) - */ - while (g_ascii_isspace (*value_start)) - value_start++; - - value_len = line + length - value_start + 1; - - value = g_strndup (value_start, value_len); - - g_warn_if_fail (key_file->start_group != NULL); - - if (key_file->current_group - && key_file->current_group->name - && strcmp (key_file->start_group->name, - key_file->current_group->name) == 0 - && strcmp (key, "Encoding") == 0) - { - if (g_ascii_strcasecmp (value, "UTF-8") != 0) - { - gchar *value_utf8 = _g_utf8_make_valid (value); - g_set_error (error, G_KEY_FILE_ERROR, - G_KEY_FILE_ERROR_UNKNOWN_ENCODING, - _("Key file contains unsupported " - "encoding '%s'"), value_utf8); - g_free (value_utf8); - - g_free (key); - g_free (value); - return; - } - } - - /* Is this key a translation? If so, is it one that we care about? - */ - locale = key_get_locale (key); - - if (locale == NULL || g_key_file_locale_is_interesting (key_file, locale)) - g_key_file_add_key (key_file, key_file->current_group, key, value); - - g_free (locale); - g_free (key); - g_free (value); -} - -static gchar * -key_get_locale (const gchar *key) -{ - gchar *locale; - - locale = g_strrstr (key, "["); - - if (locale && strlen (locale) <= 2) - locale = NULL; - - if (locale) - locale = g_strndup (locale + 1, strlen (locale) - 2); - - return locale; -} - -static void -g_key_file_parse_data (GKeyFile *key_file, - const gchar *data, - gsize length, - GError **error) -{ - GError *parse_error; - gsize i; - - g_return_if_fail (key_file != NULL); - g_return_if_fail (data != NULL); - - parse_error = NULL; - - for (i = 0; i < length; i++) - { - if (data[i] == '\n') - { - if (i > 0 && data[i - 1] == '\r') - g_string_erase (key_file->parse_buffer, - key_file->parse_buffer->len - 1, - 1); - - /* When a newline is encountered flush the parse buffer so that the - * line can be parsed. Note that completely blank lines won't show - * up in the parse buffer, so they get parsed directly. - */ - if (key_file->parse_buffer->len > 0) - g_key_file_flush_parse_buffer (key_file, &parse_error); - else - g_key_file_parse_comment (key_file, "", 1, &parse_error); - - if (parse_error) - { - g_propagate_error (error, parse_error); - return; - } - } - else - g_string_append_c (key_file->parse_buffer, data[i]); - } - - key_file->approximate_size += length; -} - -static void -g_key_file_flush_parse_buffer (GKeyFile *key_file, - GError **error) -{ - GError *file_error = NULL; - - g_return_if_fail (key_file != NULL); - - file_error = NULL; - - if (key_file->parse_buffer->len > 0) - { - g_key_file_parse_line (key_file, key_file->parse_buffer->str, - key_file->parse_buffer->len, - &file_error); - g_string_erase (key_file->parse_buffer, 0, -1); - - if (file_error) - { - g_propagate_error (error, file_error); - return; - } - } -} - -/** - * g_key_file_to_data: - * @key_file: a #GKeyFile - * @length: return location for the length of the - * returned string, or %NULL - * @error: return location for a #GError, or %NULL - * - * This function outputs @key_file as a string. - * - * Note that this function never reports an error, - * so it is safe to pass %NULL as @error. - * - * Return value: a newly allocated string holding - * the contents of the #GKeyFile - * - * Since: 2.6 - **/ -gchar * -g_key_file_to_data (GKeyFile *key_file, - gsize *length, - GError **error) -{ - GString *data_string; - GList *group_node, *key_file_node; - gboolean has_blank_line = TRUE; - - g_return_val_if_fail (key_file != NULL, NULL); - - data_string = g_string_sized_new (2 * key_file->approximate_size); - - for (group_node = g_list_last (key_file->groups); - group_node != NULL; - group_node = group_node->prev) - { - GKeyFileGroup *group; - - group = (GKeyFileGroup *) group_node->data; - - /* separate groups by at least an empty line */ - if (!has_blank_line) - g_string_append_c (data_string, '\n'); - has_blank_line = group->has_trailing_blank_line; - - if (group->comment != NULL) - g_string_append_printf (data_string, "%s\n", group->comment->value); - - if (group->name != NULL) - g_string_append_printf (data_string, "[%s]\n", group->name); - - for (key_file_node = g_list_last (group->key_value_pairs); - key_file_node != NULL; - key_file_node = key_file_node->prev) - { - GKeyFileKeyValuePair *pair; - - pair = (GKeyFileKeyValuePair *) key_file_node->data; - - if (pair->key != NULL) - g_string_append_printf (data_string, "%s=%s\n", pair->key, pair->value); - else - g_string_append_printf (data_string, "%s\n", pair->value); - } - } - - if (length) - *length = data_string->len; - - return g_string_free (data_string, FALSE); -} - -/** - * g_key_file_get_keys: - * @key_file: a #GKeyFile - * @group_name: a group name - * @length: return location for the number of keys returned, or %NULL - * @error: return location for a #GError, or %NULL - * - * Returns all keys for the group name @group_name. The array of - * returned keys will be %NULL-terminated, so @length may - * optionally be %NULL. In the event that the @group_name cannot - * be found, %NULL is returned and @error is set to - * #G_KEY_FILE_ERROR_GROUP_NOT_FOUND. - * - * Return value: a newly-allocated %NULL-terminated array of strings. - * Use g_strfreev() to free it. - * - * Since: 2.6 - **/ -gchar ** -g_key_file_get_keys (GKeyFile *key_file, - const gchar *group_name, - gsize *length, - GError **error) -{ - GKeyFileGroup *group; - GList *tmp; - gchar **keys; - gsize i, num_keys; - - g_return_val_if_fail (key_file != NULL, NULL); - g_return_val_if_fail (group_name != NULL, NULL); - - group = g_key_file_lookup_group (key_file, group_name); - - if (!group) - { - g_set_error (error, G_KEY_FILE_ERROR, - G_KEY_FILE_ERROR_GROUP_NOT_FOUND, - _("Key file does not have group '%s'"), - group_name ? group_name : "(null)"); - return NULL; - } - - num_keys = 0; - for (tmp = group->key_value_pairs; tmp; tmp = tmp->next) - { - GKeyFileKeyValuePair *pair; - - pair = (GKeyFileKeyValuePair *) tmp->data; - - if (pair->key) - num_keys++; - } - - keys = g_new (gchar *, num_keys + 1); - - i = num_keys - 1; - for (tmp = group->key_value_pairs; tmp; tmp = tmp->next) - { - GKeyFileKeyValuePair *pair; - - pair = (GKeyFileKeyValuePair *) tmp->data; - - if (pair->key) - { - keys[i] = g_strdup (pair->key); - i--; - } - } - - keys[num_keys] = NULL; - - if (length) - *length = num_keys; - - return keys; -} - -/** - * g_key_file_get_start_group: - * @key_file: a #GKeyFile - * - * Returns the name of the start group of the file. - * - * Return value: The start group of the key file. - * - * Since: 2.6 - **/ -gchar * -g_key_file_get_start_group (GKeyFile *key_file) -{ - g_return_val_if_fail (key_file != NULL, NULL); - - if (key_file->start_group) - return g_strdup (key_file->start_group->name); - - return NULL; -} - -/** - * g_key_file_get_groups: - * @key_file: a #GKeyFile - * @length: return location for the number of returned groups, or %NULL - * - * Returns all groups in the key file loaded with @key_file. - * The array of returned groups will be %NULL-terminated, so - * @length may optionally be %NULL. - * - * Return value: a newly-allocated %NULL-terminated array of strings. - * Use g_strfreev() to free it. - * Since: 2.6 - **/ -gchar ** -g_key_file_get_groups (GKeyFile *key_file, - gsize *length) -{ - GList *group_node; - gchar **groups; - gsize i, num_groups; - - g_return_val_if_fail (key_file != NULL, NULL); - - num_groups = g_list_length (key_file->groups); - - g_return_val_if_fail (num_groups > 0, NULL); - - group_node = g_list_last (key_file->groups); - - g_return_val_if_fail (((GKeyFileGroup *) group_node->data)->name == NULL, NULL); - - /* Only need num_groups instead of num_groups + 1 - * because the first group of the file (last in the - * list) is always the comment group at the top, - * which we skip - */ - groups = g_new (gchar *, num_groups); - - - i = 0; - for (group_node = group_node->prev; - group_node != NULL; - group_node = group_node->prev) - { - GKeyFileGroup *group; - - group = (GKeyFileGroup *) group_node->data; - - g_warn_if_fail (group->name != NULL); - - groups[i++] = g_strdup (group->name); - } - groups[i] = NULL; - - if (length) - *length = i; - - return groups; -} - -/** - * g_key_file_get_value: - * @key_file: a #GKeyFile - * @group_name: a group name - * @key: a key - * @error: return location for a #GError, or %NULL - * - * Returns the raw value associated with @key under @group_name. - * Use g_key_file_get_string() to retrieve an unescaped UTF-8 string. - * - * In the event the key cannot be found, %NULL is returned and - * @error is set to #G_KEY_FILE_ERROR_KEY_NOT_FOUND. In the - * event that the @group_name cannot be found, %NULL is returned - * and @error is set to #G_KEY_FILE_ERROR_GROUP_NOT_FOUND. - * - * - * Return value: a newly allocated string or %NULL if the specified - * key cannot be found. - * - * Since: 2.6 - **/ -gchar * -g_key_file_get_value (GKeyFile *key_file, - const gchar *group_name, - const gchar *key, - GError **error) -{ - GKeyFileGroup *group; - GKeyFileKeyValuePair *pair; - gchar *value = NULL; - - g_return_val_if_fail (key_file != NULL, NULL); - g_return_val_if_fail (group_name != NULL, NULL); - g_return_val_if_fail (key != NULL, NULL); - - group = g_key_file_lookup_group (key_file, group_name); - - if (!group) - { - g_set_error (error, G_KEY_FILE_ERROR, - G_KEY_FILE_ERROR_GROUP_NOT_FOUND, - _("Key file does not have group '%s'"), - group_name ? group_name : "(null)"); - return NULL; - } - - pair = g_key_file_lookup_key_value_pair (key_file, group, key); - - if (pair) - value = g_strdup (pair->value); - else - g_set_error (error, G_KEY_FILE_ERROR, - G_KEY_FILE_ERROR_KEY_NOT_FOUND, - _("Key file does not have key '%s'"), key); - - return value; -} - -/** - * g_key_file_set_value: - * @key_file: a #GKeyFile - * @group_name: a group name - * @key: a key - * @value: a string - * - * Associates a new value with @key under @group_name. - * - * If @key cannot be found then it is created. If @group_name cannot - * be found then it is created. To set an UTF-8 string which may contain - * characters that need escaping (such as newlines or spaces), use - * g_key_file_set_string(). - * - * Since: 2.6 - **/ -void -g_key_file_set_value (GKeyFile *key_file, - const gchar *group_name, - const gchar *key, - const gchar *value) -{ - GKeyFileGroup *group; - GKeyFileKeyValuePair *pair; - - g_return_if_fail (key_file != NULL); - g_return_if_fail (g_key_file_is_group_name (group_name)); - g_return_if_fail (g_key_file_is_key_name (key)); - g_return_if_fail (value != NULL); - - group = g_key_file_lookup_group (key_file, group_name); - - if (!group) - { - g_key_file_add_group (key_file, group_name); - group = (GKeyFileGroup *) key_file->groups->data; - - g_key_file_add_key (key_file, group, key, value); - } - else - { - pair = g_key_file_lookup_key_value_pair (key_file, group, key); - - if (!pair) - g_key_file_add_key (key_file, group, key, value); - else - { - g_free (pair->value); - pair->value = g_strdup (value); - } - } -} - -/** - * g_key_file_get_string: - * @key_file: a #GKeyFile - * @group_name: a group name - * @key: a key - * @error: return location for a #GError, or %NULL - * - * Returns the string value associated with @key under @group_name. - * Unlike g_key_file_get_value(), this function handles escape sequences - * like \s. - * - * In the event the key cannot be found, %NULL is returned and - * @error is set to #G_KEY_FILE_ERROR_KEY_NOT_FOUND. In the - * event that the @group_name cannot be found, %NULL is returned - * and @error is set to #G_KEY_FILE_ERROR_GROUP_NOT_FOUND. - * - * Return value: a newly allocated string or %NULL if the specified - * key cannot be found. - * - * Since: 2.6 - **/ -gchar * -g_key_file_get_string (GKeyFile *key_file, - const gchar *group_name, - const gchar *key, - GError **error) -{ - gchar *value, *string_value; - GError *key_file_error; - - g_return_val_if_fail (key_file != NULL, NULL); - g_return_val_if_fail (group_name != NULL, NULL); - g_return_val_if_fail (key != NULL, NULL); - - key_file_error = NULL; - - value = g_key_file_get_value (key_file, group_name, key, &key_file_error); - - if (key_file_error) - { - g_propagate_error (error, key_file_error); - return NULL; - } - - if (!g_utf8_validate (value, -1, NULL)) - { - gchar *value_utf8 = _g_utf8_make_valid (value); - g_set_error (error, G_KEY_FILE_ERROR, - G_KEY_FILE_ERROR_UNKNOWN_ENCODING, - _("Key file contains key '%s' with value '%s' " - "which is not UTF-8"), key, value_utf8); - g_free (value_utf8); - g_free (value); - - return NULL; - } - - string_value = g_key_file_parse_value_as_string (key_file, value, NULL, - &key_file_error); - g_free (value); - - if (key_file_error) - { - if (g_error_matches (key_file_error, - G_KEY_FILE_ERROR, - G_KEY_FILE_ERROR_INVALID_VALUE)) - { - g_set_error (error, G_KEY_FILE_ERROR, - G_KEY_FILE_ERROR_INVALID_VALUE, - _("Key file contains key '%s' " - "which has value that cannot be interpreted."), - key); - g_error_free (key_file_error); - } - else - g_propagate_error (error, key_file_error); - } - - return string_value; -} - -/** - * g_key_file_set_string: - * @key_file: a #GKeyFile - * @group_name: a group name - * @key: a key - * @string: a string - * - * Associates a new string value with @key under @group_name. - * If @key cannot be found then it is created. - * If @group_name cannot be found then it is created. - * Unlike g_key_file_set_value(), this function handles characters - * that need escaping, such as newlines. - * - * Since: 2.6 - **/ -void -g_key_file_set_string (GKeyFile *key_file, - const gchar *group_name, - const gchar *key, - const gchar *string) -{ - gchar *value; - - g_return_if_fail (key_file != NULL); - g_return_if_fail (string != NULL); - - value = g_key_file_parse_string_as_value (key_file, string, FALSE); - g_key_file_set_value (key_file, group_name, key, value); - g_free (value); -} - -/** - * g_key_file_get_string_list: - * @key_file: a #GKeyFile - * @group_name: a group name - * @key: a key - * @length: return location for the number of returned strings, or %NULL - * @error: return location for a #GError, or %NULL - * - * Returns the values associated with @key under @group_name. - * - * In the event the key cannot be found, %NULL is returned and - * @error is set to #G_KEY_FILE_ERROR_KEY_NOT_FOUND. In the - * event that the @group_name cannot be found, %NULL is returned - * and @error is set to #G_KEY_FILE_ERROR_GROUP_NOT_FOUND. - * - * Return value: a %NULL-terminated string array or %NULL if the specified - * key cannot be found. The array should be freed with g_strfreev(). - * - * Since: 2.6 - **/ -gchar ** -g_key_file_get_string_list (GKeyFile *key_file, - const gchar *group_name, - const gchar *key, - gsize *length, - GError **error) -{ - GError *key_file_error = NULL; - gchar *value, *string_value, **values; - gint i, len; - GSList *p, *pieces = NULL; - - g_return_val_if_fail (key_file != NULL, NULL); - g_return_val_if_fail (group_name != NULL, NULL); - g_return_val_if_fail (key != NULL, NULL); - - if (length) - *length = 0; - - value = g_key_file_get_value (key_file, group_name, key, &key_file_error); - - if (key_file_error) - { - g_propagate_error (error, key_file_error); - return NULL; - } - - if (!g_utf8_validate (value, -1, NULL)) - { - gchar *value_utf8 = _g_utf8_make_valid (value); - g_set_error (error, G_KEY_FILE_ERROR, - G_KEY_FILE_ERROR_UNKNOWN_ENCODING, - _("Key file contains key '%s' with value '%s' " - "which is not UTF-8"), key, value_utf8); - g_free (value_utf8); - g_free (value); - - return NULL; - } - - string_value = g_key_file_parse_value_as_string (key_file, value, &pieces, &key_file_error); - g_free (value); - g_free (string_value); - - if (key_file_error) - { - if (g_error_matches (key_file_error, - G_KEY_FILE_ERROR, - G_KEY_FILE_ERROR_INVALID_VALUE)) - { - g_set_error (error, G_KEY_FILE_ERROR, - G_KEY_FILE_ERROR_INVALID_VALUE, - _("Key file contains key '%s' " - "which has value that cannot be interpreted."), - key); - g_error_free (key_file_error); - } - else - g_propagate_error (error, key_file_error); - - return NULL; - } - - len = g_slist_length (pieces); - values = g_new (gchar *, len + 1); - for (p = pieces, i = 0; p; p = p->next) - values[i++] = p->data; - values[len] = NULL; - - g_slist_free (pieces); - - if (length) - *length = len; - - return values; -} - -/** - * g_key_file_set_string_list: - * @key_file: a #GKeyFile - * @group_name: a group name - * @key: a key - * @list: an array of string values - * @length: number of string values in @list - * - * Associates a list of string values for @key under @group_name. - * If @key cannot be found then it is created. - * If @group_name cannot be found then it is created. - * - * Since: 2.6 - **/ -void -g_key_file_set_string_list (GKeyFile *key_file, - const gchar *group_name, - const gchar *key, - const gchar * const list[], - gsize length) -{ - GString *value_list; - gsize i; - - g_return_if_fail (key_file != NULL); - g_return_if_fail (list != NULL); - - value_list = g_string_sized_new (length * 128); - for (i = 0; i < length && list[i] != NULL; i++) - { - gchar *value; - - value = g_key_file_parse_string_as_value (key_file, list[i], TRUE); - g_string_append (value_list, value); - g_string_append_c (value_list, key_file->list_separator); - - g_free (value); - } - - g_key_file_set_value (key_file, group_name, key, value_list->str); - g_string_free (value_list, TRUE); -} - -/** - * g_key_file_set_locale_string: - * @key_file: a #GKeyFile - * @group_name: a group name - * @key: a key - * @locale: a locale identifier - * @string: a string - * - * Associates a string value for @key and @locale under @group_name. - * If the translation for @key cannot be found then it is created. - * - * Since: 2.6 - **/ -void -g_key_file_set_locale_string (GKeyFile *key_file, - const gchar *group_name, - const gchar *key, - const gchar *locale, - const gchar *string) -{ - gchar *full_key, *value; - - g_return_if_fail (key_file != NULL); - g_return_if_fail (key != NULL); - g_return_if_fail (locale != NULL); - g_return_if_fail (string != NULL); - - value = g_key_file_parse_string_as_value (key_file, string, FALSE); - full_key = g_strdup_printf ("%s[%s]", key, locale); - g_key_file_set_value (key_file, group_name, full_key, value); - g_free (full_key); - g_free (value); -} - -extern GSList *_g_compute_locale_variants (const gchar *locale); - -/** - * g_key_file_get_locale_string: - * @key_file: a #GKeyFile - * @group_name: a group name - * @key: a key - * @locale: a locale identifier or %NULL - * @error: return location for a #GError, or %NULL - * - * Returns the value associated with @key under @group_name - * translated in the given @locale if available. If @locale is - * %NULL then the current locale is assumed. - * - * If @key cannot be found then %NULL is returned and @error is set - * to #G_KEY_FILE_ERROR_KEY_NOT_FOUND. If the value associated - * with @key cannot be interpreted or no suitable translation can - * be found then the untranslated value is returned. - * - * Return value: a newly allocated string or %NULL if the specified - * key cannot be found. - * - * Since: 2.6 - **/ -gchar * -g_key_file_get_locale_string (GKeyFile *key_file, - const gchar *group_name, - const gchar *key, - const gchar *locale, - GError **error) -{ - gchar *candidate_key, *translated_value; - GError *key_file_error; - gchar **languages; - gboolean free_languages = FALSE; - gint i; - - g_return_val_if_fail (key_file != NULL, NULL); - g_return_val_if_fail (group_name != NULL, NULL); - g_return_val_if_fail (key != NULL, NULL); - - candidate_key = NULL; - translated_value = NULL; - key_file_error = NULL; - - if (locale) - { - GSList *l, *list; - - list = _g_compute_locale_variants (locale); - - languages = g_new (gchar *, g_slist_length (list) + 1); - for (l = list, i = 0; l; l = l->next, i++) - languages[i] = l->data; - languages[i] = NULL; - - g_slist_free (list); - free_languages = TRUE; - } - else - { - languages = (gchar **) g_get_language_names (); - free_languages = FALSE; - } - - for (i = 0; languages[i]; i++) - { - candidate_key = g_strdup_printf ("%s[%s]", key, languages[i]); - - translated_value = g_key_file_get_string (key_file, - group_name, - candidate_key, NULL); - g_free (candidate_key); - - if (translated_value) - break; - - g_free (translated_value); - translated_value = NULL; - } - - /* Fallback to untranslated key - */ - if (!translated_value) - { - translated_value = g_key_file_get_string (key_file, group_name, key, - &key_file_error); - - if (!translated_value) - g_propagate_error (error, key_file_error); - } - - if (free_languages) - g_strfreev (languages); - - return translated_value; -} - -/** - * g_key_file_get_locale_string_list: - * @key_file: a #GKeyFile - * @group_name: a group name - * @key: a key - * @locale: a locale identifier or %NULL - * @length: return location for the number of returned strings or %NULL - * @error: return location for a #GError or %NULL - * - * Returns the values associated with @key under @group_name - * translated in the given @locale if available. If @locale is - * %NULL then the current locale is assumed. - - * If @key cannot be found then %NULL is returned and @error is set - * to #G_KEY_FILE_ERROR_KEY_NOT_FOUND. If the values associated - * with @key cannot be interpreted or no suitable translations - * can be found then the untranslated values are returned. The - * returned array is %NULL-terminated, so @length may optionally - * be %NULL. - * - * Return value: a newly allocated %NULL-terminated string array - * or %NULL if the key isn't found. The string array should be freed - * with g_strfreev(). - * - * Since: 2.6 - **/ -gchar ** -g_key_file_get_locale_string_list (GKeyFile *key_file, - const gchar *group_name, - const gchar *key, - const gchar *locale, - gsize *length, - GError **error) -{ - GError *key_file_error; - gchar **values, *value; - char list_separator[2]; - gsize len; - - g_return_val_if_fail (key_file != NULL, NULL); - g_return_val_if_fail (group_name != NULL, NULL); - g_return_val_if_fail (key != NULL, NULL); - - key_file_error = NULL; - - value = g_key_file_get_locale_string (key_file, group_name, - key, locale, - &key_file_error); - - if (key_file_error) - g_propagate_error (error, key_file_error); - - if (!value) - { - if (length) - *length = 0; - return NULL; - } - - len = strlen (value); - if (value[len - 1] == key_file->list_separator) - value[len - 1] = '\0'; - - list_separator[0] = key_file->list_separator; - list_separator[1] = '\0'; - values = g_strsplit (value, list_separator, 0); - - g_free (value); - - if (length) - *length = g_strv_length (values); - - return values; -} - -/** - * g_key_file_set_locale_string_list: - * @key_file: a #GKeyFile - * @group_name: a group name - * @key: a key - * @locale: a locale identifier - * @list: a %NULL-terminated array of locale string values - * @length: the length of @list - * - * Associates a list of string values for @key and @locale under - * @group_name. If the translation for @key cannot be found then - * it is created. - * - * Since: 2.6 - **/ -void -g_key_file_set_locale_string_list (GKeyFile *key_file, - const gchar *group_name, - const gchar *key, - const gchar *locale, - const gchar * const list[], - gsize length) -{ - GString *value_list; - gchar *full_key; - gsize i; - - g_return_if_fail (key_file != NULL); - g_return_if_fail (key != NULL); - g_return_if_fail (locale != NULL); - g_return_if_fail (length != 0); - - value_list = g_string_sized_new (length * 128); - for (i = 0; i < length && list[i] != NULL; i++) - { - gchar *value; - - value = g_key_file_parse_string_as_value (key_file, list[i], TRUE); - g_string_append (value_list, value); - g_string_append_c (value_list, key_file->list_separator); - - g_free (value); - } - - full_key = g_strdup_printf ("%s[%s]", key, locale); - g_key_file_set_value (key_file, group_name, full_key, value_list->str); - g_free (full_key); - g_string_free (value_list, TRUE); -} - -/** - * g_key_file_get_boolean: - * @key_file: a #GKeyFile - * @group_name: a group name - * @key: a key - * @error: return location for a #GError - * - * Returns the value associated with @key under @group_name as a - * boolean. - * - * If @key cannot be found then %FALSE is returned and @error is set - * to #G_KEY_FILE_ERROR_KEY_NOT_FOUND. Likewise, if the value - * associated with @key cannot be interpreted as a boolean then %FALSE - * is returned and @error is set to #G_KEY_FILE_ERROR_INVALID_VALUE. - * - * Return value: the value associated with the key as a boolean, - * or %FALSE if the key was not found or could not be parsed. - * - * Since: 2.6 - **/ -gboolean -g_key_file_get_boolean (GKeyFile *key_file, - const gchar *group_name, - const gchar *key, - GError **error) -{ - GError *key_file_error = NULL; - gchar *value; - gboolean bool_value; - - g_return_val_if_fail (key_file != NULL, FALSE); - g_return_val_if_fail (group_name != NULL, FALSE); - g_return_val_if_fail (key != NULL, FALSE); - - value = g_key_file_get_value (key_file, group_name, key, &key_file_error); - - if (!value) - { - g_propagate_error (error, key_file_error); - return FALSE; - } - - bool_value = g_key_file_parse_value_as_boolean (key_file, value, - &key_file_error); - g_free (value); - - if (key_file_error) - { - if (g_error_matches (key_file_error, - G_KEY_FILE_ERROR, - G_KEY_FILE_ERROR_INVALID_VALUE)) - { - g_set_error (error, G_KEY_FILE_ERROR, - G_KEY_FILE_ERROR_INVALID_VALUE, - _("Key file contains key '%s' " - "which has value that cannot be interpreted."), - key); - g_error_free (key_file_error); - } - else - g_propagate_error (error, key_file_error); - } - - return bool_value; -} - -/** - * g_key_file_set_boolean: - * @key_file: a #GKeyFile - * @group_name: a group name - * @key: a key - * @value: %TRUE or %FALSE - * - * Associates a new boolean value with @key under @group_name. - * If @key cannot be found then it is created. - * - * Since: 2.6 - **/ -void -g_key_file_set_boolean (GKeyFile *key_file, - const gchar *group_name, - const gchar *key, - gboolean value) -{ - gchar *result; - - g_return_if_fail (key_file != NULL); - - result = g_key_file_parse_boolean_as_value (key_file, value); - g_key_file_set_value (key_file, group_name, key, result); - g_free (result); -} - -/** - * g_key_file_get_boolean_list: - * @key_file: a #GKeyFile - * @group_name: a group name - * @key: a key - * @length: the number of booleans returned - * @error: return location for a #GError - * - * Returns the values associated with @key under @group_name as - * booleans. - * - * If @key cannot be found then %NULL is returned and @error is set to - * #G_KEY_FILE_ERROR_KEY_NOT_FOUND. Likewise, if the values associated - * with @key cannot be interpreted as booleans then %NULL is returned - * and @error is set to #G_KEY_FILE_ERROR_INVALID_VALUE. - * - * Return value: the values associated with the key as a list of - * booleans, or %NULL if the key was not found or could not be parsed. - * - * Since: 2.6 - **/ -gboolean * -g_key_file_get_boolean_list (GKeyFile *key_file, - const gchar *group_name, - const gchar *key, - gsize *length, - GError **error) -{ - GError *key_file_error; - gchar **values; - gboolean *bool_values; - gsize i, num_bools; - - g_return_val_if_fail (key_file != NULL, NULL); - g_return_val_if_fail (group_name != NULL, NULL); - g_return_val_if_fail (key != NULL, NULL); - - if (length) - *length = 0; - - key_file_error = NULL; - - values = g_key_file_get_string_list (key_file, group_name, key, - &num_bools, &key_file_error); - - if (key_file_error) - g_propagate_error (error, key_file_error); - - if (!values) - return NULL; - - bool_values = g_new (gboolean, num_bools); - - for (i = 0; i < num_bools; i++) - { - bool_values[i] = g_key_file_parse_value_as_boolean (key_file, - values[i], - &key_file_error); - - if (key_file_error) - { - g_propagate_error (error, key_file_error); - g_strfreev (values); - g_free (bool_values); - - return NULL; - } - } - g_strfreev (values); - - if (length) - *length = num_bools; - - return bool_values; -} - -/** - * g_key_file_set_boolean_list: - * @key_file: a #GKeyFile - * @group_name: a group name - * @key: a key - * @list: an array of boolean values - * @length: length of @list - * - * Associates a list of boolean values with @key under @group_name. - * If @key cannot be found then it is created. - * If @group_name is %NULL, the start_group is used. - * - * Since: 2.6 - **/ -void -g_key_file_set_boolean_list (GKeyFile *key_file, - const gchar *group_name, - const gchar *key, - gboolean list[], - gsize length) -{ - GString *value_list; - gsize i; - - g_return_if_fail (key_file != NULL); - g_return_if_fail (list != NULL); - - value_list = g_string_sized_new (length * 8); - for (i = 0; i < length; i++) - { - gchar *value; - - value = g_key_file_parse_boolean_as_value (key_file, list[i]); - - g_string_append (value_list, value); - g_string_append_c (value_list, key_file->list_separator); - - g_free (value); - } - - g_key_file_set_value (key_file, group_name, key, value_list->str); - g_string_free (value_list, TRUE); -} - -/** - * g_key_file_get_integer: - * @key_file: a #GKeyFile - * @group_name: a group name - * @key: a key - * @error: return location for a #GError - * - * Returns the value associated with @key under @group_name as an - * integer. - * - * If @key cannot be found then 0 is returned and @error is set to - * #G_KEY_FILE_ERROR_KEY_NOT_FOUND. Likewise, if the value associated - * with @key cannot be interpreted as an integer then 0 is returned - * and @error is set to #G_KEY_FILE_ERROR_INVALID_VALUE. - * - * Return value: the value associated with the key as an integer, or - * 0 if the key was not found or could not be parsed. - * - * Since: 2.6 - **/ -gint -g_key_file_get_integer (GKeyFile *key_file, - const gchar *group_name, - const gchar *key, - GError **error) -{ - GError *key_file_error; - gchar *value; - gint int_value; - - g_return_val_if_fail (key_file != NULL, -1); - g_return_val_if_fail (group_name != NULL, -1); - g_return_val_if_fail (key != NULL, -1); - - key_file_error = NULL; - - value = g_key_file_get_value (key_file, group_name, key, &key_file_error); - - if (key_file_error) - { - g_propagate_error (error, key_file_error); - return 0; - } - - int_value = g_key_file_parse_value_as_integer (key_file, value, - &key_file_error); - g_free (value); - - if (key_file_error) - { - if (g_error_matches (key_file_error, - G_KEY_FILE_ERROR, - G_KEY_FILE_ERROR_INVALID_VALUE)) - { - g_set_error (error, G_KEY_FILE_ERROR, - G_KEY_FILE_ERROR_INVALID_VALUE, - _("Key file contains key '%s' in group '%s' " - "which has value that cannot be interpreted."), key, - group_name); - g_error_free (key_file_error); - } - else - g_propagate_error (error, key_file_error); - } - - return int_value; -} - -/** - * g_key_file_set_integer: - * @key_file: a #GKeyFile - * @group_name: a group name - * @key: a key - * @value: an integer value - * - * Associates a new integer value with @key under @group_name. - * If @key cannot be found then it is created. - * - * Since: 2.6 - **/ -void -g_key_file_set_integer (GKeyFile *key_file, - const gchar *group_name, - const gchar *key, - gint value) -{ - gchar *result; - - g_return_if_fail (key_file != NULL); - - result = g_key_file_parse_integer_as_value (key_file, value); - g_key_file_set_value (key_file, group_name, key, result); - g_free (result); -} - -/** - * g_key_file_get_integer_list: - * @key_file: a #GKeyFile - * @group_name: a group name - * @key: a key - * @length: the number of integers returned - * @error: return location for a #GError - * - * Returns the values associated with @key under @group_name as - * integers. - * - * If @key cannot be found then %NULL is returned and @error is set to - * #G_KEY_FILE_ERROR_KEY_NOT_FOUND. Likewise, if the values associated - * with @key cannot be interpreted as integers then %NULL is returned - * and @error is set to #G_KEY_FILE_ERROR_INVALID_VALUE. - * - * Return value: the values associated with the key as a list of - * integers, or %NULL if the key was not found or could not be parsed. - * - * Since: 2.6 - **/ -gint * -g_key_file_get_integer_list (GKeyFile *key_file, - const gchar *group_name, - const gchar *key, - gsize *length, - GError **error) -{ - GError *key_file_error = NULL; - gchar **values; - gint *int_values; - gsize i, num_ints; - - g_return_val_if_fail (key_file != NULL, NULL); - g_return_val_if_fail (group_name != NULL, NULL); - g_return_val_if_fail (key != NULL, NULL); - - if (length) - *length = 0; - - values = g_key_file_get_string_list (key_file, group_name, key, - &num_ints, &key_file_error); - - if (key_file_error) - g_propagate_error (error, key_file_error); - - if (!values) - return NULL; - - int_values = g_new (gint, num_ints); - - for (i = 0; i < num_ints; i++) - { - int_values[i] = g_key_file_parse_value_as_integer (key_file, - values[i], - &key_file_error); - - if (key_file_error) - { - g_propagate_error (error, key_file_error); - g_strfreev (values); - g_free (int_values); - - return NULL; - } - } - g_strfreev (values); - - if (length) - *length = num_ints; - - return int_values; -} - -/** - * g_key_file_set_integer_list: - * @key_file: a #GKeyFile - * @group_name: a group name - * @key: a key - * @list: an array of integer values - * @length: number of integer values in @list - * - * Associates a list of integer values with @key under @group_name. - * If @key cannot be found then it is created. - * - * Since: 2.6 - **/ -void -g_key_file_set_integer_list (GKeyFile *key_file, - const gchar *group_name, - const gchar *key, - gint list[], - gsize length) -{ - GString *values; - gsize i; - - g_return_if_fail (key_file != NULL); - g_return_if_fail (list != NULL); - - values = g_string_sized_new (length * 16); - for (i = 0; i < length; i++) - { - gchar *value; - - value = g_key_file_parse_integer_as_value (key_file, list[i]); - - g_string_append (values, value); - g_string_append_c (values, key_file->list_separator); - - g_free (value); - } - - g_key_file_set_value (key_file, group_name, key, values->str); - g_string_free (values, TRUE); -} - -/** - * g_key_file_get_double: - * @key_file: a #GKeyFile - * @group_name: a group name - * @key: a key - * @error: return location for a #GError - * - * Returns the value associated with @key under @group_name as a - * double. If @group_name is %NULL, the start_group is used. - * - * If @key cannot be found then 0.0 is returned and @error is set to - * #G_KEY_FILE_ERROR_KEY_NOT_FOUND. Likewise, if the value associated - * with @key cannot be interpreted as a double then 0.0 is returned - * and @error is set to #G_KEY_FILE_ERROR_INVALID_VALUE. - * - * Return value: the value associated with the key as a double, or - * 0.0 if the key was not found or could not be parsed. - * - * Since: 2.12 - **/ -gdouble -g_key_file_get_double (GKeyFile *key_file, - const gchar *group_name, - const gchar *key, - GError **error) -{ - GError *key_file_error; - gchar *value; - gdouble double_value; - - g_return_val_if_fail (key_file != NULL, -1); - g_return_val_if_fail (group_name != NULL, -1); - g_return_val_if_fail (key != NULL, -1); - - key_file_error = NULL; - - value = g_key_file_get_value (key_file, group_name, key, &key_file_error); - - if (key_file_error) - { - g_propagate_error (error, key_file_error); - return 0; - } - - double_value = g_key_file_parse_value_as_double (key_file, value, - &key_file_error); - g_free (value); - - if (key_file_error) - { - if (g_error_matches (key_file_error, - G_KEY_FILE_ERROR, - G_KEY_FILE_ERROR_INVALID_VALUE)) - { - g_set_error (error, G_KEY_FILE_ERROR, - G_KEY_FILE_ERROR_INVALID_VALUE, - _("Key file contains key '%s' in group '%s' " - "which has value that cannot be interpreted."), key, - group_name); - g_error_free (key_file_error); - } - else - g_propagate_error (error, key_file_error); - } - - return double_value; -} - -/** - * g_key_file_set_double: - * @key_file: a #GKeyFile - * @group_name: a group name - * @key: a key - * @value: an double value - * - * Associates a new double value with @key under @group_name. - * If @key cannot be found then it is created. - * - * Since: 2.12 - **/ -void -g_key_file_set_double (GKeyFile *key_file, - const gchar *group_name, - const gchar *key, - gdouble value) -{ - gchar result[G_ASCII_DTOSTR_BUF_SIZE]; - - g_return_if_fail (key_file != NULL); - - g_ascii_dtostr (result, sizeof (result), value); - g_key_file_set_value (key_file, group_name, key, result); -} - -/** - * g_key_file_get_double_list: - * @key_file: a #GKeyFile - * @group_name: a group name - * @key: a key - * @length: the number of doubles returned - * @error: return location for a #GError - * - * Returns the values associated with @key under @group_name as - * doubles. - * - * If @key cannot be found then %NULL is returned and @error is set to - * #G_KEY_FILE_ERROR_KEY_NOT_FOUND. Likewise, if the values associated - * with @key cannot be interpreted as doubles then %NULL is returned - * and @error is set to #G_KEY_FILE_ERROR_INVALID_VALUE. - * - * Return value: the values associated with the key as a list of - * doubles, or %NULL if the key was not found or could not be parsed. - * - * Since: 2.12 - **/ -gdouble * -g_key_file_get_double_list (GKeyFile *key_file, - const gchar *group_name, - const gchar *key, - gsize *length, - GError **error) -{ - GError *key_file_error = NULL; - gchar **values; - gdouble *double_values; - gsize i, num_doubles; - - g_return_val_if_fail (key_file != NULL, NULL); - g_return_val_if_fail (group_name != NULL, NULL); - g_return_val_if_fail (key != NULL, NULL); - - if (length) - *length = 0; - - values = g_key_file_get_string_list (key_file, group_name, key, - &num_doubles, &key_file_error); - - if (key_file_error) - g_propagate_error (error, key_file_error); - - if (!values) - return NULL; - - double_values = g_new (gdouble, num_doubles); - - for (i = 0; i < num_doubles; i++) - { - double_values[i] = g_key_file_parse_value_as_double (key_file, - values[i], - &key_file_error); - - if (key_file_error) - { - g_propagate_error (error, key_file_error); - g_strfreev (values); - g_free (double_values); - - return NULL; - } - } - g_strfreev (values); - - if (length) - *length = num_doubles; - - return double_values; -} - -/** - * g_key_file_set_double_list: - * @key_file: a #GKeyFile - * @group_name: a group name - * @key: a key - * @list: an array of double values - * @length: number of double values in @list - * - * Associates a list of double values with @key under - * @group_name. If @key cannot be found then it is created. - * - * Since: 2.12 - **/ -void -g_key_file_set_double_list (GKeyFile *key_file, - const gchar *group_name, - const gchar *key, - gdouble list[], - gsize length) -{ - GString *values; - gsize i; - - g_return_if_fail (key_file != NULL); - g_return_if_fail (list != NULL); - - values = g_string_sized_new (length * 16); - for (i = 0; i < length; i++) - { - gchar result[G_ASCII_DTOSTR_BUF_SIZE]; - - g_ascii_dtostr( result, sizeof (result), list[i] ); - - g_string_append (values, result); - g_string_append_c (values, key_file->list_separator); - } - - g_key_file_set_value (key_file, group_name, key, values->str); - g_string_free (values, TRUE); -} - -static gboolean -g_key_file_set_key_comment (GKeyFile *key_file, - const gchar *group_name, - const gchar *key, - const gchar *comment, - GError **error) -{ - GKeyFileGroup *group; - GKeyFileKeyValuePair *pair; - GList *key_node, *comment_node, *tmp; - - group = g_key_file_lookup_group (key_file, group_name); - if (!group) - { - g_set_error (error, G_KEY_FILE_ERROR, - G_KEY_FILE_ERROR_GROUP_NOT_FOUND, - _("Key file does not have group '%s'"), - group_name ? group_name : "(null)"); - - return FALSE; - } - - /* First find the key the comments are supposed to be - * associated with - */ - key_node = g_key_file_lookup_key_value_pair_node (key_file, group, key); - - if (key_node == NULL) - { - g_set_error (error, G_KEY_FILE_ERROR, - G_KEY_FILE_ERROR_KEY_NOT_FOUND, - _("Key file does not have key '%s' in group '%s'"), - key, group->name); - return FALSE; - } - - /* Then find all the comments already associated with the - * key and free them - */ - tmp = key_node->next; - while (tmp != NULL) - { - pair = (GKeyFileKeyValuePair *) tmp->data; - - if (pair->key != NULL) - break; - - comment_node = tmp; - tmp = tmp->next; - g_key_file_remove_key_value_pair_node (key_file, group, - comment_node); - } - - if (comment == NULL) - return TRUE; - - /* Now we can add our new comment - */ - pair = g_slice_new (GKeyFileKeyValuePair); - pair->key = NULL; - pair->value = g_key_file_parse_comment_as_value (key_file, comment); - - key_node = g_list_insert (key_node, pair, 1); - - return TRUE; -} - -static gboolean -g_key_file_set_group_comment (GKeyFile *key_file, - const gchar *group_name, - const gchar *comment, - GError **error) -{ - GKeyFileGroup *group; - - g_return_val_if_fail (g_key_file_is_group_name (group_name), FALSE); - - group = g_key_file_lookup_group (key_file, group_name); - if (!group) - { - g_set_error (error, G_KEY_FILE_ERROR, - G_KEY_FILE_ERROR_GROUP_NOT_FOUND, - _("Key file does not have group '%s'"), - group_name ? group_name : "(null)"); - - return FALSE; - } - - /* First remove any existing comment - */ - if (group->comment) - { - g_key_file_key_value_pair_free (group->comment); - group->comment = NULL; - } - - if (comment == NULL) - return TRUE; - - /* Now we can add our new comment - */ - group->comment = g_slice_new (GKeyFileKeyValuePair); - group->comment->key = NULL; - group->comment->value = g_key_file_parse_comment_as_value (key_file, comment); - - return TRUE; -} - -static gboolean -g_key_file_set_top_comment (GKeyFile *key_file, - const gchar *comment, - GError **error) -{ - GList *group_node; - GKeyFileGroup *group; - GKeyFileKeyValuePair *pair; - - /* The last group in the list should be the top (comments only) - * group in the file - */ - g_warn_if_fail (key_file->groups != NULL); - group_node = g_list_last (key_file->groups); - group = (GKeyFileGroup *) group_node->data; - g_warn_if_fail (group->name == NULL); - - /* Note all keys must be comments at the top of - * the file, so we can just free it all. - */ - if (group->key_value_pairs != NULL) - { - g_list_foreach (group->key_value_pairs, - (GFunc) g_key_file_key_value_pair_free, - NULL); - g_list_free (group->key_value_pairs); - group->key_value_pairs = NULL; - } - - if (comment == NULL) - return TRUE; - - pair = g_slice_new (GKeyFileKeyValuePair); - pair->key = NULL; - pair->value = g_key_file_parse_comment_as_value (key_file, comment); - - group->key_value_pairs = - g_list_prepend (group->key_value_pairs, pair); - - return TRUE; -} - -/** - * g_key_file_set_comment: - * @key_file: a #GKeyFile - * @group_name: a group name, or %NULL - * @key: a key - * @comment: a comment - * @error: return location for a #GError - * - * Places a comment above @key from @group_name. - * If @key is %NULL then @comment will be written above @group_name. - * If both @key and @group_name are %NULL, then @comment will be - * written above the first group in the file. - * - * Returns: %TRUE if the comment was written, %FALSE otherwise - * - * Since: 2.6 - **/ -gboolean -g_key_file_set_comment (GKeyFile *key_file, - const gchar *group_name, - const gchar *key, - const gchar *comment, - GError **error) -{ - g_return_val_if_fail (key_file != NULL, FALSE); - - if (group_name != NULL && key != NULL) - { - if (!g_key_file_set_key_comment (key_file, group_name, key, comment, error)) - return FALSE; - } - else if (group_name != NULL) - { - if (!g_key_file_set_group_comment (key_file, group_name, comment, error)) - return FALSE; - } - else - { - if (!g_key_file_set_top_comment (key_file, comment, error)) - return FALSE; - } - - if (comment != NULL) - key_file->approximate_size += strlen (comment); - - return TRUE; -} - -static gchar * -g_key_file_get_key_comment (GKeyFile *key_file, - const gchar *group_name, - const gchar *key, - GError **error) -{ - GKeyFileGroup *group; - GKeyFileKeyValuePair *pair; - GList *key_node, *tmp; - GString *string; - gchar *comment; - - g_return_val_if_fail (g_key_file_is_group_name (group_name), NULL); - - group = g_key_file_lookup_group (key_file, group_name); - if (!group) - { - g_set_error (error, G_KEY_FILE_ERROR, - G_KEY_FILE_ERROR_GROUP_NOT_FOUND, - _("Key file does not have group '%s'"), - group_name ? group_name : "(null)"); - - return NULL; - } - - /* First find the key the comments are supposed to be - * associated with - */ - key_node = g_key_file_lookup_key_value_pair_node (key_file, group, key); - - if (key_node == NULL) - { - g_set_error (error, G_KEY_FILE_ERROR, - G_KEY_FILE_ERROR_KEY_NOT_FOUND, - _("Key file does not have key '%s' in group '%s'"), - key, group->name); - return NULL; - } - - string = NULL; - - /* Then find all the comments already associated with the - * key and concatentate them. - */ - tmp = key_node->next; - if (!key_node->next) - return NULL; - - pair = (GKeyFileKeyValuePair *) tmp->data; - if (pair->key != NULL) - return NULL; - - while (tmp->next) - { - pair = (GKeyFileKeyValuePair *) tmp->next->data; - - if (pair->key != NULL) - break; - - tmp = tmp->next; - } - - while (tmp != key_node) - { - pair = (GKeyFileKeyValuePair *) tmp->data; - - if (string == NULL) - string = g_string_sized_new (512); - - comment = g_key_file_parse_value_as_comment (key_file, pair->value); - g_string_append (string, comment); - g_free (comment); - - tmp = tmp->prev; - } - - if (string != NULL) - { - comment = string->str; - g_string_free (string, FALSE); - } - else - comment = NULL; - - return comment; -} - -static gchar * -get_group_comment (GKeyFile *key_file, - GKeyFileGroup *group, - GError **error) -{ - GString *string; - GList *tmp; - gchar *comment; - - string = NULL; - - tmp = group->key_value_pairs; - while (tmp) - { - GKeyFileKeyValuePair *pair; - - pair = (GKeyFileKeyValuePair *) tmp->data; - - if (pair->key != NULL) - { - tmp = tmp->prev; - break; - } - - if (tmp->next == NULL) - break; - - tmp = tmp->next; - } - - while (tmp != NULL) - { - GKeyFileKeyValuePair *pair; - - pair = (GKeyFileKeyValuePair *) tmp->data; - - if (string == NULL) - string = g_string_sized_new (512); - - comment = g_key_file_parse_value_as_comment (key_file, pair->value); - g_string_append (string, comment); - g_free (comment); - - tmp = tmp->prev; - } - - if (string != NULL) - return g_string_free (string, FALSE); - - return NULL; -} - -static gchar * -g_key_file_get_group_comment (GKeyFile *key_file, - const gchar *group_name, - GError **error) -{ - GList *group_node; - GKeyFileGroup *group; - - group = g_key_file_lookup_group (key_file, group_name); - if (!group) - { - g_set_error (error, G_KEY_FILE_ERROR, - G_KEY_FILE_ERROR_GROUP_NOT_FOUND, - _("Key file does not have group '%s'"), - group_name ? group_name : "(null)"); - - return NULL; - } - - if (group->comment) - return g_strdup (group->comment->value); - - group_node = g_key_file_lookup_group_node (key_file, group_name); - group_node = group_node->next; - group = (GKeyFileGroup *)group_node->data; - return get_group_comment (key_file, group, error); -} - -static gchar * -g_key_file_get_top_comment (GKeyFile *key_file, - GError **error) -{ - GList *group_node; - GKeyFileGroup *group; - - /* The last group in the list should be the top (comments only) - * group in the file - */ - g_warn_if_fail (key_file->groups != NULL); - group_node = g_list_last (key_file->groups); - group = (GKeyFileGroup *) group_node->data; - g_warn_if_fail (group->name == NULL); - - return get_group_comment (key_file, group, error); -} - -/** - * g_key_file_get_comment: - * @key_file: a #GKeyFile - * @group_name: a group name, or %NULL - * @key: a key - * @error: return location for a #GError - * - * Retrieves a comment above @key from @group_name. - * If @key is %NULL then @comment will be read from above - * @group_name. If both @key and @group_name are %NULL, then - * @comment will be read from above the first group in the file. - * - * Returns: a comment that should be freed with g_free() - * - * Since: 2.6 - **/ -gchar * -g_key_file_get_comment (GKeyFile *key_file, - const gchar *group_name, - const gchar *key, - GError **error) -{ - g_return_val_if_fail (key_file != NULL, NULL); - - if (group_name != NULL && key != NULL) - return g_key_file_get_key_comment (key_file, group_name, key, error); - else if (group_name != NULL) - return g_key_file_get_group_comment (key_file, group_name, error); - else - return g_key_file_get_top_comment (key_file, error); -} - -/** - * g_key_file_remove_comment: - * @key_file: a #GKeyFile - * @group_name: a group name, or %NULL - * @key: a key - * @error: return location for a #GError - * - * Removes a comment above @key from @group_name. - * If @key is %NULL then @comment will be removed above @group_name. - * If both @key and @group_name are %NULL, then @comment will - * be removed above the first group in the file. - * - * Returns: %TRUE if the comment was removed, %FALSE otherwise - * - * Since: 2.6 - **/ - -gboolean -g_key_file_remove_comment (GKeyFile *key_file, - const gchar *group_name, - const gchar *key, - GError **error) -{ - g_return_val_if_fail (key_file != NULL, FALSE); - - if (group_name != NULL && key != NULL) - return g_key_file_set_key_comment (key_file, group_name, key, NULL, error); - else if (group_name != NULL) - return g_key_file_set_group_comment (key_file, group_name, NULL, error); - else - return g_key_file_set_top_comment (key_file, NULL, error); -} - -/** - * g_key_file_has_group: - * @key_file: a #GKeyFile - * @group_name: a group name - * - * Looks whether the key file has the group @group_name. - * - * Return value: %TRUE if @group_name is a part of @key_file, %FALSE - * otherwise. - * Since: 2.6 - **/ -gboolean -g_key_file_has_group (GKeyFile *key_file, - const gchar *group_name) -{ - g_return_val_if_fail (key_file != NULL, FALSE); - g_return_val_if_fail (group_name != NULL, FALSE); - - return g_key_file_lookup_group (key_file, group_name) != NULL; -} - -/** - * g_key_file_has_key: - * @key_file: a #GKeyFile - * @group_name: a group name - * @key: a key name - * @error: return location for a #GError - * - * Looks whether the key file has the key @key in the group - * @group_name. - * - * Return value: %TRUE if @key is a part of @group_name, %FALSE - * otherwise. - * - * Since: 2.6 - **/ -gboolean -g_key_file_has_key (GKeyFile *key_file, - const gchar *group_name, - const gchar *key, - GError **error) -{ - GKeyFileKeyValuePair *pair; - GKeyFileGroup *group; - - g_return_val_if_fail (key_file != NULL, FALSE); - g_return_val_if_fail (group_name != NULL, FALSE); - g_return_val_if_fail (key != NULL, FALSE); - - group = g_key_file_lookup_group (key_file, group_name); - - if (!group) - { - g_set_error (error, G_KEY_FILE_ERROR, - G_KEY_FILE_ERROR_GROUP_NOT_FOUND, - _("Key file does not have group '%s'"), - group_name ? group_name : "(null)"); - - return FALSE; - } - - pair = g_key_file_lookup_key_value_pair (key_file, group, key); - - return pair != NULL; -} - -static void -g_key_file_add_group (GKeyFile *key_file, - const gchar *group_name) -{ - GKeyFileGroup *group; - - g_return_if_fail (key_file != NULL); - g_return_if_fail (g_key_file_is_group_name (group_name)); - - group = g_key_file_lookup_group (key_file, group_name); - if (group != NULL) - { - key_file->current_group = group; - return; - } - - group = g_slice_new0 (GKeyFileGroup); - group->name = g_strdup (group_name); - group->lookup_map = g_hash_table_new (g_str_hash, g_str_equal); - key_file->groups = g_list_prepend (key_file->groups, group); - key_file->approximate_size += strlen (group_name) + 3; - key_file->current_group = group; - - if (key_file->start_group == NULL) - key_file->start_group = group; - - g_hash_table_insert (key_file->group_hash, (gpointer)group->name, group); -} - -static void -g_key_file_key_value_pair_free (GKeyFileKeyValuePair *pair) -{ - if (pair != NULL) - { - g_free (pair->key); - g_free (pair->value); - g_slice_free (GKeyFileKeyValuePair, pair); - } -} - -/* Be careful not to call this function on a node with data in the - * lookup map without removing it from the lookup map, first. - * - * Some current cases where this warning is not a concern are - * when: - * - the node being removed is a comment node - * - the entire lookup map is getting destroyed soon after - * anyway. - */ -static void -g_key_file_remove_key_value_pair_node (GKeyFile *key_file, - GKeyFileGroup *group, - GList *pair_node) -{ - - GKeyFileKeyValuePair *pair; - - pair = (GKeyFileKeyValuePair *) pair_node->data; - - group->key_value_pairs = g_list_remove_link (group->key_value_pairs, pair_node); - - if (pair->key != NULL) - key_file->approximate_size -= strlen (pair->key) + 1; - - g_warn_if_fail (pair->value != NULL); - key_file->approximate_size -= strlen (pair->value); - - g_key_file_key_value_pair_free (pair); - - g_list_free_1 (pair_node); -} - -static void -g_key_file_remove_group_node (GKeyFile *key_file, - GList *group_node) -{ - GKeyFileGroup *group; - GList *tmp; - - group = (GKeyFileGroup *) group_node->data; - - if (group->name) - g_hash_table_remove (key_file->group_hash, group->name); - - /* If the current group gets deleted make the current group the last - * added group. - */ - if (key_file->current_group == group) - { - /* groups should always contain at least the top comment group, - * unless g_key_file_clear has been called - */ - if (key_file->groups) - key_file->current_group = (GKeyFileGroup *) key_file->groups->data; - else - key_file->current_group = NULL; - } - - /* If the start group gets deleted make the start group the first - * added group. - */ - if (key_file->start_group == group) - { - tmp = g_list_last (key_file->groups); - while (tmp != NULL) - { - if (tmp != group_node && - ((GKeyFileGroup *) tmp->data)->name != NULL) - break; - - tmp = tmp->prev; - } - - if (tmp) - key_file->start_group = (GKeyFileGroup *) tmp->data; - else - key_file->start_group = NULL; - } - - key_file->groups = g_list_remove_link (key_file->groups, group_node); - - if (group->name != NULL) - key_file->approximate_size -= strlen (group->name) + 3; - - tmp = group->key_value_pairs; - while (tmp != NULL) - { - GList *pair_node; - - pair_node = tmp; - tmp = tmp->next; - g_key_file_remove_key_value_pair_node (key_file, group, pair_node); - } - - g_warn_if_fail (group->key_value_pairs == NULL); - - if (group->lookup_map) - { - g_hash_table_destroy (group->lookup_map); - group->lookup_map = NULL; - } - - g_free ((gchar *) group->name); - g_slice_free (GKeyFileGroup, group); - g_list_free_1 (group_node); -} - -/** - * g_key_file_remove_group: - * @key_file: a #GKeyFile - * @group_name: a group name - * @error: return location for a #GError or %NULL - * - * Removes the specified group, @group_name, - * from the key file. - * - * Returns: %TRUE if the group was removed, %FALSE otherwise - * - * Since: 2.6 - **/ -gboolean -g_key_file_remove_group (GKeyFile *key_file, - const gchar *group_name, - GError **error) -{ - GList *group_node; - - g_return_val_if_fail (key_file != NULL, FALSE); - g_return_val_if_fail (group_name != NULL, FALSE); - - group_node = g_key_file_lookup_group_node (key_file, group_name); - - if (!group_node) - { - g_set_error (error, G_KEY_FILE_ERROR, - G_KEY_FILE_ERROR_GROUP_NOT_FOUND, - _("Key file does not have group '%s'"), - group_name); - return FALSE; - } - - g_key_file_remove_group_node (key_file, group_node); - - return TRUE; -} - -static void -g_key_file_add_key (GKeyFile *key_file, - GKeyFileGroup *group, - const gchar *key, - const gchar *value) -{ - GKeyFileKeyValuePair *pair; - - pair = g_slice_new (GKeyFileKeyValuePair); - pair->key = g_strdup (key); - pair->value = g_strdup (value); - - g_hash_table_replace (group->lookup_map, pair->key, pair); - group->key_value_pairs = g_list_prepend (group->key_value_pairs, pair); - group->has_trailing_blank_line = FALSE; - key_file->approximate_size += strlen (key) + strlen (value) + 2; -} - -/** - * g_key_file_remove_key: - * @key_file: a #GKeyFile - * @group_name: a group name - * @key: a key name to remove - * @error: return location for a #GError or %NULL - * - * Removes @key in @group_name from the key file. - * - * Returns: %TRUE if the key was removed, %FALSE otherwise - * - * Since: 2.6 - **/ -gboolean -g_key_file_remove_key (GKeyFile *key_file, - const gchar *group_name, - const gchar *key, - GError **error) -{ - GKeyFileGroup *group; - GKeyFileKeyValuePair *pair; - - g_return_val_if_fail (key_file != NULL, FALSE); - g_return_val_if_fail (group_name != NULL, FALSE); - g_return_val_if_fail (key != NULL, FALSE); - - pair = NULL; - - group = g_key_file_lookup_group (key_file, group_name); - if (!group) - { - g_set_error (error, G_KEY_FILE_ERROR, - G_KEY_FILE_ERROR_GROUP_NOT_FOUND, - _("Key file does not have group '%s'"), - group_name ? group_name : "(null)"); - return FALSE; - } - - pair = g_key_file_lookup_key_value_pair (key_file, group, key); - - if (!pair) - { - g_set_error (error, G_KEY_FILE_ERROR, - G_KEY_FILE_ERROR_KEY_NOT_FOUND, - _("Key file does not have key '%s' in group '%s'"), - key, group->name); - return FALSE; - } - - key_file->approximate_size -= strlen (pair->key) + strlen (pair->value) + 2; - - group->key_value_pairs = g_list_remove (group->key_value_pairs, pair); - g_hash_table_remove (group->lookup_map, pair->key); - g_key_file_key_value_pair_free (pair); - - return TRUE; -} - -static GList * -g_key_file_lookup_group_node (GKeyFile *key_file, - const gchar *group_name) -{ - GKeyFileGroup *group; - GList *tmp; - - for (tmp = key_file->groups; tmp != NULL; tmp = tmp->next) - { - group = (GKeyFileGroup *) tmp->data; - - if (group && group->name && strcmp (group->name, group_name) == 0) - break; - } - - return tmp; -} - -static GKeyFileGroup * -g_key_file_lookup_group (GKeyFile *key_file, - const gchar *group_name) -{ - return (GKeyFileGroup *)g_hash_table_lookup (key_file->group_hash, group_name); -} - -static GList * -g_key_file_lookup_key_value_pair_node (GKeyFile *key_file, - GKeyFileGroup *group, - const gchar *key) -{ - GList *key_node; - - for (key_node = group->key_value_pairs; - key_node != NULL; - key_node = key_node->next) - { - GKeyFileKeyValuePair *pair; - - pair = (GKeyFileKeyValuePair *) key_node->data; - - if (pair->key && strcmp (pair->key, key) == 0) - break; - } - - return key_node; -} - -static GKeyFileKeyValuePair * -g_key_file_lookup_key_value_pair (GKeyFile *key_file, - GKeyFileGroup *group, - const gchar *key) -{ - return (GKeyFileKeyValuePair *) g_hash_table_lookup (group->lookup_map, key); -} - -/* Lines starting with # or consisting entirely of whitespace are merely - * recorded, not parsed. This function assumes all leading whitespace - * has been stripped. - */ -static gboolean -g_key_file_line_is_comment (const gchar *line) -{ - return (*line == '#' || *line == '\0' || *line == '\n'); -} - -static gboolean -g_key_file_is_group_name (const gchar *name) -{ - gchar *p, *q; - - if (name == NULL) - return FALSE; - - p = q = (gchar *) name; - while (*q && *q != ']' && *q != '[' && !g_ascii_iscntrl (*q)) - q = g_utf8_find_next_char (q, NULL); - - if (*q != '\0' || q == p) - return FALSE; - - return TRUE; -} - -static gboolean -g_key_file_is_key_name (const gchar *name) -{ - gchar *p, *q; - - if (name == NULL) - return FALSE; - - p = q = (gchar *) name; - /* We accept a little more than the desktop entry spec says, - * since gnome-vfs uses mime-types as keys in its cache. - */ - while (*q && *q != '=' && *q != '[' && *q != ']') - q = g_utf8_find_next_char (q, NULL); - - /* No empty keys, please */ - if (q == p) - return FALSE; - - /* We accept spaces in the middle of keys to not break - * existing apps, but we don't tolerate initial or final - * spaces, which would lead to silent corruption when - * rereading the file. - */ - if (*p == ' ' || q[-1] == ' ') - return FALSE; - - if (*q == '[') - { - q++; - while (*q && (g_unichar_isalnum (g_utf8_get_char_validated (q, -1)) || *q == '-' || *q == '_' || *q == '.' || *q == '@')) - q = g_utf8_find_next_char (q, NULL); - - if (*q != ']') - return FALSE; - - q++; - } - - if (*q != '\0') - return FALSE; - - return TRUE; -} - -/* A group in a key file is made up of a starting '[' followed by one - * or more letters making up the group name followed by ']'. - */ -static gboolean -g_key_file_line_is_group (const gchar *line) -{ - gchar *p; - - p = (gchar *) line; - if (*p != '[') - return FALSE; - - p++; - - while (*p && *p != ']') - p = g_utf8_find_next_char (p, NULL); - - if (*p != ']') - return FALSE; - - /* silently accept whitespace after the ] */ - p = g_utf8_find_next_char (p, NULL); - while (*p == ' ' || *p == '\t') - p = g_utf8_find_next_char (p, NULL); - - if (*p) - return FALSE; - - return TRUE; -} - -static gboolean -g_key_file_line_is_key_value_pair (const gchar *line) -{ - gchar *p; - - p = (gchar *) g_utf8_strchr (line, -1, '='); - - if (!p) - return FALSE; - - /* Key must be non-empty - */ - if (*p == line[0]) - return FALSE; - - return TRUE; -} - -static gchar * -g_key_file_parse_value_as_string (GKeyFile *key_file, - const gchar *value, - GSList **pieces, - GError **error) -{ - gchar *string_value, *p, *q0, *q; - - string_value = g_new (gchar, strlen (value) + 1); - - p = (gchar *) value; - q0 = q = string_value; - while (*p) - { - if (*p == '\\') - { - p++; - - switch (*p) - { - case 's': - *q = ' '; - break; - - case 'n': - *q = '\n'; - break; - - case 't': - *q = '\t'; - break; - - case 'r': - *q = '\r'; - break; - - case '\\': - *q = '\\'; - break; - - case '\0': - g_set_error_literal (error, G_KEY_FILE_ERROR, - G_KEY_FILE_ERROR_INVALID_VALUE, - _("Key file contains escape character " - "at end of line")); - break; - - default: - if (pieces && *p == key_file->list_separator) - *q = key_file->list_separator; - else - { - *q++ = '\\'; - *q = *p; - - if (*error == NULL) - { - gchar sequence[3]; - - sequence[0] = '\\'; - sequence[1] = *p; - sequence[2] = '\0'; - - g_set_error (error, G_KEY_FILE_ERROR, - G_KEY_FILE_ERROR_INVALID_VALUE, - _("Key file contains invalid escape " - "sequence '%s'"), sequence); - } - } - break; - } - } - else - { - *q = *p; - if (pieces && (*p == key_file->list_separator)) - { - *pieces = g_slist_prepend (*pieces, g_strndup (q0, q - q0)); - q0 = q + 1; - } - } - - if (*p == '\0') - break; - - q++; - p++; - } - - *q = '\0'; - if (pieces) - { - if (q0 < q) - *pieces = g_slist_prepend (*pieces, g_strndup (q0, q - q0)); - *pieces = g_slist_reverse (*pieces); - } - - return string_value; -} - -static gchar * -g_key_file_parse_string_as_value (GKeyFile *key_file, - const gchar *string, - gboolean escape_separator) -{ - gchar *value, *p, *q; - gsize length; - gboolean parsing_leading_space; - - length = strlen (string) + 1; - - /* Worst case would be that every character needs to be escaped. - * In other words every character turns to two characters - */ - value = g_new (gchar, 2 * length); - - p = (gchar *) string; - q = value; - parsing_leading_space = TRUE; - while (p < (string + length - 1)) - { - gchar escaped_character[3] = { '\\', 0, 0 }; - - switch (*p) - { - case ' ': - if (parsing_leading_space) - { - escaped_character[1] = 's'; - strcpy (q, escaped_character); - q += 2; - } - else - { - *q = *p; - q++; - } - break; - case '\t': - if (parsing_leading_space) - { - escaped_character[1] = 't'; - strcpy (q, escaped_character); - q += 2; - } - else - { - *q = *p; - q++; - } - break; - case '\n': - escaped_character[1] = 'n'; - strcpy (q, escaped_character); - q += 2; - break; - case '\r': - escaped_character[1] = 'r'; - strcpy (q, escaped_character); - q += 2; - break; - case '\\': - escaped_character[1] = '\\'; - strcpy (q, escaped_character); - q += 2; - parsing_leading_space = FALSE; - break; - default: - if (escape_separator && *p == key_file->list_separator) - { - escaped_character[1] = key_file->list_separator; - strcpy (q, escaped_character); - q += 2; - parsing_leading_space = TRUE; - } - else - { - *q = *p; - q++; - parsing_leading_space = FALSE; - } - break; - } - p++; - } - *q = '\0'; - - return value; -} - -static gint -g_key_file_parse_value_as_integer (GKeyFile *key_file, - const gchar *value, - GError **error) -{ - gchar *end_of_valid_int; - glong long_value; - gint int_value; - - errno = 0; - long_value = strtol (value, &end_of_valid_int, 10); - - if (*value == '\0' || *end_of_valid_int != '\0') - { - gchar *value_utf8 = _g_utf8_make_valid (value); - g_set_error (error, G_KEY_FILE_ERROR, - G_KEY_FILE_ERROR_INVALID_VALUE, - _("Value '%s' cannot be interpreted " - "as a number."), value_utf8); - g_free (value_utf8); - - return 0; - } - - int_value = long_value; - if (int_value != long_value || errno == ERANGE) - { - gchar *value_utf8 = _g_utf8_make_valid (value); - g_set_error (error, - G_KEY_FILE_ERROR, - G_KEY_FILE_ERROR_INVALID_VALUE, - _("Integer value '%s' out of range"), - value_utf8); - g_free (value_utf8); - - return 0; - } - - return int_value; -} - -static gchar * -g_key_file_parse_integer_as_value (GKeyFile *key_file, - gint value) - -{ - return g_strdup_printf ("%d", value); -} - -static gdouble -g_key_file_parse_value_as_double (GKeyFile *key_file, - const gchar *value, - GError **error) -{ - gchar *end_of_valid_d; - gdouble double_value = 0; - - double_value = g_ascii_strtod (value, &end_of_valid_d); - - if (*end_of_valid_d != '\0' || end_of_valid_d == value) - { - gchar *value_utf8 = _g_utf8_make_valid (value); - g_set_error (error, G_KEY_FILE_ERROR, - G_KEY_FILE_ERROR_INVALID_VALUE, - _("Value '%s' cannot be interpreted " - "as a float number."), - value_utf8); - g_free (value_utf8); - } - - return double_value; -} - -static gboolean -g_key_file_parse_value_as_boolean (GKeyFile *key_file, - const gchar *value, - GError **error) -{ - gchar *value_utf8; - - if (strcmp (value, "true") == 0 || strcmp (value, "1") == 0) - return TRUE; - else if (strcmp (value, "false") == 0 || strcmp (value, "0") == 0) - return FALSE; - - value_utf8 = _g_utf8_make_valid (value); - g_set_error (error, G_KEY_FILE_ERROR, - G_KEY_FILE_ERROR_INVALID_VALUE, - _("Value '%s' cannot be interpreted " - "as a boolean."), value_utf8); - g_free (value_utf8); - - return FALSE; -} - -static gchar * -g_key_file_parse_boolean_as_value (GKeyFile *key_file, - gboolean value) -{ - if (value) - return g_strdup ("true"); - else - return g_strdup ("false"); -} - -static gchar * -g_key_file_parse_value_as_comment (GKeyFile *key_file, - const gchar *value) -{ - GString *string; - gchar **lines; - gsize i; - - string = g_string_sized_new (512); - - lines = g_strsplit (value, "\n", 0); - - for (i = 0; lines[i] != NULL; i++) - { - if (lines[i][0] != '#') - g_string_append_printf (string, "%s\n", lines[i]); - else - g_string_append_printf (string, "%s\n", lines[i] + 1); - } - g_strfreev (lines); - - return g_string_free (string, FALSE); -} - -static gchar * -g_key_file_parse_comment_as_value (GKeyFile *key_file, - const gchar *comment) -{ - GString *string; - gchar **lines; - gsize i; - - string = g_string_sized_new (512); - - lines = g_strsplit (comment, "\n", 0); - - for (i = 0; lines[i] != NULL; i++) - g_string_append_printf (string, "#%s%s", lines[i], - lines[i + 1] == NULL? "" : "\n"); - g_strfreev (lines); - - return g_string_free (string, FALSE); -} - -#define __G_KEY_FILE_C__ -#include "galiasdef.c" diff --git a/lib/win32/glib-2.20.4/glib/gkeyfile.h b/lib/win32/glib-2.20.4/glib/gkeyfile.h deleted file mode 100644 index b19124c35d188..0000000000000 --- a/lib/win32/glib-2.20.4/glib/gkeyfile.h +++ /dev/null @@ -1,250 +0,0 @@ -/* gkeyfile.h - desktop entry file parser - * - * Copyright 2004 Red Hat, Inc. - * - * Ray Strode - * - * GLib is free software; you can redistribute it and/or modify it - * under the terms of the GNU Lesser General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or (at your option) any later version. - * - * GLib 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 - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with GLib; see the file COPYING.LIB. If not, - * write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ - -#if defined(G_DISABLE_SINGLE_INCLUDES) && !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION) -#error "Only can be included directly." -#endif - -#ifndef __G_KEY_FILE_H__ -#define __G_KEY_FILE_H__ - -#include - -G_BEGIN_DECLS - -typedef enum -{ - G_KEY_FILE_ERROR_UNKNOWN_ENCODING, - G_KEY_FILE_ERROR_PARSE, - G_KEY_FILE_ERROR_NOT_FOUND, - G_KEY_FILE_ERROR_KEY_NOT_FOUND, - G_KEY_FILE_ERROR_GROUP_NOT_FOUND, - G_KEY_FILE_ERROR_INVALID_VALUE -} GKeyFileError; - -#define G_KEY_FILE_ERROR g_key_file_error_quark() - -GQuark g_key_file_error_quark (void); - -typedef struct _GKeyFile GKeyFile; - -typedef enum -{ - G_KEY_FILE_NONE = 0, - G_KEY_FILE_KEEP_COMMENTS = 1 << 0, - G_KEY_FILE_KEEP_TRANSLATIONS = 1 << 1 -} GKeyFileFlags; - -GKeyFile *g_key_file_new (void); -void g_key_file_free (GKeyFile *key_file); -void g_key_file_set_list_separator (GKeyFile *key_file, - gchar separator); -gboolean g_key_file_load_from_file (GKeyFile *key_file, - const gchar *file, - GKeyFileFlags flags, - GError **error); -gboolean g_key_file_load_from_data (GKeyFile *key_file, - const gchar *data, - gsize length, - GKeyFileFlags flags, - GError **error); -gboolean g_key_file_load_from_dirs (GKeyFile *key_file, - const gchar *file, - const gchar **search_dirs, - gchar **full_path, - GKeyFileFlags flags, - GError **error); -gboolean g_key_file_load_from_data_dirs (GKeyFile *key_file, - const gchar *file, - gchar **full_path, - GKeyFileFlags flags, - GError **error); -gchar *g_key_file_to_data (GKeyFile *key_file, - gsize *length, - GError **error) G_GNUC_MALLOC; -gchar *g_key_file_get_start_group (GKeyFile *key_file) G_GNUC_MALLOC; -gchar **g_key_file_get_groups (GKeyFile *key_file, - gsize *length) G_GNUC_MALLOC; -gchar **g_key_file_get_keys (GKeyFile *key_file, - const gchar *group_name, - gsize *length, - GError **error) G_GNUC_MALLOC; -gboolean g_key_file_has_group (GKeyFile *key_file, - const gchar *group_name); -gboolean g_key_file_has_key (GKeyFile *key_file, - const gchar *group_name, - const gchar *key, - GError **error); -gchar *g_key_file_get_value (GKeyFile *key_file, - const gchar *group_name, - const gchar *key, - GError **error) G_GNUC_MALLOC; -void g_key_file_set_value (GKeyFile *key_file, - const gchar *group_name, - const gchar *key, - const gchar *value); -gchar *g_key_file_get_string (GKeyFile *key_file, - const gchar *group_name, - const gchar *key, - GError **error) G_GNUC_MALLOC; -void g_key_file_set_string (GKeyFile *key_file, - const gchar *group_name, - const gchar *key, - const gchar *string); -gchar *g_key_file_get_locale_string (GKeyFile *key_file, - const gchar *group_name, - const gchar *key, - const gchar *locale, - GError **error) G_GNUC_MALLOC; -void g_key_file_set_locale_string (GKeyFile *key_file, - const gchar *group_name, - const gchar *key, - const gchar *locale, - const gchar *string); -gboolean g_key_file_get_boolean (GKeyFile *key_file, - const gchar *group_name, - const gchar *key, - GError **error); -void g_key_file_set_boolean (GKeyFile *key_file, - const gchar *group_name, - const gchar *key, - gboolean value); -gint g_key_file_get_integer (GKeyFile *key_file, - const gchar *group_name, - const gchar *key, - GError **error); -void g_key_file_set_integer (GKeyFile *key_file, - const gchar *group_name, - const gchar *key, - gint value); -gdouble g_key_file_get_double (GKeyFile *key_file, - const gchar *group_name, - const gchar *key, - GError **error); -void g_key_file_set_double (GKeyFile *key_file, - const gchar *group_name, - const gchar *key, - gdouble value); -gchar **g_key_file_get_string_list (GKeyFile *key_file, - const gchar *group_name, - const gchar *key, - gsize *length, - GError **error) G_GNUC_MALLOC; -void g_key_file_set_string_list (GKeyFile *key_file, - const gchar *group_name, - const gchar *key, - const gchar * const list[], - gsize length); -gchar **g_key_file_get_locale_string_list (GKeyFile *key_file, - const gchar *group_name, - const gchar *key, - const gchar *locale, - gsize *length, - GError **error) G_GNUC_MALLOC; -void g_key_file_set_locale_string_list (GKeyFile *key_file, - const gchar *group_name, - const gchar *key, - const gchar *locale, - const gchar * const list[], - gsize length); -gboolean *g_key_file_get_boolean_list (GKeyFile *key_file, - const gchar *group_name, - const gchar *key, - gsize *length, - GError **error) G_GNUC_MALLOC; -void g_key_file_set_boolean_list (GKeyFile *key_file, - const gchar *group_name, - const gchar *key, - gboolean list[], - gsize length); -gint *g_key_file_get_integer_list (GKeyFile *key_file, - const gchar *group_name, - const gchar *key, - gsize *length, - GError **error) G_GNUC_MALLOC; -void g_key_file_set_double_list (GKeyFile *key_file, - const gchar *group_name, - const gchar *key, - gdouble list[], - gsize length); -gdouble *g_key_file_get_double_list (GKeyFile *key_file, - const gchar *group_name, - const gchar *key, - gsize *length, - GError **error) G_GNUC_MALLOC; -void g_key_file_set_integer_list (GKeyFile *key_file, - const gchar *group_name, - const gchar *key, - gint list[], - gsize length); -gboolean g_key_file_set_comment (GKeyFile *key_file, - const gchar *group_name, - const gchar *key, - const gchar *comment, - GError **error); -gchar *g_key_file_get_comment (GKeyFile *key_file, - const gchar *group_name, - const gchar *key, - GError **error) G_GNUC_MALLOC; - -gboolean g_key_file_remove_comment (GKeyFile *key_file, - const gchar *group_name, - const gchar *key, - GError **error); -gboolean g_key_file_remove_key (GKeyFile *key_file, - const gchar *group_name, - const gchar *key, - GError **error); -gboolean g_key_file_remove_group (GKeyFile *key_file, - const gchar *group_name, - GError **error); - -/* Defines for handling freedesktop.org Desktop files */ -#define G_KEY_FILE_DESKTOP_GROUP "Desktop Entry" - -#define G_KEY_FILE_DESKTOP_KEY_TYPE "Type" -#define G_KEY_FILE_DESKTOP_KEY_VERSION "Version" -#define G_KEY_FILE_DESKTOP_KEY_NAME "Name" -#define G_KEY_FILE_DESKTOP_KEY_GENERIC_NAME "GenericName" -#define G_KEY_FILE_DESKTOP_KEY_NO_DISPLAY "NoDisplay" -#define G_KEY_FILE_DESKTOP_KEY_COMMENT "Comment" -#define G_KEY_FILE_DESKTOP_KEY_ICON "Icon" -#define G_KEY_FILE_DESKTOP_KEY_HIDDEN "Hidden" -#define G_KEY_FILE_DESKTOP_KEY_ONLY_SHOW_IN "OnlyShowIn" -#define G_KEY_FILE_DESKTOP_KEY_NOT_SHOW_IN "NotShowIn" -#define G_KEY_FILE_DESKTOP_KEY_TRY_EXEC "TryExec" -#define G_KEY_FILE_DESKTOP_KEY_EXEC "Exec" -#define G_KEY_FILE_DESKTOP_KEY_PATH "Path" -#define G_KEY_FILE_DESKTOP_KEY_TERMINAL "Terminal" -#define G_KEY_FILE_DESKTOP_KEY_MIME_TYPE "MimeType" -#define G_KEY_FILE_DESKTOP_KEY_CATEGORIES "Categories" -#define G_KEY_FILE_DESKTOP_KEY_STARTUP_NOTIFY "StartupNotify" -#define G_KEY_FILE_DESKTOP_KEY_STARTUP_WM_CLASS "StartupWMClass" -#define G_KEY_FILE_DESKTOP_KEY_URL "URL" - -#define G_KEY_FILE_DESKTOP_TYPE_APPLICATION "Application" -#define G_KEY_FILE_DESKTOP_TYPE_LINK "Link" -#define G_KEY_FILE_DESKTOP_TYPE_DIRECTORY "Directory" - -G_END_DECLS - -#endif /* __G_KEY_FILE_H__ */ diff --git a/lib/win32/glib-2.20.4/glib/glib-object.h b/lib/win32/glib-2.20.4/glib/glib-object.h deleted file mode 100644 index 8687ef1f2e68d..0000000000000 --- a/lib/win32/glib-2.20.4/glib/glib-object.h +++ /dev/null @@ -1,41 +0,0 @@ -/* GObject - GLib Type, Object, Parameter and Signal Library - * Copyright (C) 1998, 1999, 2000 Tim Janik and Red Hat, Inc. - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library 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 - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General - * Public License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place, Suite 330, - * Boston, MA 02111-1307, USA. - */ -#ifndef __GLIB_GOBJECT_H__ -#define __GLIB_GOBJECT_H__ - -#define __GLIB_GOBJECT_H_INSIDE__ - -/* topmost include file for GObject header files */ -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#undef __GLIB_GOBJECT_H_INSIDE__ - -#endif /* __GLIB_GOBJECT_H__ */ diff --git a/lib/win32/glib-2.20.4/glib/glib.def b/lib/win32/glib-2.20.4/glib/glib.def deleted file mode 100644 index 799b7236147b7..0000000000000 --- a/lib/win32/glib-2.20.4/glib/glib.def +++ /dev/null @@ -1,1658 +0,0 @@ -EXPORTS - - - - - - - - - - - - - - - - -g_array_append_vals -g_array_free -g_array_insert_vals -g_array_new -g_array_prepend_vals -g_array_remove_index -g_array_remove_index_fast -g_array_remove_range -g_array_set_size -g_array_sized_new -g_array_sort -g_array_sort_with_data -g_byte_array_append -g_byte_array_free -g_byte_array_new -g_byte_array_prepend -g_byte_array_remove_index -g_byte_array_remove_index_fast -g_byte_array_remove_range -g_byte_array_set_size -g_byte_array_sized_new -g_byte_array_sort -g_byte_array_sort_with_data -g_ptr_array_add -g_ptr_array_foreach -g_ptr_array_free -g_ptr_array_new -g_ptr_array_remove -g_ptr_array_remove_fast -g_ptr_array_remove_index -g_ptr_array_remove_index_fast -g_ptr_array_remove_range -g_ptr_array_set_size -g_ptr_array_sized_new -g_ptr_array_sort -g_ptr_array_sort_with_data - - - - - -g_async_queue_length -g_async_queue_length_unlocked -g_async_queue_lock -g_async_queue_new -g_async_queue_new_full -g_async_queue_pop -g_async_queue_pop_unlocked -g_async_queue_push -g_async_queue_push_unlocked -g_async_queue_push_sorted -g_async_queue_push_sorted_unlocked -g_async_queue_ref -g_async_queue_sort -g_async_queue_sort_unlocked -g_async_queue_timed_pop -g_async_queue_timed_pop_unlocked -g_async_queue_try_pop -g_async_queue_try_pop_unlocked -g_async_queue_unlock -g_async_queue_unref - -g_async_queue_ref_unlocked -g_async_queue_unref_and_unlock - - - - - - -g_atomic_int_add -g_atomic_int_compare_and_exchange -g_atomic_int_exchange_and_add -g_atomic_pointer_compare_and_exchange - - -g_atomic_int_get -g_atomic_pointer_get -g_atomic_int_set -g_atomic_pointer_set - - - - - - -g_on_error_query -g_on_error_stack_trace - - - - - -g_base64_encode_step -g_base64_encode_close -g_base64_encode -g_base64_decode_step -g_base64_decode -g_base64_decode_inplace - - - - - -g_bookmark_file_error_quark -g_bookmark_file_new -g_bookmark_file_free -g_bookmark_file_load_from_file -g_bookmark_file_load_from_data -g_bookmark_file_load_from_data_dirs -g_bookmark_file_to_data -g_bookmark_file_to_file -g_bookmark_file_set_title -g_bookmark_file_get_title -g_bookmark_file_set_description -g_bookmark_file_get_description -g_bookmark_file_set_mime_type -g_bookmark_file_get_mime_type -g_bookmark_file_set_groups -g_bookmark_file_add_group -g_bookmark_file_has_group -g_bookmark_file_get_groups -g_bookmark_file_add_application -g_bookmark_file_has_application -g_bookmark_file_get_applications -g_bookmark_file_set_app_info -g_bookmark_file_get_app_info -g_bookmark_file_set_is_private -g_bookmark_file_get_is_private -g_bookmark_file_set_icon -g_bookmark_file_get_icon -g_bookmark_file_set_added -g_bookmark_file_get_added -g_bookmark_file_set_modified -g_bookmark_file_get_modified -g_bookmark_file_set_visited -g_bookmark_file_get_visited -g_bookmark_file_has_item -g_bookmark_file_get_size -g_bookmark_file_get_uris -g_bookmark_file_remove_group -g_bookmark_file_remove_application -g_bookmark_file_remove_item -g_bookmark_file_move_item - - - - - -g_cache_destroy -g_cache_insert -g_cache_key_foreach -g_cache_new -g_cache_remove - -g_cache_value_foreach - - - - - - -g_checksum_type_get_length -g_checksum_new -g_checksum_copy -g_checksum_free -g_checksum_update -g_checksum_reset -g_checksum_get_string -g_checksum_get_digest -g_compute_checksum_for_data -g_compute_checksum_for_string - - - - - -g_completion_add_items -g_completion_clear_items -g_completion_complete -g_completion_complete_utf8 -g_completion_free -g_completion_new -g_completion_remove_items -g_completion_set_compare - - - - - -g_get_filename_charsets -g_convert -g_convert_error_quark -g_convert_with_fallback -g_convert_with_iconv -g_iconv -g_iconv_close -g_iconv_open -g_locale_from_utf8 -g_locale_to_utf8 -g_filename_display_name -g_filename_display_basename - -g_filename_from_uri PRIVATE -g_filename_from_utf8 PRIVATE -g_filename_to_uri PRIVATE -g_filename_to_utf8 PRIVATE - - -g_filename_from_uri_utf8 -g_filename_from_utf8_utf8 -g_filename_to_uri_utf8 -g_filename_to_utf8_utf8 - -g_uri_list_extract_uris - - - - - -g_datalist_clear -g_datalist_foreach -g_datalist_get_flags -g_datalist_id_get_data -g_datalist_id_remove_no_notify -g_datalist_id_set_data_full -g_datalist_set_flags -g_datalist_unset_flags -g_datalist_init -g_dataset_destroy -g_dataset_foreach -g_dataset_id_get_data -g_dataset_id_remove_no_notify -g_dataset_id_set_data_full - - - - - -g_quark_from_static_string -g_quark_from_string -g_quark_to_string -g_quark_try_string -g_intern_string -g_intern_static_string - - - - - -g_date_add_days -g_date_add_months -g_date_add_years -g_date_clamp -g_date_clear -g_date_compare -g_date_days_between -g_date_free -g_date_get_day -g_date_get_day_of_year -g_date_get_days_in_month -g_date_get_iso8601_week_of_year -g_date_get_julian -g_date_get_monday_week_of_year -g_date_get_monday_weeks_in_year -g_date_get_month -g_date_get_sunday_week_of_year -g_date_get_sunday_weeks_in_year -g_date_get_weekday -g_date_get_year -g_date_is_first_of_month -g_date_is_last_of_month -g_date_is_leap_year -g_date_new -g_date_new_dmy -g_date_new_julian -g_date_order -g_date_set_day -g_date_set_dmy -g_date_set_julian -g_date_set_month -g_date_set_parse - -g_date_set_time - -g_date_set_time_t -g_date_set_time_val -g_date_set_year -g_date_strftime -g_date_subtract_days -g_date_subtract_months -g_date_subtract_years -g_date_to_struct_tm -g_date_valid -g_date_valid_day -g_date_valid_dmy -g_date_valid_julian -g_date_valid_month -g_date_valid_weekday -g_date_valid_year - - - - - -g_dir_close - -g_dir_open PRIVATE -g_dir_read_name PRIVATE - - -g_dir_open_utf8 -g_dir_read_name_utf8 - -g_dir_rewind - - - - - -g_clear_error -g_error_copy -g_error_free -g_error_matches -g_error_new ;G_GNUC_PRINTF(3,4) -g_error_new_literal -g_propagate_error -g_set_error ;G_GNUC_PRINTF(4,5) -g_set_error_literal -g_prefix_error ;G_GNUC_PRINTF(2,3) -g_propagate_prefixed_error ;G_GNUC_PRINTF(3,4) - - - - - -g_build_filename -g_build_filenamev -g_build_path -g_build_pathv -g_file_error_from_errno -g_file_error_quark - -g_file_get_contents PRIVATE - -g_file_set_contents - -g_file_open_tmp PRIVATE -g_file_test PRIVATE - -g_file_read_link -g_format_size_for_display - -g_mkstemp PRIVATE - -g_mkdir_with_parents - -g_file_get_contents_utf8 -g_file_open_tmp_utf8 -g_file_test_utf8 -g_mkstemp_utf8 - - - - - - -g_hash_table_destroy -g_hash_table_unref -g_hash_table_ref -g_hash_table_find -g_hash_table_foreach -g_hash_table_foreach_remove -g_hash_table_foreach_steal -g_hash_table_get_keys -g_hash_table_get_values -g_hash_table_insert -g_hash_table_lookup -g_hash_table_lookup_extended -g_hash_table_new -g_hash_table_new_full -g_hash_table_remove -g_hash_table_remove_all -g_hash_table_replace -g_hash_table_size -g_hash_table_steal -g_hash_table_steal_all -g_hash_table_iter_init -g_hash_table_iter_next -g_hash_table_iter_get_hash_table -g_hash_table_iter_remove -g_hash_table_iter_steal - - - - - -g_hook_alloc -g_hook_compare_ids -g_hook_destroy -g_hook_destroy_link -g_hook_find -g_hook_find_data -g_hook_find_func -g_hook_find_func_data -g_hook_first_valid -g_hook_free -g_hook_get -g_hook_insert_before -g_hook_insert_sorted -g_hook_list_clear -g_hook_list_init -g_hook_list_invoke -g_hook_list_invoke_check -g_hook_list_marshal -g_hook_list_marshal_check -g_hook_next_valid -g_hook_prepend -g_hook_ref -g_hook_unref - - - - - -g_io_add_watch -g_io_add_watch_full -g_io_create_watch -g_io_channel_error_from_errno -g_io_channel_error_quark -g_io_channel_flush -g_io_channel_get_buffer_condition -g_io_channel_get_buffered -g_io_channel_get_buffer_size -g_io_channel_get_close_on_unref -g_io_channel_get_encoding -g_io_channel_get_flags -g_io_channel_get_line_term -g_io_channel_init -g_io_channel_read_chars -g_io_channel_read_line -g_io_channel_read_line_string -g_io_channel_read_to_end -g_io_channel_read_unichar -g_io_channel_ref -g_io_channel_seek_position -g_io_channel_set_buffered -g_io_channel_set_buffer_size -g_io_channel_set_close_on_unref -g_io_channel_set_encoding -g_io_channel_set_flags -g_io_channel_set_line_term -g_io_channel_shutdown -g_io_channel_unref - -g_io_channel_close -g_io_channel_read -g_io_channel_seek -g_io_channel_write - -g_io_channel_write_chars -g_io_channel_write_unichar - - - - - - - - - - - - - - - - -g_io_channel_unix_get_fd -g_io_channel_unix_new - -g_io_channel_new_file PRIVATE - -g_io_channel_new_file_utf8 -g_io_channel_win32_get_fd -g_io_channel_win32_make_pollfd -g_io_channel_win32_new_fd -g_io_channel_win32_new_messages -g_io_channel_win32_new_socket - -g_io_channel_win32_new_stream_socket PRIVATE - -g_io_channel_win32_poll -g_io_channel_win32_set_debug - - - - - - -g_key_file_error_quark -g_key_file_free -g_key_file_get_boolean -g_key_file_get_boolean_list -g_key_file_get_comment -g_key_file_get_groups -g_key_file_get_double -g_key_file_get_double_list -g_key_file_get_integer -g_key_file_get_integer_list -g_key_file_get_keys -g_key_file_get_locale_string -g_key_file_get_locale_string_list -g_key_file_get_start_group -g_key_file_get_string -g_key_file_get_string_list -g_key_file_get_value -g_key_file_has_group -g_key_file_has_key -g_key_file_load_from_dirs -g_key_file_load_from_data -g_key_file_load_from_data_dirs -g_key_file_load_from_file -g_key_file_new -g_key_file_remove_comment -g_key_file_remove_group -g_key_file_remove_key -g_key_file_set_boolean -g_key_file_set_boolean_list -g_key_file_set_comment -g_key_file_set_double -g_key_file_set_double_list -g_key_file_set_integer -g_key_file_set_integer_list -g_key_file_set_list_separator -g_key_file_set_locale_string -g_key_file_set_locale_string_list -g_key_file_set_string -g_key_file_set_string_list -g_key_file_set_value -g_key_file_to_data - - - - - -g_list_alloc -g_list_append -g_list_concat -g_list_copy -g_list_delete_link -g_list_find -g_list_find_custom -g_list_first -g_list_foreach -g_list_free -g_list_free_1 -g_list_index -g_list_insert -g_list_insert_before -g_list_insert_sorted -g_list_insert_sorted_with_data -g_list_last -g_list_length -g_list_nth -g_list_nth_data -g_list_nth_prev - -g_list_pop_allocator - -g_list_position -g_list_prepend - -g_list_push_allocator - -g_list_remove -g_list_remove_all -g_list_remove_link -g_list_reverse -g_list_sort -g_list_sort_with_data - - - - - -g_child_watch_add -g_child_watch_add_full -g_child_watch_source_new -g_get_current_time -g_main_context_acquire -g_main_context_add_poll -g_main_context_check -g_main_context_default -g_main_context_dispatch -g_main_context_find_source_by_funcs_user_data -g_main_context_find_source_by_id -g_main_context_find_source_by_user_data -g_main_context_get_poll_func -g_main_context_is_owner -g_main_context_iteration -g_main_context_new -g_main_context_pending -g_main_context_prepare -g_main_context_query -g_main_context_ref -g_main_context_release -g_main_context_remove_poll -g_main_context_set_poll_func -g_main_context_unref -g_main_context_wait -g_main_context_wakeup -g_main_depth -g_main_current_source -g_main_loop_get_context -g_main_loop_is_running -g_main_loop_new -g_main_loop_quit -g_main_loop_ref -g_main_loop_run -g_main_loop_unref -g_source_add_poll -g_source_attach -g_source_destroy -g_source_get_can_recurse -g_source_get_context -g_source_get_current_time -g_source_get_id -g_source_get_priority -g_source_new -g_source_ref -g_source_remove -g_source_remove_by_funcs_user_data -g_source_remove_by_user_data -g_source_remove_poll -g_source_set_callback -g_source_set_callback_indirect -g_source_set_can_recurse -g_source_set_funcs -g_source_is_destroyed -g_source_set_priority -g_source_unref -g_idle_add -g_idle_add_full -g_idle_remove_by_data -g_idle_source_new -g_timeout_add -g_timeout_add_seconds -g_timeout_add_full -g_timeout_add_seconds_full -g_timeout_source_new -g_timeout_source_new_seconds - - - - - -g_mapped_file_new -g_mapped_file_get_length -g_mapped_file_get_contents -g_mapped_file_free - - - - - -g_markup_error_quark -g_markup_escape_text -g_markup_parse_context_end_parse -g_markup_parse_context_free -g_markup_parse_context_get_element -g_markup_parse_context_get_element_stack -g_markup_parse_context_get_position -g_markup_parse_context_get_user_data -g_markup_parse_context_new -g_markup_parse_context_parse -g_markup_parse_context_push -g_markup_parse_context_pop -g_markup_printf_escaped ;G_GNUC_PRINTF(1,2) -g_markup_vprintf_escaped -g_markup_collect_attributes - - - - - -g_free -g_malloc -g_malloc0 -g_mem_is_system_malloc -g_mem_profile -g_mem_set_vtable -g_realloc -g_try_malloc -g_try_malloc0 -g_try_realloc - -g_allocator_free -g_allocator_new -g_mem_chunk_alloc -g_mem_chunk_alloc0 -g_mem_chunk_clean -g_mem_chunk_destroy -g_mem_chunk_free -g_mem_chunk_info -g_mem_chunk_new -g_mem_chunk_print -g_mem_chunk_reset -g_blow_chunks - - - - - - -g_slice_alloc -g_slice_alloc0 -g_slice_copy -g_slice_free1 -g_slice_free_chain_with_offset -g_slice_set_config -g_slice_get_config -g_slice_get_config_state - - - - - - - - - - -g_printf_string_upper_bound -g_log ;G_GNUC_PRINTF(3,4) -g_log_default_handler -g_log_remove_handler -g_log_set_always_fatal -g_log_set_default_handler -g_log_set_fatal_mask -g_log_set_handler -g_logv -g_return_if_fail_warning -g_warn_message - -g_assert_warning - -g_print ;G_GNUC_PRINTF(1,2) -g_printerr ;G_GNUC_PRINTF(1,2) -g_set_printerr_handler -g_set_print_handler - - - - - -g_node_child_index -g_node_child_position -g_node_children_foreach -g_node_copy -g_node_copy_deep -g_node_depth -g_node_destroy -g_node_find -g_node_find_child -g_node_first_sibling -g_node_get_root -g_node_insert -g_node_insert_after -g_node_insert_before -g_node_is_ancestor -g_node_last_child -g_node_last_sibling -g_node_max_height -g_node_n_children -g_node_new -g_node_n_nodes -g_node_nth_child - -g_node_pop_allocator - -g_node_prepend - -g_node_push_allocator - -g_node_reverse_children -g_node_traverse -g_node_unlink - - - - - -g_option_context_add_group -g_option_context_add_main_entries -g_option_error_quark -g_option_context_free -g_option_context_get_description -g_option_context_get_help_enabled -g_option_context_get_ignore_unknown_options -g_option_context_get_main_group -g_option_context_get_summary -g_option_context_new -g_option_context_parse -g_option_context_set_description -g_option_context_set_help_enabled -g_option_context_set_ignore_unknown_options -g_option_context_set_main_group -g_option_context_set_summary -g_option_context_set_translate_func -g_option_context_set_translation_domain -g_option_context_get_help -g_option_group_add_entries -g_option_group_free -g_option_group_new -g_option_group_set_error_hook -g_option_group_set_parse_hooks -g_option_group_set_translate_func -g_option_group_set_translation_domain - - - - - -g_pattern_match -g_pattern_match_simple -g_pattern_match_string -g_pattern_spec_equal -g_pattern_spec_free -g_pattern_spec_new - - - - - -g_poll - - - - - -g_spaced_primes_closest - - - - - -g_fprintf ;G_GNUC_PRINTF(2,3) -g_printf ;G_GNUC_PRINTF(1,2) -g_sprintf ;G_GNUC_PRINTF(2,3) -g_vasprintf -g_vfprintf -g_vprintf -g_vsprintf - - - - - -g_snprintf ;G_GNUC_PRINTF(3,4) -g_vsnprintf - - - - - -g_qsort_with_data - - - - - -g_queue_clear -g_queue_copy -g_queue_delete_link -g_queue_find -g_queue_find_custom -g_queue_foreach -g_queue_free -g_queue_get_length -g_queue_index -g_queue_init -g_queue_insert_after -g_queue_insert_before -g_queue_insert_sorted -g_queue_is_empty -g_queue_link_index -g_queue_new -g_queue_peek_head -g_queue_peek_head_link -g_queue_peek_nth -g_queue_peek_nth_link -g_queue_peek_tail -g_queue_peek_tail_link -g_queue_pop_head -g_queue_pop_head_link -g_queue_pop_nth -g_queue_pop_nth_link -g_queue_pop_tail -g_queue_pop_tail_link -g_queue_push_head -g_queue_push_head_link -g_queue_push_nth -g_queue_push_nth_link -g_queue_push_tail -g_queue_push_tail_link -g_queue_remove -g_queue_remove_all -g_queue_reverse -g_queue_sort -g_queue_unlink - - - - - -g_rand_copy -g_rand_double -g_rand_double_range -g_rand_free -g_rand_int -g_rand_int_range -g_rand_new -g_rand_new_with_seed -g_rand_new_with_seed_array -g_random_double -g_random_double_range -g_random_int -g_random_int_range -g_random_set_seed -g_rand_set_seed -g_rand_set_seed_array - - - - - -g_relation_count -g_relation_delete -g_relation_destroy -g_relation_exists -g_relation_index -g_relation_insert -g_relation_new -g_relation_print -g_relation_select -g_tuples_destroy -g_tuples_index - - - - - -g_scanner_cur_line -g_scanner_cur_position -g_scanner_cur_token -g_scanner_cur_value -g_scanner_destroy -g_scanner_eof -g_scanner_error ;G_GNUC_PRINTF(2,3) -g_scanner_get_next_token -g_scanner_input_file -g_scanner_input_text -g_scanner_lookup_symbol -g_scanner_new -g_scanner_peek_next_token -g_scanner_scope_add_symbol -g_scanner_scope_foreach_symbol -g_scanner_scope_lookup_symbol -g_scanner_scope_remove_symbol -g_scanner_set_scope -g_scanner_sync_file_offset -g_scanner_unexp_token -g_scanner_warn ;G_GNUC_PRINTF(2,3) - - - - - -g_sequence_new -g_sequence_free -g_sequence_get_length -g_sequence_foreach -g_sequence_foreach_range -g_sequence_sort -g_sequence_sort_iter -g_sequence_get_begin_iter -g_sequence_get_end_iter -g_sequence_get_iter_at_pos -g_sequence_append -g_sequence_prepend -g_sequence_insert_before -g_sequence_move -g_sequence_swap -g_sequence_insert_sorted -g_sequence_insert_sorted_iter -g_sequence_sort_changed -g_sequence_sort_changed_iter -g_sequence_remove -g_sequence_remove_range -g_sequence_move_range -g_sequence_search -g_sequence_search_iter -g_sequence_get -g_sequence_set -g_sequence_iter_is_begin -g_sequence_iter_is_end -g_sequence_iter_next -g_sequence_iter_prev -g_sequence_iter_get_position -g_sequence_iter_move -g_sequence_iter_get_sequence -g_sequence_iter_compare -g_sequence_range_get_midpoint - - - - - -g_shell_error_quark -g_shell_parse_argv -g_shell_quote -g_shell_unquote - - - - - -g_slist_alloc -g_slist_append -g_slist_concat -g_slist_copy -g_slist_delete_link -g_slist_find -g_slist_find_custom -g_slist_foreach -g_slist_free -g_slist_free_1 -g_slist_index -g_slist_insert -g_slist_insert_before -g_slist_insert_sorted -g_slist_insert_sorted_with_data -g_slist_last -g_slist_length -g_slist_nth -g_slist_nth_data - -g_slist_pop_allocator - -g_slist_position -g_slist_prepend - -g_slist_push_allocator - -g_slist_remove -g_slist_remove_all -g_slist_remove_link -g_slist_reverse -g_slist_sort -g_slist_sort_with_data - - - - - - -g_spawn_async PRIVATE -g_spawn_async_with_pipes PRIVATE - -g_spawn_close_pid - -g_spawn_command_line_async PRIVATE -g_spawn_command_line_sync PRIVATE - -g_spawn_error_quark - -g_spawn_sync PRIVATE - - -g_spawn_async_utf8 -g_spawn_async_with_pipes_utf8 -g_spawn_command_line_async_utf8 -g_spawn_command_line_sync_utf8 -g_spawn_sync_utf8 - - - - - - - - -g_chmod -g_open -g_creat -g_rename -g_mkdir -g_stat -g_lstat -g_remove -g_fopen -g_freopen -g_utime - -g_access -g_chdir -g_unlink -g_rmdir - - - - - -g_ascii_digit_value -g_ascii_dtostr -g_ascii_formatd -g_ascii_strdown -g_ascii_strtod -g_ascii_strtoull -g_ascii_strtoll -g_ascii_strup -g_ascii_tolower -g_ascii_toupper -g_ascii_xdigit_value -g_ascii_strcasecmp -g_ascii_strncasecmp -g_memdup -g_stpcpy -g_strcanon -g_strchomp -g_strchug -g_strcompress -g_strconcat -g_strdelimit -g_strdup -g_strdup_printf ;G_GNUC_PRINTF(1,2) -g_strdupv -g_strdup_vprintf -g_strerror -g_strescape -g_strfreev -g_str_has_prefix -g_str_has_suffix -g_strjoin -g_strjoinv -g_strlcat -g_strlcpy -g_strndup -g_strnfill -g_strreverse -g_strrstr -g_strrstr_len -g_strsignal -g_strsplit -g_strsplit_set -g_strstr_len -g_strtod - -g_strcasecmp -g_strncasecmp -g_strup -g_strdown - -g_strv_length -g_strip_context ;G_GNUC_FORMAT(1) -g_dgettext ;G_GNUC_FORMAT(2) -g_dngettext ;G_GNUC_FORMAT(3) -g_dpgettext ;G_GNUC_FORMAT(2) -g_dpgettext2 ;G_GNUC_FORMAT(3) - - - - - -g_uri_unescape_string -g_uri_unescape_segment -g_uri_parse_scheme -g_uri_escape_string - - - - - -g_string_append -g_string_append_len -g_string_append_printf ;G_GNUC_PRINTF(2,3) -g_string_append_unichar -g_string_append_vprintf -g_string_ascii_down -g_string_ascii_up -g_string_assign -g_string_chunk_free -g_string_chunk_clear -g_string_chunk_insert -g_string_chunk_insert_const -g_string_chunk_insert_len -g_string_chunk_new -g_string_equal -g_string_erase -g_string_free -g_string_hash -g_string_insert -g_string_insert_c -g_string_insert_len -g_string_insert_unichar -g_string_new -g_string_new_len -g_string_overwrite -g_string_overwrite_len -g_string_prepend -g_string_prepend_c -g_string_prepend_len -g_string_prepend_unichar -g_string_printf ;G_GNUC_PRINTF(2,3) -g_string_set_size -g_string_sized_new -g_string_truncate -g_string_append_uri_escaped - -g_string_down -g_string_up - -g_string_vprintf - - -g_string_append_c - -g_str_equal -g_str_hash - - - - - -g_once_impl -g_once_init_enter_impl -g_once_init_leave - -g_thread_init_glib -g_once_init_enter - - - - - - - -g_thread_create_full -g_thread_error_quark -g_thread_exit -g_thread_join -g_thread_self -g_thread_set_priority -g_static_mutex_free -g_static_mutex_get_mutex_impl -g_static_mutex_init -g_static_private_free -g_static_private_get -g_static_private_init -g_static_private_set -g_static_rec_mutex_free -g_static_rec_mutex_init -g_static_rec_mutex_lock -g_static_rec_mutex_lock_full -g_static_rec_mutex_trylock -g_static_rec_mutex_unlock -g_static_rec_mutex_unlock_full -g_static_rw_lock_free -g_static_rw_lock_init -g_static_rw_lock_reader_lock -g_static_rw_lock_reader_trylock -g_static_rw_lock_reader_unlock -g_static_rw_lock_writer_lock -g_static_rw_lock_writer_trylock -g_static_rw_lock_writer_unlock -g_thread_foreach -g_thread_get_initialized - - - - - -g_thread_pool_free -g_thread_pool_get_max_threads -g_thread_pool_get_max_unused_threads -g_thread_pool_get_max_idle_time -g_thread_pool_get_num_threads -g_thread_pool_get_num_unused_threads -g_thread_pool_new -g_thread_pool_push -g_thread_pool_set_max_threads -g_thread_pool_set_max_unused_threads -g_thread_pool_set_max_idle_time -g_thread_pool_stop_unused_threads -g_thread_pool_unprocessed -g_thread_pool_set_sort_function - - - - - -g_assertion_message -g_assertion_message_cmpnum -g_assertion_message_cmpstr -g_assertion_message_expr -g_assertion_message_error -g_strcmp0 -g_test_add_data_func -g_test_add_func -g_test_add_vtable -g_test_bug -g_test_bug_base - - - -g_test_create_case -g_test_create_suite -g_test_get_root -g_test_init -g_test_log_buffer_free -g_test_log_buffer_new -g_test_log_buffer_pop -g_test_log_buffer_push -g_test_log_msg_free -g_test_log_type_name -g_test_maximized_result -g_test_message -g_test_minimized_result -g_test_queue_destroy -g_test_queue_free -g_test_rand_double -g_test_rand_double_range -g_test_rand_int -g_test_rand_int_range -g_test_run -g_test_run_suite -g_test_suite_add -g_test_suite_add_suite -g_test_timer_elapsed -g_test_timer_last -g_test_timer_start -g_test_trap_assertions -g_test_trap_fork -g_test_trap_has_passed -g_test_trap_reached_timeout - - - - - -g_timer_continue -g_timer_destroy -g_timer_elapsed -g_timer_new -g_timer_reset -g_timer_start -g_timer_stop -g_time_val_add -g_time_val_from_iso8601 -g_time_val_to_iso8601 -g_usleep - - - - - -g_tree_destroy -g_tree_foreach -g_tree_height -g_tree_insert -g_tree_lookup -g_tree_lookup_extended -g_tree_new -g_tree_new_full -g_tree_new_with_data -g_tree_nnodes -g_tree_remove -g_tree_replace -g_tree_search -g_tree_steal - -g_tree_traverse - - - - - - -g_unichar_break_type - - - - - -g_utf8_collate -g_utf8_collate_key -g_utf8_collate_key_for_filename - - - - - -g_unicode_canonical_decomposition -g_unicode_canonical_ordering -g_unichar_combining_class -g_utf8_normalize - - - - - -g_unichar_isalnum -g_unichar_isalpha -g_unichar_iscntrl -g_unichar_isdefined -g_unichar_isdigit -g_unichar_isgraph -g_unichar_islower -g_unichar_isprint -g_unichar_ispunct -g_unichar_isspace -g_unichar_istitle -g_unichar_isupper -g_unichar_iswide -g_unichar_iswide_cjk -g_unichar_isxdigit -g_unichar_iszerowidth -g_unichar_tolower -g_unichar_totitle -g_unichar_toupper -g_unichar_ismark -g_unichar_get_mirror_char -g_unichar_get_script -g_unichar_digit_value -g_unichar_xdigit_value -g_unichar_type -g_utf8_casefold -g_utf8_strup -g_utf8_strdown - - - - - -g_get_charset -g_ucs4_to_utf16 -g_ucs4_to_utf8 -g_utf16_to_ucs4 -g_utf16_to_utf8 -g_utf8_find_next_char -g_utf8_find_prev_char -g_utf8_get_char -g_utf8_get_char_validated -g_utf8_offset_to_pointer -g_utf8_pointer_to_offset -g_utf8_prev_char -g_utf8_strchr -g_utf8_strlen -g_utf8_strncpy -g_utf8_strrchr -g_utf8_strreverse -g_utf8_to_ucs4 -g_utf8_to_ucs4_fast -g_utf8_to_utf16 -g_utf8_validate -g_unichar_to_utf8 -g_unichar_validate - - - - - -glib_gettext ;G_GNUC_FORMAT(1) - - - - - -g_int_equal -g_int_hash -g_direct_equal -g_direct_hash - - - - - -g_atexit - -g_basename - -g_get_application_name - -g_find_program_in_path PRIVATE -g_get_current_dir PRIVATE -g_getenv PRIVATE -g_unsetenv PRIVATE -g_get_home_dir PRIVATE - -g_get_host_name - -g_setenv PRIVATE - -g_listenv - -g_find_program_in_path_utf8 -g_get_current_dir_utf8 -g_getenv_utf8 -g_unsetenv_utf8 -g_setenv_utf8 -g_get_home_dir_utf8 - -g_get_language_names -g_get_prgname - -g_get_real_name PRIVATE - - -g_get_real_name_utf8 - -g_get_system_config_dirs -g_get_system_data_dirs - -g_win32_get_system_data_dirs_for_module - - -g_get_tmp_dir PRIVATE - - -g_get_tmp_dir_utf8 - -g_get_user_cache_dir -g_get_user_config_dir -g_get_user_data_dir -g_get_user_special_dir - -g_get_user_name PRIVATE - - -g_get_user_name_utf8 - -glib_check_version -g_nullify_pointer -g_parse_debug_string -g_path_get_basename -g_path_get_dirname -g_path_is_absolute -g_path_skip_root -g_set_application_name -g_set_prgname - -g_bit_nth_lsf -g_bit_nth_msf -g_bit_storage -g_trash_stack_height -g_trash_stack_peek -g_trash_stack_pop -g_trash_stack_push -g_get_codeset - - - - - - -g_regex_error_quark -g_regex_new -g_regex_ref -g_regex_unref -g_regex_get_pattern -g_regex_get_max_backref -g_regex_get_capture_count -g_regex_get_string_number -g_regex_escape_string -g_regex_match_simple -g_regex_match -g_regex_match_full -g_regex_match_all -g_regex_match_all_full -g_regex_split_simple -g_regex_split -g_regex_split_full -g_regex_replace -g_regex_replace_literal -g_regex_replace_eval -g_regex_check_replacement -g_match_info_get_regex -g_match_info_get_string -g_match_info_free -g_match_info_next -g_match_info_matches -g_match_info_get_match_count -g_match_info_is_partial_match -g_match_info_expand_references -g_match_info_fetch -g_match_info_fetch_pos -g_match_info_fetch_named -g_match_info_fetch_named_pos -g_match_info_fetch_all - - - - - - -g_win32_error_message -g_win32_ftruncate -g_win32_get_package_installation_directory_of_module - -g_win32_get_package_installation_directory PRIVATE - -g_win32_get_package_installation_directory_utf8 - -g_win32_get_package_installation_subdirectory PRIVATE - -g_win32_get_package_installation_subdirectory_utf8 -g_win32_get_windows_version -g_win32_getlocale -g_win32_locale_filename_from_utf8 - - - - - - - - - - - - - - - - - - - - - diff --git a/lib/win32/glib-2.20.4/glib/glib.h b/lib/win32/glib-2.20.4/glib/glib.h deleted file mode 100644 index 000d417684960..0000000000000 --- a/lib/win32/glib-2.20.4/glib/glib.h +++ /dev/null @@ -1,93 +0,0 @@ -/* GLIB - Library of useful routines for C programming - * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library 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 - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ - -/* - * Modified by the GLib Team and others 1997-2000. See the AUTHORS - * file for a list of people on the GLib Team. See the ChangeLog - * files for a list of changes. These files are distributed with - * GLib at ftp://ftp.gtk.org/pub/gtk/. - */ - -#ifndef __G_LIB_H__ -#define __G_LIB_H__ - -#define __GLIB_H_INSIDE__ - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#ifdef G_PLATFORM_WIN32 -#include -#endif - -#undef __GLIB_H_INSIDE__ - -#endif /* __G_LIB_H__ */ diff --git a/lib/win32/glib-2.20.4/glib/glibintl.h b/lib/win32/glib-2.20.4/glib/glibintl.h deleted file mode 100644 index 47a7910f8cf77..0000000000000 --- a/lib/win32/glib-2.20.4/glib/glibintl.h +++ /dev/null @@ -1,38 +0,0 @@ -#ifndef __GLIBINTL_H__ -#define __GLIBINTL_H__ - -#ifndef SIZEOF_CHAR -#error "config.h must be included prior to glibintl.h" -#endif - -G_CONST_RETURN gchar *glib_gettext (const gchar *str) G_GNUC_FORMAT(1); - -#ifdef ENABLE_NLS - -#include -#define _(String) glib_gettext(String) -/* Split out this in the code, but keep it in the same domain for now */ -#define P_(String) glib_gettext(String) - -#ifdef gettext_noop -#define N_(String) gettext_noop(String) -#else -#define N_(String) (String) -#endif -#else /* NLS is disabled */ -#define _(String) (String) -#define N_(String) (String) -#define P_(String) (String) -#define textdomain(String) ((String) ? (String) : "messages") -#define gettext(String) (String) -#define dgettext(Domain,String) (String) -#define dcgettext(Domain,String,Type) (String) -#define dngettext(Domain,String1,String2,N) ((N) == 1 ? (String1) : (String2)) -#define bindtextdomain(Domain,Directory) (Domain) -#define bind_textdomain_codeset(Domain,Codeset) -#endif - -/* not really I18N-related, but also a string marker macro */ -#define I_(string) g_intern_static_string (string) - -#endif /* __GLIBINTL_H__ */ diff --git a/lib/win32/glib-2.20.4/glib/glist.c b/lib/win32/glib-2.20.4/glib/glist.c deleted file mode 100644 index b607abd68c9a2..0000000000000 --- a/lib/win32/glib-2.20.4/glib/glist.c +++ /dev/null @@ -1,999 +0,0 @@ -/* GLIB - Library of useful routines for C programming - * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library 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 - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ - -/* - * Modified by the GLib Team and others 1997-2000. See the AUTHORS - * file for a list of people on the GLib Team. See the ChangeLog - * files for a list of changes. These files are distributed with - * GLib at ftp://ftp.gtk.org/pub/gtk/. - */ - -/* - * MT safe - */ - -#include "config.h" - -#include "glib.h" -#include "galias.h" - - -void g_list_push_allocator (gpointer dummy) { /* present for binary compat only */ } -void g_list_pop_allocator (void) { /* present for binary compat only */ } - -#define _g_list_alloc() g_slice_new (GList) -#define _g_list_alloc0() g_slice_new0 (GList) -#define _g_list_free1(list) g_slice_free (GList, list) - -GList* -g_list_alloc (void) -{ - return _g_list_alloc0 (); -} - -/** - * g_list_free: - * @list: a #GList - * - * Frees all of the memory used by a #GList. - * The freed elements are returned to the slice allocator. - * - * - * If list elements contain dynamically-allocated memory, - * they should be freed first. - * - */ -void -g_list_free (GList *list) -{ - g_slice_free_chain (GList, list, next); -} - -/** - * g_list_free_1: - * @list: a #GList element - * - * Frees one #GList element. - * It is usually used after g_list_remove_link(). - */ -void -g_list_free_1 (GList *list) -{ - _g_list_free1 (list); -} - -/** - * g_list_append: - * @list: a pointer to a #GList - * @data: the data for the new element - * - * Adds a new element on to the end of the list. - * - * - * The return value is the new start of the list, which - * may have changed, so make sure you store the new value. - * - * - * - * Note that g_list_append() has to traverse the entire list - * to find the end, which is inefficient when adding multiple - * elements. A common idiom to avoid the inefficiency is to prepend - * the elements and reverse the list when all elements have been added. - * - * - * |[ - * /* Notice that these are initialized to the empty list. */ - * GList *list = NULL, *number_list = NULL; - * - * /* This is a list of strings. */ - * list = g_list_append (list, "first"); - * list = g_list_append (list, "second"); - * - * /* This is a list of integers. */ - * number_list = g_list_append (number_list, GINT_TO_POINTER (27)); - * number_list = g_list_append (number_list, GINT_TO_POINTER (14)); - * ]| - * - * Returns: the new start of the #GList - */ -GList* -g_list_append (GList *list, - gpointer data) -{ - GList *new_list; - GList *last; - - new_list = _g_list_alloc (); - new_list->data = data; - new_list->next = NULL; - - if (list) - { - last = g_list_last (list); - /* g_assert (last != NULL); */ - last->next = new_list; - new_list->prev = last; - - return list; - } - else - { - new_list->prev = NULL; - return new_list; - } -} - -/** - * g_list_prepend: - * @list: a pointer to a #GList - * @data: the data for the new element - * - * Adds a new element on to the start of the list. - * - * - * The return value is the new start of the list, which - * may have changed, so make sure you store the new value. - * - * - * |[ - * /* Notice that it is initialized to the empty list. */ - * GList *list = NULL; - * list = g_list_prepend (list, "last"); - * list = g_list_prepend (list, "first"); - * ]| - * - * Returns: the new start of the #GList - */ -GList* -g_list_prepend (GList *list, - gpointer data) -{ - GList *new_list; - - new_list = _g_list_alloc (); - new_list->data = data; - new_list->next = list; - - if (list) - { - new_list->prev = list->prev; - if (list->prev) - list->prev->next = new_list; - list->prev = new_list; - } - else - new_list->prev = NULL; - - return new_list; -} - -/** - * g_list_insert: - * @list: a pointer to a #GList - * @data: the data for the new element - * @position: the position to insert the element. If this is - * negative, or is larger than the number of elements in the - * list, the new element is added on to the end of the list. - * - * Inserts a new element into the list at the given position. - * - * Returns: the new start of the #GList - */ -GList* -g_list_insert (GList *list, - gpointer data, - gint position) -{ - GList *new_list; - GList *tmp_list; - - if (position < 0) - return g_list_append (list, data); - else if (position == 0) - return g_list_prepend (list, data); - - tmp_list = g_list_nth (list, position); - if (!tmp_list) - return g_list_append (list, data); - - new_list = _g_list_alloc (); - new_list->data = data; - new_list->prev = tmp_list->prev; - if (tmp_list->prev) - tmp_list->prev->next = new_list; - new_list->next = tmp_list; - tmp_list->prev = new_list; - - if (tmp_list == list) - return new_list; - else - return list; -} - -/** - * g_list_insert_before: - * @list: a pointer to a #GList - * @sibling: the list element before which the new element - * is inserted or %NULL to insert at the end of the list - * @data: the data for the new element - * - * Inserts a new element into the list before the given position. - * - * Returns: the new start of the #GList - */ -GList* -g_list_insert_before (GList *list, - GList *sibling, - gpointer data) -{ - if (!list) - { - list = g_list_alloc (); - list->data = data; - g_return_val_if_fail (sibling == NULL, list); - return list; - } - else if (sibling) - { - GList *node; - - node = _g_list_alloc (); - node->data = data; - node->prev = sibling->prev; - node->next = sibling; - sibling->prev = node; - if (node->prev) - { - node->prev->next = node; - return list; - } - else - { - g_return_val_if_fail (sibling == list, node); - return node; - } - } - else - { - GList *last; - - last = list; - while (last->next) - last = last->next; - - last->next = _g_list_alloc (); - last->next->data = data; - last->next->prev = last; - last->next->next = NULL; - - return list; - } -} - -/** - * g_list_concat: - * @list1: a #GList - * @list2: the #GList to add to the end of the first #GList - * - * Adds the second #GList onto the end of the first #GList. - * Note that the elements of the second #GList are not copied. - * They are used directly. - * - * Returns: the start of the new #GList - */ -GList * -g_list_concat (GList *list1, GList *list2) -{ - GList *tmp_list; - - if (list2) - { - tmp_list = g_list_last (list1); - if (tmp_list) - tmp_list->next = list2; - else - list1 = list2; - list2->prev = tmp_list; - } - - return list1; -} - -/** - * g_list_remove: - * @list: a #GList - * @data: the data of the element to remove - * - * Removes an element from a #GList. - * If two elements contain the same data, only the first is removed. - * If none of the elements contain the data, the #GList is unchanged. - * - * Returns: the new start of the #GList - */ -GList* -g_list_remove (GList *list, - gconstpointer data) -{ - GList *tmp; - - tmp = list; - while (tmp) - { - if (tmp->data != data) - tmp = tmp->next; - else - { - if (tmp->prev) - tmp->prev->next = tmp->next; - if (tmp->next) - tmp->next->prev = tmp->prev; - - if (list == tmp) - list = list->next; - - _g_list_free1 (tmp); - - break; - } - } - return list; -} - -/** - * g_list_remove_all: - * @list: a #GList - * @data: data to remove - * - * Removes all list nodes with data equal to @data. - * Returns the new head of the list. Contrast with - * g_list_remove() which removes only the first node - * matching the given data. - * - * Returns: new head of @list - */ -GList* -g_list_remove_all (GList *list, - gconstpointer data) -{ - GList *tmp = list; - - while (tmp) - { - if (tmp->data != data) - tmp = tmp->next; - else - { - GList *next = tmp->next; - - if (tmp->prev) - tmp->prev->next = next; - else - list = next; - if (next) - next->prev = tmp->prev; - - _g_list_free1 (tmp); - tmp = next; - } - } - return list; -} - -static inline GList* -_g_list_remove_link (GList *list, - GList *link) -{ - if (link) - { - if (link->prev) - link->prev->next = link->next; - if (link->next) - link->next->prev = link->prev; - - if (link == list) - list = list->next; - - link->next = NULL; - link->prev = NULL; - } - - return list; -} - -/** - * g_list_remove_link: - * @list: a #GList - * @llink: an element in the #GList - * - * Removes an element from a #GList, without freeing the element. - * The removed element's prev and next links are set to %NULL, so - * that it becomes a self-contained list with one element. - * - * Returns: the new start of the #GList, without the element - */ -GList* -g_list_remove_link (GList *list, - GList *llink) -{ - return _g_list_remove_link (list, llink); -} - -/** - * g_list_delete_link: - * @list: a #GList - * @link_: node to delete from @list - * - * Removes the node link_ from the list and frees it. - * Compare this to g_list_remove_link() which removes the node - * without freeing it. - * - * Returns: the new head of @list - */ -GList* -g_list_delete_link (GList *list, - GList *link_) -{ - list = _g_list_remove_link (list, link_); - _g_list_free1 (link_); - - return list; -} - -/** - * g_list_copy: - * @list: a #GList - * - * Copies a #GList. - * - * - * Note that this is a "shallow" copy. If the list elements - * consist of pointers to data, the pointers are copied but - * the actual data is not. - * - * - * Returns: a copy of @list - */ -GList* -g_list_copy (GList *list) -{ - GList *new_list = NULL; - - if (list) - { - GList *last; - - new_list = _g_list_alloc (); - new_list->data = list->data; - new_list->prev = NULL; - last = new_list; - list = list->next; - while (list) - { - last->next = _g_list_alloc (); - last->next->prev = last; - last = last->next; - last->data = list->data; - list = list->next; - } - last->next = NULL; - } - - return new_list; -} - -/** - * g_list_reverse: - * @list: a #GList - * - * Reverses a #GList. - * It simply switches the next and prev pointers of each element. - * - * Returns: the start of the reversed #GList - */ -GList* -g_list_reverse (GList *list) -{ - GList *last; - - last = NULL; - while (list) - { - last = list; - list = last->next; - last->next = last->prev; - last->prev = list; - } - - return last; -} - -/** - * g_list_nth: - * @list: a #GList - * @n: the position of the element, counting from 0 - * - * Gets the element at the given position in a #GList. - * - * Returns: the element, or %NULL if the position is off - * the end of the #GList - */ -GList* -g_list_nth (GList *list, - guint n) -{ - while ((n-- > 0) && list) - list = list->next; - - return list; -} - -/** - * g_list_nth_prev: - * @list: a #GList - * @n: the position of the element, counting from 0 - * - * Gets the element @n places before @list. - * - * Returns: the element, or %NULL if the position is - * off the end of the #GList - */ -GList* -g_list_nth_prev (GList *list, - guint n) -{ - while ((n-- > 0) && list) - list = list->prev; - - return list; -} - -/** - * g_list_nth_data: - * @list: a #GList - * @n: the position of the element - * - * Gets the data of the element at the given position. - * - * Returns: the element's data, or %NULL if the position - * is off the end of the #GList - */ -gpointer -g_list_nth_data (GList *list, - guint n) -{ - while ((n-- > 0) && list) - list = list->next; - - return list ? list->data : NULL; -} - -/** - * g_list_find: - * @list: a #GList - * @data: the element data to find - * - * Finds the element in a #GList which - * contains the given data. - * - * Returns: the found #GList element, - * or %NULL if it is not found - */ -GList* -g_list_find (GList *list, - gconstpointer data) -{ - while (list) - { - if (list->data == data) - break; - list = list->next; - } - - return list; -} - -/** - * g_list_find_custom: - * @list: a #GList - * @data: user data passed to the function - * @func: the function to call for each element. - * It should return 0 when the desired element is found - * - * Finds an element in a #GList, using a supplied function to - * find the desired element. It iterates over the list, calling - * the given function which should return 0 when the desired - * element is found. The function takes two #gconstpointer arguments, - * the #GList element's data as the first argument and the - * given user data. - * - * Returns: the found #GList element, or %NULL if it is not found - */ -GList* -g_list_find_custom (GList *list, - gconstpointer data, - GCompareFunc func) -{ - g_return_val_if_fail (func != NULL, list); - - while (list) - { - if (! func (list->data, data)) - return list; - list = list->next; - } - - return NULL; -} - - -/** - * g_list_position: - * @list: a #GList - * @llink: an element in the #GList - * - * Gets the position of the given element - * in the #GList (starting from 0). - * - * Returns: the position of the element in the #GList, - * or -1 if the element is not found - */ -gint -g_list_position (GList *list, - GList *llink) -{ - gint i; - - i = 0; - while (list) - { - if (list == llink) - return i; - i++; - list = list->next; - } - - return -1; -} - -/** - * g_list_index: - * @list: a #GList - * @data: the data to find - * - * Gets the position of the element containing - * the given data (starting from 0). - * - * Returns: the index of the element containing the data, - * or -1 if the data is not found - */ -gint -g_list_index (GList *list, - gconstpointer data) -{ - gint i; - - i = 0; - while (list) - { - if (list->data == data) - return i; - i++; - list = list->next; - } - - return -1; -} - -/** - * g_list_last: - * @list: a #GList - * - * Gets the last element in a #GList. - * - * Returns: the last element in the #GList, - * or %NULL if the #GList has no elements - */ -GList* -g_list_last (GList *list) -{ - if (list) - { - while (list->next) - list = list->next; - } - - return list; -} - -/** - * g_list_first: - * @list: a #GList - * - * Gets the first element in a #GList. - * - * Returns: the first element in the #GList, - * or %NULL if the #GList has no elements - */ -GList* -g_list_first (GList *list) -{ - if (list) - { - while (list->prev) - list = list->prev; - } - - return list; -} - -/** - * g_list_length: - * @list: a #GList - * - * Gets the number of elements in a #GList. - * - * - * This function iterates over the whole list to - * count its elements. - * - * - * Returns: the number of elements in the #GList - */ -guint -g_list_length (GList *list) -{ - guint length; - - length = 0; - while (list) - { - length++; - list = list->next; - } - - return length; -} - -/** - * g_list_foreach: - * @list: a #GList - * @func: the function to call with each element's data - * @user_data: user data to pass to the function - * - * Calls a function for each element of a #GList. - */ -void -g_list_foreach (GList *list, - GFunc func, - gpointer user_data) -{ - while (list) - { - GList *next = list->next; - (*func) (list->data, user_data); - list = next; - } -} - -static GList* -g_list_insert_sorted_real (GList *list, - gpointer data, - GFunc func, - gpointer user_data) -{ - GList *tmp_list = list; - GList *new_list; - gint cmp; - - g_return_val_if_fail (func != NULL, list); - - if (!list) - { - new_list = _g_list_alloc0 (); - new_list->data = data; - return new_list; - } - - cmp = ((GCompareDataFunc) func) (data, tmp_list->data, user_data); - - while ((tmp_list->next) && (cmp > 0)) - { - tmp_list = tmp_list->next; - - cmp = ((GCompareDataFunc) func) (data, tmp_list->data, user_data); - } - - new_list = _g_list_alloc0 (); - new_list->data = data; - - if ((!tmp_list->next) && (cmp > 0)) - { - tmp_list->next = new_list; - new_list->prev = tmp_list; - return list; - } - - if (tmp_list->prev) - { - tmp_list->prev->next = new_list; - new_list->prev = tmp_list->prev; - } - new_list->next = tmp_list; - tmp_list->prev = new_list; - - if (tmp_list == list) - return new_list; - else - return list; -} - -/** - * g_list_insert_sorted: - * @list: a pointer to a #GList - * @data: the data for the new element - * @func: the function to compare elements in the list. It should - * return a number > 0 if the first parameter comes after the - * second parameter in the sort order. - * - * Inserts a new element into the list, using the given comparison - * function to determine its position. - * - * Returns: the new start of the #GList - */ -GList* -g_list_insert_sorted (GList *list, - gpointer data, - GCompareFunc func) -{ - return g_list_insert_sorted_real (list, data, (GFunc) func, NULL); -} - -/** - * g_list_insert_sorted_with_data: - * @list: a pointer to a #GList - * @data: the data for the new element - * @func: the function to compare elements in the list. - * It should return a number > 0 if the first parameter - * comes after the second parameter in the sort order. - * @user_data: user data to pass to comparison function. - * - * Inserts a new element into the list, using the given comparison - * function to determine its position. - * - * Returns: the new start of the #GList - * - * Since: 2.10 - */ -GList* -g_list_insert_sorted_with_data (GList *list, - gpointer data, - GCompareDataFunc func, - gpointer user_data) -{ - return g_list_insert_sorted_real (list, data, (GFunc) func, user_data); -} - -static GList * -g_list_sort_merge (GList *l1, - GList *l2, - GFunc compare_func, - gpointer user_data) -{ - GList list, *l, *lprev; - gint cmp; - - l = &list; - lprev = NULL; - - while (l1 && l2) - { - cmp = ((GCompareDataFunc) compare_func) (l1->data, l2->data, user_data); - - if (cmp <= 0) - { - l->next = l1; - l1 = l1->next; - } - else - { - l->next = l2; - l2 = l2->next; - } - l = l->next; - l->prev = lprev; - lprev = l; - } - l->next = l1 ? l1 : l2; - l->next->prev = l; - - return list.next; -} - -static GList* -g_list_sort_real (GList *list, - GFunc compare_func, - gpointer user_data) -{ - GList *l1, *l2; - - if (!list) - return NULL; - if (!list->next) - return list; - - l1 = list; - l2 = list->next; - - while ((l2 = l2->next) != NULL) - { - if ((l2 = l2->next) == NULL) - break; - l1 = l1->next; - } - l2 = l1->next; - l1->next = NULL; - - return g_list_sort_merge (g_list_sort_real (list, compare_func, user_data), - g_list_sort_real (l2, compare_func, user_data), - compare_func, - user_data); -} - -/** - * g_list_sort: - * @list: a #GList - * @compare_func: the comparison function used to sort the #GList. - * This function is passed the data from 2 elements of the #GList - * and should return 0 if they are equal, a negative value if the - * first element comes before the second, or a positive value if - * the first element comes after the second. - * - * Sorts a #GList using the given comparison function. - * - * Returns: the start of the sorted #GList - */ -GList * -g_list_sort (GList *list, - GCompareFunc compare_func) -{ - return g_list_sort_real (list, (GFunc) compare_func, NULL); - -} - -/** - * g_list_sort_with_data: - * @list: a #GList - * @compare_func: comparison function - * @user_data: user data to pass to comparison function - * - * Like g_list_sort(), but the comparison function accepts - * a user data argument. - * - * Returns: the new head of @list - */ -GList * -g_list_sort_with_data (GList *list, - GCompareDataFunc compare_func, - gpointer user_data) -{ - return g_list_sort_real (list, (GFunc) compare_func, user_data); -} - -#define __G_LIST_C__ -#include "galiasdef.c" diff --git a/lib/win32/glib-2.20.4/glib/glist.h b/lib/win32/glib-2.20.4/glib/glist.h deleted file mode 100644 index e74ed96f15aa0..0000000000000 --- a/lib/win32/glib-2.20.4/glib/glist.h +++ /dev/null @@ -1,120 +0,0 @@ -/* GLIB - Library of useful routines for C programming - * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library 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 - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ - -/* - * Modified by the GLib Team and others 1997-2000. See the AUTHORS - * file for a list of people on the GLib Team. See the ChangeLog - * files for a list of changes. These files are distributed with - * GLib at ftp://ftp.gtk.org/pub/gtk/. - */ - -#if defined(G_DISABLE_SINGLE_INCLUDES) && !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION) -#error "Only can be included directly." -#endif - -#ifndef __G_LIST_H__ -#define __G_LIST_H__ - -#include - -G_BEGIN_DECLS - -typedef struct _GList GList; - -struct _GList -{ - gpointer data; - GList *next; - GList *prev; -}; - -/* Doubly linked lists - */ -GList* g_list_alloc (void) G_GNUC_WARN_UNUSED_RESULT; -void g_list_free (GList *list); -void g_list_free_1 (GList *list); -#define g_list_free1 g_list_free_1 -GList* g_list_append (GList *list, - gpointer data) G_GNUC_WARN_UNUSED_RESULT; -GList* g_list_prepend (GList *list, - gpointer data) G_GNUC_WARN_UNUSED_RESULT; -GList* g_list_insert (GList *list, - gpointer data, - gint position) G_GNUC_WARN_UNUSED_RESULT; -GList* g_list_insert_sorted (GList *list, - gpointer data, - GCompareFunc func) G_GNUC_WARN_UNUSED_RESULT; -GList* g_list_insert_sorted_with_data (GList *list, - gpointer data, - GCompareDataFunc func, - gpointer user_data) G_GNUC_WARN_UNUSED_RESULT; -GList* g_list_insert_before (GList *list, - GList *sibling, - gpointer data) G_GNUC_WARN_UNUSED_RESULT; -GList* g_list_concat (GList *list1, - GList *list2) G_GNUC_WARN_UNUSED_RESULT; -GList* g_list_remove (GList *list, - gconstpointer data) G_GNUC_WARN_UNUSED_RESULT; -GList* g_list_remove_all (GList *list, - gconstpointer data) G_GNUC_WARN_UNUSED_RESULT; -GList* g_list_remove_link (GList *list, - GList *llink) G_GNUC_WARN_UNUSED_RESULT; -GList* g_list_delete_link (GList *list, - GList *link_) G_GNUC_WARN_UNUSED_RESULT; -GList* g_list_reverse (GList *list) G_GNUC_WARN_UNUSED_RESULT; -GList* g_list_copy (GList *list) G_GNUC_WARN_UNUSED_RESULT; -GList* g_list_nth (GList *list, - guint n); -GList* g_list_nth_prev (GList *list, - guint n); -GList* g_list_find (GList *list, - gconstpointer data); -GList* g_list_find_custom (GList *list, - gconstpointer data, - GCompareFunc func); -gint g_list_position (GList *list, - GList *llink); -gint g_list_index (GList *list, - gconstpointer data); -GList* g_list_last (GList *list); -GList* g_list_first (GList *list); -guint g_list_length (GList *list); -void g_list_foreach (GList *list, - GFunc func, - gpointer user_data); -GList* g_list_sort (GList *list, - GCompareFunc compare_func) G_GNUC_WARN_UNUSED_RESULT; -GList* g_list_sort_with_data (GList *list, - GCompareDataFunc compare_func, - gpointer user_data) G_GNUC_WARN_UNUSED_RESULT; -gpointer g_list_nth_data (GList *list, - guint n); - - -#define g_list_previous(list) ((list) ? (((GList *)(list))->prev) : NULL) -#define g_list_next(list) ((list) ? (((GList *)(list))->next) : NULL) - -#ifndef G_DISABLE_DEPRECATED -void g_list_push_allocator (gpointer allocator); -void g_list_pop_allocator (void); -#endif - -G_END_DECLS - -#endif /* __G_LIST_H__ */ diff --git a/lib/win32/glib-2.20.4/glib/gmacros.h b/lib/win32/glib-2.20.4/glib/gmacros.h deleted file mode 100644 index b3ff7ee3a46e0..0000000000000 --- a/lib/win32/glib-2.20.4/glib/gmacros.h +++ /dev/null @@ -1,277 +0,0 @@ -/* GLIB - Library of useful routines for C programming - * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library 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 - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ - -/* - * Modified by the GLib Team and others 1997-2000. See the AUTHORS - * file for a list of people on the GLib Team. See the ChangeLog - * files for a list of changes. These files are distributed with - * GLib at ftp://ftp.gtk.org/pub/gtk/. - */ - -/* This file must not include any other glib header file and must thus - * not refer to variables from glibconfig.h - */ - -#if defined(G_DISABLE_SINGLE_INCLUDES) && !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION) -#error "Only can be included directly." -#endif - -#ifndef __G_MACROS_H__ -#define __G_MACROS_H__ - -/* We include stddef.h to get the system's definition of NULL - */ -#include - -/* Here we provide G_GNUC_EXTENSION as an alias for __extension__, - * where this is valid. This allows for warningless compilation of - * "long long" types even in the presence of '-ansi -pedantic'. - */ -#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 8) -# define G_GNUC_EXTENSION __extension__ -#else -# define G_GNUC_EXTENSION -#endif - -/* Provide macros to feature the GCC function attribute. - */ -#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96) -#define G_GNUC_PURE \ - __attribute__((__pure__)) -#define G_GNUC_MALLOC \ - __attribute__((__malloc__)) -#else -#define G_GNUC_PURE -#define G_GNUC_MALLOC -#endif - -#if __GNUC__ >= 4 -#define G_GNUC_NULL_TERMINATED __attribute__((__sentinel__)) -#else -#define G_GNUC_NULL_TERMINATED -#endif - -#if (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3) -#define G_GNUC_ALLOC_SIZE(x) __attribute__((__alloc_size__(x))) -#define G_GNUC_ALLOC_SIZE2(x,y) __attribute__((__alloc_size__(x,y))) -#else -#define G_GNUC_ALLOC_SIZE(x) -#define G_GNUC_ALLOC_SIZE2(x,y) -#endif - -#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ > 4) -#define G_GNUC_PRINTF( format_idx, arg_idx ) \ - __attribute__((__format__ (__printf__, format_idx, arg_idx))) -#define G_GNUC_SCANF( format_idx, arg_idx ) \ - __attribute__((__format__ (__scanf__, format_idx, arg_idx))) -#define G_GNUC_FORMAT( arg_idx ) \ - __attribute__((__format_arg__ (arg_idx))) -#define G_GNUC_NORETURN \ - __attribute__((__noreturn__)) -#define G_GNUC_CONST \ - __attribute__((__const__)) -#define G_GNUC_UNUSED \ - __attribute__((__unused__)) -#define G_GNUC_NO_INSTRUMENT \ - __attribute__((__no_instrument_function__)) -#else /* !__GNUC__ */ -#define G_GNUC_PRINTF( format_idx, arg_idx ) -#define G_GNUC_SCANF( format_idx, arg_idx ) -#define G_GNUC_FORMAT( arg_idx ) -#define G_GNUC_NORETURN -#define G_GNUC_CONST -#define G_GNUC_UNUSED -#define G_GNUC_NO_INSTRUMENT -#endif /* !__GNUC__ */ - -#if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 1) -#define G_GNUC_DEPRECATED \ - __attribute__((__deprecated__)) -#else -#define G_GNUC_DEPRECATED -#endif /* __GNUC__ */ - -#if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 3) -# define G_GNUC_MAY_ALIAS __attribute__((may_alias)) -#else -# define G_GNUC_MAY_ALIAS -#endif - -#if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) -#define G_GNUC_WARN_UNUSED_RESULT \ - __attribute__((warn_unused_result)) -#else -#define G_GNUC_WARN_UNUSED_RESULT -#endif /* __GNUC__ */ - -#ifndef G_DISABLE_DEPRECATED -/* Wrap the gcc __PRETTY_FUNCTION__ and __FUNCTION__ variables with - * macros, so we can refer to them as strings unconditionally. - * usage not-recommended since gcc-3.0 - */ -#if defined (__GNUC__) && (__GNUC__ < 3) -#define G_GNUC_FUNCTION __FUNCTION__ -#define G_GNUC_PRETTY_FUNCTION __PRETTY_FUNCTION__ -#else /* !__GNUC__ */ -#define G_GNUC_FUNCTION "" -#define G_GNUC_PRETTY_FUNCTION "" -#endif /* !__GNUC__ */ -#endif /* !G_DISABLE_DEPRECATED */ - -#define G_STRINGIFY(macro_or_string) G_STRINGIFY_ARG (macro_or_string) -#define G_STRINGIFY_ARG(contents) #contents - -#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2 -#define G_PASTE(identifier1,identifier2) G_PASTE_ARGS (identifier1, identifier2) -#define G_STATIC_ASSERT(expr) typedef struct { char Compile_Time_Assertion[(expr) ? 1 : -1]; } G_PASTE (_GStaticAssert_, __LINE__) - -/* Provide a string identifying the current code position */ -#if defined(__GNUC__) && (__GNUC__ < 3) && !defined(__cplusplus) -# define G_STRLOC __FILE__ ":" G_STRINGIFY (__LINE__) ":" __PRETTY_FUNCTION__ "()" -#else -# define G_STRLOC __FILE__ ":" G_STRINGIFY (__LINE__) -#endif - -/* Provide a string identifying the current function, non-concatenatable */ -#if defined (__GNUC__) -# define G_STRFUNC ((const char*) (__PRETTY_FUNCTION__)) -#elif defined (__STDC_VERSION__) && __STDC_VERSION__ >= 19901L -# define G_STRFUNC ((const char*) (__func__)) -#else -# define G_STRFUNC ((const char*) ("???")) -#endif - -/* Guard C code in headers, while including them from C++ */ -#ifdef __cplusplus -# define G_BEGIN_DECLS extern "C" { -# define G_END_DECLS } -#else -# define G_BEGIN_DECLS -# define G_END_DECLS -#endif - -/* Provide definitions for some commonly used macros. - * Some of them are only provided if they haven't already - * been defined. It is assumed that if they are already - * defined then the current definition is correct. - */ -#ifndef NULL -# ifdef __cplusplus -# define NULL (0L) -# else /* !__cplusplus */ -# define NULL ((void*) 0) -# endif /* !__cplusplus */ -#endif - -#ifndef FALSE -#define FALSE (0) -#endif - -#ifndef TRUE -#define TRUE (!FALSE) -#endif - -#undef MAX -#define MAX(a, b) (((a) > (b)) ? (a) : (b)) - -#undef MIN -#define MIN(a, b) (((a) < (b)) ? (a) : (b)) - -#undef ABS -#define ABS(a) (((a) < 0) ? -(a) : (a)) - -#undef CLAMP -#define CLAMP(x, low, high) (((x) > (high)) ? (high) : (((x) < (low)) ? (low) : (x))) - -/* Count the number of elements in an array. The array must be defined - * as such; using this with a dynamically allocated array will give - * incorrect results. - */ -#define G_N_ELEMENTS(arr) (sizeof (arr) / sizeof ((arr)[0])) - -/* Macros by analogy to GINT_TO_POINTER, GPOINTER_TO_INT - */ -#define GPOINTER_TO_SIZE(p) ((gsize) (p)) -#define GSIZE_TO_POINTER(s) ((gpointer) (gsize) (s)) - -/* Provide convenience macros for handling structure - * fields through their offsets. - */ - -#if defined(__GNUC__) && __GNUC__ >= 4 -# define G_STRUCT_OFFSET(struct_type, member) \ - ((glong) offsetof (struct_type, member)) -#else -# define G_STRUCT_OFFSET(struct_type, member) \ - ((glong) ((guint8*) &((struct_type*) 0)->member)) -#endif - -#define G_STRUCT_MEMBER_P(struct_p, struct_offset) \ - ((gpointer) ((guint8*) (struct_p) + (glong) (struct_offset))) -#define G_STRUCT_MEMBER(member_type, struct_p, struct_offset) \ - (*(member_type*) G_STRUCT_MEMBER_P ((struct_p), (struct_offset))) - -/* Provide simple macro statement wrappers: - * G_STMT_START { statements; } G_STMT_END; - * This can be used as a single statement, like: - * if (x) G_STMT_START { ... } G_STMT_END; else ... - * This intentionally does not use compiler extensions like GCC's '({...})' to - * avoid portability issue or side effects when compiled with different compilers. - */ -#if !(defined (G_STMT_START) && defined (G_STMT_END)) -# define G_STMT_START do -# define G_STMT_END while (0) -#endif - -/* Allow the app programmer to select whether or not return values - * (usually char*) are const or not. Don't try using this feature for - * functions with C++ linkage. - */ -#ifdef G_DISABLE_CONST_RETURNS -#define G_CONST_RETURN -#else -#define G_CONST_RETURN const -#endif - -/* - * The G_LIKELY and G_UNLIKELY macros let the programmer give hints to - * the compiler about the expected result of an expression. Some compilers - * can use this information for optimizations. - * - * The _G_BOOLEAN_EXPR macro is intended to trigger a gcc warning when - * putting assignments in g_return_if_fail (). - */ -#if defined(__GNUC__) && (__GNUC__ > 2) && defined(__OPTIMIZE__) -#define _G_BOOLEAN_EXPR(expr) \ - __extension__ ({ \ - int _g_boolean_var_; \ - if (expr) \ - _g_boolean_var_ = 1; \ - else \ - _g_boolean_var_ = 0; \ - _g_boolean_var_; \ -}) -#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1)) -#define G_UNLIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 0)) -#else -#define G_LIKELY(expr) (expr) -#define G_UNLIKELY(expr) (expr) -#endif - -#endif /* __G_MACROS_H__ */ diff --git a/lib/win32/glib-2.20.4/glib/gmain.c b/lib/win32/glib-2.20.4/glib/gmain.c deleted file mode 100644 index 6d6b594116b23..0000000000000 --- a/lib/win32/glib-2.20.4/glib/gmain.c +++ /dev/null @@ -1,4036 +0,0 @@ -/* GLIB - Library of useful routines for C programming - * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald - * - * gmain.c: Main loop abstraction, timeouts, and idle functions - * Copyright 1998 Owen Taylor - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library 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 - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ - -/* - * Modified by the GLib Team and others 1997-2000. See the AUTHORS - * file for a list of people on the GLib Team. See the ChangeLog - * files for a list of changes. These files are distributed with - * GLib at ftp://ftp.gtk.org/pub/gtk/. - */ - -/* - * MT safe - */ - -#include "config.h" - -/* Uncomment the next line (and the corresponding line in gpoll.c) to - * enable debugging printouts if the environment variable - * G_MAIN_POLL_DEBUG is set to some value. - */ -/* #define G_MAIN_POLL_DEBUG */ - -#ifdef _WIN32 -/* Always enable debugging printout on Windows, as it is more often - * needed there... - */ -#define G_MAIN_POLL_DEBUG -#endif - -#define _GNU_SOURCE /* for pipe2 */ - -#include "glib.h" -#include "gthreadprivate.h" -#include -#include -#include -#include -#ifdef HAVE_SYS_TIME_H -#include -#endif /* HAVE_SYS_TIME_H */ -#ifdef HAVE_UNISTD_H -#include -#endif /* HAVE_UNISTD_H */ -#include - -#ifdef G_OS_WIN32 -#define STRICT -#include -#endif /* G_OS_WIN32 */ - -#ifdef G_OS_BEOS -#include -#include -#endif /* G_OS_BEOS */ - -#ifdef G_OS_UNIX -#include -#include -#endif - -#include "galias.h" - -/* Types */ - -typedef struct _GTimeoutSource GTimeoutSource; -typedef struct _GChildWatchSource GChildWatchSource; -typedef struct _GPollRec GPollRec; -typedef struct _GSourceCallback GSourceCallback; - -typedef enum -{ - G_SOURCE_READY = 1 << G_HOOK_FLAG_USER_SHIFT, - G_SOURCE_CAN_RECURSE = 1 << (G_HOOK_FLAG_USER_SHIFT + 1) -} GSourceFlags; - -#ifdef G_THREADS_ENABLED -typedef struct _GMainWaiter GMainWaiter; - -struct _GMainWaiter -{ - GCond *cond; - GMutex *mutex; -}; -#endif - -typedef struct _GMainDispatch GMainDispatch; - -struct _GMainDispatch -{ - gint depth; - GSList *dispatching_sources; /* stack of current sources */ -}; - -#ifdef G_MAIN_POLL_DEBUG -gboolean _g_main_poll_debug = FALSE; -#endif - -struct _GMainContext -{ -#ifdef G_THREADS_ENABLED - /* The following lock is used for both the list of sources - * and the list of poll records - */ - GStaticMutex mutex; - GCond *cond; - GThread *owner; - guint owner_count; - GSList *waiters; -#endif - - gint ref_count; - - GPtrArray *pending_dispatches; - gint timeout; /* Timeout for current iteration */ - - guint next_id; - GSource *source_list; - gint in_check_or_prepare; - - GPollRec *poll_records; - guint n_poll_records; - GPollFD *cached_poll_array; - guint cached_poll_array_size; - -#ifdef G_THREADS_ENABLED -#ifndef G_OS_WIN32 -/* this pipe is used to wake up the main loop when a source is added. - */ - gint wake_up_pipe[2]; -#else /* G_OS_WIN32 */ - HANDLE wake_up_semaphore; -#endif /* G_OS_WIN32 */ - - GPollFD wake_up_rec; - gboolean poll_waiting; - -/* Flag indicating whether the set of fd's changed during a poll */ - gboolean poll_changed; -#endif /* G_THREADS_ENABLED */ - - GPollFunc poll_func; - - GTimeVal current_time; - gboolean time_is_current; -}; - -struct _GSourceCallback -{ - guint ref_count; - GSourceFunc func; - gpointer data; - GDestroyNotify notify; -}; - -struct _GMainLoop -{ - GMainContext *context; - gboolean is_running; - gint ref_count; -}; - -struct _GTimeoutSource -{ - GSource source; - GTimeVal expiration; - guint interval; - guint granularity; -}; - -struct _GChildWatchSource -{ - GSource source; - GPid pid; - gint child_status; -#ifdef G_OS_WIN32 - GPollFD poll; -#else /* G_OS_WIN32 */ - gint count; - gboolean child_exited; -#endif /* G_OS_WIN32 */ -}; - -struct _GPollRec -{ - GPollFD *fd; - GPollRec *next; - gint priority; -}; - -#ifdef G_THREADS_ENABLED -#define LOCK_CONTEXT(context) g_static_mutex_lock (&context->mutex) -#define UNLOCK_CONTEXT(context) g_static_mutex_unlock (&context->mutex) -#define G_THREAD_SELF g_thread_self () -#else -#define LOCK_CONTEXT(context) (void)0 -#define UNLOCK_CONTEXT(context) (void)0 -#define G_THREAD_SELF NULL -#endif - -#define SOURCE_DESTROYED(source) (((source)->flags & G_HOOK_FLAG_ACTIVE) == 0) -#define SOURCE_BLOCKED(source) (((source)->flags & G_HOOK_FLAG_IN_CALL) != 0 && \ - ((source)->flags & G_SOURCE_CAN_RECURSE) == 0) - -#define SOURCE_UNREF(source, context) \ - G_STMT_START { \ - if ((source)->ref_count > 1) \ - (source)->ref_count--; \ - else \ - g_source_unref_internal ((source), (context), TRUE); \ - } G_STMT_END - - -/* Forward declarations */ - -static void g_source_unref_internal (GSource *source, - GMainContext *context, - gboolean have_lock); -static void g_source_destroy_internal (GSource *source, - GMainContext *context, - gboolean have_lock); -static void g_main_context_poll (GMainContext *context, - gint timeout, - gint priority, - GPollFD *fds, - gint n_fds); -static void g_main_context_add_poll_unlocked (GMainContext *context, - gint priority, - GPollFD *fd); -static void g_main_context_remove_poll_unlocked (GMainContext *context, - GPollFD *fd); -static void g_main_context_wakeup_unlocked (GMainContext *context); - -static gboolean g_timeout_prepare (GSource *source, - gint *timeout); -static gboolean g_timeout_check (GSource *source); -static gboolean g_timeout_dispatch (GSource *source, - GSourceFunc callback, - gpointer user_data); -static gboolean g_child_watch_prepare (GSource *source, - gint *timeout); -static gboolean g_child_watch_check (GSource *source); -static gboolean g_child_watch_dispatch (GSource *source, - GSourceFunc callback, - gpointer user_data); -static gboolean g_idle_prepare (GSource *source, - gint *timeout); -static gboolean g_idle_check (GSource *source); -static gboolean g_idle_dispatch (GSource *source, - GSourceFunc callback, - gpointer user_data); - -G_LOCK_DEFINE_STATIC (main_loop); -static GMainContext *default_main_context; -static GSList *main_contexts_without_pipe = NULL; - -#ifndef G_OS_WIN32 -/* Child status monitoring code */ -enum { - CHILD_WATCH_UNINITIALIZED, - CHILD_WATCH_INITIALIZED_SINGLE, - CHILD_WATCH_INITIALIZED_THREADED -}; -static gint child_watch_init_state = CHILD_WATCH_UNINITIALIZED; -static gint child_watch_count = 1; -static gint child_watch_wake_up_pipe[2] = {0, 0}; -#endif /* !G_OS_WIN32 */ -G_LOCK_DEFINE_STATIC (main_context_list); -static GSList *main_context_list = NULL; - -static gint timer_perturb = -1; - -GSourceFuncs g_timeout_funcs = -{ - g_timeout_prepare, - g_timeout_check, - g_timeout_dispatch, - NULL -}; - -GSourceFuncs g_child_watch_funcs = -{ - g_child_watch_prepare, - g_child_watch_check, - g_child_watch_dispatch, - NULL -}; - -GSourceFuncs g_idle_funcs = -{ - g_idle_prepare, - g_idle_check, - g_idle_dispatch, - NULL -}; - -/** - * g_main_context_ref: - * @context: a #GMainContext - * - * Increases the reference count on a #GMainContext object by one. - * - * Returns: the @context that was passed in (since 2.6) - **/ -GMainContext * -g_main_context_ref (GMainContext *context) -{ - g_return_val_if_fail (context != NULL, NULL); - g_return_val_if_fail (g_atomic_int_get (&context->ref_count) > 0, NULL); - - g_atomic_int_inc (&context->ref_count); - - return context; -} - -static inline void -poll_rec_list_free (GMainContext *context, - GPollRec *list) -{ - g_slice_free_chain (GPollRec, list, next); -} - -/** - * g_main_context_unref: - * @context: a #GMainContext - * - * Decreases the reference count on a #GMainContext object by one. If - * the result is zero, free the context and free all associated memory. - **/ -void -g_main_context_unref (GMainContext *context) -{ - GSource *source; - g_return_if_fail (context != NULL); - g_return_if_fail (g_atomic_int_get (&context->ref_count) > 0); - - if (!g_atomic_int_dec_and_test (&context->ref_count)) - return; - - G_LOCK (main_context_list); - main_context_list = g_slist_remove (main_context_list, context); - G_UNLOCK (main_context_list); - - source = context->source_list; - while (source) - { - GSource *next = source->next; - g_source_destroy_internal (source, context, FALSE); - source = next; - } - -#ifdef G_THREADS_ENABLED - g_static_mutex_free (&context->mutex); -#endif - - g_ptr_array_free (context->pending_dispatches, TRUE); - g_free (context->cached_poll_array); - - poll_rec_list_free (context, context->poll_records); - -#ifdef G_THREADS_ENABLED - if (g_thread_supported()) - { -#ifndef G_OS_WIN32 - close (context->wake_up_pipe[0]); - close (context->wake_up_pipe[1]); -#else - CloseHandle (context->wake_up_semaphore); -#endif - } - else - main_contexts_without_pipe = g_slist_remove (main_contexts_without_pipe, - context); - - if (context->cond != NULL) - g_cond_free (context->cond); -#endif - - g_free (context); -} - -#ifdef G_THREADS_ENABLED -static void -g_main_context_init_pipe (GMainContext *context) -{ -# ifndef G_OS_WIN32 - if (context->wake_up_pipe[0] != -1) - return; - -#ifdef HAVE_PIPE2 - /* if this fails, we fall through and try pipe */ - pipe2 (context->wake_up_pipe, O_CLOEXEC); -#endif - if (context->wake_up_pipe[0] == -1) - { - if (pipe (context->wake_up_pipe) < 0) - g_error ("Cannot create pipe main loop wake-up: %s\n", - g_strerror (errno)); - - fcntl (context->wake_up_pipe[0], F_SETFD, FD_CLOEXEC); - fcntl (context->wake_up_pipe[1], F_SETFD, FD_CLOEXEC); - } - - context->wake_up_rec.fd = context->wake_up_pipe[0]; - context->wake_up_rec.events = G_IO_IN; -# else - if (context->wake_up_semaphore != NULL) - return; - context->wake_up_semaphore = CreateSemaphore (NULL, 0, 100, NULL); - if (context->wake_up_semaphore == NULL) - g_error ("Cannot create wake-up semaphore: %s", - g_win32_error_message (GetLastError ())); - context->wake_up_rec.fd = (gintptr) context->wake_up_semaphore; - context->wake_up_rec.events = G_IO_IN; - - if (_g_main_poll_debug) - g_print ("wake-up semaphore: %p\n", context->wake_up_semaphore); -# endif - g_main_context_add_poll_unlocked (context, 0, &context->wake_up_rec); -} - -void -_g_main_thread_init (void) -{ - GSList *curr = main_contexts_without_pipe; - while (curr) - { - g_main_context_init_pipe ((GMainContext *)curr->data); - curr = curr->next; - } - g_slist_free (main_contexts_without_pipe); - main_contexts_without_pipe = NULL; -} -#endif /* G_THREADS_ENABLED */ - -/** - * g_main_context_new: - * - * Creates a new #GMainContext structure. - * - * Return value: the new #GMainContext - **/ -GMainContext * -g_main_context_new (void) -{ - GMainContext *context = g_new0 (GMainContext, 1); - -#ifdef G_MAIN_POLL_DEBUG - { - static gboolean beenhere = FALSE; - - if (!beenhere) - { - if (getenv ("G_MAIN_POLL_DEBUG") != NULL) - _g_main_poll_debug = TRUE; - beenhere = TRUE; - } - } -#endif - -#ifdef G_THREADS_ENABLED - g_static_mutex_init (&context->mutex); - - context->owner = NULL; - context->waiters = NULL; - -# ifndef G_OS_WIN32 - context->wake_up_pipe[0] = -1; - context->wake_up_pipe[1] = -1; -# else - context->wake_up_semaphore = NULL; -# endif -#endif - - context->ref_count = 1; - - context->next_id = 1; - - context->source_list = NULL; - - context->poll_func = g_poll; - - context->cached_poll_array = NULL; - context->cached_poll_array_size = 0; - - context->pending_dispatches = g_ptr_array_new (); - - context->time_is_current = FALSE; - -#ifdef G_THREADS_ENABLED - if (g_thread_supported ()) - g_main_context_init_pipe (context); - else - main_contexts_without_pipe = g_slist_prepend (main_contexts_without_pipe, - context); -#endif - - G_LOCK (main_context_list); - main_context_list = g_slist_append (main_context_list, context); - -#ifdef G_MAIN_POLL_DEBUG - if (_g_main_poll_debug) - g_print ("created context=%p\n", context); -#endif - - G_UNLOCK (main_context_list); - - return context; -} - -/** - * g_main_context_default: - * - * Returns the default main context. This is the main context used - * for main loop functions when a main loop is not explicitly - * specified. - * - * Return value: the default main context. - **/ -GMainContext * -g_main_context_default (void) -{ - /* Slow, but safe */ - - G_LOCK (main_loop); - - if (!default_main_context) - { - default_main_context = g_main_context_new (); -#ifdef G_MAIN_POLL_DEBUG - if (_g_main_poll_debug) - g_print ("default context=%p\n", default_main_context); -#endif - } - - G_UNLOCK (main_loop); - - return default_main_context; -} - -/* Hooks for adding to the main loop */ - -/** - * g_source_new: - * @source_funcs: structure containing functions that implement - * the sources behavior. - * @struct_size: size of the #GSource structure to create. - * - * Creates a new #GSource structure. The size is specified to - * allow creating structures derived from #GSource that contain - * additional data. The size passed in must be at least - * sizeof (GSource). - * - * The source will not initially be associated with any #GMainContext - * and must be added to one with g_source_attach() before it will be - * executed. - * - * Return value: the newly-created #GSource. - **/ -GSource * -g_source_new (GSourceFuncs *source_funcs, - guint struct_size) -{ - GSource *source; - - g_return_val_if_fail (source_funcs != NULL, NULL); - g_return_val_if_fail (struct_size >= sizeof (GSource), NULL); - - source = (GSource*) g_malloc0 (struct_size); - - source->source_funcs = source_funcs; - source->ref_count = 1; - - source->priority = G_PRIORITY_DEFAULT; - - source->flags = G_HOOK_FLAG_ACTIVE; - - /* NULL/0 initialization for all other fields */ - - return source; -} - -/* Holds context's lock - */ -static void -g_source_list_add (GSource *source, - GMainContext *context) -{ - GSource *tmp_source, *last_source; - - last_source = NULL; - tmp_source = context->source_list; - while (tmp_source && tmp_source->priority <= source->priority) - { - last_source = tmp_source; - tmp_source = tmp_source->next; - } - - source->next = tmp_source; - if (tmp_source) - tmp_source->prev = source; - - source->prev = last_source; - if (last_source) - last_source->next = source; - else - context->source_list = source; -} - -/* Holds context's lock - */ -static void -g_source_list_remove (GSource *source, - GMainContext *context) -{ - if (source->prev) - source->prev->next = source->next; - else - context->source_list = source->next; - - if (source->next) - source->next->prev = source->prev; - - source->prev = NULL; - source->next = NULL; -} - -/** - * g_source_attach: - * @source: a #GSource - * @context: a #GMainContext (if %NULL, the default context will be used) - * - * Adds a #GSource to a @context so that it will be executed within - * that context. Remove it by calling g_source_destroy(). - * - * Return value: the ID (greater than 0) for the source within the - * #GMainContext. - **/ -guint -g_source_attach (GSource *source, - GMainContext *context) -{ - guint result = 0; - GSList *tmp_list; - - g_return_val_if_fail (source->context == NULL, 0); - g_return_val_if_fail (!SOURCE_DESTROYED (source), 0); - - if (!context) - context = g_main_context_default (); - - LOCK_CONTEXT (context); - - source->context = context; - result = source->source_id = context->next_id++; - - source->ref_count++; - g_source_list_add (source, context); - - tmp_list = source->poll_fds; - while (tmp_list) - { - g_main_context_add_poll_unlocked (context, source->priority, tmp_list->data); - tmp_list = tmp_list->next; - } - -#ifdef G_THREADS_ENABLED - /* Now wake up the main loop if it is waiting in the poll() */ - g_main_context_wakeup_unlocked (context); -#endif - - UNLOCK_CONTEXT (context); - - return result; -} - -static void -g_source_destroy_internal (GSource *source, - GMainContext *context, - gboolean have_lock) -{ - if (!have_lock) - LOCK_CONTEXT (context); - - if (!SOURCE_DESTROYED (source)) - { - GSList *tmp_list; - gpointer old_cb_data; - GSourceCallbackFuncs *old_cb_funcs; - - source->flags &= ~G_HOOK_FLAG_ACTIVE; - - old_cb_data = source->callback_data; - old_cb_funcs = source->callback_funcs; - - source->callback_data = NULL; - source->callback_funcs = NULL; - - if (old_cb_funcs) - { - UNLOCK_CONTEXT (context); - old_cb_funcs->unref (old_cb_data); - LOCK_CONTEXT (context); - } - - if (!SOURCE_BLOCKED (source)) - { - tmp_list = source->poll_fds; - while (tmp_list) - { - g_main_context_remove_poll_unlocked (context, tmp_list->data); - tmp_list = tmp_list->next; - } - } - - g_source_unref_internal (source, context, TRUE); - } - - if (!have_lock) - UNLOCK_CONTEXT (context); -} - -/** - * g_source_destroy: - * @source: a #GSource - * - * Removes a source from its #GMainContext, if any, and mark it as - * destroyed. The source cannot be subsequently added to another - * context. - **/ -void -g_source_destroy (GSource *source) -{ - GMainContext *context; - - g_return_if_fail (source != NULL); - - context = source->context; - - if (context) - g_source_destroy_internal (source, context, FALSE); - else - source->flags &= ~G_HOOK_FLAG_ACTIVE; -} - -/** - * g_source_get_id: - * @source: a #GSource - * - * Returns the numeric ID for a particular source. The ID of a source - * is a positive integer which is unique within a particular main loop - * context. The reverse - * mapping from ID to source is done by g_main_context_find_source_by_id(). - * - * Return value: the ID (greater than 0) for the source - **/ -guint -g_source_get_id (GSource *source) -{ - guint result; - - g_return_val_if_fail (source != NULL, 0); - g_return_val_if_fail (source->context != NULL, 0); - - LOCK_CONTEXT (source->context); - result = source->source_id; - UNLOCK_CONTEXT (source->context); - - return result; -} - -/** - * g_source_get_context: - * @source: a #GSource - * - * Gets the #GMainContext with which the source is associated. - * Calling this function on a destroyed source is an error. - * - * Return value: the #GMainContext with which the source is associated, - * or %NULL if the context has not yet been added - * to a source. - **/ -GMainContext * -g_source_get_context (GSource *source) -{ - g_return_val_if_fail (!SOURCE_DESTROYED (source), NULL); - - return source->context; -} - -/** - * g_source_add_poll: - * @source:a #GSource - * @fd: a #GPollFD structure holding information about a file - * descriptor to watch. - * - * Adds a file descriptor to the set of file descriptors polled for - * this source. This is usually combined with g_source_new() to add an - * event source. The event source's check function will typically test - * the @revents field in the #GPollFD struct and return %TRUE if events need - * to be processed. - **/ -void -g_source_add_poll (GSource *source, - GPollFD *fd) -{ - GMainContext *context; - - g_return_if_fail (source != NULL); - g_return_if_fail (fd != NULL); - g_return_if_fail (!SOURCE_DESTROYED (source)); - - context = source->context; - - if (context) - LOCK_CONTEXT (context); - - source->poll_fds = g_slist_prepend (source->poll_fds, fd); - - if (context) - { - if (!SOURCE_BLOCKED (source)) - g_main_context_add_poll_unlocked (context, source->priority, fd); - UNLOCK_CONTEXT (context); - } -} - -/** - * g_source_remove_poll: - * @source:a #GSource - * @fd: a #GPollFD structure previously passed to g_source_add_poll(). - * - * Removes a file descriptor from the set of file descriptors polled for - * this source. - **/ -void -g_source_remove_poll (GSource *source, - GPollFD *fd) -{ - GMainContext *context; - - g_return_if_fail (source != NULL); - g_return_if_fail (fd != NULL); - g_return_if_fail (!SOURCE_DESTROYED (source)); - - context = source->context; - - if (context) - LOCK_CONTEXT (context); - - source->poll_fds = g_slist_remove (source->poll_fds, fd); - - if (context) - { - if (!SOURCE_BLOCKED (source)) - g_main_context_remove_poll_unlocked (context, fd); - UNLOCK_CONTEXT (context); - } -} - -/** - * g_source_set_callback_indirect: - * @source: the source - * @callback_data: pointer to callback data "object" - * @callback_funcs: functions for reference counting @callback_data - * and getting the callback and data - * - * Sets the callback function storing the data as a refcounted callback - * "object". This is used internally. Note that calling - * g_source_set_callback_indirect() assumes - * an initial reference count on @callback_data, and thus - * @callback_funcs->unref will eventually be called once more - * than @callback_funcs->ref. - **/ -void -g_source_set_callback_indirect (GSource *source, - gpointer callback_data, - GSourceCallbackFuncs *callback_funcs) -{ - GMainContext *context; - gpointer old_cb_data; - GSourceCallbackFuncs *old_cb_funcs; - - g_return_if_fail (source != NULL); - g_return_if_fail (callback_funcs != NULL || callback_data == NULL); - - context = source->context; - - if (context) - LOCK_CONTEXT (context); - - old_cb_data = source->callback_data; - old_cb_funcs = source->callback_funcs; - - source->callback_data = callback_data; - source->callback_funcs = callback_funcs; - - if (context) - UNLOCK_CONTEXT (context); - - if (old_cb_funcs) - old_cb_funcs->unref (old_cb_data); -} - -static void -g_source_callback_ref (gpointer cb_data) -{ - GSourceCallback *callback = cb_data; - - callback->ref_count++; -} - - -static void -g_source_callback_unref (gpointer cb_data) -{ - GSourceCallback *callback = cb_data; - - callback->ref_count--; - if (callback->ref_count == 0) - { - if (callback->notify) - callback->notify (callback->data); - g_free (callback); - } -} - -static void -g_source_callback_get (gpointer cb_data, - GSource *source, - GSourceFunc *func, - gpointer *data) -{ - GSourceCallback *callback = cb_data; - - *func = callback->func; - *data = callback->data; -} - -static GSourceCallbackFuncs g_source_callback_funcs = { - g_source_callback_ref, - g_source_callback_unref, - g_source_callback_get, -}; - -/** - * g_source_set_callback: - * @source: the source - * @func: a callback function - * @data: the data to pass to callback function - * @notify: a function to call when @data is no longer in use, or %NULL. - * - * Sets the callback function for a source. The callback for a source is - * called from the source's dispatch function. - * - * The exact type of @func depends on the type of source; ie. you - * should not count on @func being called with @data as its first - * parameter. - * - * Typically, you won't use this function. Instead use functions specific - * to the type of source you are using. - **/ -void -g_source_set_callback (GSource *source, - GSourceFunc func, - gpointer data, - GDestroyNotify notify) -{ - GSourceCallback *new_callback; - - g_return_if_fail (source != NULL); - - new_callback = g_new (GSourceCallback, 1); - - new_callback->ref_count = 1; - new_callback->func = func; - new_callback->data = data; - new_callback->notify = notify; - - g_source_set_callback_indirect (source, new_callback, &g_source_callback_funcs); -} - - -/** - * g_source_set_funcs: - * @source: a #GSource - * @funcs: the new #GSourceFuncs - * - * Sets the source functions (can be used to override - * default implementations) of an unattached source. - * - * Since: 2.12 - */ -void -g_source_set_funcs (GSource *source, - GSourceFuncs *funcs) -{ - g_return_if_fail (source != NULL); - g_return_if_fail (source->context == NULL); - g_return_if_fail (source->ref_count > 0); - g_return_if_fail (funcs != NULL); - - source->source_funcs = funcs; -} - -/** - * g_source_set_priority: - * @source: a #GSource - * @priority: the new priority. - * - * Sets the priority of a source. While the main loop is being - * run, a source will be dispatched if it is ready to be dispatched and no sources - * at a higher (numerically smaller) priority are ready to be dispatched. - **/ -void -g_source_set_priority (GSource *source, - gint priority) -{ - GSList *tmp_list; - GMainContext *context; - - g_return_if_fail (source != NULL); - - context = source->context; - - if (context) - LOCK_CONTEXT (context); - - source->priority = priority; - - if (context) - { - /* Remove the source from the context's source and then - * add it back so it is sorted in the correct plcae - */ - g_source_list_remove (source, source->context); - g_source_list_add (source, source->context); - - if (!SOURCE_BLOCKED (source)) - { - tmp_list = source->poll_fds; - while (tmp_list) - { - g_main_context_remove_poll_unlocked (context, tmp_list->data); - g_main_context_add_poll_unlocked (context, priority, tmp_list->data); - - tmp_list = tmp_list->next; - } - } - - UNLOCK_CONTEXT (source->context); - } -} - -/** - * g_source_get_priority: - * @source: a #GSource - * - * Gets the priority of a source. - * - * Return value: the priority of the source - **/ -gint -g_source_get_priority (GSource *source) -{ - g_return_val_if_fail (source != NULL, 0); - - return source->priority; -} - -/** - * g_source_set_can_recurse: - * @source: a #GSource - * @can_recurse: whether recursion is allowed for this source - * - * Sets whether a source can be called recursively. If @can_recurse is - * %TRUE, then while the source is being dispatched then this source - * will be processed normally. Otherwise, all processing of this - * source is blocked until the dispatch function returns. - **/ -void -g_source_set_can_recurse (GSource *source, - gboolean can_recurse) -{ - GMainContext *context; - - g_return_if_fail (source != NULL); - - context = source->context; - - if (context) - LOCK_CONTEXT (context); - - if (can_recurse) - source->flags |= G_SOURCE_CAN_RECURSE; - else - source->flags &= ~G_SOURCE_CAN_RECURSE; - - if (context) - UNLOCK_CONTEXT (context); -} - -/** - * g_source_get_can_recurse: - * @source: a #GSource - * - * Checks whether a source is allowed to be called recursively. - * see g_source_set_can_recurse(). - * - * Return value: whether recursion is allowed. - **/ -gboolean -g_source_get_can_recurse (GSource *source) -{ - g_return_val_if_fail (source != NULL, FALSE); - - return (source->flags & G_SOURCE_CAN_RECURSE) != 0; -} - -/** - * g_source_ref: - * @source: a #GSource - * - * Increases the reference count on a source by one. - * - * Return value: @source - **/ -GSource * -g_source_ref (GSource *source) -{ - GMainContext *context; - - g_return_val_if_fail (source != NULL, NULL); - - context = source->context; - - if (context) - LOCK_CONTEXT (context); - - source->ref_count++; - - if (context) - UNLOCK_CONTEXT (context); - - return source; -} - -/* g_source_unref() but possible to call within context lock - */ -static void -g_source_unref_internal (GSource *source, - GMainContext *context, - gboolean have_lock) -{ - gpointer old_cb_data = NULL; - GSourceCallbackFuncs *old_cb_funcs = NULL; - - g_return_if_fail (source != NULL); - - if (!have_lock && context) - LOCK_CONTEXT (context); - - source->ref_count--; - if (source->ref_count == 0) - { - old_cb_data = source->callback_data; - old_cb_funcs = source->callback_funcs; - - source->callback_data = NULL; - source->callback_funcs = NULL; - - if (context && !SOURCE_DESTROYED (source)) - { - g_warning (G_STRLOC ": ref_count == 0, but source is still attached to a context!"); - source->ref_count++; - } - else if (context) - g_source_list_remove (source, context); - - if (source->source_funcs->finalize) - source->source_funcs->finalize (source); - - g_slist_free (source->poll_fds); - source->poll_fds = NULL; - g_free (source); - } - - if (!have_lock && context) - UNLOCK_CONTEXT (context); - - if (old_cb_funcs) - { - if (have_lock) - UNLOCK_CONTEXT (context); - - old_cb_funcs->unref (old_cb_data); - - if (have_lock) - LOCK_CONTEXT (context); - } -} - -/** - * g_source_unref: - * @source: a #GSource - * - * Decreases the reference count of a source by one. If the - * resulting reference count is zero the source and associated - * memory will be destroyed. - **/ -void -g_source_unref (GSource *source) -{ - g_return_if_fail (source != NULL); - - g_source_unref_internal (source, source->context, FALSE); -} - -/** - * g_main_context_find_source_by_id: - * @context: a #GMainContext (if %NULL, the default context will be used) - * @source_id: the source ID, as returned by g_source_get_id(). - * - * Finds a #GSource given a pair of context and ID. - * - * Return value: the #GSource if found, otherwise, %NULL - **/ -GSource * -g_main_context_find_source_by_id (GMainContext *context, - guint source_id) -{ - GSource *source; - - g_return_val_if_fail (source_id > 0, NULL); - - if (context == NULL) - context = g_main_context_default (); - - LOCK_CONTEXT (context); - - source = context->source_list; - while (source) - { - if (!SOURCE_DESTROYED (source) && - source->source_id == source_id) - break; - source = source->next; - } - - UNLOCK_CONTEXT (context); - - return source; -} - -/** - * g_main_context_find_source_by_funcs_user_data: - * @context: a #GMainContext (if %NULL, the default context will be used). - * @funcs: the @source_funcs passed to g_source_new(). - * @user_data: the user data from the callback. - * - * Finds a source with the given source functions and user data. If - * multiple sources exist with the same source function and user data, - * the first one found will be returned. - * - * Return value: the source, if one was found, otherwise %NULL - **/ -GSource * -g_main_context_find_source_by_funcs_user_data (GMainContext *context, - GSourceFuncs *funcs, - gpointer user_data) -{ - GSource *source; - - g_return_val_if_fail (funcs != NULL, NULL); - - if (context == NULL) - context = g_main_context_default (); - - LOCK_CONTEXT (context); - - source = context->source_list; - while (source) - { - if (!SOURCE_DESTROYED (source) && - source->source_funcs == funcs && - source->callback_funcs) - { - GSourceFunc callback; - gpointer callback_data; - - source->callback_funcs->get (source->callback_data, source, &callback, &callback_data); - - if (callback_data == user_data) - break; - } - source = source->next; - } - - UNLOCK_CONTEXT (context); - - return source; -} - -/** - * g_main_context_find_source_by_user_data: - * @context: a #GMainContext - * @user_data: the user_data for the callback. - * - * Finds a source with the given user data for the callback. If - * multiple sources exist with the same user data, the first - * one found will be returned. - * - * Return value: the source, if one was found, otherwise %NULL - **/ -GSource * -g_main_context_find_source_by_user_data (GMainContext *context, - gpointer user_data) -{ - GSource *source; - - if (context == NULL) - context = g_main_context_default (); - - LOCK_CONTEXT (context); - - source = context->source_list; - while (source) - { - if (!SOURCE_DESTROYED (source) && - source->callback_funcs) - { - GSourceFunc callback; - gpointer callback_data = NULL; - - source->callback_funcs->get (source->callback_data, source, &callback, &callback_data); - - if (callback_data == user_data) - break; - } - source = source->next; - } - - UNLOCK_CONTEXT (context); - - return source; -} - -/** - * g_source_remove: - * @tag: the ID of the source to remove. - * - * Removes the source with the given id from the default main context. - * The id of - * a #GSource is given by g_source_get_id(), or will be returned by the - * functions g_source_attach(), g_idle_add(), g_idle_add_full(), - * g_timeout_add(), g_timeout_add_full(), g_child_watch_add(), - * g_child_watch_add_full(), g_io_add_watch(), and g_io_add_watch_full(). - * - * See also g_source_destroy(). You must use g_source_destroy() for sources - * added to a non-default main context. - * - * Return value: %TRUE if the source was found and removed. - **/ -gboolean -g_source_remove (guint tag) -{ - GSource *source; - - g_return_val_if_fail (tag > 0, FALSE); - - source = g_main_context_find_source_by_id (NULL, tag); - if (source) - g_source_destroy (source); - - return source != NULL; -} - -/** - * g_source_remove_by_user_data: - * @user_data: the user_data for the callback. - * - * Removes a source from the default main loop context given the user - * data for the callback. If multiple sources exist with the same user - * data, only one will be destroyed. - * - * Return value: %TRUE if a source was found and removed. - **/ -gboolean -g_source_remove_by_user_data (gpointer user_data) -{ - GSource *source; - - source = g_main_context_find_source_by_user_data (NULL, user_data); - if (source) - { - g_source_destroy (source); - return TRUE; - } - else - return FALSE; -} - -/** - * g_source_remove_by_funcs_user_data: - * @funcs: The @source_funcs passed to g_source_new() - * @user_data: the user data for the callback - * - * Removes a source from the default main loop context given the - * source functions and user data. If multiple sources exist with the - * same source functions and user data, only one will be destroyed. - * - * Return value: %TRUE if a source was found and removed. - **/ -gboolean -g_source_remove_by_funcs_user_data (GSourceFuncs *funcs, - gpointer user_data) -{ - GSource *source; - - g_return_val_if_fail (funcs != NULL, FALSE); - - source = g_main_context_find_source_by_funcs_user_data (NULL, funcs, user_data); - if (source) - { - g_source_destroy (source); - return TRUE; - } - else - return FALSE; -} - -/** - * g_get_current_time: - * @result: #GTimeVal structure in which to store current time. - * - * Equivalent to the UNIX gettimeofday() function, but portable. - **/ -void -g_get_current_time (GTimeVal *result) -{ -#ifndef G_OS_WIN32 - struct timeval r; - - g_return_if_fail (result != NULL); - - /*this is required on alpha, there the timeval structs are int's - not longs and a cast only would fail horribly*/ - gettimeofday (&r, NULL); - result->tv_sec = r.tv_sec; - result->tv_usec = r.tv_usec; -#else - FILETIME ft; - guint64 time64; - - g_return_if_fail (result != NULL); - - GetSystemTimeAsFileTime (&ft); - memmove (&time64, &ft, sizeof (FILETIME)); - - /* Convert from 100s of nanoseconds since 1601-01-01 - * to Unix epoch. Yes, this is Y2038 unsafe. - */ - time64 -= G_GINT64_CONSTANT (116444736000000000); - time64 /= 10; - - result->tv_sec = time64 / 1000000; - result->tv_usec = time64 % 1000000; -#endif -} - -static void -g_main_dispatch_free (gpointer dispatch) -{ - g_slice_free (GMainDispatch, dispatch); -} - -/* Running the main loop */ - -static GMainDispatch * -get_dispatch (void) -{ - static GStaticPrivate depth_private = G_STATIC_PRIVATE_INIT; - GMainDispatch *dispatch = g_static_private_get (&depth_private); - if (!dispatch) - { - dispatch = g_slice_new0 (GMainDispatch); - g_static_private_set (&depth_private, dispatch, g_main_dispatch_free); - } - - return dispatch; -} - -/** - * g_main_depth: - * - * Returns the depth of the stack of calls to - * g_main_context_dispatch() on any #GMainContext in the current thread. - * That is, when called from the toplevel, it gives 0. When - * called from within a callback from g_main_context_iteration() - * (or g_main_loop_run(), etc.) it returns 1. When called from within - * a callback to a recursive call to g_main_context_iterate(), - * it returns 2. And so forth. - * - * This function is useful in a situation like the following: - * Imagine an extremely simple "garbage collected" system. - * - * |[ - * static GList *free_list; - * - * gpointer - * allocate_memory (gsize size) - * { - * gpointer result = g_malloc (size); - * free_list = g_list_prepend (free_list, result); - * return result; - * } - * - * void - * free_allocated_memory (void) - * { - * GList *l; - * for (l = free_list; l; l = l->next); - * g_free (l->data); - * g_list_free (free_list); - * free_list = NULL; - * } - * - * [...] - * - * while (TRUE); - * { - * g_main_context_iteration (NULL, TRUE); - * free_allocated_memory(); - * } - * ]| - * - * This works from an application, however, if you want to do the same - * thing from a library, it gets more difficult, since you no longer - * control the main loop. You might think you can simply use an idle - * function to make the call to free_allocated_memory(), but that - * doesn't work, since the idle function could be called from a - * recursive callback. This can be fixed by using g_main_depth() - * - * |[ - * gpointer - * allocate_memory (gsize size) - * { - * FreeListBlock *block = g_new (FreeListBlock, 1); - * block->mem = g_malloc (size); - * block->depth = g_main_depth (); - * free_list = g_list_prepend (free_list, block); - * return block->mem; - * } - * - * void - * free_allocated_memory (void) - * { - * GList *l; - * - * int depth = g_main_depth (); - * for (l = free_list; l; ); - * { - * GList *next = l->next; - * FreeListBlock *block = l->data; - * if (block->depth > depth) - * { - * g_free (block->mem); - * g_free (block); - * free_list = g_list_delete_link (free_list, l); - * } - * - * l = next; - * } - * } - * ]| - * - * There is a temptation to use g_main_depth() to solve - * problems with reentrancy. For instance, while waiting for data - * to be received from the network in response to a menu item, - * the menu item might be selected again. It might seem that - * one could make the menu item's callback return immediately - * and do nothing if g_main_depth() returns a value greater than 1. - * However, this should be avoided since the user then sees selecting - * the menu item do nothing. Furthermore, you'll find yourself adding - * these checks all over your code, since there are doubtless many, - * many things that the user could do. Instead, you can use the - * following techniques: - * - * - * - * - * Use gtk_widget_set_sensitive() or modal dialogs to prevent - * the user from interacting with elements while the main - * loop is recursing. - * - * - * - * - * Avoid main loop recursion in situations where you can't handle - * arbitrary callbacks. Instead, structure your code so that you - * simply return to the main loop and then get called again when - * there is more work to do. - * - * - * - * - * Return value: The main loop recursion level in the current thread - **/ -int -g_main_depth (void) -{ - GMainDispatch *dispatch = get_dispatch (); - return dispatch->depth; -} - -/** - * g_main_current_source: - * - * Returns the currently firing source for this thread. - * - * Return value: The currently firing source or %NULL. - * - * Since: 2.12 - */ -GSource * -g_main_current_source (void) -{ - GMainDispatch *dispatch = get_dispatch (); - return dispatch->dispatching_sources ? dispatch->dispatching_sources->data : NULL; -} - -/** - * g_source_is_destroyed: - * @source: a #GSource - * - * Returns whether @source has been destroyed. - * - * This is important when you operate upon your objects - * from within idle handlers, but may have freed the object - * before the dispatch of your idle handler. - * - * |[ - * static gboolean - * idle_callback (gpointer data) - * { - * SomeWidget *self = data; - * - * GDK_THREADS_ENTER (); - * /* do stuff with self */ - * self->idle_id = 0; - * GDK_THREADS_LEAVE (); - * - * return FALSE; - * } - * - * static void - * some_widget_do_stuff_later (SomeWidget *self) - * { - * self->idle_id = g_idle_add (idle_callback, self); - * } - * - * static void - * some_widget_finalize (GObject *object) - * { - * SomeWidget *self = SOME_WIDGET (object); - * - * if (self->idle_id) - * g_source_remove (self->idle_id); - * - * G_OBJECT_CLASS (parent_class)->finalize (object); - * } - * ]| - * - * This will fail in a multi-threaded application if the - * widget is destroyed before the idle handler fires due - * to the use after free in the callback. A solution, to - * this particular problem, is to check to if the source - * has already been destroy within the callback. - * - * |[ - * static gboolean - * idle_callback (gpointer data) - * { - * SomeWidget *self = data; - * - * GDK_THREADS_ENTER (); - * if (!g_source_is_destroyed (g_main_current_source ())) - * { - * /* do stuff with self */ - * } - * GDK_THREADS_LEAVE (); - * - * return FALSE; - * } - * ]| - * - * Return value: %TRUE if the source has been destroyed - * - * Since: 2.12 - */ -gboolean -g_source_is_destroyed (GSource *source) -{ - return SOURCE_DESTROYED (source); -} - - -/* Temporarily remove all this source's file descriptors from the - * poll(), so that if data comes available for one of the file descriptors - * we don't continually spin in the poll() - */ -/* HOLDS: source->context's lock */ -static void -block_source (GSource *source) -{ - GSList *tmp_list; - - g_return_if_fail (!SOURCE_BLOCKED (source)); - - tmp_list = source->poll_fds; - while (tmp_list) - { - g_main_context_remove_poll_unlocked (source->context, tmp_list->data); - tmp_list = tmp_list->next; - } -} - -/* HOLDS: source->context's lock */ -static void -unblock_source (GSource *source) -{ - GSList *tmp_list; - - g_return_if_fail (!SOURCE_BLOCKED (source)); /* Source already unblocked */ - g_return_if_fail (!SOURCE_DESTROYED (source)); - - tmp_list = source->poll_fds; - while (tmp_list) - { - g_main_context_add_poll_unlocked (source->context, source->priority, tmp_list->data); - tmp_list = tmp_list->next; - } -} - -/* HOLDS: context's lock */ -static void -g_main_dispatch (GMainContext *context) -{ - GMainDispatch *current = get_dispatch (); - guint i; - - for (i = 0; i < context->pending_dispatches->len; i++) - { - GSource *source = context->pending_dispatches->pdata[i]; - - context->pending_dispatches->pdata[i] = NULL; - g_assert (source); - - source->flags &= ~G_SOURCE_READY; - - if (!SOURCE_DESTROYED (source)) - { - gboolean was_in_call; - gpointer user_data = NULL; - GSourceFunc callback = NULL; - GSourceCallbackFuncs *cb_funcs; - gpointer cb_data; - gboolean need_destroy; - - gboolean (*dispatch) (GSource *, - GSourceFunc, - gpointer); - GSList current_source_link; - - dispatch = source->source_funcs->dispatch; - cb_funcs = source->callback_funcs; - cb_data = source->callback_data; - - if (cb_funcs) - cb_funcs->ref (cb_data); - - if ((source->flags & G_SOURCE_CAN_RECURSE) == 0) - block_source (source); - - was_in_call = source->flags & G_HOOK_FLAG_IN_CALL; - source->flags |= G_HOOK_FLAG_IN_CALL; - - if (cb_funcs) - cb_funcs->get (cb_data, source, &callback, &user_data); - - UNLOCK_CONTEXT (context); - - current->depth++; - /* The on-stack allocation of the GSList is unconventional, but - * we know that the lifetime of the link is bounded to this - * function as the link is kept in a thread specific list and - * not manipulated outside of this function and its descendants. - * Avoiding the overhead of a g_slist_alloc() is useful as many - * applications do little more than dispatch events. - * - * This is a performance hack - do not revert to g_slist_prepend()! - */ - current_source_link.data = source; - current_source_link.next = current->dispatching_sources; - current->dispatching_sources = ¤t_source_link; - need_destroy = ! dispatch (source, - callback, - user_data); - g_assert (current->dispatching_sources == ¤t_source_link); - current->dispatching_sources = current_source_link.next; - current->depth--; - - if (cb_funcs) - cb_funcs->unref (cb_data); - - LOCK_CONTEXT (context); - - if (!was_in_call) - source->flags &= ~G_HOOK_FLAG_IN_CALL; - - if ((source->flags & G_SOURCE_CAN_RECURSE) == 0 && - !SOURCE_DESTROYED (source)) - unblock_source (source); - - /* Note: this depends on the fact that we can't switch - * sources from one main context to another - */ - if (need_destroy && !SOURCE_DESTROYED (source)) - { - g_assert (source->context == context); - g_source_destroy_internal (source, context, TRUE); - } - } - - SOURCE_UNREF (source, context); - } - - g_ptr_array_set_size (context->pending_dispatches, 0); -} - -/* Holds context's lock */ -static inline GSource * -next_valid_source (GMainContext *context, - GSource *source) -{ - GSource *new_source = source ? source->next : context->source_list; - - while (new_source) - { - if (!SOURCE_DESTROYED (new_source)) - { - new_source->ref_count++; - break; - } - - new_source = new_source->next; - } - - if (source) - SOURCE_UNREF (source, context); - - return new_source; -} - -/** - * g_main_context_acquire: - * @context: a #GMainContext - * - * Tries to become the owner of the specified context. - * If some other thread is the owner of the context, - * returns %FALSE immediately. Ownership is properly - * recursive: the owner can require ownership again - * and will release ownership when g_main_context_release() - * is called as many times as g_main_context_acquire(). - * - * You must be the owner of a context before you - * can call g_main_context_prepare(), g_main_context_query(), - * g_main_context_check(), g_main_context_dispatch(). - * - * Return value: %TRUE if the operation succeeded, and - * this thread is now the owner of @context. - **/ -gboolean -g_main_context_acquire (GMainContext *context) -{ -#ifdef G_THREADS_ENABLED - gboolean result = FALSE; - GThread *self = G_THREAD_SELF; - - if (context == NULL) - context = g_main_context_default (); - - LOCK_CONTEXT (context); - - if (!context->owner) - { - context->owner = self; - g_assert (context->owner_count == 0); - } - - if (context->owner == self) - { - context->owner_count++; - result = TRUE; - } - - UNLOCK_CONTEXT (context); - - return result; -#else /* !G_THREADS_ENABLED */ - return TRUE; -#endif /* G_THREADS_ENABLED */ -} - -/** - * g_main_context_release: - * @context: a #GMainContext - * - * Releases ownership of a context previously acquired by this thread - * with g_main_context_acquire(). If the context was acquired multiple - * times, the ownership will be released only when g_main_context_release() - * is called as many times as it was acquired. - **/ -void -g_main_context_release (GMainContext *context) -{ -#ifdef G_THREADS_ENABLED - if (context == NULL) - context = g_main_context_default (); - - LOCK_CONTEXT (context); - - context->owner_count--; - if (context->owner_count == 0) - { - context->owner = NULL; - - if (context->waiters) - { - GMainWaiter *waiter = context->waiters->data; - gboolean loop_internal_waiter = - (waiter->mutex == g_static_mutex_get_mutex (&context->mutex)); - context->waiters = g_slist_delete_link (context->waiters, - context->waiters); - if (!loop_internal_waiter) - g_mutex_lock (waiter->mutex); - - g_cond_signal (waiter->cond); - - if (!loop_internal_waiter) - g_mutex_unlock (waiter->mutex); - } - } - - UNLOCK_CONTEXT (context); -#endif /* G_THREADS_ENABLED */ -} - -/** - * g_main_context_wait: - * @context: a #GMainContext - * @cond: a condition variable - * @mutex: a mutex, currently held - * - * Tries to become the owner of the specified context, - * as with g_main_context_acquire(). But if another thread - * is the owner, atomically drop @mutex and wait on @cond until - * that owner releases ownership or until @cond is signaled, then - * try again (once) to become the owner. - * - * Return value: %TRUE if the operation succeeded, and - * this thread is now the owner of @context. - **/ -gboolean -g_main_context_wait (GMainContext *context, - GCond *cond, - GMutex *mutex) -{ -#ifdef G_THREADS_ENABLED - gboolean result = FALSE; - GThread *self = G_THREAD_SELF; - gboolean loop_internal_waiter; - - if (context == NULL) - context = g_main_context_default (); - - loop_internal_waiter = (mutex == g_static_mutex_get_mutex (&context->mutex)); - - if (!loop_internal_waiter) - LOCK_CONTEXT (context); - - if (context->owner && context->owner != self) - { - GMainWaiter waiter; - - waiter.cond = cond; - waiter.mutex = mutex; - - context->waiters = g_slist_append (context->waiters, &waiter); - - if (!loop_internal_waiter) - UNLOCK_CONTEXT (context); - g_cond_wait (cond, mutex); - if (!loop_internal_waiter) - LOCK_CONTEXT (context); - - context->waiters = g_slist_remove (context->waiters, &waiter); - } - - if (!context->owner) - { - context->owner = self; - g_assert (context->owner_count == 0); - } - - if (context->owner == self) - { - context->owner_count++; - result = TRUE; - } - - if (!loop_internal_waiter) - UNLOCK_CONTEXT (context); - - return result; -#else /* !G_THREADS_ENABLED */ - return TRUE; -#endif /* G_THREADS_ENABLED */ -} - -/** - * g_main_context_prepare: - * @context: a #GMainContext - * @priority: location to store priority of highest priority - * source already ready. - * - * Prepares to poll sources within a main loop. The resulting information - * for polling is determined by calling g_main_context_query (). - * - * Return value: %TRUE if some source is ready to be dispatched - * prior to polling. - **/ -gboolean -g_main_context_prepare (GMainContext *context, - gint *priority) -{ - gint i; - gint n_ready = 0; - gint current_priority = G_MAXINT; - GSource *source; - - if (context == NULL) - context = g_main_context_default (); - - LOCK_CONTEXT (context); - - context->time_is_current = FALSE; - - if (context->in_check_or_prepare) - { - g_warning ("g_main_context_prepare() called recursively from within a source's check() or " - "prepare() member."); - UNLOCK_CONTEXT (context); - return FALSE; - } - -#ifdef G_THREADS_ENABLED - if (context->poll_waiting) - { - g_warning("g_main_context_prepare(): main loop already active in another thread"); - UNLOCK_CONTEXT (context); - return FALSE; - } - - context->poll_waiting = TRUE; -#endif /* G_THREADS_ENABLED */ - -#if 0 - /* If recursing, finish up current dispatch, before starting over */ - if (context->pending_dispatches) - { - if (dispatch) - g_main_dispatch (context, ¤t_time); - - UNLOCK_CONTEXT (context); - return TRUE; - } -#endif - - /* If recursing, clear list of pending dispatches */ - - for (i = 0; i < context->pending_dispatches->len; i++) - { - if (context->pending_dispatches->pdata[i]) - SOURCE_UNREF ((GSource *)context->pending_dispatches->pdata[i], context); - } - g_ptr_array_set_size (context->pending_dispatches, 0); - - /* Prepare all sources */ - - context->timeout = -1; - - source = next_valid_source (context, NULL); - while (source) - { - gint source_timeout = -1; - - if ((n_ready > 0) && (source->priority > current_priority)) - { - SOURCE_UNREF (source, context); - break; - } - if (SOURCE_BLOCKED (source)) - goto next; - - if (!(source->flags & G_SOURCE_READY)) - { - gboolean result; - gboolean (*prepare) (GSource *source, - gint *timeout); - - prepare = source->source_funcs->prepare; - context->in_check_or_prepare++; - UNLOCK_CONTEXT (context); - - result = (*prepare) (source, &source_timeout); - - LOCK_CONTEXT (context); - context->in_check_or_prepare--; - - if (result) - source->flags |= G_SOURCE_READY; - } - - if (source->flags & G_SOURCE_READY) - { - n_ready++; - current_priority = source->priority; - context->timeout = 0; - } - - if (source_timeout >= 0) - { - if (context->timeout < 0) - context->timeout = source_timeout; - else - context->timeout = MIN (context->timeout, source_timeout); - } - - next: - source = next_valid_source (context, source); - } - - UNLOCK_CONTEXT (context); - - if (priority) - *priority = current_priority; - - return (n_ready > 0); -} - -/** - * g_main_context_query: - * @context: a #GMainContext - * @max_priority: maximum priority source to check - * @timeout_: location to store timeout to be used in polling - * @fds: location to store #GPollFD records that need to be polled. - * @n_fds: length of @fds. - * - * Determines information necessary to poll this main loop. - * - * Return value: the number of records actually stored in @fds, - * or, if more than @n_fds records need to be stored, the number - * of records that need to be stored. - **/ -gint -g_main_context_query (GMainContext *context, - gint max_priority, - gint *timeout, - GPollFD *fds, - gint n_fds) -{ - gint n_poll; - GPollRec *pollrec; - - LOCK_CONTEXT (context); - - pollrec = context->poll_records; - n_poll = 0; - while (pollrec && max_priority >= pollrec->priority) - { - /* We need to include entries with fd->events == 0 in the array because - * otherwise if the application changes fd->events behind our back and - * makes it non-zero, we'll be out of sync when we check the fds[] array. - * (Changing fd->events after adding an FD wasn't an anticipated use of - * this API, but it occurs in practice.) */ - if (n_poll < n_fds) - { - fds[n_poll].fd = pollrec->fd->fd; - /* In direct contradiction to the Unix98 spec, IRIX runs into - * difficulty if you pass in POLLERR, POLLHUP or POLLNVAL - * flags in the events field of the pollfd while it should - * just ignoring them. So we mask them out here. - */ - fds[n_poll].events = pollrec->fd->events & ~(G_IO_ERR|G_IO_HUP|G_IO_NVAL); - fds[n_poll].revents = 0; - } - - pollrec = pollrec->next; - n_poll++; - } - -#ifdef G_THREADS_ENABLED - context->poll_changed = FALSE; -#endif - - if (timeout) - { - *timeout = context->timeout; - if (*timeout != 0) - context->time_is_current = FALSE; - } - - UNLOCK_CONTEXT (context); - - return n_poll; -} - -/** - * g_main_context_check: - * @context: a #GMainContext - * @max_priority: the maximum numerical priority of sources to check - * @fds: array of #GPollFD's that was passed to the last call to - * g_main_context_query() - * @n_fds: return value of g_main_context_query() - * - * Passes the results of polling back to the main loop. - * - * Return value: %TRUE if some sources are ready to be dispatched. - **/ -gboolean -g_main_context_check (GMainContext *context, - gint max_priority, - GPollFD *fds, - gint n_fds) -{ - GSource *source; - GPollRec *pollrec; - gint n_ready = 0; - gint i; - - LOCK_CONTEXT (context); - - if (context->in_check_or_prepare) - { - g_warning ("g_main_context_check() called recursively from within a source's check() or " - "prepare() member."); - UNLOCK_CONTEXT (context); - return FALSE; - } - -#ifdef G_THREADS_ENABLED - if (!context->poll_waiting) - { -#ifndef G_OS_WIN32 - gchar a; - read (context->wake_up_pipe[0], &a, 1); -#endif - } - else - context->poll_waiting = FALSE; - - /* If the set of poll file descriptors changed, bail out - * and let the main loop rerun - */ - if (context->poll_changed) - { - UNLOCK_CONTEXT (context); - return FALSE; - } -#endif /* G_THREADS_ENABLED */ - - pollrec = context->poll_records; - i = 0; - while (i < n_fds) - { - if (pollrec->fd->events) - pollrec->fd->revents = fds[i].revents; - - pollrec = pollrec->next; - i++; - } - - source = next_valid_source (context, NULL); - while (source) - { - if ((n_ready > 0) && (source->priority > max_priority)) - { - SOURCE_UNREF (source, context); - break; - } - if (SOURCE_BLOCKED (source)) - goto next; - - if (!(source->flags & G_SOURCE_READY)) - { - gboolean result; - gboolean (*check) (GSource *source); - - check = source->source_funcs->check; - - context->in_check_or_prepare++; - UNLOCK_CONTEXT (context); - - result = (*check) (source); - - LOCK_CONTEXT (context); - context->in_check_or_prepare--; - - if (result) - source->flags |= G_SOURCE_READY; - } - - if (source->flags & G_SOURCE_READY) - { - source->ref_count++; - g_ptr_array_add (context->pending_dispatches, source); - - n_ready++; - - /* never dispatch sources with less priority than the first - * one we choose to dispatch - */ - max_priority = source->priority; - } - - next: - source = next_valid_source (context, source); - } - - UNLOCK_CONTEXT (context); - - return n_ready > 0; -} - -/** - * g_main_context_dispatch: - * @context: a #GMainContext - * - * Dispatches all pending sources. - **/ -void -g_main_context_dispatch (GMainContext *context) -{ - LOCK_CONTEXT (context); - - if (context->pending_dispatches->len > 0) - { - g_main_dispatch (context); - } - - UNLOCK_CONTEXT (context); -} - -/* HOLDS context lock */ -static gboolean -g_main_context_iterate (GMainContext *context, - gboolean block, - gboolean dispatch, - GThread *self) -{ - gint max_priority; - gint timeout; - gboolean some_ready; - gint nfds, allocated_nfds; - GPollFD *fds = NULL; - - UNLOCK_CONTEXT (context); - -#ifdef G_THREADS_ENABLED - if (!g_main_context_acquire (context)) - { - gboolean got_ownership; - - LOCK_CONTEXT (context); - - g_return_val_if_fail (g_thread_supported (), FALSE); - - if (!block) - return FALSE; - - if (!context->cond) - context->cond = g_cond_new (); - - got_ownership = g_main_context_wait (context, - context->cond, - g_static_mutex_get_mutex (&context->mutex)); - - if (!got_ownership) - return FALSE; - } - else - LOCK_CONTEXT (context); -#endif /* G_THREADS_ENABLED */ - - if (!context->cached_poll_array) - { - context->cached_poll_array_size = context->n_poll_records; - context->cached_poll_array = g_new (GPollFD, context->n_poll_records); - } - - allocated_nfds = context->cached_poll_array_size; - fds = context->cached_poll_array; - - UNLOCK_CONTEXT (context); - - g_main_context_prepare (context, &max_priority); - - while ((nfds = g_main_context_query (context, max_priority, &timeout, fds, - allocated_nfds)) > allocated_nfds) - { - LOCK_CONTEXT (context); - g_free (fds); - context->cached_poll_array_size = allocated_nfds = nfds; - context->cached_poll_array = fds = g_new (GPollFD, nfds); - UNLOCK_CONTEXT (context); - } - - if (!block) - timeout = 0; - - g_main_context_poll (context, timeout, max_priority, fds, nfds); - - some_ready = g_main_context_check (context, max_priority, fds, nfds); - - if (dispatch) - g_main_context_dispatch (context); - -#ifdef G_THREADS_ENABLED - g_main_context_release (context); -#endif /* G_THREADS_ENABLED */ - - LOCK_CONTEXT (context); - - return some_ready; -} - -/** - * g_main_context_pending: - * @context: a #GMainContext (if %NULL, the default context will be used) - * - * Checks if any sources have pending events for the given context. - * - * Return value: %TRUE if events are pending. - **/ -gboolean -g_main_context_pending (GMainContext *context) -{ - gboolean retval; - - if (!context) - context = g_main_context_default(); - - LOCK_CONTEXT (context); - retval = g_main_context_iterate (context, FALSE, FALSE, G_THREAD_SELF); - UNLOCK_CONTEXT (context); - - return retval; -} - -/** - * g_main_context_iteration: - * @context: a #GMainContext (if %NULL, the default context will be used) - * @may_block: whether the call may block. - * - * Runs a single iteration for the given main loop. This involves - * checking to see if any event sources are ready to be processed, - * then if no events sources are ready and @may_block is %TRUE, waiting - * for a source to become ready, then dispatching the highest priority - * events sources that are ready. Otherwise, if @may_block is %FALSE - * sources are not waited to become ready, only those highest priority - * events sources will be dispatched (if any), that are ready at this - * given moment without further waiting. - * - * Note that even when @may_block is %TRUE, it is still possible for - * g_main_context_iteration() to return %FALSE, since the the wait may - * be interrupted for other reasons than an event source becoming ready. - * - * Return value: %TRUE if events were dispatched. - **/ -gboolean -g_main_context_iteration (GMainContext *context, gboolean may_block) -{ - gboolean retval; - - if (!context) - context = g_main_context_default(); - - LOCK_CONTEXT (context); - retval = g_main_context_iterate (context, may_block, TRUE, G_THREAD_SELF); - UNLOCK_CONTEXT (context); - - return retval; -} - -/** - * g_main_loop_new: - * @context: a #GMainContext (if %NULL, the default context will be used). - * @is_running: set to %TRUE to indicate that the loop is running. This - * is not very important since calling g_main_loop_run() will set this to - * %TRUE anyway. - * - * Creates a new #GMainLoop structure. - * - * Return value: a new #GMainLoop. - **/ -GMainLoop * -g_main_loop_new (GMainContext *context, - gboolean is_running) -{ - GMainLoop *loop; - - if (!context) - context = g_main_context_default(); - - g_main_context_ref (context); - - loop = g_new0 (GMainLoop, 1); - loop->context = context; - loop->is_running = is_running != FALSE; - loop->ref_count = 1; - - return loop; -} - -/** - * g_main_loop_ref: - * @loop: a #GMainLoop - * - * Increases the reference count on a #GMainLoop object by one. - * - * Return value: @loop - **/ -GMainLoop * -g_main_loop_ref (GMainLoop *loop) -{ - g_return_val_if_fail (loop != NULL, NULL); - g_return_val_if_fail (g_atomic_int_get (&loop->ref_count) > 0, NULL); - - g_atomic_int_inc (&loop->ref_count); - - return loop; -} - -/** - * g_main_loop_unref: - * @loop: a #GMainLoop - * - * Decreases the reference count on a #GMainLoop object by one. If - * the result is zero, free the loop and free all associated memory. - **/ -void -g_main_loop_unref (GMainLoop *loop) -{ - g_return_if_fail (loop != NULL); - g_return_if_fail (g_atomic_int_get (&loop->ref_count) > 0); - - if (!g_atomic_int_dec_and_test (&loop->ref_count)) - return; - - g_main_context_unref (loop->context); - g_free (loop); -} - -/** - * g_main_loop_run: - * @loop: a #GMainLoop - * - * Runs a main loop until g_main_loop_quit() is called on the loop. - * If this is called for the thread of the loop's #GMainContext, - * it will process events from the loop, otherwise it will - * simply wait. - **/ -void -g_main_loop_run (GMainLoop *loop) -{ - GThread *self = G_THREAD_SELF; - - g_return_if_fail (loop != NULL); - g_return_if_fail (g_atomic_int_get (&loop->ref_count) > 0); - -#ifdef G_THREADS_ENABLED - if (!g_main_context_acquire (loop->context)) - { - gboolean got_ownership = FALSE; - - /* Another thread owns this context */ - if (!g_thread_supported ()) - { - g_warning ("g_main_loop_run() was called from second thread but " - "g_thread_init() was never called."); - return; - } - - LOCK_CONTEXT (loop->context); - - g_atomic_int_inc (&loop->ref_count); - - if (!loop->is_running) - loop->is_running = TRUE; - - if (!loop->context->cond) - loop->context->cond = g_cond_new (); - - while (loop->is_running && !got_ownership) - got_ownership = g_main_context_wait (loop->context, - loop->context->cond, - g_static_mutex_get_mutex (&loop->context->mutex)); - - if (!loop->is_running) - { - UNLOCK_CONTEXT (loop->context); - if (got_ownership) - g_main_context_release (loop->context); - g_main_loop_unref (loop); - return; - } - - g_assert (got_ownership); - } - else - LOCK_CONTEXT (loop->context); -#endif /* G_THREADS_ENABLED */ - - if (loop->context->in_check_or_prepare) - { - g_warning ("g_main_loop_run(): called recursively from within a source's " - "check() or prepare() member, iteration not possible."); - return; - } - - g_atomic_int_inc (&loop->ref_count); - loop->is_running = TRUE; - while (loop->is_running) - g_main_context_iterate (loop->context, TRUE, TRUE, self); - - UNLOCK_CONTEXT (loop->context); - -#ifdef G_THREADS_ENABLED - g_main_context_release (loop->context); -#endif /* G_THREADS_ENABLED */ - - g_main_loop_unref (loop); -} - -/** - * g_main_loop_quit: - * @loop: a #GMainLoop - * - * Stops a #GMainLoop from running. Any calls to g_main_loop_run() - * for the loop will return. - * - * Note that sources that have already been dispatched when - * g_main_loop_quit() is called will still be executed. - **/ -void -g_main_loop_quit (GMainLoop *loop) -{ - g_return_if_fail (loop != NULL); - g_return_if_fail (g_atomic_int_get (&loop->ref_count) > 0); - - LOCK_CONTEXT (loop->context); - loop->is_running = FALSE; - g_main_context_wakeup_unlocked (loop->context); - -#ifdef G_THREADS_ENABLED - if (loop->context->cond) - g_cond_broadcast (loop->context->cond); -#endif /* G_THREADS_ENABLED */ - - UNLOCK_CONTEXT (loop->context); -} - -/** - * g_main_loop_is_running: - * @loop: a #GMainLoop. - * - * Checks to see if the main loop is currently being run via g_main_loop_run(). - * - * Return value: %TRUE if the mainloop is currently being run. - **/ -gboolean -g_main_loop_is_running (GMainLoop *loop) -{ - g_return_val_if_fail (loop != NULL, FALSE); - g_return_val_if_fail (g_atomic_int_get (&loop->ref_count) > 0, FALSE); - - return loop->is_running; -} - -/** - * g_main_loop_get_context: - * @loop: a #GMainLoop. - * - * Returns the #GMainContext of @loop. - * - * Return value: the #GMainContext of @loop - **/ -GMainContext * -g_main_loop_get_context (GMainLoop *loop) -{ - g_return_val_if_fail (loop != NULL, NULL); - g_return_val_if_fail (g_atomic_int_get (&loop->ref_count) > 0, NULL); - - return loop->context; -} - -/* HOLDS: context's lock */ -static void -g_main_context_poll (GMainContext *context, - gint timeout, - gint priority, - GPollFD *fds, - gint n_fds) -{ -#ifdef G_MAIN_POLL_DEBUG - GTimer *poll_timer; - GPollRec *pollrec; - gint i; -#endif - - GPollFunc poll_func; - - if (n_fds || timeout != 0) - { -#ifdef G_MAIN_POLL_DEBUG - if (_g_main_poll_debug) - { - g_print ("polling context=%p n=%d timeout=%d\n", - context, n_fds, timeout); - poll_timer = g_timer_new (); - } -#endif - - LOCK_CONTEXT (context); - - poll_func = context->poll_func; - - UNLOCK_CONTEXT (context); - if ((*poll_func) (fds, n_fds, timeout) < 0 && errno != EINTR) - { -#ifndef G_OS_WIN32 - g_warning ("poll(2) failed due to: %s.", - g_strerror (errno)); -#else - /* If g_poll () returns -1, it has already called g_warning() */ -#endif - } - -#ifdef G_MAIN_POLL_DEBUG - if (_g_main_poll_debug) - { - LOCK_CONTEXT (context); - - g_print ("g_main_poll(%d) timeout: %d - elapsed %12.10f seconds", - n_fds, - timeout, - g_timer_elapsed (poll_timer, NULL)); - g_timer_destroy (poll_timer); - pollrec = context->poll_records; - - while (pollrec != NULL) - { - i = 0; - while (i < n_fds) - { - if (fds[i].fd == pollrec->fd->fd && - pollrec->fd->events && - fds[i].revents) - { - g_print (" [" G_POLLFD_FORMAT " :", fds[i].fd); - if (fds[i].revents & G_IO_IN) - g_print ("i"); - if (fds[i].revents & G_IO_OUT) - g_print ("o"); - if (fds[i].revents & G_IO_PRI) - g_print ("p"); - if (fds[i].revents & G_IO_ERR) - g_print ("e"); - if (fds[i].revents & G_IO_HUP) - g_print ("h"); - if (fds[i].revents & G_IO_NVAL) - g_print ("n"); - g_print ("]"); - } - i++; - } - pollrec = pollrec->next; - } - g_print ("\n"); - - UNLOCK_CONTEXT (context); - } -#endif - } /* if (n_fds || timeout != 0) */ -} - -/** - * g_main_context_add_poll: - * @context: a #GMainContext (or %NULL for the default context) - * @fd: a #GPollFD structure holding information about a file - * descriptor to watch. - * @priority: the priority for this file descriptor which should be - * the same as the priority used for g_source_attach() to ensure that the - * file descriptor is polled whenever the results may be needed. - * - * Adds a file descriptor to the set of file descriptors polled for - * this context. This will very seldomly be used directly. Instead - * a typical event source will use g_source_add_poll() instead. - **/ -void -g_main_context_add_poll (GMainContext *context, - GPollFD *fd, - gint priority) -{ - if (!context) - context = g_main_context_default (); - - g_return_if_fail (g_atomic_int_get (&context->ref_count) > 0); - g_return_if_fail (fd); - - LOCK_CONTEXT (context); - g_main_context_add_poll_unlocked (context, priority, fd); - UNLOCK_CONTEXT (context); -} - -/* HOLDS: main_loop_lock */ -static void -g_main_context_add_poll_unlocked (GMainContext *context, - gint priority, - GPollFD *fd) -{ - GPollRec *lastrec, *pollrec; - GPollRec *newrec = g_slice_new (GPollRec); - - /* This file descriptor may be checked before we ever poll */ - fd->revents = 0; - newrec->fd = fd; - newrec->priority = priority; - - lastrec = NULL; - pollrec = context->poll_records; - while (pollrec && priority >= pollrec->priority) - { - lastrec = pollrec; - pollrec = pollrec->next; - } - - if (lastrec) - lastrec->next = newrec; - else - context->poll_records = newrec; - - newrec->next = pollrec; - - context->n_poll_records++; - -#ifdef G_THREADS_ENABLED - context->poll_changed = TRUE; - - /* Now wake up the main loop if it is waiting in the poll() */ - g_main_context_wakeup_unlocked (context); -#endif -} - -/** - * g_main_context_remove_poll: - * @context:a #GMainContext - * @fd: a #GPollFD descriptor previously added with g_main_context_add_poll() - * - * Removes file descriptor from the set of file descriptors to be - * polled for a particular context. - **/ -void -g_main_context_remove_poll (GMainContext *context, - GPollFD *fd) -{ - if (!context) - context = g_main_context_default (); - - g_return_if_fail (g_atomic_int_get (&context->ref_count) > 0); - g_return_if_fail (fd); - - LOCK_CONTEXT (context); - g_main_context_remove_poll_unlocked (context, fd); - UNLOCK_CONTEXT (context); -} - -static void -g_main_context_remove_poll_unlocked (GMainContext *context, - GPollFD *fd) -{ - GPollRec *pollrec, *lastrec; - - lastrec = NULL; - pollrec = context->poll_records; - - while (pollrec) - { - if (pollrec->fd == fd) - { - if (lastrec != NULL) - lastrec->next = pollrec->next; - else - context->poll_records = pollrec->next; - - g_slice_free (GPollRec, pollrec); - - context->n_poll_records--; - break; - } - lastrec = pollrec; - pollrec = pollrec->next; - } - -#ifdef G_THREADS_ENABLED - context->poll_changed = TRUE; - - /* Now wake up the main loop if it is waiting in the poll() */ - g_main_context_wakeup_unlocked (context); -#endif -} - -/** - * g_source_get_current_time: - * @source: a #GSource - * @timeval: #GTimeVal structure in which to store current time. - * - * Gets the "current time" to be used when checking - * this source. The advantage of calling this function over - * calling g_get_current_time() directly is that when - * checking multiple sources, GLib can cache a single value - * instead of having to repeatedly get the system time. - **/ -void -g_source_get_current_time (GSource *source, - GTimeVal *timeval) -{ - GMainContext *context; - - g_return_if_fail (source->context != NULL); - - context = source->context; - - LOCK_CONTEXT (context); - - if (!context->time_is_current) - { - g_get_current_time (&context->current_time); - context->time_is_current = TRUE; - } - - *timeval = context->current_time; - - UNLOCK_CONTEXT (context); -} - -/** - * g_main_context_set_poll_func: - * @context: a #GMainContext - * @func: the function to call to poll all file descriptors - * - * Sets the function to use to handle polling of file descriptors. It - * will be used instead of the poll() system call - * (or GLib's replacement function, which is used where - * poll() isn't available). - * - * This function could possibly be used to integrate the GLib event - * loop with an external event loop. - **/ -void -g_main_context_set_poll_func (GMainContext *context, - GPollFunc func) -{ - if (!context) - context = g_main_context_default (); - - g_return_if_fail (g_atomic_int_get (&context->ref_count) > 0); - - LOCK_CONTEXT (context); - - if (func) - context->poll_func = func; - else - context->poll_func = g_poll; - - UNLOCK_CONTEXT (context); -} - -/** - * g_main_context_get_poll_func: - * @context: a #GMainContext - * - * Gets the poll function set by g_main_context_set_poll_func(). - * - * Return value: the poll function - **/ -GPollFunc -g_main_context_get_poll_func (GMainContext *context) -{ - GPollFunc result; - - if (!context) - context = g_main_context_default (); - - g_return_val_if_fail (g_atomic_int_get (&context->ref_count) > 0, NULL); - - LOCK_CONTEXT (context); - result = context->poll_func; - UNLOCK_CONTEXT (context); - - return result; -} - -/* HOLDS: context's lock */ -/* Wake the main loop up from a poll() */ -static void -g_main_context_wakeup_unlocked (GMainContext *context) -{ -#ifdef G_THREADS_ENABLED - if (g_thread_supported() && context->poll_waiting) - { - context->poll_waiting = FALSE; -#ifndef G_OS_WIN32 - write (context->wake_up_pipe[1], "A", 1); -#else - ReleaseSemaphore (context->wake_up_semaphore, 1, NULL); -#endif - } -#endif -} - -/** - * g_main_context_wakeup: - * @context: a #GMainContext - * - * If @context is currently waiting in a poll(), interrupt - * the poll(), and continue the iteration process. - **/ -void -g_main_context_wakeup (GMainContext *context) -{ - if (!context) - context = g_main_context_default (); - - g_return_if_fail (g_atomic_int_get (&context->ref_count) > 0); - - LOCK_CONTEXT (context); - g_main_context_wakeup_unlocked (context); - UNLOCK_CONTEXT (context); -} - -/** - * g_main_context_is_owner: - * @context: a #GMainContext - * - * Determines whether this thread holds the (recursive) - * ownership of this #GMaincontext. This is useful to - * know before waiting on another thread that may be - * blocking to get ownership of @context. - * - * Returns: %TRUE if current thread is owner of @context. - * - * Since: 2.10 - **/ -gboolean -g_main_context_is_owner (GMainContext *context) -{ - gboolean is_owner; - - if (!context) - context = g_main_context_default (); - -#ifdef G_THREADS_ENABLED - LOCK_CONTEXT (context); - is_owner = context->owner == G_THREAD_SELF; - UNLOCK_CONTEXT (context); -#else - is_owner = TRUE; -#endif - - return is_owner; -} - -/* Timeouts */ - -static void -g_timeout_set_expiration (GTimeoutSource *timeout_source, - GTimeVal *current_time) -{ - guint seconds = timeout_source->interval / 1000; - guint msecs = timeout_source->interval - seconds * 1000; - - timeout_source->expiration.tv_sec = current_time->tv_sec + seconds; - timeout_source->expiration.tv_usec = current_time->tv_usec + msecs * 1000; - if (timeout_source->expiration.tv_usec >= 1000000) - { - timeout_source->expiration.tv_usec -= 1000000; - timeout_source->expiration.tv_sec++; - } - if (timer_perturb==-1) - { - /* - * we want a per machine/session unique 'random' value; try the dbus - * address first, that has a UUID in it. If there is no dbus, use the - * hostname for hashing. - */ - const char *session_bus_address = g_getenv ("DBUS_SESSION_BUS_ADDRESS"); - if (!session_bus_address) - session_bus_address = g_getenv ("HOSTNAME"); - if (session_bus_address) - timer_perturb = ABS ((gint) g_str_hash (session_bus_address)); - else - timer_perturb = 0; - } - if (timeout_source->granularity) - { - gint remainder; - gint gran; /* in usecs */ - gint perturb; - - gran = timeout_source->granularity * 1000; - perturb = timer_perturb % gran; - /* - * We want to give each machine a per machine pertubation; - * shift time back first, and forward later after the rounding - */ - - timeout_source->expiration.tv_usec -= perturb; - if (timeout_source->expiration.tv_usec < 0) - { - timeout_source->expiration.tv_usec += 1000000; - timeout_source->expiration.tv_sec--; - } - - remainder = timeout_source->expiration.tv_usec % gran; - if (remainder >= gran/4) /* round up */ - timeout_source->expiration.tv_usec += gran; - timeout_source->expiration.tv_usec -= remainder; - /* shift back */ - timeout_source->expiration.tv_usec += perturb; - - /* the rounding may have overflown tv_usec */ - while (timeout_source->expiration.tv_usec > 1000000) - { - timeout_source->expiration.tv_usec -= 1000000; - timeout_source->expiration.tv_sec++; - } - } -} - -static gboolean -g_timeout_prepare (GSource *source, - gint *timeout) -{ - glong sec; - glong msec; - GTimeVal current_time; - - GTimeoutSource *timeout_source = (GTimeoutSource *)source; - - g_source_get_current_time (source, ¤t_time); - - sec = timeout_source->expiration.tv_sec - current_time.tv_sec; - msec = (timeout_source->expiration.tv_usec - current_time.tv_usec) / 1000; - - /* We do the following in a rather convoluted fashion to deal with - * the fact that we don't have an integral type big enough to hold - * the difference of two timevals in millseconds. - */ - if (sec < 0 || (sec == 0 && msec < 0)) - msec = 0; - else - { - glong interval_sec = timeout_source->interval / 1000; - glong interval_msec = timeout_source->interval % 1000; - - if (msec < 0) - { - msec += 1000; - sec -= 1; - } - - if (sec > interval_sec || - (sec == interval_sec && msec > interval_msec)) - { - /* The system time has been set backwards, so we - * reset the expiration time to now + timeout_source->interval; - * this at least avoids hanging for long periods of time. - */ - g_timeout_set_expiration (timeout_source, ¤t_time); - msec = MIN (G_MAXINT, timeout_source->interval); - } - else - { - msec = MIN (G_MAXINT, (guint)msec + 1000 * (guint)sec); - } - } - - *timeout = (gint)msec; - - return msec == 0; -} - -static gboolean -g_timeout_check (GSource *source) -{ - GTimeVal current_time; - GTimeoutSource *timeout_source = (GTimeoutSource *)source; - - g_source_get_current_time (source, ¤t_time); - - return ((timeout_source->expiration.tv_sec < current_time.tv_sec) || - ((timeout_source->expiration.tv_sec == current_time.tv_sec) && - (timeout_source->expiration.tv_usec <= current_time.tv_usec))); -} - -static gboolean -g_timeout_dispatch (GSource *source, - GSourceFunc callback, - gpointer user_data) -{ - GTimeoutSource *timeout_source = (GTimeoutSource *)source; - - if (!callback) - { - g_warning ("Timeout source dispatched without callback\n" - "You must call g_source_set_callback()."); - return FALSE; - } - - if (callback (user_data)) - { - GTimeVal current_time; - - g_source_get_current_time (source, ¤t_time); - g_timeout_set_expiration (timeout_source, ¤t_time); - - return TRUE; - } - else - return FALSE; -} - -/** - * g_timeout_source_new: - * @interval: the timeout interval in milliseconds. - * - * Creates a new timeout source. - * - * The source will not initially be associated with any #GMainContext - * and must be added to one with g_source_attach() before it will be - * executed. - * - * Return value: the newly-created timeout source - **/ -GSource * -g_timeout_source_new (guint interval) -{ - GSource *source = g_source_new (&g_timeout_funcs, sizeof (GTimeoutSource)); - GTimeoutSource *timeout_source = (GTimeoutSource *)source; - GTimeVal current_time; - - timeout_source->interval = interval; - - g_get_current_time (¤t_time); - g_timeout_set_expiration (timeout_source, ¤t_time); - - return source; -} - -/** - * g_timeout_source_new_seconds: - * @interval: the timeout interval in seconds - * - * Creates a new timeout source. - * - * The source will not initially be associated with any #GMainContext - * and must be added to one with g_source_attach() before it will be - * executed. - * - * The scheduling granularity/accuracy of this timeout source will be - * in seconds. - * - * Return value: the newly-created timeout source - * - * Since: 2.14 - **/ -GSource * -g_timeout_source_new_seconds (guint interval) -{ - GSource *source = g_source_new (&g_timeout_funcs, sizeof (GTimeoutSource)); - GTimeoutSource *timeout_source = (GTimeoutSource *)source; - GTimeVal current_time; - - timeout_source->interval = 1000*interval; - timeout_source->granularity = 1000; - - g_get_current_time (¤t_time); - g_timeout_set_expiration (timeout_source, ¤t_time); - - return source; -} - - -/** - * g_timeout_add_full: - * @priority: the priority of the timeout source. Typically this will be in - * the range between #G_PRIORITY_DEFAULT and #G_PRIORITY_HIGH. - * @interval: the time between calls to the function, in milliseconds - * (1/1000ths of a second) - * @function: function to call - * @data: data to pass to @function - * @notify: function to call when the timeout is removed, or %NULL - * - * Sets a function to be called at regular intervals, with the given - * priority. The function is called repeatedly until it returns - * %FALSE, at which point the timeout is automatically destroyed and - * the function will not be called again. The @notify function is - * called when the timeout is destroyed. The first call to the - * function will be at the end of the first @interval. - * - * Note that timeout functions may be delayed, due to the processing of other - * event sources. Thus they should not be relied on for precise timing. - * After each call to the timeout function, the time of the next - * timeout is recalculated based on the current time and the given interval - * (it does not try to 'catch up' time lost in delays). - * - * This internally creates a main loop source using g_timeout_source_new() - * and attaches it to the main loop context using g_source_attach(). You can - * do these steps manually if you need greater control. - * - * Return value: the ID (greater than 0) of the event source. - **/ -guint -g_timeout_add_full (gint priority, - guint interval, - GSourceFunc function, - gpointer data, - GDestroyNotify notify) -{ - GSource *source; - guint id; - - g_return_val_if_fail (function != NULL, 0); - - source = g_timeout_source_new (interval); - - if (priority != G_PRIORITY_DEFAULT) - g_source_set_priority (source, priority); - - g_source_set_callback (source, function, data, notify); - id = g_source_attach (source, NULL); - g_source_unref (source); - - return id; -} - -/** - * g_timeout_add: - * @interval: the time between calls to the function, in milliseconds - * (1/1000ths of a second) - * @function: function to call - * @data: data to pass to @function - * - * Sets a function to be called at regular intervals, with the default - * priority, #G_PRIORITY_DEFAULT. The function is called repeatedly - * until it returns %FALSE, at which point the timeout is automatically - * destroyed and the function will not be called again. The first call - * to the function will be at the end of the first @interval. - * - * Note that timeout functions may be delayed, due to the processing of other - * event sources. Thus they should not be relied on for precise timing. - * After each call to the timeout function, the time of the next - * timeout is recalculated based on the current time and the given interval - * (it does not try to 'catch up' time lost in delays). - * - * If you want to have a timer in the "seconds" range and do not care - * about the exact time of the first call of the timer, use the - * g_timeout_add_seconds() function; this function allows for more - * optimizations and more efficient system power usage. - * - * This internally creates a main loop source using g_timeout_source_new() - * and attaches it to the main loop context using g_source_attach(). You can - * do these steps manually if you need greater control. - * - * Return value: the ID (greater than 0) of the event source. - **/ -guint -g_timeout_add (guint32 interval, - GSourceFunc function, - gpointer data) -{ - return g_timeout_add_full (G_PRIORITY_DEFAULT, - interval, function, data, NULL); -} - -/** - * g_timeout_add_seconds_full: - * @priority: the priority of the timeout source. Typically this will be in - * the range between #G_PRIORITY_DEFAULT and #G_PRIORITY_HIGH. - * @interval: the time between calls to the function, in seconds - * @function: function to call - * @data: data to pass to @function - * @notify: function to call when the timeout is removed, or %NULL - * - * Sets a function to be called at regular intervals, with @priority. - * The function is called repeatedly until it returns %FALSE, at which - * point the timeout is automatically destroyed and the function will - * not be called again. - * - * Unlike g_timeout_add(), this function operates at whole second granularity. - * The initial starting point of the timer is determined by the implementation - * and the implementation is expected to group multiple timers together so that - * they fire all at the same time. - * To allow this grouping, the @interval to the first timer is rounded - * and can deviate up to one second from the specified interval. - * Subsequent timer iterations will generally run at the specified interval. - * - * Note that timeout functions may be delayed, due to the processing of other - * event sources. Thus they should not be relied on for precise timing. - * After each call to the timeout function, the time of the next - * timeout is recalculated based on the current time and the given @interval - * - * If you want timing more precise than whole seconds, use g_timeout_add() - * instead. - * - * The grouping of timers to fire at the same time results in a more power - * and CPU efficient behavior so if your timer is in multiples of seconds - * and you don't require the first timer exactly one second from now, the - * use of g_timeout_add_seconds() is preferred over g_timeout_add(). - * - * This internally creates a main loop source using - * g_timeout_source_new_seconds() and attaches it to the main loop context - * using g_source_attach(). You can do these steps manually if you need - * greater control. - * - * Return value: the ID (greater than 0) of the event source. - * - * Since: 2.14 - **/ -guint -g_timeout_add_seconds_full (gint priority, - guint32 interval, - GSourceFunc function, - gpointer data, - GDestroyNotify notify) -{ - GSource *source; - guint id; - - g_return_val_if_fail (function != NULL, 0); - - source = g_timeout_source_new_seconds (interval); - - if (priority != G_PRIORITY_DEFAULT) - g_source_set_priority (source, priority); - - g_source_set_callback (source, function, data, notify); - id = g_source_attach (source, NULL); - g_source_unref (source); - - return id; -} - -/** - * g_timeout_add_seconds: - * @interval: the time between calls to the function, in seconds - * @function: function to call - * @data: data to pass to @function - * - * Sets a function to be called at regular intervals with the default - * priority, #G_PRIORITY_DEFAULT. The function is called repeatedly until - * it returns %FALSE, at which point the timeout is automatically destroyed - * and the function will not be called again. - * - * This internally creates a main loop source using - * g_timeout_source_new_seconds() and attaches it to the main loop context - * using g_source_attach(). You can do these steps manually if you need - * greater control. Also see g_timout_add_seconds_full(). - * - * Return value: the ID (greater than 0) of the event source. - * - * Since: 2.14 - **/ -guint -g_timeout_add_seconds (guint interval, - GSourceFunc function, - gpointer data) -{ - g_return_val_if_fail (function != NULL, 0); - - return g_timeout_add_seconds_full (G_PRIORITY_DEFAULT, interval, function, data, NULL); -} - -/* Child watch functions */ - -#ifdef G_OS_WIN32 - -static gboolean -g_child_watch_prepare (GSource *source, - gint *timeout) -{ - *timeout = -1; - return FALSE; -} - - -static gboolean -g_child_watch_check (GSource *source) -{ - GChildWatchSource *child_watch_source; - gboolean child_exited; - - child_watch_source = (GChildWatchSource *) source; - - child_exited = child_watch_source->poll.revents & G_IO_IN; - - if (child_exited) - { - DWORD child_status; - - /* - * Note: We do _not_ check for the special value of STILL_ACTIVE - * since we know that the process has exited and doing so runs into - * problems if the child process "happens to return STILL_ACTIVE(259)" - * as Microsoft's Platform SDK puts it. - */ - if (!GetExitCodeProcess (child_watch_source->pid, &child_status)) - { - gchar *emsg = g_win32_error_message (GetLastError ()); - g_warning (G_STRLOC ": GetExitCodeProcess() failed: %s", emsg); - g_free (emsg); - - child_watch_source->child_status = -1; - } - else - child_watch_source->child_status = child_status; - } - - return child_exited; -} - -#else /* G_OS_WIN32 */ - -static gboolean -check_for_child_exited (GSource *source) -{ - GChildWatchSource *child_watch_source; - gint count; - - /* protect against another SIGCHLD in the middle of this call */ - count = child_watch_count; - - child_watch_source = (GChildWatchSource *) source; - - if (child_watch_source->child_exited) - return TRUE; - - if (child_watch_source->count < count) - { - gint child_status; - - if (waitpid (child_watch_source->pid, &child_status, WNOHANG) > 0) - { - child_watch_source->child_status = child_status; - child_watch_source->child_exited = TRUE; - } - child_watch_source->count = count; - } - - return child_watch_source->child_exited; -} - -static gboolean -g_child_watch_prepare (GSource *source, - gint *timeout) -{ - *timeout = -1; - - return check_for_child_exited (source); -} - - -static gboolean -g_child_watch_check (GSource *source) -{ - return check_for_child_exited (source); -} - -#endif /* G_OS_WIN32 */ - -static gboolean -g_child_watch_dispatch (GSource *source, - GSourceFunc callback, - gpointer user_data) -{ - GChildWatchSource *child_watch_source; - GChildWatchFunc child_watch_callback = (GChildWatchFunc) callback; - - child_watch_source = (GChildWatchSource *) source; - - if (!callback) - { - g_warning ("Child watch source dispatched without callback\n" - "You must call g_source_set_callback()."); - return FALSE; - } - - (child_watch_callback) (child_watch_source->pid, child_watch_source->child_status, user_data); - - /* We never keep a child watch source around as the child is gone */ - return FALSE; -} - -#ifndef G_OS_WIN32 - -static void -g_child_watch_signal_handler (int signum) -{ - child_watch_count ++; - - if (child_watch_init_state == CHILD_WATCH_INITIALIZED_THREADED) - { - write (child_watch_wake_up_pipe[1], "B", 1); - } - else - { - /* We count on the signal interrupting the poll in the same thread. - */ - } -} - -static void -g_child_watch_source_init_single (void) -{ - struct sigaction action; - - g_assert (! g_thread_supported()); - g_assert (child_watch_init_state == CHILD_WATCH_UNINITIALIZED); - - child_watch_init_state = CHILD_WATCH_INITIALIZED_SINGLE; - - action.sa_handler = g_child_watch_signal_handler; - sigemptyset (&action.sa_mask); - action.sa_flags = SA_NOCLDSTOP; - sigaction (SIGCHLD, &action, NULL); -} - -G_GNUC_NORETURN static gpointer -child_watch_helper_thread (gpointer data) -{ - while (1) - { - gchar b[20]; - GSList *list; - - read (child_watch_wake_up_pipe[0], b, 20); - - /* We were woken up. Wake up all other contexts in all other threads */ - G_LOCK (main_context_list); - for (list = main_context_list; list; list = list->next) - { - GMainContext *context; - - context = list->data; - if (g_atomic_int_get (&context->ref_count) > 0) - /* Due to racing conditions we can find ref_count == 0, in - * that case, however, the context is still not destroyed - * and no poll can be active, otherwise the ref_count - * wouldn't be 0 */ - g_main_context_wakeup (context); - } - G_UNLOCK (main_context_list); - } -} - -static void -g_child_watch_source_init_multi_threaded (void) -{ - GError *error = NULL; - struct sigaction action; - - g_assert (g_thread_supported()); - - if (pipe (child_watch_wake_up_pipe) < 0) - g_error ("Cannot create wake up pipe: %s\n", g_strerror (errno)); - fcntl (child_watch_wake_up_pipe[1], F_SETFL, O_NONBLOCK | fcntl (child_watch_wake_up_pipe[1], F_GETFL)); - - /* We create a helper thread that polls on the wakeup pipe indefinitely */ - /* FIXME: Think this through for races */ - if (g_thread_create (child_watch_helper_thread, NULL, FALSE, &error) == NULL) - g_error ("Cannot create a thread to monitor child exit status: %s\n", error->message); - child_watch_init_state = CHILD_WATCH_INITIALIZED_THREADED; - - action.sa_handler = g_child_watch_signal_handler; - sigemptyset (&action.sa_mask); - action.sa_flags = SA_RESTART | SA_NOCLDSTOP; - sigaction (SIGCHLD, &action, NULL); -} - -static void -g_child_watch_source_init_promote_single_to_threaded (void) -{ - g_child_watch_source_init_multi_threaded (); -} - -static void -g_child_watch_source_init (void) -{ - if (g_thread_supported()) - { - if (child_watch_init_state == CHILD_WATCH_UNINITIALIZED) - g_child_watch_source_init_multi_threaded (); - else if (child_watch_init_state == CHILD_WATCH_INITIALIZED_SINGLE) - g_child_watch_source_init_promote_single_to_threaded (); - } - else - { - if (child_watch_init_state == CHILD_WATCH_UNINITIALIZED) - g_child_watch_source_init_single (); - } -} - -#endif /* !G_OS_WIN32 */ - -/** - * g_child_watch_source_new: - * @pid: process to watch. On POSIX the pid of a child process. On - * Windows a handle for a process (which doesn't have to be a child). - * - * Creates a new child_watch source. - * - * The source will not initially be associated with any #GMainContext - * and must be added to one with g_source_attach() before it will be - * executed. - * - * Note that child watch sources can only be used in conjunction with - * g_spawn... when the %G_SPAWN_DO_NOT_REAP_CHILD - * flag is used. - * - * Note that on platforms where #GPid must be explicitly closed - * (see g_spawn_close_pid()) @pid must not be closed while the - * source is still active. Typically, you will want to call - * g_spawn_close_pid() in the callback function for the source. - * - * Note further that using g_child_watch_source_new() is not - * compatible with calling waitpid(-1) in - * the application. Calling waitpid() for individual pids will - * still work fine. - * - * Return value: the newly-created child watch source - * - * Since: 2.4 - **/ -GSource * -g_child_watch_source_new (GPid pid) -{ - GSource *source = g_source_new (&g_child_watch_funcs, sizeof (GChildWatchSource)); - GChildWatchSource *child_watch_source = (GChildWatchSource *)source; - -#ifdef G_OS_WIN32 - child_watch_source->poll.fd = (gintptr) pid; - child_watch_source->poll.events = G_IO_IN; - - g_source_add_poll (source, &child_watch_source->poll); -#else /* G_OS_WIN32 */ - g_child_watch_source_init (); -#endif /* G_OS_WIN32 */ - - child_watch_source->pid = pid; - - return source; -} - -/** - * g_child_watch_add_full: - * @priority: the priority of the idle source. Typically this will be in the - * range between #G_PRIORITY_DEFAULT_IDLE and #G_PRIORITY_HIGH_IDLE. - * @pid: process to watch. On POSIX the pid of a child process. On - * Windows a handle for a process (which doesn't have to be a child). - * @function: function to call - * @data: data to pass to @function - * @notify: function to call when the idle is removed, or %NULL - * - * Sets a function to be called when the child indicated by @pid - * exits, at the priority @priority. - * - * If you obtain @pid from g_spawn_async() or g_spawn_async_with_pipes() - * you will need to pass #G_SPAWN_DO_NOT_REAP_CHILD as flag to - * the spawn function for the child watching to work. - * - * Note that on platforms where #GPid must be explicitly closed - * (see g_spawn_close_pid()) @pid must not be closed while the - * source is still active. Typically, you will want to call - * g_spawn_close_pid() in the callback function for the source. - * - * GLib supports only a single callback per process id. - * - * This internally creates a main loop source using - * g_child_watch_source_new() and attaches it to the main loop context - * using g_source_attach(). You can do these steps manually if you - * need greater control. - * - * Return value: the ID (greater than 0) of the event source. - * - * Since: 2.4 - **/ -guint -g_child_watch_add_full (gint priority, - GPid pid, - GChildWatchFunc function, - gpointer data, - GDestroyNotify notify) -{ - GSource *source; - guint id; - - g_return_val_if_fail (function != NULL, 0); - - source = g_child_watch_source_new (pid); - - if (priority != G_PRIORITY_DEFAULT) - g_source_set_priority (source, priority); - - g_source_set_callback (source, (GSourceFunc) function, data, notify); - id = g_source_attach (source, NULL); - g_source_unref (source); - - return id; -} - -/** - * g_child_watch_add: - * @pid: process id to watch. On POSIX the pid of a child process. On - * Windows a handle for a process (which doesn't have to be a child). - * @function: function to call - * @data: data to pass to @function - * - * Sets a function to be called when the child indicated by @pid - * exits, at a default priority, #G_PRIORITY_DEFAULT. - * - * If you obtain @pid from g_spawn_async() or g_spawn_async_with_pipes() - * you will need to pass #G_SPAWN_DO_NOT_REAP_CHILD as flag to - * the spawn function for the child watching to work. - * - * Note that on platforms where #GPid must be explicitly closed - * (see g_spawn_close_pid()) @pid must not be closed while the - * source is still active. Typically, you will want to call - * g_spawn_close_pid() in the callback function for the source. - * - * GLib supports only a single callback per process id. - * - * This internally creates a main loop source using - * g_child_watch_source_new() and attaches it to the main loop context - * using g_source_attach(). You can do these steps manually if you - * need greater control. - * - * Return value: the ID (greater than 0) of the event source. - * - * Since: 2.4 - **/ -guint -g_child_watch_add (GPid pid, - GChildWatchFunc function, - gpointer data) -{ - return g_child_watch_add_full (G_PRIORITY_DEFAULT, pid, function, data, NULL); -} - - -/* Idle functions */ - -static gboolean -g_idle_prepare (GSource *source, - gint *timeout) -{ - *timeout = 0; - - return TRUE; -} - -static gboolean -g_idle_check (GSource *source) -{ - return TRUE; -} - -static gboolean -g_idle_dispatch (GSource *source, - GSourceFunc callback, - gpointer user_data) -{ - if (!callback) - { - g_warning ("Idle source dispatched without callback\n" - "You must call g_source_set_callback()."); - return FALSE; - } - - return callback (user_data); -} - -/** - * g_idle_source_new: - * - * Creates a new idle source. - * - * The source will not initially be associated with any #GMainContext - * and must be added to one with g_source_attach() before it will be - * executed. Note that the default priority for idle sources is - * %G_PRIORITY_DEFAULT_IDLE, as compared to other sources which - * have a default priority of %G_PRIORITY_DEFAULT. - * - * Return value: the newly-created idle source - **/ -GSource * -g_idle_source_new (void) -{ - GSource *source; - - source = g_source_new (&g_idle_funcs, sizeof (GSource)); - g_source_set_priority (source, G_PRIORITY_DEFAULT_IDLE); - - return source; -} - -/** - * g_idle_add_full: - * @priority: the priority of the idle source. Typically this will be in the - * range between #G_PRIORITY_DEFAULT_IDLE and #G_PRIORITY_HIGH_IDLE. - * @function: function to call - * @data: data to pass to @function - * @notify: function to call when the idle is removed, or %NULL - * - * Adds a function to be called whenever there are no higher priority - * events pending. If the function returns %FALSE it is automatically - * removed from the list of event sources and will not be called again. - * - * This internally creates a main loop source using g_idle_source_new() - * and attaches it to the main loop context using g_source_attach(). - * You can do these steps manually if you need greater control. - * - * Return value: the ID (greater than 0) of the event source. - **/ -guint -g_idle_add_full (gint priority, - GSourceFunc function, - gpointer data, - GDestroyNotify notify) -{ - GSource *source; - guint id; - - g_return_val_if_fail (function != NULL, 0); - - source = g_idle_source_new (); - - if (priority != G_PRIORITY_DEFAULT_IDLE) - g_source_set_priority (source, priority); - - g_source_set_callback (source, function, data, notify); - id = g_source_attach (source, NULL); - g_source_unref (source); - - return id; -} - -/** - * g_idle_add: - * @function: function to call - * @data: data to pass to @function. - * - * Adds a function to be called whenever there are no higher priority - * events pending to the default main loop. The function is given the - * default idle priority, #G_PRIORITY_DEFAULT_IDLE. If the function - * returns %FALSE it is automatically removed from the list of event - * sources and will not be called again. - * - * This internally creates a main loop source using g_idle_source_new() - * and attaches it to the main loop context using g_source_attach(). - * You can do these steps manually if you need greater control. - * - * Return value: the ID (greater than 0) of the event source. - **/ -guint -g_idle_add (GSourceFunc function, - gpointer data) -{ - return g_idle_add_full (G_PRIORITY_DEFAULT_IDLE, function, data, NULL); -} - -/** - * g_idle_remove_by_data: - * @data: the data for the idle source's callback. - * - * Removes the idle function with the given data. - * - * Return value: %TRUE if an idle source was found and removed. - **/ -gboolean -g_idle_remove_by_data (gpointer data) -{ - return g_source_remove_by_funcs_user_data (&g_idle_funcs, data); -} - -#define __G_MAIN_C__ -#include "galiasdef.c" diff --git a/lib/win32/glib-2.20.4/glib/gmain.h b/lib/win32/glib-2.20.4/glib/gmain.h deleted file mode 100644 index 3f0e9cd414f39..0000000000000 --- a/lib/win32/glib-2.20.4/glib/gmain.h +++ /dev/null @@ -1,299 +0,0 @@ -/* gmain.h - the GLib Main loop - * Copyright (C) 1998-2000 Red Hat, Inc. - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ - -#if defined(G_DISABLE_SINGLE_INCLUDES) && !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION) -#error "Only can be included directly." -#endif - -#ifndef __G_MAIN_H__ -#define __G_MAIN_H__ - -#include -#include -#include - -G_BEGIN_DECLS - -typedef struct _GMainContext GMainContext; /* Opaque */ -typedef struct _GMainLoop GMainLoop; /* Opaque */ -typedef struct _GSource GSource; -typedef struct _GSourceCallbackFuncs GSourceCallbackFuncs; -typedef struct _GSourceFuncs GSourceFuncs; - -typedef gboolean (*GSourceFunc) (gpointer data); -typedef void (*GChildWatchFunc) (GPid pid, - gint status, - gpointer data); -struct _GSource -{ - /*< private >*/ - gpointer callback_data; - GSourceCallbackFuncs *callback_funcs; - - GSourceFuncs *source_funcs; - guint ref_count; - - GMainContext *context; - - gint priority; - guint flags; - guint source_id; - - GSList *poll_fds; - - GSource *prev; - GSource *next; - - gpointer reserved1; - gpointer reserved2; -}; - -struct _GSourceCallbackFuncs -{ - void (*ref) (gpointer cb_data); - void (*unref) (gpointer cb_data); - void (*get) (gpointer cb_data, - GSource *source, - GSourceFunc *func, - gpointer *data); -}; - -typedef void (*GSourceDummyMarshal) (void); - -struct _GSourceFuncs -{ - gboolean (*prepare) (GSource *source, - gint *timeout_); - gboolean (*check) (GSource *source); - gboolean (*dispatch) (GSource *source, - GSourceFunc callback, - gpointer user_data); - void (*finalize) (GSource *source); /* Can be NULL */ - - /* For use by g_source_set_closure */ - GSourceFunc closure_callback; - GSourceDummyMarshal closure_marshal; /* Really is of type GClosureMarshal */ -}; - -/* Standard priorities */ - -#define G_PRIORITY_HIGH -100 -#define G_PRIORITY_DEFAULT 0 -#define G_PRIORITY_HIGH_IDLE 100 -#define G_PRIORITY_DEFAULT_IDLE 200 -#define G_PRIORITY_LOW 300 - -/* GMainContext: */ - -GMainContext *g_main_context_new (void); -GMainContext *g_main_context_ref (GMainContext *context); -void g_main_context_unref (GMainContext *context); -GMainContext *g_main_context_default (void); - -gboolean g_main_context_iteration (GMainContext *context, - gboolean may_block); -gboolean g_main_context_pending (GMainContext *context); - -/* For implementation of legacy interfaces - */ -GSource *g_main_context_find_source_by_id (GMainContext *context, - guint source_id); -GSource *g_main_context_find_source_by_user_data (GMainContext *context, - gpointer user_data); -GSource *g_main_context_find_source_by_funcs_user_data (GMainContext *context, - GSourceFuncs *funcs, - gpointer user_data); - -/* Low level functions for implementing custom main loops. - */ -void g_main_context_wakeup (GMainContext *context); -gboolean g_main_context_acquire (GMainContext *context); -void g_main_context_release (GMainContext *context); -gboolean g_main_context_is_owner (GMainContext *context); -gboolean g_main_context_wait (GMainContext *context, - GCond *cond, - GMutex *mutex); - -gboolean g_main_context_prepare (GMainContext *context, - gint *priority); -gint g_main_context_query (GMainContext *context, - gint max_priority, - gint *timeout_, - GPollFD *fds, - gint n_fds); -gint g_main_context_check (GMainContext *context, - gint max_priority, - GPollFD *fds, - gint n_fds); -void g_main_context_dispatch (GMainContext *context); - -void g_main_context_set_poll_func (GMainContext *context, - GPollFunc func); -GPollFunc g_main_context_get_poll_func (GMainContext *context); - -/* Low level functions for use by source implementations - */ -void g_main_context_add_poll (GMainContext *context, - GPollFD *fd, - gint priority); -void g_main_context_remove_poll (GMainContext *context, - GPollFD *fd); - -gint g_main_depth (void); -GSource *g_main_current_source (void); - - -/* GMainLoop: */ - -GMainLoop *g_main_loop_new (GMainContext *context, - gboolean is_running); -void g_main_loop_run (GMainLoop *loop); -void g_main_loop_quit (GMainLoop *loop); -GMainLoop *g_main_loop_ref (GMainLoop *loop); -void g_main_loop_unref (GMainLoop *loop); -gboolean g_main_loop_is_running (GMainLoop *loop); -GMainContext *g_main_loop_get_context (GMainLoop *loop); - -/* GSource: */ - -GSource *g_source_new (GSourceFuncs *source_funcs, - guint struct_size); -GSource *g_source_ref (GSource *source); -void g_source_unref (GSource *source); - -guint g_source_attach (GSource *source, - GMainContext *context); -void g_source_destroy (GSource *source); - -void g_source_set_priority (GSource *source, - gint priority); -gint g_source_get_priority (GSource *source); -void g_source_set_can_recurse (GSource *source, - gboolean can_recurse); -gboolean g_source_get_can_recurse (GSource *source); -guint g_source_get_id (GSource *source); - -GMainContext *g_source_get_context (GSource *source); - -void g_source_set_callback (GSource *source, - GSourceFunc func, - gpointer data, - GDestroyNotify notify); - -void g_source_set_funcs (GSource *source, - GSourceFuncs *funcs); -gboolean g_source_is_destroyed (GSource *source); - -/* Used to implement g_source_connect_closure and internally*/ -void g_source_set_callback_indirect (GSource *source, - gpointer callback_data, - GSourceCallbackFuncs *callback_funcs); - -void g_source_add_poll (GSource *source, - GPollFD *fd); -void g_source_remove_poll (GSource *source, - GPollFD *fd); - -void g_source_get_current_time (GSource *source, - GTimeVal *timeval); - - /* void g_source_connect_closure (GSource *source, - GClosure *closure); - */ - -/* Specific source types - */ -GSource *g_idle_source_new (void); -GSource *g_child_watch_source_new (GPid pid); -GSource *g_timeout_source_new (guint interval); -GSource *g_timeout_source_new_seconds (guint interval); - -/* Miscellaneous functions - */ -void g_get_current_time (GTimeVal *result); - -/* ============== Compat main loop stuff ================== */ - -#ifndef G_DISABLE_DEPRECATED - -/* Legacy names for GMainLoop functions - */ -#define g_main_new(is_running) g_main_loop_new (NULL, is_running); -#define g_main_run(loop) g_main_loop_run(loop) -#define g_main_quit(loop) g_main_loop_quit(loop) -#define g_main_destroy(loop) g_main_loop_unref(loop) -#define g_main_is_running(loop) g_main_loop_is_running(loop) - -/* Functions to manipulate the default main loop - */ - -#define g_main_iteration(may_block) g_main_context_iteration (NULL, may_block) -#define g_main_pending() g_main_context_pending (NULL) - -#define g_main_set_poll_func(func) g_main_context_set_poll_func (NULL, func) - -#endif /* G_DISABLE_DEPRECATED */ - -/* Source manipulation by ID */ -gboolean g_source_remove (guint tag); -gboolean g_source_remove_by_user_data (gpointer user_data); -gboolean g_source_remove_by_funcs_user_data (GSourceFuncs *funcs, - gpointer user_data); - -/* Idles, child watchers and timeouts */ -guint g_timeout_add_full (gint priority, - guint interval, - GSourceFunc function, - gpointer data, - GDestroyNotify notify); -guint g_timeout_add (guint interval, - GSourceFunc function, - gpointer data); -guint g_timeout_add_seconds_full (gint priority, - guint interval, - GSourceFunc function, - gpointer data, - GDestroyNotify notify); -guint g_timeout_add_seconds (guint interval, - GSourceFunc function, - gpointer data); -guint g_child_watch_add_full (gint priority, - GPid pid, - GChildWatchFunc function, - gpointer data, - GDestroyNotify notify); -guint g_child_watch_add (GPid pid, - GChildWatchFunc function, - gpointer data); -guint g_idle_add (GSourceFunc function, - gpointer data); -guint g_idle_add_full (gint priority, - GSourceFunc function, - gpointer data, - GDestroyNotify notify); -gboolean g_idle_remove_by_data (gpointer data); - -/* Hook for GClosure / GSource integration. Don't touch */ -GLIB_VAR GSourceFuncs g_timeout_funcs; -GLIB_VAR GSourceFuncs g_child_watch_funcs; -GLIB_VAR GSourceFuncs g_idle_funcs; - -G_END_DECLS - -#endif /* __G_MAIN_H__ */ diff --git a/lib/win32/glib-2.20.4/glib/gmappedfile.c b/lib/win32/glib-2.20.4/glib/gmappedfile.c deleted file mode 100644 index 1220f410eff06..0000000000000 --- a/lib/win32/glib-2.20.4/glib/gmappedfile.c +++ /dev/null @@ -1,278 +0,0 @@ -/* GLIB - Library of useful routines for C programming - * gmappedfile.c: Simplified wrapper around the mmap() function. - * - * Copyright 2005 Matthias Clasen - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library 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 - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ - -#include "config.h" - -#include -#include -#include -#include -#ifdef HAVE_UNISTD_H -#include -#endif -#ifdef HAVE_MMAP -#include -#endif - -#include "glibconfig.h" - -#ifdef G_OS_WIN32 -#include -#include -#endif - -#include "gconvert.h" -#include "gerror.h" -#include "gfileutils.h" -#include "gmappedfile.h" -#include "gmem.h" -#include "gmessages.h" -#include "gstdio.h" -#include "gstrfuncs.h" - -#include "glibintl.h" - -#include "galias.h" - -#ifndef _O_BINARY -#define _O_BINARY 0 -#endif - -#ifndef MAP_FAILED -#define MAP_FAILED ((void *) -1) -#endif - -struct _GMappedFile -{ - gsize length; - gchar *contents; -#ifdef G_OS_WIN32 - HANDLE mapping; -#endif -}; - -/** - * g_mapped_file_new: - * @filename: The path of the file to load, in the GLib filename encoding - * @writable: whether the mapping should be writable - * @error: return location for a #GError, or %NULL - * - * Maps a file into memory. On UNIX, this is using the mmap() function. - * - * If @writable is %TRUE, the mapped buffer may be modified, otherwise - * it is an error to modify the mapped buffer. Modifications to the buffer - * are not visible to other processes mapping the same file, and are not - * written back to the file. - * - * Note that modifications of the underlying file might affect the contents - * of the #GMappedFile. Therefore, mapping should only be used if the file - * will not be modified, or if all modifications of the file are done - * atomically (e.g. using g_file_set_contents()). - * - * Return value: a newly allocated #GMappedFile which must be freed - * with g_mapped_file_free(), or %NULL if the mapping failed. - * - * Since: 2.8 - */ -GMappedFile * -g_mapped_file_new (const gchar *filename, - gboolean writable, - GError **error) -{ - GMappedFile *file; - int fd; - struct stat st; - - g_return_val_if_fail (filename != NULL, NULL); - g_return_val_if_fail (!error || *error == NULL, NULL); - - fd = g_open (filename, (writable ? O_RDWR : O_RDONLY) | _O_BINARY, 0); - if (fd == -1) - { - int save_errno = errno; - gchar *display_filename = g_filename_display_name (filename); - - g_set_error (error, - G_FILE_ERROR, - g_file_error_from_errno (save_errno), - _("Failed to open file '%s': open() failed: %s"), - display_filename, - g_strerror (save_errno)); - g_free (display_filename); - return NULL; - } - - file = g_new0 (GMappedFile, 1); - - if (fstat (fd, &st) == -1) - { - int save_errno = errno; - gchar *display_filename = g_filename_display_name (filename); - - g_set_error (error, - G_FILE_ERROR, - g_file_error_from_errno (save_errno), - _("Failed to get attributes of file '%s': fstat() failed: %s"), - display_filename, - g_strerror (save_errno)); - g_free (display_filename); - goto out; - } - - if (st.st_size == 0) - { - file->length = 0; - file->contents = ""; - close (fd); - return file; - } - - file->contents = MAP_FAILED; - -#ifdef HAVE_MMAP - if (st.st_size > G_MAXSIZE) - { - errno = EINVAL; - } - else - { - file->length = (gsize) st.st_size; - file->contents = (gchar *) mmap (NULL, file->length, - writable ? PROT_READ|PROT_WRITE : PROT_READ, - MAP_PRIVATE, fd, 0); - } -#endif -#ifdef G_OS_WIN32 - file->length = st.st_size; - file->mapping = CreateFileMapping ((HANDLE) _get_osfhandle (fd), NULL, - writable ? PAGE_WRITECOPY : PAGE_READONLY, - 0, 0, - NULL); - if (file->mapping != NULL) - { - file->contents = MapViewOfFile (file->mapping, - writable ? FILE_MAP_COPY : FILE_MAP_READ, - 0, 0, - 0); - if (file->contents == NULL) - { - file->contents = MAP_FAILED; - CloseHandle (file->mapping); - file->mapping = NULL; - } - } -#endif - - - if (file->contents == MAP_FAILED) - { - int save_errno = errno; - gchar *display_filename = g_filename_display_name (filename); - - g_set_error (error, - G_FILE_ERROR, - g_file_error_from_errno (save_errno), - _("Failed to map file '%s': mmap() failed: %s"), - display_filename, - g_strerror (save_errno)); - g_free (display_filename); - goto out; - } - - close (fd); - return file; - - out: - close (fd); - g_free (file); - - return NULL; -} - -/** - * g_mapped_file_get_length: - * @file: a #GMappedFile - * - * Returns the length of the contents of a #GMappedFile. - * - * Returns: the length of the contents of @file. - * - * Since: 2.8 - */ -gsize -g_mapped_file_get_length (GMappedFile *file) -{ - g_return_val_if_fail (file != NULL, 0); - - return file->length; -} - -/** - * g_mapped_file_get_contents: - * @file: a #GMappedFile - * - * Returns the contents of a #GMappedFile. - * - * Note that the contents may not be zero-terminated, - * even if the #GMappedFile is backed by a text file. - * - * Returns: the contents of @file. - * - * Since: 2.8 - */ -gchar * -g_mapped_file_get_contents (GMappedFile *file) -{ - g_return_val_if_fail (file != NULL, NULL); - - return file->contents; -} - -/** - * g_mapped_file_free: - * @file: a #GMappedFile - * - * Unmaps the buffer of @file and frees it. - * - * Since: 2.8 - */ -void -g_mapped_file_free (GMappedFile *file) -{ - g_return_if_fail (file != NULL); - - if (file->length) - { -#ifdef HAVE_MMAP - munmap (file->contents, file->length); -#endif -#ifdef G_OS_WIN32 - UnmapViewOfFile (file->contents); - CloseHandle (file->mapping); -#endif - } - - g_free (file); -} - - -#define __G_MAPPED_FILE_C__ -#include "galiasdef.c" diff --git a/lib/win32/glib-2.20.4/glib/gmappedfile.h b/lib/win32/glib-2.20.4/glib/gmappedfile.h deleted file mode 100644 index d27c4aada3646..0000000000000 --- a/lib/win32/glib-2.20.4/glib/gmappedfile.h +++ /dev/null @@ -1,44 +0,0 @@ -/* GLIB - Library of useful routines for C programming - * gmappedfile.h: Simplified wrapper around the mmap function - * - * Copyright 2005 Matthias Clasen - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library 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 - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ - -#if defined(G_DISABLE_SINGLE_INCLUDES) && !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION) -#error "Only can be included directly." -#endif - -#ifndef __G_MAPPED_FILE_H__ -#define __G_MAPPED_FILE_H__ - -#include - -G_BEGIN_DECLS - -typedef struct _GMappedFile GMappedFile; - -GMappedFile *g_mapped_file_new (const gchar *filename, - gboolean writable, - GError **error) G_GNUC_MALLOC; -gsize g_mapped_file_get_length (GMappedFile *file); -gchar *g_mapped_file_get_contents (GMappedFile *file); -void g_mapped_file_free (GMappedFile *file); - -G_END_DECLS - -#endif /* __G_MAPPED_FILE_H__ */ diff --git a/lib/win32/glib-2.20.4/glib/gmarkup.c b/lib/win32/glib-2.20.4/glib/gmarkup.c deleted file mode 100644 index b1f4f465ff4a7..0000000000000 --- a/lib/win32/glib-2.20.4/glib/gmarkup.c +++ /dev/null @@ -1,2996 +0,0 @@ -/* gmarkup.c - Simple XML-like parser - * - * Copyright 2000, 2003 Red Hat, Inc. - * Copyright 2007, 2008 Ryan Lortie - * - * GLib is free software; you can redistribute it and/or modify it - * under the terms of the GNU Lesser General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or (at your option) any later version. - * - * GLib 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 - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with GLib; see the file COPYING.LIB. If not, - * write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ - -#include "config.h" - -#include -#include -#include -#include -#include - -#include "glib.h" -#include "glibintl.h" -#include "galias.h" - -GQuark -g_markup_error_quark (void) -{ - return g_quark_from_static_string ("g-markup-error-quark"); -} - -typedef enum -{ - STATE_START, - STATE_AFTER_OPEN_ANGLE, - STATE_AFTER_CLOSE_ANGLE, - STATE_AFTER_ELISION_SLASH, /* the slash that obviates need for end element */ - STATE_INSIDE_OPEN_TAG_NAME, - STATE_INSIDE_ATTRIBUTE_NAME, - STATE_AFTER_ATTRIBUTE_NAME, - STATE_BETWEEN_ATTRIBUTES, - STATE_AFTER_ATTRIBUTE_EQUALS_SIGN, - STATE_INSIDE_ATTRIBUTE_VALUE_SQ, - STATE_INSIDE_ATTRIBUTE_VALUE_DQ, - STATE_INSIDE_TEXT, - STATE_AFTER_CLOSE_TAG_SLASH, - STATE_INSIDE_CLOSE_TAG_NAME, - STATE_AFTER_CLOSE_TAG_NAME, - STATE_INSIDE_PASSTHROUGH, - STATE_ERROR -} GMarkupParseState; - -typedef struct -{ - const char *prev_element; - const GMarkupParser *prev_parser; - gpointer prev_user_data; -} GMarkupRecursionTracker; - -struct _GMarkupParseContext -{ - const GMarkupParser *parser; - - GMarkupParseFlags flags; - - gint line_number; - gint char_number; - - gpointer user_data; - GDestroyNotify dnotify; - - /* A piece of character data or an element that - * hasn't "ended" yet so we haven't yet called - * the callback for it. - */ - GString *partial_chunk; - - GMarkupParseState state; - GSList *tag_stack; - gchar **attr_names; - gchar **attr_values; - gint cur_attr; - gint alloc_attrs; - - const gchar *current_text; - gssize current_text_len; - const gchar *current_text_end; - - GString *leftover_char_portion; - - /* used to save the start of the last interesting thingy */ - const gchar *start; - - const gchar *iter; - - guint document_empty : 1; - guint parsing : 1; - guint awaiting_pop : 1; - gint balance; - - /* subparser support */ - GSList *subparser_stack; /* (GMarkupRecursionTracker *) */ - const char *subparser_element; - gpointer held_user_data; -}; - -/** - * g_markup_parse_context_new: - * @parser: a #GMarkupParser - * @flags: one or more #GMarkupParseFlags - * @user_data: user data to pass to #GMarkupParser functions - * @user_data_dnotify: user data destroy notifier called when the parse context is freed - * - * Creates a new parse context. A parse context is used to parse - * marked-up documents. You can feed any number of documents into - * a context, as long as no errors occur; once an error occurs, - * the parse context can't continue to parse text (you have to free it - * and create a new parse context). - * - * Return value: a new #GMarkupParseContext - **/ -GMarkupParseContext * -g_markup_parse_context_new (const GMarkupParser *parser, - GMarkupParseFlags flags, - gpointer user_data, - GDestroyNotify user_data_dnotify) -{ - GMarkupParseContext *context; - - g_return_val_if_fail (parser != NULL, NULL); - - context = g_new (GMarkupParseContext, 1); - - context->parser = parser; - context->flags = flags; - context->user_data = user_data; - context->dnotify = user_data_dnotify; - - context->line_number = 1; - context->char_number = 1; - - context->partial_chunk = NULL; - - context->state = STATE_START; - context->tag_stack = NULL; - context->attr_names = NULL; - context->attr_values = NULL; - context->cur_attr = -1; - context->alloc_attrs = 0; - - context->current_text = NULL; - context->current_text_len = -1; - context->current_text_end = NULL; - context->leftover_char_portion = NULL; - - context->start = NULL; - context->iter = NULL; - - context->document_empty = TRUE; - context->parsing = FALSE; - - context->awaiting_pop = FALSE; - context->subparser_stack = NULL; - context->subparser_element = NULL; - - /* this is only looked at if awaiting_pop = TRUE. initialise anyway. */ - context->held_user_data = NULL; - - context->balance = 0; - - return context; -} - -/** - * g_markup_parse_context_free: - * @context: a #GMarkupParseContext - * - * Frees a #GMarkupParseContext. Can't be called from inside - * one of the #GMarkupParser functions. Can't be called while - * a subparser is pushed. - **/ -void -g_markup_parse_context_free (GMarkupParseContext *context) -{ - g_return_if_fail (context != NULL); - g_return_if_fail (!context->parsing); - g_return_if_fail (!context->subparser_stack); - g_return_if_fail (!context->awaiting_pop); - - if (context->dnotify) - (* context->dnotify) (context->user_data); - - g_strfreev (context->attr_names); - g_strfreev (context->attr_values); - - g_slist_foreach (context->tag_stack, (GFunc)g_free, NULL); - g_slist_free (context->tag_stack); - - if (context->partial_chunk) - g_string_free (context->partial_chunk, TRUE); - - if (context->leftover_char_portion) - g_string_free (context->leftover_char_portion, TRUE); - - g_free (context); -} - -static void pop_subparser_stack (GMarkupParseContext *context); - -static void -mark_error (GMarkupParseContext *context, - GError *error) -{ - context->state = STATE_ERROR; - - if (context->parser->error) - (*context->parser->error) (context, error, context->user_data); - - /* report the error all the way up to free all the user-data */ - while (context->subparser_stack) - { - pop_subparser_stack (context); - context->awaiting_pop = FALSE; /* already been freed */ - - if (context->parser->error) - (*context->parser->error) (context, error, context->user_data); - } -} - -static void set_error (GMarkupParseContext *context, - GError **error, - GMarkupError code, - const gchar *format, - ...) G_GNUC_PRINTF (4, 5); - -static void -set_error_literal (GMarkupParseContext *context, - GError **error, - GMarkupError code, - const gchar *message) -{ - GError *tmp_error; - - tmp_error = g_error_new_literal (G_MARKUP_ERROR, code, message); - - g_prefix_error (&tmp_error, - _("Error on line %d char %d: "), - context->line_number, - context->char_number); - - mark_error (context, tmp_error); - - g_propagate_error (error, tmp_error); -} - -static void -set_error (GMarkupParseContext *context, - GError **error, - GMarkupError code, - const gchar *format, - ...) -{ - gchar *s; - gchar *s_valid; - va_list args; - - va_start (args, format); - s = g_strdup_vprintf (format, args); - va_end (args); - - /* Make sure that the GError message is valid UTF-8 even if it is - * complaining about invalid UTF-8 in the markup: */ - s_valid = _g_utf8_make_valid (s); - set_error_literal (context, error, code, s); - - g_free (s); - g_free (s_valid); -} - -static void -propagate_error (GMarkupParseContext *context, - GError **dest, - GError *src) -{ - if (context->flags & G_MARKUP_PREFIX_ERROR_POSITION) - g_prefix_error (&src, - _("Error on line %d char %d: "), - context->line_number, - context->char_number); - - mark_error (context, src); - - g_propagate_error (dest, src); -} - -/* To make these faster, we first use the ascii-only tests, then check - * for the usual non-alnum name-end chars, and only then call the - * expensive unicode stuff. Nobody uses non-ascii in XML tag/attribute - * names, so this is a reasonable hack that virtually always avoids - * the guniprop call. - */ -#define IS_COMMON_NAME_END_CHAR(c) \ - ((c) == '=' || (c) == '/' || (c) == '>' || (c) == ' ') - -static gboolean -is_name_start_char (const gchar *p) -{ - if (g_ascii_isalpha (*p) || - (!IS_COMMON_NAME_END_CHAR (*p) && - (*p == '_' || - *p == ':' || - g_unichar_isalpha (g_utf8_get_char (p))))) - return TRUE; - else - return FALSE; -} - -static gboolean -is_name_char (const gchar *p) -{ - if (g_ascii_isalnum (*p) || - (!IS_COMMON_NAME_END_CHAR (*p) && - (*p == '.' || - *p == '-' || - *p == '_' || - *p == ':' || - g_unichar_isalpha (g_utf8_get_char (p))))) - return TRUE; - else - return FALSE; -} - - -static gchar* -char_str (gunichar c, - gchar *buf) -{ - memset (buf, 0, 8); - g_unichar_to_utf8 (c, buf); - return buf; -} - -static gchar* -utf8_str (const gchar *utf8, - gchar *buf) -{ - char_str (g_utf8_get_char (utf8), buf); - return buf; -} - -static void -set_unescape_error (GMarkupParseContext *context, - GError **error, - const gchar *remaining_text, - const gchar *remaining_text_end, - GMarkupError code, - const gchar *format, - ...) -{ - GError *tmp_error; - gchar *s; - va_list args; - gint remaining_newlines; - const gchar *p; - - remaining_newlines = 0; - p = remaining_text; - while (p != remaining_text_end) - { - if (*p == '\n') - ++remaining_newlines; - ++p; - } - - va_start (args, format); - s = g_strdup_vprintf (format, args); - va_end (args); - - tmp_error = g_error_new (G_MARKUP_ERROR, - code, - _("Error on line %d: %s"), - context->line_number - remaining_newlines, - s); - - g_free (s); - - mark_error (context, tmp_error); - - g_propagate_error (error, tmp_error); -} - -typedef enum -{ - USTATE_INSIDE_TEXT, - USTATE_AFTER_AMPERSAND, - USTATE_INSIDE_ENTITY_NAME, - USTATE_AFTER_CHARREF_HASH -} UnescapeState; - -typedef struct -{ - GMarkupParseContext *context; - GString *str; - UnescapeState state; - const gchar *text; - const gchar *text_end; - const gchar *entity_start; -} UnescapeContext; - -static const gchar* -unescape_text_state_inside_text (UnescapeContext *ucontext, - const gchar *p, - GError **error) -{ - const gchar *start; - gboolean normalize_attribute; - - if (ucontext->context->state == STATE_INSIDE_ATTRIBUTE_VALUE_SQ || - ucontext->context->state == STATE_INSIDE_ATTRIBUTE_VALUE_DQ) - normalize_attribute = TRUE; - else - normalize_attribute = FALSE; - - start = p; - - while (p != ucontext->text_end) - { - if (*p == '&') - { - break; - } - else if (normalize_attribute && (*p == '\t' || *p == '\n')) - { - g_string_append_len (ucontext->str, start, p - start); - g_string_append_c (ucontext->str, ' '); - p = g_utf8_next_char (p); - start = p; - } - else if (*p == '\r') - { - g_string_append_len (ucontext->str, start, p - start); - g_string_append_c (ucontext->str, normalize_attribute ? ' ' : '\n'); - p = g_utf8_next_char (p); - if (p != ucontext->text_end && *p == '\n') - p = g_utf8_next_char (p); - start = p; - } - else - p = g_utf8_next_char (p); - } - - if (p != start) - g_string_append_len (ucontext->str, start, p - start); - - if (p != ucontext->text_end && *p == '&') - { - p = g_utf8_next_char (p); - ucontext->state = USTATE_AFTER_AMPERSAND; - } - - return p; -} - -static const gchar* -unescape_text_state_after_ampersand (UnescapeContext *ucontext, - const gchar *p, - GError **error) -{ - ucontext->entity_start = NULL; - - if (*p == '#') - { - p = g_utf8_next_char (p); - - ucontext->entity_start = p; - ucontext->state = USTATE_AFTER_CHARREF_HASH; - } - else if (!is_name_start_char (p)) - { - if (*p == ';') - { - set_unescape_error (ucontext->context, error, - p, ucontext->text_end, - G_MARKUP_ERROR_PARSE, - _("Empty entity '&;' seen; valid " - "entities are: & " < > '")); - } - else - { - gchar buf[8]; - - set_unescape_error (ucontext->context, error, - p, ucontext->text_end, - G_MARKUP_ERROR_PARSE, - _("Character '%s' is not valid at " - "the start of an entity name; " - "the & character begins an entity; " - "if this ampersand isn't supposed " - "to be an entity, escape it as " - "&"), - utf8_str (p, buf)); - } - } - else - { - ucontext->entity_start = p; - ucontext->state = USTATE_INSIDE_ENTITY_NAME; - } - - return p; -} - -static const gchar* -unescape_text_state_inside_entity_name (UnescapeContext *ucontext, - const gchar *p, - GError **error) -{ - while (p != ucontext->text_end) - { - if (*p == ';') - break; - else if (!is_name_char (p)) - { - gchar ubuf[8]; - - set_unescape_error (ucontext->context, error, - p, ucontext->text_end, - G_MARKUP_ERROR_PARSE, - _("Character '%s' is not valid " - "inside an entity name"), - utf8_str (p, ubuf)); - break; - } - - p = g_utf8_next_char (p); - } - - if (ucontext->context->state != STATE_ERROR) - { - if (p != ucontext->text_end) - { - gint len = p - ucontext->entity_start; - - /* move to after semicolon */ - p = g_utf8_next_char (p); - ucontext->state = USTATE_INSIDE_TEXT; - - if (strncmp (ucontext->entity_start, "lt", len) == 0) - g_string_append_c (ucontext->str, '<'); - else if (strncmp (ucontext->entity_start, "gt", len) == 0) - g_string_append_c (ucontext->str, '>'); - else if (strncmp (ucontext->entity_start, "amp", len) == 0) - g_string_append_c (ucontext->str, '&'); - else if (strncmp (ucontext->entity_start, "quot", len) == 0) - g_string_append_c (ucontext->str, '"'); - else if (strncmp (ucontext->entity_start, "apos", len) == 0) - g_string_append_c (ucontext->str, '\''); - else - { - gchar *name; - - name = g_strndup (ucontext->entity_start, len); - set_unescape_error (ucontext->context, error, - p, ucontext->text_end, - G_MARKUP_ERROR_PARSE, - _("Entity name '%s' is not known"), - name); - g_free (name); - } - } - else - { - set_unescape_error (ucontext->context, error, - /* give line number of the & */ - ucontext->entity_start, ucontext->text_end, - G_MARKUP_ERROR_PARSE, - _("Entity did not end with a semicolon; " - "most likely you used an ampersand " - "character without intending to start " - "an entity - escape ampersand as &")); - } - } -#undef MAX_ENT_LEN - - return p; -} - -static const gchar* -unescape_text_state_after_charref_hash (UnescapeContext *ucontext, - const gchar *p, - GError **error) -{ - gboolean is_hex = FALSE; - const char *start; - - start = ucontext->entity_start; - - if (*p == 'x') - { - is_hex = TRUE; - p = g_utf8_next_char (p); - start = p; - } - - while (p != ucontext->text_end && *p != ';') - p = g_utf8_next_char (p); - - if (p != ucontext->text_end) - { - g_assert (*p == ';'); - - /* digit is between start and p */ - - if (start != p) - { - gulong l; - gchar *end = NULL; - - errno = 0; - if (is_hex) - l = strtoul (start, &end, 16); - else - l = strtoul (start, &end, 10); - - if (end != p || errno != 0) - { - set_unescape_error (ucontext->context, error, - start, ucontext->text_end, - G_MARKUP_ERROR_PARSE, - _("Failed to parse '%-.*s', which " - "should have been a digit " - "inside a character reference " - "(ê for example) - perhaps " - "the digit is too large"), - p - start, start); - } - else - { - /* characters XML 1.1 permits */ - if ((0 < l && l <= 0xD7FF) || - (0xE000 <= l && l <= 0xFFFD) || - (0x10000 <= l && l <= 0x10FFFF)) - { - gchar buf[8]; - g_string_append (ucontext->str, char_str (l, buf)); - } - else - { - set_unescape_error (ucontext->context, error, - start, ucontext->text_end, - G_MARKUP_ERROR_PARSE, - _("Character reference '%-.*s' does not " - "encode a permitted character"), - p - start, start); - } - } - - /* Move to next state */ - p = g_utf8_next_char (p); /* past semicolon */ - ucontext->state = USTATE_INSIDE_TEXT; - } - else - { - set_unescape_error (ucontext->context, error, - start, ucontext->text_end, - G_MARKUP_ERROR_PARSE, - _("Empty character reference; " - "should include a digit such as " - "dž")); - } - } - else - { - set_unescape_error (ucontext->context, error, - start, ucontext->text_end, - G_MARKUP_ERROR_PARSE, - _("Character reference did not end with a " - "semicolon; " - "most likely you used an ampersand " - "character without intending to start " - "an entity - escape ampersand as &")); - } - - return p; -} - -static gboolean -unescape_text (GMarkupParseContext *context, - const gchar *text, - const gchar *text_end, - GString **unescaped, - GError **error) -{ - UnescapeContext ucontext; - const gchar *p; - - ucontext.context = context; - ucontext.text = text; - ucontext.text_end = text_end; - ucontext.entity_start = NULL; - - ucontext.str = g_string_sized_new (text_end - text); - - ucontext.state = USTATE_INSIDE_TEXT; - p = text; - - while (p != text_end && context->state != STATE_ERROR) - { - g_assert (p < text_end); - - switch (ucontext.state) - { - case USTATE_INSIDE_TEXT: - { - p = unescape_text_state_inside_text (&ucontext, - p, - error); - } - break; - - case USTATE_AFTER_AMPERSAND: - { - p = unescape_text_state_after_ampersand (&ucontext, - p, - error); - } - break; - - - case USTATE_INSIDE_ENTITY_NAME: - { - p = unescape_text_state_inside_entity_name (&ucontext, - p, - error); - } - break; - - case USTATE_AFTER_CHARREF_HASH: - { - p = unescape_text_state_after_charref_hash (&ucontext, - p, - error); - } - break; - - default: - g_assert_not_reached (); - break; - } - } - - if (context->state != STATE_ERROR) - { - switch (ucontext.state) - { - case USTATE_INSIDE_TEXT: - break; - case USTATE_AFTER_AMPERSAND: - case USTATE_INSIDE_ENTITY_NAME: - set_unescape_error (context, error, - NULL, NULL, - G_MARKUP_ERROR_PARSE, - _("Unfinished entity reference")); - break; - case USTATE_AFTER_CHARREF_HASH: - set_unescape_error (context, error, - NULL, NULL, - G_MARKUP_ERROR_PARSE, - _("Unfinished character reference")); - break; - } - } - - if (context->state == STATE_ERROR) - { - g_string_free (ucontext.str, TRUE); - *unescaped = NULL; - return FALSE; - } - else - { - *unescaped = ucontext.str; - return TRUE; - } -} - -static inline gboolean -advance_char (GMarkupParseContext *context) -{ - context->iter = g_utf8_next_char (context->iter); - context->char_number += 1; - - if (context->iter == context->current_text_end) - { - return FALSE; - } - else if (*context->iter == '\n') - { - context->line_number += 1; - context->char_number = 1; - } - - return TRUE; -} - -static inline gboolean -xml_isspace (char c) -{ - return c == ' ' || c == '\t' || c == '\n' || c == '\r'; -} - -static void -skip_spaces (GMarkupParseContext *context) -{ - do - { - if (!xml_isspace (*context->iter)) - return; - } - while (advance_char (context)); -} - -static void -advance_to_name_end (GMarkupParseContext *context) -{ - do - { - if (!is_name_char (context->iter)) - return; - } - while (advance_char (context)); -} - -static void -add_to_partial (GMarkupParseContext *context, - const gchar *text_start, - const gchar *text_end) -{ - if (context->partial_chunk == NULL) - context->partial_chunk = g_string_sized_new (text_end - text_start); - - if (text_start != text_end) - g_string_append_len (context->partial_chunk, text_start, - text_end - text_start); - - /* Invariant here that partial_chunk exists */ -} - -static void -truncate_partial (GMarkupParseContext *context) -{ - if (context->partial_chunk != NULL) - { - context->partial_chunk = g_string_truncate (context->partial_chunk, 0); - } -} - -static const gchar* -current_element (GMarkupParseContext *context) -{ - return context->tag_stack->data; -} - -static void -pop_subparser_stack (GMarkupParseContext *context) -{ - GMarkupRecursionTracker *tracker; - - g_assert (context->subparser_stack); - - tracker = context->subparser_stack->data; - - context->awaiting_pop = TRUE; - context->held_user_data = context->user_data; - - context->user_data = tracker->prev_user_data; - context->parser = tracker->prev_parser; - context->subparser_element = tracker->prev_element; - g_slice_free (GMarkupRecursionTracker, tracker); - - context->subparser_stack = g_slist_delete_link (context->subparser_stack, - context->subparser_stack); -} - -static void -possibly_finish_subparser (GMarkupParseContext *context) -{ - if (current_element (context) == context->subparser_element) - pop_subparser_stack (context); -} - -static void -ensure_no_outstanding_subparser (GMarkupParseContext *context) -{ - if (context->awaiting_pop) - g_critical ("During the first end_element call after invoking a " - "subparser you must pop the subparser stack and handle " - "the freeing of the subparser user_data. This can be " - "done by calling the end function of the subparser. " - "Very probably, your program just leaked memory."); - - /* let valgrind watch the pointer disappear... */ - context->held_user_data = NULL; - context->awaiting_pop = FALSE; -} - -static const gchar* -current_attribute (GMarkupParseContext *context) -{ - g_assert (context->cur_attr >= 0); - return context->attr_names[context->cur_attr]; -} - -static void -find_current_text_end (GMarkupParseContext *context) -{ - /* This function must be safe (non-segfaulting) on invalid UTF8. - * It assumes the string starts with a character start - */ - const gchar *end = context->current_text + context->current_text_len; - const gchar *p; - const gchar *next; - - g_assert (context->current_text_len > 0); - - p = g_utf8_find_prev_char (context->current_text, end); - - g_assert (p != NULL); /* since current_text was a char start */ - - /* p is now the start of the last character or character portion. */ - g_assert (p != end); - next = g_utf8_next_char (p); /* this only touches *p, nothing beyond */ - - if (next == end) - { - /* whole character */ - context->current_text_end = end; - } - else - { - /* portion */ - context->leftover_char_portion = g_string_new_len (p, end - p); - context->current_text_len -= (end - p); - context->current_text_end = p; - } -} - - -static void -add_attribute (GMarkupParseContext *context, char *name) -{ - if (context->cur_attr + 2 >= context->alloc_attrs) - { - context->alloc_attrs += 5; /* silly magic number */ - context->attr_names = g_realloc (context->attr_names, sizeof(char*)*context->alloc_attrs); - context->attr_values = g_realloc (context->attr_values, sizeof(char*)*context->alloc_attrs); - } - context->cur_attr++; - context->attr_names[context->cur_attr] = name; - context->attr_values[context->cur_attr] = NULL; - context->attr_names[context->cur_attr+1] = NULL; - context->attr_values[context->cur_attr+1] = NULL; -} - -/** - * g_markup_parse_context_parse: - * @context: a #GMarkupParseContext - * @text: chunk of text to parse - * @text_len: length of @text in bytes - * @error: return location for a #GError - * - * Feed some data to the #GMarkupParseContext. The data need not - * be valid UTF-8; an error will be signaled if it's invalid. - * The data need not be an entire document; you can feed a document - * into the parser incrementally, via multiple calls to this function. - * Typically, as you receive data from a network connection or file, - * you feed each received chunk of data into this function, aborting - * the process if an error occurs. Once an error is reported, no further - * data may be fed to the #GMarkupParseContext; all errors are fatal. - * - * Return value: %FALSE if an error occurred, %TRUE on success - **/ -gboolean -g_markup_parse_context_parse (GMarkupParseContext *context, - const gchar *text, - gssize text_len, - GError **error) -{ - const gchar *first_invalid; - - g_return_val_if_fail (context != NULL, FALSE); - g_return_val_if_fail (text != NULL, FALSE); - g_return_val_if_fail (context->state != STATE_ERROR, FALSE); - g_return_val_if_fail (!context->parsing, FALSE); - - if (text_len < 0) - text_len = strlen (text); - - if (text_len == 0) - return TRUE; - - context->parsing = TRUE; - - if (context->leftover_char_portion) - { - const gchar *first_char; - - if ((*text & 0xc0) != 0x80) - first_char = text; - else - first_char = g_utf8_find_next_char (text, text + text_len); - - if (first_char) - { - /* leftover_char_portion was completed. Parse it. */ - GString *portion = context->leftover_char_portion; - - g_string_append_len (context->leftover_char_portion, - text, first_char - text); - - /* hacks to allow recursion */ - context->parsing = FALSE; - context->leftover_char_portion = NULL; - - if (!g_markup_parse_context_parse (context, - portion->str, portion->len, - error)) - { - g_assert (context->state == STATE_ERROR); - } - - g_string_free (portion, TRUE); - context->parsing = TRUE; - - /* Skip the fraction of char that was in this text */ - text_len -= (first_char - text); - text = first_char; - } - else - { - /* another little chunk of the leftover char; geez - * someone is inefficient. - */ - g_string_append_len (context->leftover_char_portion, - text, text_len); - - if (context->leftover_char_portion->len > 7) - { - /* The leftover char portion is too big to be - * a UTF-8 character - */ - set_error_literal (context, - error, - G_MARKUP_ERROR_BAD_UTF8, - _("Invalid UTF-8 encoded text - overlong sequence")); - } - - goto finished; - } - } - - context->current_text = text; - context->current_text_len = text_len; - context->iter = context->current_text; - context->start = context->iter; - - /* Nothing left after finishing the leftover char, or nothing - * passed in to begin with. - */ - if (context->current_text_len == 0) - goto finished; - - /* find_current_text_end () assumes the string starts at - * a character start, so we need to validate at least - * that much. It doesn't assume any following bytes - * are valid. - */ - if ((*context->current_text & 0xc0) == 0x80) /* not a char start */ - { - set_error_literal (context, - error, - G_MARKUP_ERROR_BAD_UTF8, - _("Invalid UTF-8 encoded text - not a start char")); - goto finished; - } - - /* Initialize context->current_text_end, possibly adjusting - * current_text_len, and add any leftover char portion - */ - find_current_text_end (context); - - /* Validate UTF8 (must be done after we find the end, since - * we could have a trailing incomplete char) - */ - if (!g_utf8_validate (context->current_text, - context->current_text_len, - &first_invalid)) - { - gint newlines = 0; - const gchar *p, *q; - gchar *current_text_dup; - - q = p = context->current_text; - while (p != first_invalid) - { - if (*p == '\n') - { - ++newlines; - q = p + 1; - context->char_number = 1; - } - ++p; - } - - context->line_number += newlines; - context->char_number += g_utf8_strlen (q, first_invalid - q); - - current_text_dup = g_strndup (context->current_text, context->current_text_len); - set_error (context, - error, - G_MARKUP_ERROR_BAD_UTF8, - _("Invalid UTF-8 encoded text - not valid '%s'"), - current_text_dup); - g_free (current_text_dup); - goto finished; - } - - while (context->iter != context->current_text_end) - { - switch (context->state) - { - case STATE_START: - /* Possible next state: AFTER_OPEN_ANGLE */ - - g_assert (context->tag_stack == NULL); - - /* whitespace is ignored outside of any elements */ - skip_spaces (context); - - if (context->iter != context->current_text_end) - { - if (*context->iter == '<') - { - /* Move after the open angle */ - advance_char (context); - - context->state = STATE_AFTER_OPEN_ANGLE; - - /* this could start a passthrough */ - context->start = context->iter; - - /* document is now non-empty */ - context->document_empty = FALSE; - } - else - { - set_error_literal (context, - error, - G_MARKUP_ERROR_PARSE, - _("Document must begin with an element (e.g. )")); - } - } - break; - - case STATE_AFTER_OPEN_ANGLE: - /* Possible next states: INSIDE_OPEN_TAG_NAME, - * AFTER_CLOSE_TAG_SLASH, INSIDE_PASSTHROUGH - */ - if (*context->iter == '?' || - *context->iter == '!') - { - /* include < in the passthrough */ - const gchar *openangle = "<"; - add_to_partial (context, openangle, openangle + 1); - context->start = context->iter; - context->balance = 1; - context->state = STATE_INSIDE_PASSTHROUGH; - } - else if (*context->iter == '/') - { - /* move after it */ - advance_char (context); - - context->state = STATE_AFTER_CLOSE_TAG_SLASH; - } - else if (is_name_start_char (context->iter)) - { - context->state = STATE_INSIDE_OPEN_TAG_NAME; - - /* start of tag name */ - context->start = context->iter; - } - else - { - gchar buf[8]; - - set_error (context, - error, - G_MARKUP_ERROR_PARSE, - _("'%s' is not a valid character following " - "a '<' character; it may not begin an " - "element name"), - utf8_str (context->iter, buf)); - } - break; - - /* The AFTER_CLOSE_ANGLE state is actually sort of - * broken, because it doesn't correspond to a range - * of characters in the input stream as the others do, - * and thus makes things harder to conceptualize - */ - case STATE_AFTER_CLOSE_ANGLE: - /* Possible next states: INSIDE_TEXT, STATE_START */ - if (context->tag_stack == NULL) - { - context->start = NULL; - context->state = STATE_START; - } - else - { - context->start = context->iter; - context->state = STATE_INSIDE_TEXT; - } - break; - - case STATE_AFTER_ELISION_SLASH: - /* Possible next state: AFTER_CLOSE_ANGLE */ - - { - /* We need to pop the tag stack and call the end_element - * function, since this is the close tag - */ - GError *tmp_error = NULL; - - g_assert (context->tag_stack != NULL); - - possibly_finish_subparser (context); - - tmp_error = NULL; - if (context->parser->end_element) - (* context->parser->end_element) (context, - context->tag_stack->data, - context->user_data, - &tmp_error); - - ensure_no_outstanding_subparser (context); - - if (tmp_error) - { - mark_error (context, tmp_error); - g_propagate_error (error, tmp_error); - } - else - { - if (*context->iter == '>') - { - /* move after the close angle */ - advance_char (context); - context->state = STATE_AFTER_CLOSE_ANGLE; - } - else - { - gchar buf[8]; - - set_error (context, - error, - G_MARKUP_ERROR_PARSE, - _("Odd character '%s', expected a '>' character " - "to end the empty-element tag '%s'"), - utf8_str (context->iter, buf), - current_element (context)); - } - } - - g_free (context->tag_stack->data); - context->tag_stack = g_slist_delete_link (context->tag_stack, - context->tag_stack); - } - break; - - case STATE_INSIDE_OPEN_TAG_NAME: - /* Possible next states: BETWEEN_ATTRIBUTES */ - - /* if there's a partial chunk then it's the first part of the - * tag name. If there's a context->start then it's the start - * of the tag name in current_text, the partial chunk goes - * before that start though. - */ - advance_to_name_end (context); - - if (context->iter == context->current_text_end) - { - /* The name hasn't necessarily ended. Merge with - * partial chunk, leave state unchanged. - */ - add_to_partial (context, context->start, context->iter); - } - else - { - /* The name has ended. Combine it with the partial chunk - * if any; push it on the stack; enter next state. - */ - add_to_partial (context, context->start, context->iter); - context->tag_stack = - g_slist_prepend (context->tag_stack, - g_string_free (context->partial_chunk, - FALSE)); - - context->partial_chunk = NULL; - - context->state = STATE_BETWEEN_ATTRIBUTES; - context->start = NULL; - } - break; - - case STATE_INSIDE_ATTRIBUTE_NAME: - /* Possible next states: AFTER_ATTRIBUTE_NAME */ - - advance_to_name_end (context); - add_to_partial (context, context->start, context->iter); - - /* read the full name, if we enter the equals sign state - * then add the attribute to the list (without the value), - * otherwise store a partial chunk to be prepended later. - */ - if (context->iter != context->current_text_end) - context->state = STATE_AFTER_ATTRIBUTE_NAME; - break; - - case STATE_AFTER_ATTRIBUTE_NAME: - /* Possible next states: AFTER_ATTRIBUTE_EQUALS_SIGN */ - - skip_spaces (context); - - if (context->iter != context->current_text_end) - { - /* The name has ended. Combine it with the partial chunk - * if any; push it on the stack; enter next state. - */ - add_attribute (context, g_string_free (context->partial_chunk, FALSE)); - - context->partial_chunk = NULL; - context->start = NULL; - - if (*context->iter == '=') - { - advance_char (context); - context->state = STATE_AFTER_ATTRIBUTE_EQUALS_SIGN; - } - else - { - gchar buf[8]; - - set_error (context, - error, - G_MARKUP_ERROR_PARSE, - _("Odd character '%s', expected a '=' after " - "attribute name '%s' of element '%s'"), - utf8_str (context->iter, buf), - current_attribute (context), - current_element (context)); - - } - } - break; - - case STATE_BETWEEN_ATTRIBUTES: - /* Possible next states: AFTER_CLOSE_ANGLE, - * AFTER_ELISION_SLASH, INSIDE_ATTRIBUTE_NAME - */ - skip_spaces (context); - - if (context->iter != context->current_text_end) - { - if (*context->iter == '/') - { - advance_char (context); - context->state = STATE_AFTER_ELISION_SLASH; - } - else if (*context->iter == '>') - { - - advance_char (context); - context->state = STATE_AFTER_CLOSE_ANGLE; - } - else if (is_name_start_char (context->iter)) - { - context->state = STATE_INSIDE_ATTRIBUTE_NAME; - /* start of attribute name */ - context->start = context->iter; - } - else - { - gchar buf[8]; - - set_error (context, - error, - G_MARKUP_ERROR_PARSE, - _("Odd character '%s', expected a '>' or '/' " - "character to end the start tag of " - "element '%s', or optionally an attribute; " - "perhaps you used an invalid character in " - "an attribute name"), - utf8_str (context->iter, buf), - current_element (context)); - } - - /* If we're done with attributes, invoke - * the start_element callback - */ - if (context->state == STATE_AFTER_ELISION_SLASH || - context->state == STATE_AFTER_CLOSE_ANGLE) - { - const gchar *start_name; - /* Ugly, but the current code expects an empty array instead of NULL */ - const gchar *empty = NULL; - const gchar **attr_names = ∅ - const gchar **attr_values = ∅ - GError *tmp_error; - - /* Call user callback for element start */ - start_name = current_element (context); - - if (context->cur_attr >= 0) - { - attr_names = (const gchar**)context->attr_names; - attr_values = (const gchar**)context->attr_values; - } - - tmp_error = NULL; - if (context->parser->start_element) - (* context->parser->start_element) (context, - start_name, - (const gchar **)attr_names, - (const gchar **)attr_values, - context->user_data, - &tmp_error); - - /* Go ahead and free the attributes. */ - for (; context->cur_attr >= 0; context->cur_attr--) - { - int pos = context->cur_attr; - g_free (context->attr_names[pos]); - g_free (context->attr_values[pos]); - context->attr_names[pos] = context->attr_values[pos] = NULL; - } - g_assert (context->cur_attr == -1); - g_assert (context->attr_names == NULL || - context->attr_names[0] == NULL); - g_assert (context->attr_values == NULL || - context->attr_values[0] == NULL); - - if (tmp_error != NULL) - propagate_error (context, error, tmp_error); - } - } - break; - - case STATE_AFTER_ATTRIBUTE_EQUALS_SIGN: - /* Possible next state: INSIDE_ATTRIBUTE_VALUE_[SQ/DQ] */ - - skip_spaces (context); - - if (context->iter != context->current_text_end) - { - if (*context->iter == '"') - { - advance_char (context); - context->state = STATE_INSIDE_ATTRIBUTE_VALUE_DQ; - context->start = context->iter; - } - else if (*context->iter == '\'') - { - advance_char (context); - context->state = STATE_INSIDE_ATTRIBUTE_VALUE_SQ; - context->start = context->iter; - } - else - { - gchar buf[8]; - - set_error (context, - error, - G_MARKUP_ERROR_PARSE, - _("Odd character '%s', expected an open quote mark " - "after the equals sign when giving value for " - "attribute '%s' of element '%s'"), - utf8_str (context->iter, buf), - current_attribute (context), - current_element (context)); - } - } - break; - - case STATE_INSIDE_ATTRIBUTE_VALUE_SQ: - case STATE_INSIDE_ATTRIBUTE_VALUE_DQ: - /* Possible next states: BETWEEN_ATTRIBUTES */ - { - gchar delim; - - if (context->state == STATE_INSIDE_ATTRIBUTE_VALUE_SQ) - { - delim = '\''; - } - else - { - delim = '"'; - } - - do - { - if (*context->iter == delim) - break; - } - while (advance_char (context)); - } - if (context->iter == context->current_text_end) - { - /* The value hasn't necessarily ended. Merge with - * partial chunk, leave state unchanged. - */ - add_to_partial (context, context->start, context->iter); - } - else - { - /* The value has ended at the quote mark. Combine it - * with the partial chunk if any; set it for the current - * attribute. - */ - GString *unescaped; - - add_to_partial (context, context->start, context->iter); - - g_assert (context->cur_attr >= 0); - - if (unescape_text (context, - context->partial_chunk->str, - context->partial_chunk->str + - context->partial_chunk->len, - &unescaped, - error)) - { - /* success, advance past quote and set state. */ - context->attr_values[context->cur_attr] = g_string_free (unescaped, FALSE); - advance_char (context); - context->state = STATE_BETWEEN_ATTRIBUTES; - context->start = NULL; - } - - truncate_partial (context); - } - break; - - case STATE_INSIDE_TEXT: - /* Possible next states: AFTER_OPEN_ANGLE */ - do - { - if (*context->iter == '<') - break; - } - while (advance_char (context)); - - /* The text hasn't necessarily ended. Merge with - * partial chunk, leave state unchanged. - */ - - add_to_partial (context, context->start, context->iter); - - if (context->iter != context->current_text_end) - { - GString *unescaped = NULL; - - /* The text has ended at the open angle. Call the text - * callback. - */ - - if (unescape_text (context, - context->partial_chunk->str, - context->partial_chunk->str + - context->partial_chunk->len, - &unescaped, - error)) - { - GError *tmp_error = NULL; - - if (context->parser->text) - (*context->parser->text) (context, - unescaped->str, - unescaped->len, - context->user_data, - &tmp_error); - - g_string_free (unescaped, TRUE); - - if (tmp_error == NULL) - { - /* advance past open angle and set state. */ - advance_char (context); - context->state = STATE_AFTER_OPEN_ANGLE; - /* could begin a passthrough */ - context->start = context->iter; - } - else - propagate_error (context, error, tmp_error); - } - - truncate_partial (context); - } - break; - - case STATE_AFTER_CLOSE_TAG_SLASH: - /* Possible next state: INSIDE_CLOSE_TAG_NAME */ - if (is_name_start_char (context->iter)) - { - context->state = STATE_INSIDE_CLOSE_TAG_NAME; - - /* start of tag name */ - context->start = context->iter; - } - else - { - gchar buf[8]; - - set_error (context, - error, - G_MARKUP_ERROR_PARSE, - _("'%s' is not a valid character following " - "the characters 'iter, buf), - utf8_str (context->iter, buf)); - } - break; - - case STATE_INSIDE_CLOSE_TAG_NAME: - /* Possible next state: AFTER_CLOSE_TAG_NAME */ - advance_to_name_end (context); - add_to_partial (context, context->start, context->iter); - - if (context->iter != context->current_text_end) - context->state = STATE_AFTER_CLOSE_TAG_NAME; - break; - - case STATE_AFTER_CLOSE_TAG_NAME: - /* Possible next state: AFTER_CLOSE_TAG_SLASH */ - - skip_spaces (context); - - if (context->iter != context->current_text_end) - { - gchar *close_name; - - /* The name has ended. Combine it with the partial chunk - * if any; check that it matches stack top and pop - * stack; invoke proper callback; enter next state. - */ - close_name = g_string_free (context->partial_chunk, FALSE); - context->partial_chunk = NULL; - - if (*context->iter != '>') - { - gchar buf[8]; - - set_error (context, - error, - G_MARKUP_ERROR_PARSE, - _("'%s' is not a valid character following " - "the close element name '%s'; the allowed " - "character is '>'"), - utf8_str (context->iter, buf), - close_name); - } - else if (context->tag_stack == NULL) - { - set_error (context, - error, - G_MARKUP_ERROR_PARSE, - _("Element '%s' was closed, no element " - "is currently open"), - close_name); - } - else if (strcmp (close_name, current_element (context)) != 0) - { - set_error (context, - error, - G_MARKUP_ERROR_PARSE, - _("Element '%s' was closed, but the currently " - "open element is '%s'"), - close_name, - current_element (context)); - } - else - { - GError *tmp_error; - advance_char (context); - context->state = STATE_AFTER_CLOSE_ANGLE; - context->start = NULL; - - possibly_finish_subparser (context); - - /* call the end_element callback */ - tmp_error = NULL; - if (context->parser->end_element) - (* context->parser->end_element) (context, - close_name, - context->user_data, - &tmp_error); - - ensure_no_outstanding_subparser (context); - - /* Pop the tag stack */ - g_free (context->tag_stack->data); - context->tag_stack = g_slist_delete_link (context->tag_stack, - context->tag_stack); - - if (tmp_error) - propagate_error (context, error, tmp_error); - } - - g_free (close_name); - } - break; - - case STATE_INSIDE_PASSTHROUGH: - /* Possible next state: AFTER_CLOSE_ANGLE */ - do - { - if (*context->iter == '<') - context->balance++; - if (*context->iter == '>') - { - gchar *str; - gsize len; - - context->balance--; - add_to_partial (context, context->start, context->iter); - context->start = context->iter; - - str = context->partial_chunk->str; - len = context->partial_chunk->len; - - if (str[1] == '?' && str[len - 1] == '?') - break; - if (strncmp (str, "s - * @translation_domain: a translation domain to use for translating - * the output for the options in @entries - * with gettext(), or %NULL - * - * A convenience function which creates a main group if it doesn't - * exist, adds the @entries to it and sets the translation domain. - * - * Since: 2.6 - **/ -void -g_option_context_add_main_entries (GOptionContext *context, - const GOptionEntry *entries, - const gchar *translation_domain) -{ - g_return_if_fail (entries != NULL); - - if (!context->main_group) - context->main_group = g_option_group_new (NULL, NULL, NULL, NULL, NULL); - - g_option_group_add_entries (context->main_group, entries); - g_option_group_set_translation_domain (context->main_group, translation_domain); -} - -static gint -calculate_max_length (GOptionGroup *group) -{ - GOptionEntry *entry; - gint i, len, max_length; - - max_length = 0; - - for (i = 0; i < group->n_entries; i++) - { - entry = &group->entries[i]; - - if (entry->flags & G_OPTION_FLAG_HIDDEN) - continue; - - len = _g_utf8_strwidth (entry->long_name, -1); - - if (entry->short_name) - len += 4; - - if (!NO_ARG (entry) && entry->arg_description) - len += 1 + _g_utf8_strwidth (TRANSLATE (group, entry->arg_description), -1); - - max_length = MAX (max_length, len); - } - - return max_length; -} - -static void -print_entry (GOptionGroup *group, - gint max_length, - const GOptionEntry *entry, - GString *string) -{ - GString *str; - - if (entry->flags & G_OPTION_FLAG_HIDDEN) - return; - - if (entry->long_name[0] == 0) - return; - - str = g_string_new (NULL); - - if (entry->short_name) - g_string_append_printf (str, " -%c, --%s", entry->short_name, entry->long_name); - else - g_string_append_printf (str, " --%s", entry->long_name); - - if (entry->arg_description) - g_string_append_printf (str, "=%s", TRANSLATE (group, entry->arg_description)); - - g_string_append_printf (string, "%s%*s %s\n", str->str, - (int) (max_length + 4 - _g_utf8_strwidth (str->str, -1)), "", - entry->description ? TRANSLATE (group, entry->description) : ""); - g_string_free (str, TRUE); -} - -static gboolean -group_has_visible_entries (GOptionContext *context, - GOptionGroup *group, - gboolean main_entries) -{ - GOptionFlags reject_filter = G_OPTION_FLAG_HIDDEN; - GOptionEntry *entry; - gint i, l; - gboolean main_group = group == context->main_group; - - if (!main_entries) - reject_filter |= G_OPTION_FLAG_IN_MAIN; - - for (i = 0, l = (group ? group->n_entries : 0); i < l; i++) - { - entry = &group->entries[i]; - - if (main_entries && !main_group && !(entry->flags & G_OPTION_FLAG_IN_MAIN)) - continue; - if (!(entry->flags & reject_filter)) - return TRUE; - } - - return FALSE; -} - -static gboolean -group_list_has_visible_entires (GOptionContext *context, - GList *group_list, - gboolean main_entries) -{ - while (group_list) - { - if (group_has_visible_entries (context, group_list->data, main_entries)) - return TRUE; - - group_list = group_list->next; - } - - return FALSE; -} - -/** - * g_option_context_get_help: - * @context: a #GOptionContext - * @main_help: if %TRUE, only include the main group - * @group: the #GOptionGroup to create help for, or %NULL - * - * Returns a formatted, translated help text for the given context. - * To obtain the text produced by , call - * g_option_context_get_help (context, TRUE, NULL). - * To obtain the text produced by , call - * g_option_context_get_help (context, FALSE, NULL). - * To obtain the help text for an option group, call - * g_option_context_get_help (context, FALSE, group). - * - * Returns: A newly allocated string containing the help text - * - * Since: 2.14 - */ -gchar * -g_option_context_get_help (GOptionContext *context, - gboolean main_help, - GOptionGroup *group) -{ - GList *list; - gint max_length, len; - gint i; - GOptionEntry *entry; - GHashTable *shadow_map; - gboolean seen[256]; - const gchar *rest_description; - GString *string; - - string = g_string_sized_new (1024); - - rest_description = NULL; - if (context->main_group) - { - - for (i = 0; i < context->main_group->n_entries; i++) - { - entry = &context->main_group->entries[i]; - if (entry->long_name[0] == 0) - { - rest_description = TRANSLATE (context->main_group, entry->arg_description); - break; - } - } - } - - g_string_append_printf (string, "%s\n %s %s", - _("Usage:"), g_get_prgname(), _("[OPTION...]")); - - if (rest_description) - { - g_string_append (string, " "); - g_string_append (string, rest_description); - } - - if (context->parameter_string) - { - g_string_append (string, " "); - g_string_append (string, TRANSLATE (context, context->parameter_string)); - } - - g_string_append (string, "\n\n"); - - if (context->summary) - { - g_string_append (string, TRANSLATE (context, context->summary)); - g_string_append (string, "\n\n"); - } - - memset (seen, 0, sizeof (gboolean) * 256); - shadow_map = g_hash_table_new (g_str_hash, g_str_equal); - - if (context->main_group) - { - for (i = 0; i < context->main_group->n_entries; i++) - { - entry = &context->main_group->entries[i]; - g_hash_table_insert (shadow_map, - (gpointer)entry->long_name, - entry); - - if (seen[(guchar)entry->short_name]) - entry->short_name = 0; - else - seen[(guchar)entry->short_name] = TRUE; - } - } - - list = context->groups; - while (list != NULL) - { - GOptionGroup *g = list->data; - for (i = 0; i < g->n_entries; i++) - { - entry = &g->entries[i]; - if (g_hash_table_lookup (shadow_map, entry->long_name) && - !(entry->flags & G_OPTION_FLAG_NOALIAS)) - entry->long_name = g_strdup_printf ("%s-%s", g->name, entry->long_name); - else - g_hash_table_insert (shadow_map, (gpointer)entry->long_name, entry); - - if (seen[(guchar)entry->short_name] && - !(entry->flags & G_OPTION_FLAG_NOALIAS)) - entry->short_name = 0; - else - seen[(guchar)entry->short_name] = TRUE; - } - list = list->next; - } - - g_hash_table_destroy (shadow_map); - - list = context->groups; - - max_length = _g_utf8_strwidth ("-?, --help", -1); - - if (list) - { - len = _g_utf8_strwidth ("--help-all", -1); - max_length = MAX (max_length, len); - } - - if (context->main_group) - { - len = calculate_max_length (context->main_group); - max_length = MAX (max_length, len); - } - - while (list != NULL) - { - GOptionGroup *g = list->data; - - /* First, we check the --help- options */ - len = _g_utf8_strwidth ("--help-", -1) + _g_utf8_strwidth (g->name, -1); - max_length = MAX (max_length, len); - - /* Then we go through the entries */ - len = calculate_max_length (g); - max_length = MAX (max_length, len); - - list = list->next; - } - - /* Add a bit of padding */ - max_length += 4; - - if (!group) - { - list = context->groups; - - g_string_append_printf (string, "%s\n -%c, --%-*s %s\n", - _("Help Options:"), '?', max_length - 4, "help", - _("Show help options")); - - /* We only want --help-all when there are groups */ - if (list) - g_string_append_printf (string, " --%-*s %s\n", - max_length, "help-all", - _("Show all help options")); - - while (list) - { - GOptionGroup *g = list->data; - - if (group_has_visible_entries (context, g, FALSE)) - g_string_append_printf (string, " --help-%-*s %s\n", - max_length - 5, g->name, - TRANSLATE (g, g->help_description)); - - list = list->next; - } - - g_string_append (string, "\n"); - } - - if (group) - { - /* Print a certain group */ - - if (group_has_visible_entries (context, group, FALSE)) - { - g_string_append (string, TRANSLATE (group, group->description)); - g_string_append (string, "\n"); - for (i = 0; i < group->n_entries; i++) - print_entry (group, max_length, &group->entries[i], string); - g_string_append (string, "\n"); - } - } - else if (!main_help) - { - /* Print all groups */ - - list = context->groups; - - while (list) - { - GOptionGroup *g = list->data; - - if (group_has_visible_entries (context, g, FALSE)) - { - g_string_append (string, g->description); - g_string_append (string, "\n"); - for (i = 0; i < g->n_entries; i++) - if (!(g->entries[i].flags & G_OPTION_FLAG_IN_MAIN)) - print_entry (g, max_length, &g->entries[i], string); - - g_string_append (string, "\n"); - } - - list = list->next; - } - } - - /* Print application options if --help or --help-all has been specified */ - if ((main_help || !group) && - (group_has_visible_entries (context, context->main_group, TRUE) || - group_list_has_visible_entires (context, context->groups, TRUE))) - { - list = context->groups; - - g_string_append (string, _("Application Options:")); - g_string_append (string, "\n"); - if (context->main_group) - for (i = 0; i < context->main_group->n_entries; i++) - print_entry (context->main_group, max_length, - &context->main_group->entries[i], string); - - while (list != NULL) - { - GOptionGroup *g = list->data; - - /* Print main entries from other groups */ - for (i = 0; i < g->n_entries; i++) - if (g->entries[i].flags & G_OPTION_FLAG_IN_MAIN) - print_entry (g, max_length, &g->entries[i], string); - - list = list->next; - } - - g_string_append (string, "\n"); - } - - if (context->description) - { - g_string_append (string, TRANSLATE (context, context->description)); - g_string_append (string, "\n"); - } - - return g_string_free (string, FALSE); -} - -G_GNUC_NORETURN -static void -print_help (GOptionContext *context, - gboolean main_help, - GOptionGroup *group) -{ - gchar *help; - - help = g_option_context_get_help (context, main_help, group); - g_print ("%s", help); - g_free (help); - - exit (0); -} - -static gboolean -parse_int (const gchar *arg_name, - const gchar *arg, - gint *result, - GError **error) -{ - gchar *end; - glong tmp; - - errno = 0; - tmp = strtol (arg, &end, 0); - - if (*arg == '\0' || *end != '\0') - { - g_set_error (error, - G_OPTION_ERROR, G_OPTION_ERROR_BAD_VALUE, - _("Cannot parse integer value '%s' for %s"), - arg, arg_name); - return FALSE; - } - - *result = tmp; - if (*result != tmp || errno == ERANGE) - { - g_set_error (error, - G_OPTION_ERROR, G_OPTION_ERROR_BAD_VALUE, - _("Integer value '%s' for %s out of range"), - arg, arg_name); - return FALSE; - } - - return TRUE; -} - - -static gboolean -parse_double (const gchar *arg_name, - const gchar *arg, - gdouble *result, - GError **error) -{ - gchar *end; - gdouble tmp; - - errno = 0; - tmp = g_strtod (arg, &end); - - if (*arg == '\0' || *end != '\0') - { - g_set_error (error, - G_OPTION_ERROR, G_OPTION_ERROR_BAD_VALUE, - _("Cannot parse double value '%s' for %s"), - arg, arg_name); - return FALSE; - } - if (errno == ERANGE) - { - g_set_error (error, - G_OPTION_ERROR, G_OPTION_ERROR_BAD_VALUE, - _("Double value '%s' for %s out of range"), - arg, arg_name); - return FALSE; - } - - *result = tmp; - - return TRUE; -} - - -static gboolean -parse_int64 (const gchar *arg_name, - const gchar *arg, - gint64 *result, - GError **error) -{ - gchar *end; - gint64 tmp; - - errno = 0; - tmp = g_ascii_strtoll (arg, &end, 0); - - if (*arg == '\0' || *end != '\0') - { - g_set_error (error, - G_OPTION_ERROR, G_OPTION_ERROR_BAD_VALUE, - _("Cannot parse integer value '%s' for %s"), - arg, arg_name); - return FALSE; - } - if (errno == ERANGE) - { - g_set_error (error, - G_OPTION_ERROR, G_OPTION_ERROR_BAD_VALUE, - _("Integer value '%s' for %s out of range"), - arg, arg_name); - return FALSE; - } - - *result = tmp; - - return TRUE; -} - - -static Change * -get_change (GOptionContext *context, - GOptionArg arg_type, - gpointer arg_data) -{ - GList *list; - Change *change = NULL; - - for (list = context->changes; list != NULL; list = list->next) - { - change = list->data; - - if (change->arg_data == arg_data) - goto found; - } - - change = g_new0 (Change, 1); - change->arg_type = arg_type; - change->arg_data = arg_data; - - context->changes = g_list_prepend (context->changes, change); - - found: - - return change; -} - -static void -add_pending_null (GOptionContext *context, - gchar **ptr, - gchar *value) -{ - PendingNull *n; - - n = g_new0 (PendingNull, 1); - n->ptr = ptr; - n->value = value; - - context->pending_nulls = g_list_prepend (context->pending_nulls, n); -} - -static gboolean -parse_arg (GOptionContext *context, - GOptionGroup *group, - GOptionEntry *entry, - const gchar *value, - const gchar *option_name, - GError **error) - -{ - Change *change; - - g_assert (value || OPTIONAL_ARG (entry) || NO_ARG (entry)); - - switch (entry->arg) - { - case G_OPTION_ARG_NONE: - { - change = get_change (context, G_OPTION_ARG_NONE, - entry->arg_data); - - *(gboolean *)entry->arg_data = !(entry->flags & G_OPTION_FLAG_REVERSE); - break; - } - case G_OPTION_ARG_STRING: - { - gchar *data; - - data = g_locale_to_utf8 (value, -1, NULL, NULL, error); - - if (!data) - return FALSE; - - change = get_change (context, G_OPTION_ARG_STRING, - entry->arg_data); - g_free (change->allocated.str); - - change->prev.str = *(gchar **)entry->arg_data; - change->allocated.str = data; - - *(gchar **)entry->arg_data = data; - break; - } - case G_OPTION_ARG_STRING_ARRAY: - { - gchar *data; - - data = g_locale_to_utf8 (value, -1, NULL, NULL, error); - - if (!data) - return FALSE; - - change = get_change (context, G_OPTION_ARG_STRING_ARRAY, - entry->arg_data); - - if (change->allocated.array.len == 0) - { - change->prev.array = *(gchar ***)entry->arg_data; - change->allocated.array.data = g_new (gchar *, 2); - } - else - change->allocated.array.data = - g_renew (gchar *, change->allocated.array.data, - change->allocated.array.len + 2); - - change->allocated.array.data[change->allocated.array.len] = data; - change->allocated.array.data[change->allocated.array.len + 1] = NULL; - - change->allocated.array.len ++; - - *(gchar ***)entry->arg_data = change->allocated.array.data; - - break; - } - - case G_OPTION_ARG_FILENAME: - { - gchar *data; - -#ifdef G_OS_WIN32 - data = g_locale_to_utf8 (value, -1, NULL, NULL, error); - - if (!data) - return FALSE; -#else - data = g_strdup (value); -#endif - change = get_change (context, G_OPTION_ARG_FILENAME, - entry->arg_data); - g_free (change->allocated.str); - - change->prev.str = *(gchar **)entry->arg_data; - change->allocated.str = data; - - *(gchar **)entry->arg_data = data; - break; - } - - case G_OPTION_ARG_FILENAME_ARRAY: - { - gchar *data; - -#ifdef G_OS_WIN32 - data = g_locale_to_utf8 (value, -1, NULL, NULL, error); - - if (!data) - return FALSE; -#else - data = g_strdup (value); -#endif - change = get_change (context, G_OPTION_ARG_STRING_ARRAY, - entry->arg_data); - - if (change->allocated.array.len == 0) - { - change->prev.array = *(gchar ***)entry->arg_data; - change->allocated.array.data = g_new (gchar *, 2); - } - else - change->allocated.array.data = - g_renew (gchar *, change->allocated.array.data, - change->allocated.array.len + 2); - - change->allocated.array.data[change->allocated.array.len] = data; - change->allocated.array.data[change->allocated.array.len + 1] = NULL; - - change->allocated.array.len ++; - - *(gchar ***)entry->arg_data = change->allocated.array.data; - - break; - } - - case G_OPTION_ARG_INT: - { - gint data; - - if (!parse_int (option_name, value, - &data, - error)) - return FALSE; - - change = get_change (context, G_OPTION_ARG_INT, - entry->arg_data); - change->prev.integer = *(gint *)entry->arg_data; - *(gint *)entry->arg_data = data; - break; - } - case G_OPTION_ARG_CALLBACK: - { - gchar *data; - gboolean retval; - - if (!value && entry->flags & G_OPTION_FLAG_OPTIONAL_ARG) - data = NULL; - else if (entry->flags & G_OPTION_FLAG_NO_ARG) - data = NULL; - else if (entry->flags & G_OPTION_FLAG_FILENAME) - { -#ifdef G_OS_WIN32 - data = g_locale_to_utf8 (value, -1, NULL, NULL, error); -#else - data = g_strdup (value); -#endif - } - else - data = g_locale_to_utf8 (value, -1, NULL, NULL, error); - - if (!(entry->flags & (G_OPTION_FLAG_NO_ARG|G_OPTION_FLAG_OPTIONAL_ARG)) && - !data) - return FALSE; - - retval = (* (GOptionArgFunc) entry->arg_data) (option_name, data, group->user_data, error); - - if (!retval && error != NULL && *error == NULL) - g_set_error (error, - G_OPTION_ERROR, G_OPTION_ERROR_FAILED, - _("Error parsing option %s"), option_name); - - g_free (data); - - return retval; - - break; - } - case G_OPTION_ARG_DOUBLE: - { - gdouble data; - - if (!parse_double (option_name, value, - &data, - error)) - { - return FALSE; - } - - change = get_change (context, G_OPTION_ARG_DOUBLE, - entry->arg_data); - change->prev.dbl = *(gdouble *)entry->arg_data; - *(gdouble *)entry->arg_data = data; - break; - } - case G_OPTION_ARG_INT64: - { - gint64 data; - - if (!parse_int64 (option_name, value, - &data, - error)) - { - return FALSE; - } - - change = get_change (context, G_OPTION_ARG_INT64, - entry->arg_data); - change->prev.int64 = *(gint64 *)entry->arg_data; - *(gint64 *)entry->arg_data = data; - break; - } - default: - g_assert_not_reached (); - } - - return TRUE; -} - -static gboolean -parse_short_option (GOptionContext *context, - GOptionGroup *group, - gint idx, - gint *new_idx, - gchar arg, - gint *argc, - gchar ***argv, - GError **error, - gboolean *parsed) -{ - gint j; - - for (j = 0; j < group->n_entries; j++) - { - if (arg == group->entries[j].short_name) - { - gchar *option_name; - gchar *value = NULL; - - option_name = g_strdup_printf ("-%c", group->entries[j].short_name); - - if (NO_ARG (&group->entries[j])) - value = NULL; - else - { - if (*new_idx > idx) - { - g_set_error (error, - G_OPTION_ERROR, G_OPTION_ERROR_FAILED, - _("Error parsing option %s"), option_name); - g_free (option_name); - return FALSE; - } - - if (idx < *argc - 1) - { - if (!OPTIONAL_ARG (&group->entries[j])) - { - value = (*argv)[idx + 1]; - add_pending_null (context, &((*argv)[idx + 1]), NULL); - *new_idx = idx + 1; - } - else - { - if ((*argv)[idx + 1][0] == '-') - value = NULL; - else - { - value = (*argv)[idx + 1]; - add_pending_null (context, &((*argv)[idx + 1]), NULL); - *new_idx = idx + 1; - } - } - } - else if (idx >= *argc - 1 && OPTIONAL_ARG (&group->entries[j])) - value = NULL; - else - { - g_set_error (error, - G_OPTION_ERROR, G_OPTION_ERROR_BAD_VALUE, - _("Missing argument for %s"), option_name); - g_free (option_name); - return FALSE; - } - } - - if (!parse_arg (context, group, &group->entries[j], - value, option_name, error)) - { - g_free (option_name); - return FALSE; - } - - g_free (option_name); - *parsed = TRUE; - } - } - - return TRUE; -} - -static gboolean -parse_long_option (GOptionContext *context, - GOptionGroup *group, - gint *idx, - gchar *arg, - gboolean aliased, - gint *argc, - gchar ***argv, - GError **error, - gboolean *parsed) -{ - gint j; - - for (j = 0; j < group->n_entries; j++) - { - if (*idx >= *argc) - return TRUE; - - if (aliased && (group->entries[j].flags & G_OPTION_FLAG_NOALIAS)) - continue; - - if (NO_ARG (&group->entries[j]) && - strcmp (arg, group->entries[j].long_name) == 0) - { - gchar *option_name; - gboolean retval; - - option_name = g_strconcat ("--", group->entries[j].long_name, NULL); - retval = parse_arg (context, group, &group->entries[j], - NULL, option_name, error); - g_free(option_name); - - add_pending_null (context, &((*argv)[*idx]), NULL); - *parsed = TRUE; - - return retval; - } - else - { - gint len = strlen (group->entries[j].long_name); - - if (strncmp (arg, group->entries[j].long_name, len) == 0 && - (arg[len] == '=' || arg[len] == 0)) - { - gchar *value = NULL; - gchar *option_name; - - add_pending_null (context, &((*argv)[*idx]), NULL); - option_name = g_strconcat ("--", group->entries[j].long_name, NULL); - - if (arg[len] == '=') - value = arg + len + 1; - else if (*idx < *argc - 1) - { - if (!(group->entries[j].flags & G_OPTION_FLAG_OPTIONAL_ARG)) - { - value = (*argv)[*idx + 1]; - add_pending_null (context, &((*argv)[*idx + 1]), NULL); - (*idx)++; - } - else - { - if ((*argv)[*idx + 1][0] == '-') - { - gboolean retval; - retval = parse_arg (context, group, &group->entries[j], - NULL, option_name, error); - *parsed = TRUE; - g_free (option_name); - return retval; - } - else - { - value = (*argv)[*idx + 1]; - add_pending_null (context, &((*argv)[*idx + 1]), NULL); - (*idx)++; - } - } - } - else if (*idx >= *argc - 1 && - group->entries[j].flags & G_OPTION_FLAG_OPTIONAL_ARG) - { - gboolean retval; - retval = parse_arg (context, group, &group->entries[j], - NULL, option_name, error); - *parsed = TRUE; - g_free (option_name); - return retval; - } - else - { - g_set_error (error, - G_OPTION_ERROR, G_OPTION_ERROR_BAD_VALUE, - _("Missing argument for %s"), option_name); - g_free (option_name); - return FALSE; - } - - if (!parse_arg (context, group, &group->entries[j], - value, option_name, error)) - { - g_free (option_name); - return FALSE; - } - - g_free (option_name); - *parsed = TRUE; - } - } - } - - return TRUE; -} - -static gboolean -parse_remaining_arg (GOptionContext *context, - GOptionGroup *group, - gint *idx, - gint *argc, - gchar ***argv, - GError **error, - gboolean *parsed) -{ - gint j; - - for (j = 0; j < group->n_entries; j++) - { - if (*idx >= *argc) - return TRUE; - - if (group->entries[j].long_name[0]) - continue; - - g_return_val_if_fail (group->entries[j].arg == G_OPTION_ARG_CALLBACK || - group->entries[j].arg == G_OPTION_ARG_STRING_ARRAY || - group->entries[j].arg == G_OPTION_ARG_FILENAME_ARRAY, FALSE); - - add_pending_null (context, &((*argv)[*idx]), NULL); - - if (!parse_arg (context, group, &group->entries[j], (*argv)[*idx], "", error)) - return FALSE; - - *parsed = TRUE; - return TRUE; - } - - return TRUE; -} - -static void -free_changes_list (GOptionContext *context, - gboolean revert) -{ - GList *list; - - for (list = context->changes; list != NULL; list = list->next) - { - Change *change = list->data; - - if (revert) - { - switch (change->arg_type) - { - case G_OPTION_ARG_NONE: - *(gboolean *)change->arg_data = change->prev.bool; - break; - case G_OPTION_ARG_INT: - *(gint *)change->arg_data = change->prev.integer; - break; - case G_OPTION_ARG_STRING: - case G_OPTION_ARG_FILENAME: - g_free (change->allocated.str); - *(gchar **)change->arg_data = change->prev.str; - break; - case G_OPTION_ARG_STRING_ARRAY: - case G_OPTION_ARG_FILENAME_ARRAY: - g_strfreev (change->allocated.array.data); - *(gchar ***)change->arg_data = change->prev.array; - break; - case G_OPTION_ARG_DOUBLE: - *(gdouble *)change->arg_data = change->prev.dbl; - break; - case G_OPTION_ARG_INT64: - *(gint64 *)change->arg_data = change->prev.int64; - break; - default: - g_assert_not_reached (); - } - } - - g_free (change); - } - - g_list_free (context->changes); - context->changes = NULL; -} - -static void -free_pending_nulls (GOptionContext *context, - gboolean perform_nulls) -{ - GList *list; - - for (list = context->pending_nulls; list != NULL; list = list->next) - { - PendingNull *n = list->data; - - if (perform_nulls) - { - if (n->value) - { - /* Copy back the short options */ - *(n->ptr)[0] = '-'; - strcpy (*n->ptr + 1, n->value); - } - else - *n->ptr = NULL; - } - - g_free (n->value); - g_free (n); - } - - g_list_free (context->pending_nulls); - context->pending_nulls = NULL; -} - -/** - * g_option_context_parse: - * @context: a #GOptionContext - * @argc: a pointer to the number of command line arguments - * @argv: a pointer to the array of command line arguments - * @error: a return location for errors - * - * Parses the command line arguments, recognizing options - * which have been added to @context. A side-effect of - * calling this function is that g_set_prgname() will be - * called. - * - * If the parsing is successful, any parsed arguments are - * removed from the array and @argc and @argv are updated - * accordingly. A '--' option is stripped from @argv - * unless there are unparsed options before and after it, - * or some of the options after it start with '-'. In case - * of an error, @argc and @argv are left unmodified. - * - * If automatic support is enabled - * (see g_option_context_set_help_enabled()), and the - * @argv array contains one of the recognized help options, - * this function will produce help output to stdout and - * call exit (0). - * - * Note that function depends on the - * current locale for - * automatic character set conversion of string and filename - * arguments. - * - * Return value: %TRUE if the parsing was successful, - * %FALSE if an error occurred - * - * Since: 2.6 - **/ -gboolean -g_option_context_parse (GOptionContext *context, - gint *argc, - gchar ***argv, - GError **error) -{ - gint i, j, k; - GList *list; - - /* Set program name */ - if (!g_get_prgname()) - { - if (argc && argv && *argc) - { - gchar *prgname; - - prgname = g_path_get_basename ((*argv)[0]); - g_set_prgname (prgname); - g_free (prgname); - } - else - g_set_prgname (""); - } - - /* Call pre-parse hooks */ - list = context->groups; - while (list) - { - GOptionGroup *group = list->data; - - if (group->pre_parse_func) - { - if (!(* group->pre_parse_func) (context, group, - group->user_data, error)) - goto fail; - } - - list = list->next; - } - - if (context->main_group && context->main_group->pre_parse_func) - { - if (!(* context->main_group->pre_parse_func) (context, context->main_group, - context->main_group->user_data, error)) - goto fail; - } - - if (argc && argv) - { - gboolean stop_parsing = FALSE; - gboolean has_unknown = FALSE; - gint separator_pos = 0; - - for (i = 1; i < *argc; i++) - { - gchar *arg, *dash; - gboolean parsed = FALSE; - - if ((*argv)[i][0] == '-' && (*argv)[i][1] != '\0' && !stop_parsing) - { - if ((*argv)[i][1] == '-') - { - /* -- option */ - - arg = (*argv)[i] + 2; - - /* '--' terminates list of arguments */ - if (*arg == 0) - { - separator_pos = i; - stop_parsing = TRUE; - continue; - } - - /* Handle help options */ - if (context->help_enabled) - { - if (strcmp (arg, "help") == 0) - print_help (context, TRUE, NULL); - else if (strcmp (arg, "help-all") == 0) - print_help (context, FALSE, NULL); - else if (strncmp (arg, "help-", 5) == 0) - { - list = context->groups; - - while (list) - { - GOptionGroup *group = list->data; - - if (strcmp (arg + 5, group->name) == 0) - print_help (context, FALSE, group); - - list = list->next; - } - } - } - - if (context->main_group && - !parse_long_option (context, context->main_group, &i, arg, - FALSE, argc, argv, error, &parsed)) - goto fail; - - if (parsed) - continue; - - /* Try the groups */ - list = context->groups; - while (list) - { - GOptionGroup *group = list->data; - - if (!parse_long_option (context, group, &i, arg, - FALSE, argc, argv, error, &parsed)) - goto fail; - - if (parsed) - break; - - list = list->next; - } - - if (parsed) - continue; - - /* Now look for ---@name - * @description: a description for this group to be shown in - * . This string is translated using the translation - * domain or translation function of the group - * @help_description: a description for the @name option. - * This string is translated using the translation domain or translation function - * of the group - * @user_data: user data that will be passed to the pre- and post-parse hooks, - * the error hook and to callbacks of %G_OPTION_ARG_CALLBACK options, or %NULL - * @destroy: a function that will be called to free @user_data, or %NULL - * - * Creates a new #GOptionGroup. - * - * Return value: a newly created option group. It should be added - * to a #GOptionContext or freed with g_option_group_free(). - * - * Since: 2.6 - **/ -GOptionGroup * -g_option_group_new (const gchar *name, - const gchar *description, - const gchar *help_description, - gpointer user_data, - GDestroyNotify destroy) - -{ - GOptionGroup *group; - - group = g_new0 (GOptionGroup, 1); - group->name = g_strdup (name); - group->description = g_strdup (description); - group->help_description = g_strdup (help_description); - group->user_data = user_data; - group->destroy_notify = destroy; - - return group; -} - - -/** - * g_option_group_free: - * @group: a #GOptionGroup - * - * Frees a #GOptionGroup. Note that you must not - * free groups which have been added to a #GOptionContext. - * - * Since: 2.6 - **/ -void -g_option_group_free (GOptionGroup *group) -{ - g_return_if_fail (group != NULL); - - g_free (group->name); - g_free (group->description); - g_free (group->help_description); - - g_free (group->entries); - - if (group->destroy_notify) - (* group->destroy_notify) (group->user_data); - - if (group->translate_notify) - (* group->translate_notify) (group->translate_data); - - g_free (group); -} - - -/** - * g_option_group_add_entries: - * @group: a #GOptionGroup - * @entries: a %NULL-terminated array of #GOptionEntrys - * - * Adds the options specified in @entries to @group. - * - * Since: 2.6 - **/ -void -g_option_group_add_entries (GOptionGroup *group, - const GOptionEntry *entries) -{ - gint i, n_entries; - - g_return_if_fail (entries != NULL); - - for (n_entries = 0; entries[n_entries].long_name != NULL; n_entries++) ; - - group->entries = g_renew (GOptionEntry, group->entries, group->n_entries + n_entries); - - memcpy (group->entries + group->n_entries, entries, sizeof (GOptionEntry) * n_entries); - - for (i = group->n_entries; i < group->n_entries + n_entries; i++) - { - gchar c = group->entries[i].short_name; - - if (c) - { - if (c == '-' || !g_ascii_isprint (c)) - { - g_warning (G_STRLOC": ignoring invalid short option '%c' (%d)", c, c); - group->entries[i].short_name = 0; - } - } - } - - group->n_entries += n_entries; -} - -/** - * g_option_group_set_parse_hooks: - * @group: a #GOptionGroup - * @pre_parse_func: a function to call before parsing, or %NULL - * @post_parse_func: a function to call after parsing, or %NULL - * - * Associates two functions with @group which will be called - * from g_option_context_parse() before the first option is parsed - * and after the last option has been parsed, respectively. - * - * Note that the user data to be passed to @pre_parse_func and - * @post_parse_func can be specified when constructing the group - * with g_option_group_new(). - * - * Since: 2.6 - **/ -void -g_option_group_set_parse_hooks (GOptionGroup *group, - GOptionParseFunc pre_parse_func, - GOptionParseFunc post_parse_func) -{ - g_return_if_fail (group != NULL); - - group->pre_parse_func = pre_parse_func; - group->post_parse_func = post_parse_func; -} - -/** - * g_option_group_set_error_hook: - * @group: a #GOptionGroup - * @error_func: a function to call when an error occurs - * - * Associates a function with @group which will be called - * from g_option_context_parse() when an error occurs. - * - * Note that the user data to be passed to @error_func can be - * specified when constructing the group with g_option_group_new(). - * - * Since: 2.6 - **/ -void -g_option_group_set_error_hook (GOptionGroup *group, - GOptionErrorFunc error_func) -{ - g_return_if_fail (group != NULL); - - group->error_func = error_func; -} - - -/** - * g_option_group_set_translate_func: - * @group: a #GOptionGroup - * @func: the #GTranslateFunc, or %NULL - * @data: user data to pass to @func, or %NULL - * @destroy_notify: a function which gets called to free @data, or %NULL - * - * Sets the function which is used to translate user-visible - * strings, for output. Different - * groups can use different #GTranslateFuncs. If @func - * is %NULL, strings are not translated. - * - * If you are using gettext(), you only need to set the translation - * domain, see g_option_group_set_translation_domain(). - * - * Since: 2.6 - **/ -void -g_option_group_set_translate_func (GOptionGroup *group, - GTranslateFunc func, - gpointer data, - GDestroyNotify destroy_notify) -{ - g_return_if_fail (group != NULL); - - if (group->translate_notify) - group->translate_notify (group->translate_data); - - group->translate_func = func; - group->translate_data = data; - group->translate_notify = destroy_notify; -} - -static const gchar * -dgettext_swapped (const gchar *msgid, - const gchar *domainname) -{ - return g_dgettext (domainname, msgid); -} - -/** - * g_option_group_set_translation_domain: - * @group: a #GOptionGroup - * @domain: the domain to use - * - * A convenience function to use gettext() for translating - * user-visible strings. - * - * Since: 2.6 - **/ -void -g_option_group_set_translation_domain (GOptionGroup *group, - const gchar *domain) -{ - g_return_if_fail (group != NULL); - - g_option_group_set_translate_func (group, - (GTranslateFunc)dgettext_swapped, - g_strdup (domain), - g_free); -} - -/** - * g_option_context_set_translate_func: - * @context: a #GOptionContext - * @func: the #GTranslateFunc, or %NULL - * @data: user data to pass to @func, or %NULL - * @destroy_notify: a function which gets called to free @data, or %NULL - * - * Sets the function which is used to translate the contexts - * user-visible strings, for output. - * If @func is %NULL, strings are not translated. - * - * Note that option groups have their own translation functions, - * this function only affects the @parameter_string (see g_option_context_new()), - * the summary (see g_option_context_set_summary()) and the description - * (see g_option_context_set_description()). - * - * If you are using gettext(), you only need to set the translation - * domain, see g_option_context_set_translation_domain(). - * - * Since: 2.12 - **/ -void -g_option_context_set_translate_func (GOptionContext *context, - GTranslateFunc func, - gpointer data, - GDestroyNotify destroy_notify) -{ - g_return_if_fail (context != NULL); - - if (context->translate_notify) - context->translate_notify (context->translate_data); - - context->translate_func = func; - context->translate_data = data; - context->translate_notify = destroy_notify; -} - -/** - * g_option_context_set_translation_domain: - * @context: a #GOptionContext - * @domain: the domain to use - * - * A convenience function to use gettext() for translating - * user-visible strings. - * - * Since: 2.12 - **/ -void -g_option_context_set_translation_domain (GOptionContext *context, - const gchar *domain) -{ - g_return_if_fail (context != NULL); - - g_option_context_set_translate_func (context, - (GTranslateFunc)dgettext_swapped, - g_strdup (domain), - g_free); -} - -/** - * g_option_context_set_summary: - * @context: a #GOptionContext - * @summary: a string to be shown in output - * before the list of options, or %NULL - * - * Adds a string to be displayed in output - * before the list of options. This is typically a summary of the - * program functionality. - * - * Note that the summary is translated (see - * g_option_context_set_translate_func() and - * g_option_context_set_translation_domain()). - * - * Since: 2.12 - */ -void -g_option_context_set_summary (GOptionContext *context, - const gchar *summary) -{ - g_return_if_fail (context != NULL); - - g_free (context->summary); - context->summary = g_strdup (summary); -} - - -/** - * g_option_context_get_summary: - * @context: a #GOptionContext - * - * Returns the summary. See g_option_context_set_summary(). - * - * Returns: the summary - * - * Since: 2.12 - */ -G_CONST_RETURN gchar * -g_option_context_get_summary (GOptionContext *context) -{ - g_return_val_if_fail (context != NULL, NULL); - - return context->summary; -} - -/** - * g_option_context_set_description: - * @context: a #GOptionContext - * @description: a string to be shown in output - * after the list of options, or %NULL - * - * Adds a string to be displayed in output - * after the list of options. This text often includes a bug reporting - * address. - * - * Note that the summary is translated (see - * g_option_context_set_translate_func()). - * - * Since: 2.12 - */ -void -g_option_context_set_description (GOptionContext *context, - const gchar *description) -{ - g_return_if_fail (context != NULL); - - g_free (context->description); - context->description = g_strdup (description); -} - - -/** - * g_option_context_get_description: - * @context: a #GOptionContext - * - * Returns the description. See g_option_context_set_description(). - * - * Returns: the description - * - * Since: 2.12 - */ -G_CONST_RETURN gchar * -g_option_context_get_description (GOptionContext *context) -{ - g_return_val_if_fail (context != NULL, NULL); - - return context->description; -} - - -#define __G_OPTION_C__ -#include "galiasdef.c" diff --git a/lib/win32/glib-2.20.4/glib/goption.h b/lib/win32/glib-2.20.4/glib/goption.h deleted file mode 100644 index 86fc0cd5d4a6e..0000000000000 --- a/lib/win32/glib-2.20.4/glib/goption.h +++ /dev/null @@ -1,163 +0,0 @@ -/* goption.h - Option parser - * - * Copyright (C) 2004 Anders Carlsson - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ - -#if defined(G_DISABLE_SINGLE_INCLUDES) && !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION) -#error "Only can be included directly." -#endif - -#ifndef __G_OPTION_H__ -#define __G_OPTION_H__ - -#include -#include - -G_BEGIN_DECLS - -typedef struct _GOptionContext GOptionContext; -typedef struct _GOptionGroup GOptionGroup; -typedef struct _GOptionEntry GOptionEntry; - -typedef enum -{ - G_OPTION_FLAG_HIDDEN = 1 << 0, - G_OPTION_FLAG_IN_MAIN = 1 << 1, - G_OPTION_FLAG_REVERSE = 1 << 2, - G_OPTION_FLAG_NO_ARG = 1 << 3, - G_OPTION_FLAG_FILENAME = 1 << 4, - G_OPTION_FLAG_OPTIONAL_ARG = 1 << 5, - G_OPTION_FLAG_NOALIAS = 1 << 6 -} GOptionFlags; - -typedef enum -{ - G_OPTION_ARG_NONE, - G_OPTION_ARG_STRING, - G_OPTION_ARG_INT, - G_OPTION_ARG_CALLBACK, - G_OPTION_ARG_FILENAME, - G_OPTION_ARG_STRING_ARRAY, - G_OPTION_ARG_FILENAME_ARRAY, - G_OPTION_ARG_DOUBLE, - G_OPTION_ARG_INT64 -} GOptionArg; - -typedef gboolean (*GOptionArgFunc) (const gchar *option_name, - const gchar *value, - gpointer data, - GError **error); - -typedef gboolean (*GOptionParseFunc) (GOptionContext *context, - GOptionGroup *group, - gpointer data, - GError **error); - -typedef void (*GOptionErrorFunc) (GOptionContext *context, - GOptionGroup *group, - gpointer data, - GError **error); - -#define G_OPTION_ERROR (g_option_error_quark ()) - -typedef enum -{ - G_OPTION_ERROR_UNKNOWN_OPTION, - G_OPTION_ERROR_BAD_VALUE, - G_OPTION_ERROR_FAILED -} GOptionError; - -GQuark g_option_error_quark (void); - - -struct _GOptionEntry -{ - const gchar *long_name; - gchar short_name; - gint flags; - - GOptionArg arg; - gpointer arg_data; - - const gchar *description; - const gchar *arg_description; -}; - -#define G_OPTION_REMAINING "" - -GOptionContext *g_option_context_new (const gchar *parameter_string); -void g_option_context_set_summary (GOptionContext *context, - const gchar *summary); -G_CONST_RETURN gchar *g_option_context_get_summary (GOptionContext *context); -void g_option_context_set_description (GOptionContext *context, - const gchar *description); -G_CONST_RETURN gchar *g_option_context_get_description (GOptionContext *context); -void g_option_context_free (GOptionContext *context); -void g_option_context_set_help_enabled (GOptionContext *context, - gboolean help_enabled); -gboolean g_option_context_get_help_enabled (GOptionContext *context); -void g_option_context_set_ignore_unknown_options (GOptionContext *context, - gboolean ignore_unknown); -gboolean g_option_context_get_ignore_unknown_options (GOptionContext *context); - -void g_option_context_add_main_entries (GOptionContext *context, - const GOptionEntry *entries, - const gchar *translation_domain); -gboolean g_option_context_parse (GOptionContext *context, - gint *argc, - gchar ***argv, - GError **error); -void g_option_context_set_translate_func (GOptionContext *context, - GTranslateFunc func, - gpointer data, - GDestroyNotify destroy_notify); -void g_option_context_set_translation_domain (GOptionContext *context, - const gchar *domain); - -void g_option_context_add_group (GOptionContext *context, - GOptionGroup *group); -void g_option_context_set_main_group (GOptionContext *context, - GOptionGroup *group); -GOptionGroup *g_option_context_get_main_group (GOptionContext *context); -gchar *g_option_context_get_help (GOptionContext *context, - gboolean main_help, - GOptionGroup *group); - -GOptionGroup *g_option_group_new (const gchar *name, - const gchar *description, - const gchar *help_description, - gpointer user_data, - GDestroyNotify destroy); -void g_option_group_set_parse_hooks (GOptionGroup *group, - GOptionParseFunc pre_parse_func, - GOptionParseFunc post_parse_func); -void g_option_group_set_error_hook (GOptionGroup *group, - GOptionErrorFunc error_func); -void g_option_group_free (GOptionGroup *group); -void g_option_group_add_entries (GOptionGroup *group, - const GOptionEntry *entries); -void g_option_group_set_translate_func (GOptionGroup *group, - GTranslateFunc func, - gpointer data, - GDestroyNotify destroy_notify); -void g_option_group_set_translation_domain (GOptionGroup *group, - const gchar *domain); - -G_END_DECLS - -#endif /* __G_OPTION_H__ */ diff --git a/lib/win32/glib-2.20.4/glib/gpattern.c b/lib/win32/glib-2.20.4/glib/gpattern.c deleted file mode 100644 index 938083eac7d32..0000000000000 --- a/lib/win32/glib-2.20.4/glib/gpattern.c +++ /dev/null @@ -1,343 +0,0 @@ -/* GLIB - Library of useful routines for C programming - * Copyright (C) 1995-1997, 1999 Peter Mattis, Red Hat, Inc. - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library 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 - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ - -#include "config.h" - -#include - -#include "gpattern.h" - -#include "gmacros.h" -#include "gmessages.h" -#include "gmem.h" -#include "gunicode.h" -#include "gutils.h" -#include "galias.h" - -/* keep enum and structure of gpattern.c and patterntest.c in sync */ -typedef enum -{ - G_MATCH_ALL, /* "*A?A*" */ - G_MATCH_ALL_TAIL, /* "*A?AA" */ - G_MATCH_HEAD, /* "AAAA*" */ - G_MATCH_TAIL, /* "*AAAA" */ - G_MATCH_EXACT, /* "AAAAA" */ - G_MATCH_LAST -} GMatchType; - -struct _GPatternSpec -{ - GMatchType match_type; - guint pattern_length; - guint min_length; - guint max_length; - gchar *pattern; -}; - - -/* --- functions --- */ -static inline gboolean -g_pattern_ph_match (const gchar *match_pattern, - const gchar *match_string, - gboolean *wildcard_reached_p) -{ - register const gchar *pattern, *string; - register gchar ch; - - pattern = match_pattern; - string = match_string; - - ch = *pattern; - pattern++; - while (ch) - { - switch (ch) - { - case '?': - if (!*string) - return FALSE; - string = g_utf8_next_char (string); - break; - - case '*': - *wildcard_reached_p = TRUE; - do - { - ch = *pattern; - pattern++; - if (ch == '?') - { - if (!*string) - return FALSE; - string = g_utf8_next_char (string); - } - } - while (ch == '*' || ch == '?'); - if (!ch) - return TRUE; - do - { - gboolean next_wildcard_reached = FALSE; - while (ch != *string) - { - if (!*string) - return FALSE; - string = g_utf8_next_char (string); - } - string++; - if (g_pattern_ph_match (pattern, string, &next_wildcard_reached)) - return TRUE; - if (next_wildcard_reached) - /* the forthcoming pattern substring up to the next wildcard has - * been matched, but a mismatch occoured for the rest of the - * pattern, following the next wildcard. - * there's no need to advance the current match position any - * further if the rest pattern will not match. - */ - return FALSE; - } - while (*string); - break; - - default: - if (ch == *string) - string++; - else - return FALSE; - break; - } - - ch = *pattern; - pattern++; - } - - return *string == 0; -} - -gboolean -g_pattern_match (GPatternSpec *pspec, - guint string_length, - const gchar *string, - const gchar *string_reversed) -{ - g_return_val_if_fail (pspec != NULL, FALSE); - g_return_val_if_fail (string != NULL, FALSE); - - if (string_length < pspec->min_length || - string_length > pspec->max_length) - return FALSE; - - switch (pspec->match_type) - { - gboolean dummy; - case G_MATCH_ALL: - return g_pattern_ph_match (pspec->pattern, string, &dummy); - case G_MATCH_ALL_TAIL: - if (string_reversed) - return g_pattern_ph_match (pspec->pattern, string_reversed, &dummy); - else - { - gboolean result; - gchar *tmp; - tmp = g_utf8_strreverse (string, string_length); - result = g_pattern_ph_match (pspec->pattern, tmp, &dummy); - g_free (tmp); - return result; - } - case G_MATCH_HEAD: - if (pspec->pattern_length == string_length) - return strcmp (pspec->pattern, string) == 0; - else if (pspec->pattern_length) - return strncmp (pspec->pattern, string, pspec->pattern_length) == 0; - else - return TRUE; - case G_MATCH_TAIL: - if (pspec->pattern_length) - return strcmp (pspec->pattern, string + (string_length - pspec->pattern_length)) == 0; - else - return TRUE; - case G_MATCH_EXACT: - if (pspec->pattern_length != string_length) - return FALSE; - else - return strcmp (pspec->pattern, string) == 0; - default: - g_return_val_if_fail (pspec->match_type < G_MATCH_LAST, FALSE); - return FALSE; - } -} - -GPatternSpec* -g_pattern_spec_new (const gchar *pattern) -{ - GPatternSpec *pspec; - gboolean seen_joker = FALSE, seen_wildcard = FALSE, more_wildcards = FALSE; - gint hw_pos = -1, tw_pos = -1, hj_pos = -1, tj_pos = -1; - gboolean follows_wildcard = FALSE; - guint pending_jokers = 0; - const gchar *s; - gchar *d; - guint i; - - g_return_val_if_fail (pattern != NULL, NULL); - - /* canonicalize pattern and collect necessary stats */ - pspec = g_new (GPatternSpec, 1); - pspec->pattern_length = strlen (pattern); - pspec->min_length = 0; - pspec->max_length = 0; - pspec->pattern = g_new (gchar, pspec->pattern_length + 1); - d = pspec->pattern; - for (i = 0, s = pattern; *s != 0; s++) - { - switch (*s) - { - case '*': - if (follows_wildcard) /* compress multiple wildcards */ - { - pspec->pattern_length--; - continue; - } - follows_wildcard = TRUE; - if (hw_pos < 0) - hw_pos = i; - tw_pos = i; - break; - case '?': - pending_jokers++; - pspec->min_length++; - pspec->max_length += 4; /* maximum UTF-8 character length */ - continue; - default: - for (; pending_jokers; pending_jokers--, i++) { - *d++ = '?'; - if (hj_pos < 0) - hj_pos = i; - tj_pos = i; - } - follows_wildcard = FALSE; - pspec->min_length++; - pspec->max_length++; - break; - } - *d++ = *s; - i++; - } - for (; pending_jokers; pending_jokers--) { - *d++ = '?'; - if (hj_pos < 0) - hj_pos = i; - tj_pos = i; - } - *d++ = 0; - seen_joker = hj_pos >= 0; - seen_wildcard = hw_pos >= 0; - more_wildcards = seen_wildcard && hw_pos != tw_pos; - if (seen_wildcard) - pspec->max_length = G_MAXUINT; - - /* special case sole head/tail wildcard or exact matches */ - if (!seen_joker && !more_wildcards) - { - if (pspec->pattern[0] == '*') - { - pspec->match_type = G_MATCH_TAIL; - memmove (pspec->pattern, pspec->pattern + 1, --pspec->pattern_length); - pspec->pattern[pspec->pattern_length] = 0; - return pspec; - } - if (pspec->pattern_length > 0 && - pspec->pattern[pspec->pattern_length - 1] == '*') - { - pspec->match_type = G_MATCH_HEAD; - pspec->pattern[--pspec->pattern_length] = 0; - return pspec; - } - if (!seen_wildcard) - { - pspec->match_type = G_MATCH_EXACT; - return pspec; - } - } - - /* now just need to distinguish between head or tail match start */ - tw_pos = pspec->pattern_length - 1 - tw_pos; /* last pos to tail distance */ - tj_pos = pspec->pattern_length - 1 - tj_pos; /* last pos to tail distance */ - if (seen_wildcard) - pspec->match_type = tw_pos > hw_pos ? G_MATCH_ALL_TAIL : G_MATCH_ALL; - else /* seen_joker */ - pspec->match_type = tj_pos > hj_pos ? G_MATCH_ALL_TAIL : G_MATCH_ALL; - if (pspec->match_type == G_MATCH_ALL_TAIL) { - gchar *tmp = pspec->pattern; - pspec->pattern = g_utf8_strreverse (pspec->pattern, pspec->pattern_length); - g_free (tmp); - } - return pspec; -} - -void -g_pattern_spec_free (GPatternSpec *pspec) -{ - g_return_if_fail (pspec != NULL); - - g_free (pspec->pattern); - g_free (pspec); -} - -gboolean -g_pattern_spec_equal (GPatternSpec *pspec1, - GPatternSpec *pspec2) -{ - g_return_val_if_fail (pspec1 != NULL, FALSE); - g_return_val_if_fail (pspec2 != NULL, FALSE); - - return (pspec1->pattern_length == pspec2->pattern_length && - pspec1->match_type == pspec2->match_type && - strcmp (pspec1->pattern, pspec2->pattern) == 0); -} - -gboolean -g_pattern_match_string (GPatternSpec *pspec, - const gchar *string) -{ - g_return_val_if_fail (pspec != NULL, FALSE); - g_return_val_if_fail (string != NULL, FALSE); - - return g_pattern_match (pspec, strlen (string), string, NULL); -} - -gboolean -g_pattern_match_simple (const gchar *pattern, - const gchar *string) -{ - GPatternSpec *pspec; - gboolean ergo; - - g_return_val_if_fail (pattern != NULL, FALSE); - g_return_val_if_fail (string != NULL, FALSE); - - pspec = g_pattern_spec_new (pattern); - ergo = g_pattern_match (pspec, strlen (string), string, NULL); - g_pattern_spec_free (pspec); - - return ergo; -} - -#define __G_PATTERN_C__ -#include "galiasdef.c" diff --git a/lib/win32/glib-2.20.4/glib/gpattern.h b/lib/win32/glib-2.20.4/glib/gpattern.h deleted file mode 100644 index b653d713f080f..0000000000000 --- a/lib/win32/glib-2.20.4/glib/gpattern.h +++ /dev/null @@ -1,49 +0,0 @@ -/* GLIB - Library of useful routines for C programming - * Copyright (C) 1995-1997, 1999 Peter Mattis, Red Hat, Inc. - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library 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 - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ - -#if defined(G_DISABLE_SINGLE_INCLUDES) && !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION) -#error "Only can be included directly." -#endif - -#ifndef __G_PATTERN_H__ -#define __G_PATTERN_H__ - -#include - -G_BEGIN_DECLS - - -typedef struct _GPatternSpec GPatternSpec; - -GPatternSpec* g_pattern_spec_new (const gchar *pattern); -void g_pattern_spec_free (GPatternSpec *pspec); -gboolean g_pattern_spec_equal (GPatternSpec *pspec1, - GPatternSpec *pspec2); -gboolean g_pattern_match (GPatternSpec *pspec, - guint string_length, - const gchar *string, - const gchar *string_reversed); -gboolean g_pattern_match_string (GPatternSpec *pspec, - const gchar *string); -gboolean g_pattern_match_simple (const gchar *pattern, - const gchar *string); - -G_END_DECLS - -#endif /* __G_PATTERN_H__ */ diff --git a/lib/win32/glib-2.20.4/glib/gpoll.c b/lib/win32/glib-2.20.4/glib/gpoll.c deleted file mode 100644 index 30e5429d03cd7..0000000000000 --- a/lib/win32/glib-2.20.4/glib/gpoll.c +++ /dev/null @@ -1,430 +0,0 @@ -/* GLIB - Library of useful routines for C programming - * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald - * - * gpoll.c: poll(2) abstraction - * Copyright 1998 Owen Taylor - * Copyright 2008 Red Hat, Inc. - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library 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 - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ - -/* - * Modified by the GLib Team and others 1997-2000. See the AUTHORS - * file for a list of people on the GLib Team. See the ChangeLog - * files for a list of changes. These files are distributed with - * GLib at ftp://ftp.gtk.org/pub/gtk/. - */ - -/* - * MT safe - */ - -#include "config.h" - -/* Uncomment the next line (and the corresponding line in gmain.c) to - * enable debugging printouts if the environment variable - * G_MAIN_POLL_DEBUG is set to some value. - */ -/* #define G_MAIN_POLL_DEBUG */ - -#ifdef _WIN32 -/* Always enable debugging printout on Windows, as it is more often - * needed there... - */ -#define G_MAIN_POLL_DEBUG -#endif - -#include "glib.h" -#include -#include -#include -#ifdef HAVE_SYS_TIME_H -#include -#endif /* HAVE_SYS_TIME_H */ -#ifdef GLIB_HAVE_SYS_POLL_H -# include -# undef events /* AIX 4.1.5 & 4.3.2 define this for SVR3,4 compatibility */ -# undef revents /* AIX 4.1.5 & 4.3.2 define this for SVR3,4 compatibility */ - -/* The poll() emulation on OS/X doesn't handle fds=NULL, nfds=0, - * so we prefer our own poll emulation. - */ -#if defined(_POLL_EMUL_H_) || defined(BROKEN_POLL) -#undef HAVE_POLL -#endif - -#endif /* GLIB_HAVE_SYS_POLL_H */ -#ifdef HAVE_UNISTD_H -#include -#endif /* HAVE_UNISTD_H */ -#include - -#ifdef G_OS_WIN32 -#define STRICT -#include -#endif /* G_OS_WIN32 */ - -#include "galias.h" - -#ifdef G_MAIN_POLL_DEBUG -extern gboolean _g_main_poll_debug; -#endif - -#ifdef HAVE_POLL -/* SunOS has poll, but doesn't provide a prototype. */ -# if defined (sun) && !defined (__SVR4) -extern gint poll (struct pollfd *fds, guint nfsd, gint timeout); -# endif /* !sun */ - -/** - * g_poll: - * @fds: file descriptors to poll - * @nfds: the number of file descriptors in @fds - * @timeout: amount of time to wait, in milliseconds, or -1 to wait forever - * - * Polls @fds, as with the poll() system call, but portably. (On - * systems that don't have poll(), it is emulated using select().) - * This is used internally by #GMainContext, but it can be called - * directly if you need to block until a file descriptor is ready, but - * don't want to run the full main loop. - * - * Each element of @fds is a #GPollFD describing a single file - * descriptor to poll. The %fd field indicates the file descriptor, - * and the %events field indicates the events to poll for. On return, - * the %revents fields will be filled with the events that actually - * occurred. - * - * On POSIX systems, the file descriptors in @fds can be any sort of - * file descriptor, but the situation is much more complicated on - * Windows. If you need to use g_poll() in code that has to run on - * Windows, the easiest solution is to construct all of your - * #GPollFDs with g_io_channel_win32_make_pollfd(). - * - * Return value: the number of entries in @fds whose %revents fields - * were filled in, or 0 if the operation timed out, or -1 on error or - * if the call was interrupted. - * - * Since: 2.20 - **/ -gint -g_poll (GPollFD *fds, - guint nfds, - gint timeout) -{ - return poll ((struct pollfd *)fds, nfds, timeout); -} - -#else /* !HAVE_POLL */ - -#ifdef G_OS_WIN32 - -static int -poll_rest (gboolean poll_msgs, - HANDLE *handles, - gint nhandles, - GPollFD *fds, - guint nfds, - gint timeout) -{ - DWORD ready; - GPollFD *f; - int recursed_result; - - if (poll_msgs) - { - /* Wait for either messages or handles - * -> Use MsgWaitForMultipleObjectsEx - */ - if (_g_main_poll_debug) - g_print (" MsgWaitForMultipleObjectsEx(%d, %d)\n", nhandles, timeout); - - ready = MsgWaitForMultipleObjectsEx (nhandles, handles, timeout, - QS_ALLINPUT, MWMO_ALERTABLE); - - if (ready == WAIT_FAILED) - { - gchar *emsg = g_win32_error_message (GetLastError ()); - g_warning ("MsgWaitForMultipleObjectsEx failed: %s", emsg); - g_free (emsg); - } - } - else if (nhandles == 0) - { - /* No handles to wait for, just the timeout */ - if (timeout == INFINITE) - ready = WAIT_FAILED; - else - { - SleepEx (timeout, TRUE); - ready = WAIT_TIMEOUT; - } - } - else - { - /* Wait for just handles - * -> Use WaitForMultipleObjectsEx - */ - if (_g_main_poll_debug) - g_print (" WaitForMultipleObjectsEx(%d, %d)\n", nhandles, timeout); - - ready = WaitForMultipleObjectsEx (nhandles, handles, FALSE, timeout, TRUE); - if (ready == WAIT_FAILED) - { - gchar *emsg = g_win32_error_message (GetLastError ()); - g_warning ("WaitForMultipleObjectsEx failed: %s", emsg); - g_free (emsg); - } - } - - if (_g_main_poll_debug) - g_print (" wait returns %ld%s\n", - ready, - (ready == WAIT_FAILED ? " (WAIT_FAILED)" : - (ready == WAIT_TIMEOUT ? " (WAIT_TIMEOUT)" : - (poll_msgs && ready == WAIT_OBJECT_0 + nhandles ? " (msg)" : "")))); - - if (ready == WAIT_FAILED) - return -1; - else if (ready == WAIT_TIMEOUT || - ready == WAIT_IO_COMPLETION) - return 0; - else if (poll_msgs && ready == WAIT_OBJECT_0 + nhandles) - { - for (f = fds; f < &fds[nfds]; ++f) - if (f->fd == G_WIN32_MSG_HANDLE && f->events & G_IO_IN) - f->revents |= G_IO_IN; - - /* If we have a timeout, or no handles to poll, be satisfied - * with just noticing we have messages waiting. - */ - if (timeout != 0 || nhandles == 0) - return 1; - - /* If no timeout and handles to poll, recurse to poll them, - * too. - */ - recursed_result = poll_rest (FALSE, handles, nhandles, fds, nfds, 0); - return (recursed_result == -1) ? -1 : 1 + recursed_result; - } - else if (ready >= WAIT_OBJECT_0 && ready < WAIT_OBJECT_0 + nhandles) - { - for (f = fds; f < &fds[nfds]; ++f) - { - if ((HANDLE) f->fd == handles[ready - WAIT_OBJECT_0]) - { - f->revents = f->events; - if (_g_main_poll_debug) - g_print (" got event %p\n", (HANDLE) f->fd); - } - } - - /* If no timeout and polling several handles, recurse to poll - * the rest of them. - */ - if (timeout == 0 && nhandles > 1) - { - /* Remove the handle that fired */ - int i; - if (ready < nhandles - 1) - for (i = ready - WAIT_OBJECT_0 + 1; i < nhandles; i++) - handles[i-1] = handles[i]; - nhandles--; - recursed_result = poll_rest (FALSE, handles, nhandles, fds, nfds, 0); - return (recursed_result == -1) ? -1 : 1 + recursed_result; - } - return 1; - } - - return 0; -} - -gint -g_poll (GPollFD *fds, - guint nfds, - gint timeout) -{ - HANDLE handles[MAXIMUM_WAIT_OBJECTS]; - gboolean poll_msgs = FALSE; - GPollFD *f; - gint nhandles = 0; - int retval; - - if (_g_main_poll_debug) - g_print ("g_poll: waiting for"); - - for (f = fds; f < &fds[nfds]; ++f) - if (f->fd == G_WIN32_MSG_HANDLE && (f->events & G_IO_IN)) - { - if (_g_main_poll_debug && !poll_msgs) - g_print (" MSG"); - poll_msgs = TRUE; - } - else if (f->fd > 0) - { - /* Don't add the same handle several times into the array, as - * docs say that is not allowed, even if it actually does seem - * to work. - */ - gint i; - - for (i = 0; i < nhandles; i++) - if (handles[i] == (HANDLE) f->fd) - break; - - if (i == nhandles) - { - if (nhandles == MAXIMUM_WAIT_OBJECTS) - { - g_warning ("Too many handles to wait for!\n"); - break; - } - else - { - if (_g_main_poll_debug) - g_print (" %p", (HANDLE) f->fd); - handles[nhandles++] = (HANDLE) f->fd; - } - } - } - - if (_g_main_poll_debug) - g_print ("\n"); - - for (f = fds; f < &fds[nfds]; ++f) - f->revents = 0; - - if (timeout == -1) - timeout = INFINITE; - - /* Polling for several things? */ - if (nhandles > 1 || (nhandles > 0 && poll_msgs)) - { - /* First check if one or several of them are immediately - * available - */ - retval = poll_rest (poll_msgs, handles, nhandles, fds, nfds, 0); - - /* If not, and we have a significant timeout, poll again with - * timeout then. Note that this will return indication for only - * one event, or only for messages. We ignore timeouts less than - * ten milliseconds as they are mostly pointless on Windows, the - * MsgWaitForMultipleObjectsEx() call will timeout right away - * anyway. - */ - if (retval == 0 && (timeout == INFINITE || timeout >= 10)) - retval = poll_rest (poll_msgs, handles, nhandles, fds, nfds, timeout); - } - else - { - /* Just polling for one thing, so no need to check first if - * available immediately - */ - retval = poll_rest (poll_msgs, handles, nhandles, fds, nfds, timeout); - } - - if (retval == -1) - for (f = fds; f < &fds[nfds]; ++f) - f->revents = 0; - - return retval; -} - -#else /* !G_OS_WIN32 */ - -/* The following implementation of poll() comes from the GNU C Library. - * Copyright (C) 1994, 1996, 1997 Free Software Foundation, Inc. - */ - -#include /* for bzero on BSD systems */ - -#ifdef HAVE_SYS_SELECT_H -#include -#endif /* HAVE_SYS_SELECT_H */ - -#ifdef G_OS_BEOS -#undef NO_FD_SET -#endif /* G_OS_BEOS */ - -#ifndef NO_FD_SET -# define SELECT_MASK fd_set -#else /* !NO_FD_SET */ -# ifndef _AIX -typedef long fd_mask; -# endif /* _AIX */ -# ifdef _IBMR2 -# define SELECT_MASK void -# else /* !_IBMR2 */ -# define SELECT_MASK int -# endif /* !_IBMR2 */ -#endif /* !NO_FD_SET */ - -gint -g_poll (GPollFD *fds, - guint nfds, - gint timeout) -{ - struct timeval tv; - SELECT_MASK rset, wset, xset; - GPollFD *f; - int ready; - int maxfd = 0; - - FD_ZERO (&rset); - FD_ZERO (&wset); - FD_ZERO (&xset); - - for (f = fds; f < &fds[nfds]; ++f) - if (f->fd >= 0) - { - if (f->events & G_IO_IN) - FD_SET (f->fd, &rset); - if (f->events & G_IO_OUT) - FD_SET (f->fd, &wset); - if (f->events & G_IO_PRI) - FD_SET (f->fd, &xset); - if (f->fd > maxfd && (f->events & (G_IO_IN|G_IO_OUT|G_IO_PRI))) - maxfd = f->fd; - } - - tv.tv_sec = timeout / 1000; - tv.tv_usec = (timeout % 1000) * 1000; - - ready = select (maxfd + 1, &rset, &wset, &xset, - timeout == -1 ? NULL : &tv); - if (ready > 0) - for (f = fds; f < &fds[nfds]; ++f) - { - f->revents = 0; - if (f->fd >= 0) - { - if (FD_ISSET (f->fd, &rset)) - f->revents |= G_IO_IN; - if (FD_ISSET (f->fd, &wset)) - f->revents |= G_IO_OUT; - if (FD_ISSET (f->fd, &xset)) - f->revents |= G_IO_PRI; - } - } - - return ready; -} - -#endif /* !G_OS_WIN32 */ - -#endif /* !HAVE_POLL */ - -#define __G_POLL_C__ -#include "galiasdef.c" diff --git a/lib/win32/glib-2.20.4/glib/gpoll.h b/lib/win32/glib-2.20.4/glib/gpoll.h deleted file mode 100644 index eec47234c6f67..0000000000000 --- a/lib/win32/glib-2.20.4/glib/gpoll.h +++ /dev/null @@ -1,93 +0,0 @@ -/* gpoll.h - poll(2) support - * Copyright (C) 2008 Red Hat, Inc. - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ - -#if !defined (__GLIB_H_INSIDE__) && !defined (__G_MAIN_H__) && !defined (GLIB_COMPILATION) -#error "Only can be included directly." -#endif - -#ifndef __G_POLL_H__ -#define __G_POLL_H__ - -#include - -G_BEGIN_DECLS - -/* Any definitions using GPollFD or GPollFunc are primarily - * for Unix and not guaranteed to be the compatible on all - * operating systems on which GLib runs. Right now, the - * GLib does use these functions on Win32 as well, but interprets - * them in a fairly different way than on Unix. If you use - * these definitions, you are should be prepared to recode - * for different operating systems. - * - * Note that on systems with a working poll(2), that function is used - * in place of g_poll(). Thus g_poll() must have the same signature as - * poll(), meaning GPollFD must have the same layout as struct pollfd. - * - * - * On Win32, the fd in a GPollFD should be Win32 HANDLE (*not* a file - * descriptor as provided by the C runtime) that can be used by - * MsgWaitForMultipleObjects. This does *not* include file handles - * from CreateFile, SOCKETs, nor pipe handles. (But you can use - * WSAEventSelect to signal events when a SOCKET is readable). - * - * On Win32, fd can also be the special value G_WIN32_MSG_HANDLE to - * indicate polling for messages. - * - * But note that G_WIN32_MSG_HANDLE GPollFDs should not be used by GDK - * (GTK) programs, as GDK itself wants to read messages and convert them - * to GDK events. - * - * So, unless you really know what you are doing, it's best not to try - * to use the main loop polling stuff for your own needs on - * Windows. - */ -typedef struct _GPollFD GPollFD; -typedef gint (*GPollFunc) (GPollFD *ufds, - guint nfsd, - gint timeout_); - -struct _GPollFD -{ -#if defined (G_OS_WIN32) && GLIB_SIZEOF_VOID_P == 8 - gint64 fd; -#else - gint fd; -#endif - gushort events; - gushort revents; -}; - -#ifdef G_OS_WIN32 -#if GLIB_SIZEOF_VOID_P == 8 -#define G_POLLFD_FORMAT "%#I64x" -#else -#define G_POLLFD_FORMAT "%#x" -#endif -#else -#define G_POLLFD_FORMAT "%d" -#endif - -gint g_poll (GPollFD *fds, - guint nfds, - gint timeout); - -G_END_DECLS - -#endif /* __G_POLL_H__ */ diff --git a/lib/win32/glib-2.20.4/glib/gprimes.c b/lib/win32/glib-2.20.4/glib/gprimes.c deleted file mode 100644 index 7beca710ca13b..0000000000000 --- a/lib/win32/glib-2.20.4/glib/gprimes.c +++ /dev/null @@ -1,90 +0,0 @@ -/* GLIB - Library of useful routines for C programming - * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library 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 - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ - -/* - * Modified by the GLib Team and others 1997-2000. See the AUTHORS - * file for a list of people on the GLib Team. See the ChangeLog - * files for a list of changes. These files are distributed with - * GLib at ftp://ftp.gtk.org/pub/gtk/. - */ - -/* - * MT safe - */ - -#include "config.h" - -#include "glib.h" -#include "galias.h" - - -static const guint g_primes[] = -{ - 11, - 19, - 37, - 73, - 109, - 163, - 251, - 367, - 557, - 823, - 1237, - 1861, - 2777, - 4177, - 6247, - 9371, - 14057, - 21089, - 31627, - 47431, - 71143, - 106721, - 160073, - 240101, - 360163, - 540217, - 810343, - 1215497, - 1823231, - 2734867, - 4102283, - 6153409, - 9230113, - 13845163, -}; - -static const guint g_nprimes = sizeof (g_primes) / sizeof (g_primes[0]); - -guint -g_spaced_primes_closest (guint num) -{ - gint i; - - for (i = 0; i < g_nprimes; i++) - if (g_primes[i] > num) - return g_primes[i]; - - return g_primes[g_nprimes - 1]; -} - -#define __G_PRIMES_C__ -#include "galiasdef.c" diff --git a/lib/win32/glib-2.20.4/glib/gprimes.h b/lib/win32/glib-2.20.4/glib/gprimes.h deleted file mode 100644 index af5728602baac..0000000000000 --- a/lib/win32/glib-2.20.4/glib/gprimes.h +++ /dev/null @@ -1,51 +0,0 @@ -/* GLIB - Library of useful routines for C programming - * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library 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 - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ - -/* - * Modified by the GLib Team and others 1997-2000. See the AUTHORS - * file for a list of people on the GLib Team. See the ChangeLog - * files for a list of changes. These files are distributed with - * GLib at ftp://ftp.gtk.org/pub/gtk/. - */ - -#if defined(G_DISABLE_SINGLE_INCLUDES) && !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION) -#error "Only can be included directly." -#endif - -#ifndef __G_PRIMES_H__ -#define __G_PRIMES_H__ - -#include - -G_BEGIN_DECLS - -/* Prime numbers. - */ - -/* This function returns prime numbers spaced by approximately 1.5-2.0 - * and is for use in resizing data structures which prefer - * prime-valued sizes. The closest spaced prime function returns the - * next largest prime, or the highest it knows about which is about - * MAXINT/4. - */ -guint g_spaced_primes_closest (guint num) G_GNUC_CONST; - -G_END_DECLS - -#endif /* __G_PRIMES_H__ */ diff --git a/lib/win32/glib-2.20.4/glib/gprintf.c b/lib/win32/glib-2.20.4/glib/gprintf.c deleted file mode 100644 index 35288617dff5d..0000000000000 --- a/lib/win32/glib-2.20.4/glib/gprintf.c +++ /dev/null @@ -1,344 +0,0 @@ -/* GLIB - Library of useful routines for C programming - * Copyright (C) 1995-1997, 2002 Peter Mattis, Red Hat, Inc. - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library 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 - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ - -#include "config.h" - -#ifndef _WIN32 -#define _GNU_SOURCE /* For vasprintf */ -#endif - -#include -#include -#include - -#include "glib.h" -#include "gprintf.h" -#include "gprintfint.h" - -#include "galias.h" - -/** - * g_printf: - * @format: a standard printf() format string, but notice - * string precision pitfalls. - * @Varargs: the arguments to insert in the output. - * - * An implementation of the standard printf() function which supports - * positional parameters, as specified in the Single Unix Specification. - * - * Returns: the number of bytes printed. - * - * Since: 2.2 - **/ -gint -g_printf (gchar const *format, - ...) -{ - va_list args; - gint retval; - - va_start (args, format); - retval = g_vprintf (format, args); - va_end (args); - - return retval; -} - -/** - * g_fprintf: - * @file: the stream to write to. - * @format: a standard printf() format string, but notice - * string precision pitfalls. - * @Varargs: the arguments to insert in the output. - * - * An implementation of the standard fprintf() function which supports - * positional parameters, as specified in the Single Unix Specification. - * - * Returns: the number of bytes printed. - * - * Since: 2.2 - **/ -gint -g_fprintf (FILE *file, - gchar const *format, - ...) -{ - va_list args; - gint retval; - - va_start (args, format); - retval = g_vfprintf (file, format, args); - va_end (args); - - return retval; -} - -/** - * g_sprintf: - * @string: A pointer to a memory buffer to contain the resulting string. It - * is up to the caller to ensure that the allocated buffer is large - * enough to hold the formatted result - * @format: a standard printf() format string, but notice - * string precision pitfalls. - * @Varargs: the arguments to insert in the output. - * - * An implementation of the standard sprintf() function which supports - * positional parameters, as specified in the Single Unix Specification. - * - * Returns: the number of bytes printed. - * - * Since: 2.2 - **/ -gint -g_sprintf (gchar *string, - gchar const *format, - ...) -{ - va_list args; - gint retval; - - va_start (args, format); - retval = g_vsprintf (string, format, args); - va_end (args); - - return retval; -} - -/** - * g_snprintf: - * @string: the buffer to hold the output. - * @n: the maximum number of bytes to produce (including the - * terminating nul character). - * @format: a standard printf() format string, but notice - * string precision pitfalls. - * @Varargs: the arguments to insert in the output. - * - * A safer form of the standard sprintf() function. The output is guaranteed - * to not exceed @n characters (including the terminating nul character), so - * it is easy to ensure that a buffer overflow cannot occur. - * - * See also g_strdup_printf(). - * - * In versions of GLib prior to 1.2.3, this function may return -1 if the - * output was truncated, and the truncated string may not be nul-terminated. - * In versions prior to 1.3.12, this function returns the length of the output - * string. - * - * The return value of g_snprintf() conforms to the snprintf() - * function as standardized in ISO C99. Note that this is different from - * traditional snprintf(), which returns the length of the output string. - * - * The format string may contain positional parameters, as specified in - * the Single Unix Specification. - * - * Returns: the number of bytes which would be produced if the buffer - * was large enough. - **/ -gint -g_snprintf (gchar *string, - gulong n, - gchar const *format, - ...) -{ - va_list args; - gint retval; - - va_start (args, format); - retval = g_vsnprintf (string, n, format, args); - va_end (args); - - return retval; -} - -/** - * g_vprintf: - * @format: a standard printf() format string, but notice - * string precision pitfalls. - * @args: the list of arguments to insert in the output. - * - * An implementation of the standard vprintf() function which supports - * positional parameters, as specified in the Single Unix Specification. - * - * Returns: the number of bytes printed. - * - * Since: 2.2 - **/ -gint -g_vprintf (gchar const *format, - va_list args) -{ - g_return_val_if_fail (format != NULL, -1); - - return _g_vprintf (format, args); -} - -/** - * g_vfprintf: - * @file: the stream to write to. - * @format: a standard printf() format string, but notice - * string precision pitfalls. - * @args: the list of arguments to insert in the output. - * - * An implementation of the standard fprintf() function which supports - * positional parameters, as specified in the Single Unix Specification. - * - * Returns: the number of bytes printed. - * - * Since: 2.2 - **/ -gint -g_vfprintf (FILE *file, - gchar const *format, - va_list args) -{ - g_return_val_if_fail (format != NULL, -1); - - return _g_vfprintf (file, format, args); -} - -/** - * g_vsprintf: - * @string: the buffer to hold the output. - * @format: a standard printf() format string, but notice - * string precision pitfalls. - * @args: the list of arguments to insert in the output. - * - * An implementation of the standard vsprintf() function which supports - * positional parameters, as specified in the Single Unix Specification. - * - * Returns: the number of bytes printed. - * - * Since: 2.2 - **/ -gint -g_vsprintf (gchar *string, - gchar const *format, - va_list args) -{ - g_return_val_if_fail (string != NULL, -1); - g_return_val_if_fail (format != NULL, -1); - - return _g_vsprintf (string, format, args); -} - -/** - * g_vsnprintf: - * @string: the buffer to hold the output. - * @n: the maximum number of bytes to produce (including the - * terminating nul character). - * @format: a standard printf() format string, but notice - * string precision pitfalls. - * @args: the list of arguments to insert in the output. - * - * A safer form of the standard vsprintf() function. The output is guaranteed - * to not exceed @n characters (including the terminating nul character), so - * it is easy to ensure that a buffer overflow cannot occur. - * - * See also g_strdup_vprintf(). - * - * In versions of GLib prior to 1.2.3, this function may return -1 if the - * output was truncated, and the truncated string may not be nul-terminated. - * In versions prior to 1.3.12, this function returns the length of the output - * string. - * - * The return value of g_vsnprintf() conforms to the vsnprintf() function - * as standardized in ISO C99. Note that this is different from traditional - * vsnprintf(), which returns the length of the output string. - * - * The format string may contain positional parameters, as specified in - * the Single Unix Specification. - * - * Returns: the number of bytes which would be produced if the buffer - * was large enough. - */ -gint -g_vsnprintf (gchar *string, - gulong n, - gchar const *format, - va_list args) -{ - g_return_val_if_fail (n == 0 || string != NULL, -1); - g_return_val_if_fail (format != NULL, -1); - - return _g_vsnprintf (string, n, format, args); -} - -/** - * g_vasprintf: - * @string: the return location for the newly-allocated string. - * @format: a standard printf() format string, but notice - * string precision pitfalls. - * @args: the list of arguments to insert in the output. - * - * An implementation of the GNU vasprintf() function which supports - * positional parameters, as specified in the Single Unix Specification. - * This function is similar to g_vsprintf(), except that it allocates a - * string to hold the output, instead of putting the output in a buffer - * you allocate in advance. - * - * Returns: the number of bytes printed. - * - * Since: 2.4 - **/ -gint -g_vasprintf (gchar **string, - gchar const *format, - va_list args) -{ - gint len; - g_return_val_if_fail (string != NULL, -1); - -#if !defined(HAVE_GOOD_PRINTF) - - len = _g_gnulib_vasprintf (string, format, args); - if (len < 0) - *string = NULL; - -#elif defined (HAVE_VASPRINTF) - - len = vasprintf (string, format, args); - if (len < 0) - *string = NULL; - else if (!g_mem_is_system_malloc ()) - { - /* vasprintf returns malloc-allocated memory */ - gchar *string1 = g_strndup (*string, len); - free (*string); - *string = string1; - } - -#else - - { - va_list args2; - - G_VA_COPY (args2, args); - - *string = g_new (gchar, g_printf_string_upper_bound (format, args)); - - len = _g_vsprintf (*string, format, args2); - va_end (args2); - } -#endif - - return len; -} - -#define __G_PRINTF_C__ -#include "galiasdef.c" diff --git a/lib/win32/glib-2.20.4/glib/gprintf.h b/lib/win32/glib-2.20.4/glib/gprintf.h deleted file mode 100644 index d96870fb441cd..0000000000000 --- a/lib/win32/glib-2.20.4/glib/gprintf.h +++ /dev/null @@ -1,52 +0,0 @@ -/* GLIB - Library of useful routines for C programming - * Copyright (C) 1995-1997, 2002 Peter Mattis, Red Hat, Inc. - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library 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 - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ - -#ifndef __G_PRINTF_H__ -#define __G_PRINTF_H__ - -#include -#include -#include - -G_BEGIN_DECLS - -gint g_printf (gchar const *format, - ...) G_GNUC_PRINTF (1, 2); -gint g_fprintf (FILE *file, - gchar const *format, - ...) G_GNUC_PRINTF (2, 3); -gint g_sprintf (gchar *string, - gchar const *format, - ...) G_GNUC_PRINTF (2, 3); - -gint g_vprintf (gchar const *format, - va_list args); -gint g_vfprintf (FILE *file, - gchar const *format, - va_list args); -gint g_vsprintf (gchar *string, - gchar const *format, - va_list args); -gint g_vasprintf (gchar **string, - gchar const *format, - va_list args); - -G_END_DECLS - -#endif /* __G_PRINTF_H__ */ diff --git a/lib/win32/glib-2.20.4/glib/gprintfint.h b/lib/win32/glib-2.20.4/glib/gprintfint.h deleted file mode 100644 index 0c975a1eed973..0000000000000 --- a/lib/win32/glib-2.20.4/glib/gprintfint.h +++ /dev/null @@ -1,59 +0,0 @@ -/* GLIB - Library of useful routines for C programming - * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library 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 - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ - -/* - * Modified by the GLib Team and others 2002. See the AUTHORS - * file for a list of people on the GLib Team. See the ChangeLog - * files for a list of changes. These files are distributed with - * GLib at ftp://ftp.gtk.org/pub/gtk/. - */ - -#ifndef __G_PRINTFINT_H__ -#define __G_PRINTFINT_H__ - -#ifdef HAVE_GOOD_PRINTF - -#define _g_printf printf -#define _g_fprintf fprintf -#define _g_sprintf sprintf -#define _g_snprintf snprintf - -#define _g_vprintf vprintf -#define _g_vfprintf vfprintf -#define _g_vsprintf vsprintf -#define _g_vsnprintf vsnprintf - -#else - -#include "gnulib/printf.h" - -#define _g_printf _g_gnulib_printf -#define _g_fprintf _g_gnulib_fprintf -#define _g_sprintf _g_gnulib_sprintf -#define _g_snprintf _g_gnulib_snprintf - -#define _g_vprintf _g_gnulib_vprintf -#define _g_vfprintf _g_gnulib_vfprintf -#define _g_vsprintf _g_gnulib_vsprintf -#define _g_vsnprintf _g_gnulib_vsnprintf - -#endif - -#endif /* __G_PRINTF_H__ */ - diff --git a/lib/win32/glib-2.20.4/glib/gqsort.c b/lib/win32/glib-2.20.4/glib/gqsort.c deleted file mode 100644 index 176d44a9384c9..0000000000000 --- a/lib/win32/glib-2.20.4/glib/gqsort.c +++ /dev/null @@ -1,287 +0,0 @@ -/* GLIB - Library of useful routines for C programming - * Copyright (C) 1991, 1992, 1996, 1997,1999,2004 Free Software Foundation, Inc. - * Copyright (C) 2000 Eazel, Inc. - * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library 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 - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ - -/* - * This file was originally part of the GNU C Library, and was modified to allow - * user data to be passed in to the sorting function. - * - * Written by Douglas C. Schmidt (schmidt@ics.uci.edu). - * Modified by Maciej Stachowiak (mjs@eazel.com) - * - * Modified by the GLib Team and others 1997-2000. See the AUTHORS - * file for a list of people on the GLib Team. See the ChangeLog - * files for a list of changes. These files are distributed with GLib - * at ftp://ftp.gtk.org/pub/gtk/. - */ - -#include "config.h" - -#include -#include -#include - -#include "glib.h" -#include "galias.h" - -/* Byte-wise swap two items of size SIZE. */ -#define SWAP(a, b, size) \ - do \ - { \ - register size_t __size = (size); \ - register char *__a = (a), *__b = (b); \ - do \ - { \ - char __tmp = *__a; \ - *__a++ = *__b; \ - *__b++ = __tmp; \ - } while (--__size > 0); \ - } while (0) - -/* Discontinue quicksort algorithm when partition gets below this size. - This particular magic number was chosen to work best on a Sun 4/260. */ -#define MAX_THRESH 4 - -/* Stack node declarations used to store unfulfilled partition obligations. */ -typedef struct - { - char *lo; - char *hi; - } stack_node; - -/* The next 4 #defines implement a very fast in-line stack abstraction. */ -/* The stack needs log (total_elements) entries (we could even subtract - log(MAX_THRESH)). Since total_elements has type size_t, we get as - upper bound for log (total_elements): - bits per byte (CHAR_BIT) * sizeof(size_t). */ -#define STACK_SIZE (CHAR_BIT * sizeof(size_t)) -#define PUSH(low, high) ((void) ((top->lo = (low)), (top->hi = (high)), ++top)) -#define POP(low, high) ((void) (--top, (low = top->lo), (high = top->hi))) -#define STACK_NOT_EMPTY (stack < top) - - -/* Order size using quicksort. This implementation incorporates - four optimizations discussed in Sedgewick: - - 1. Non-recursive, using an explicit stack of pointer that store the - next array partition to sort. To save time, this maximum amount - of space required to store an array of SIZE_MAX is allocated on the - stack. Assuming a 32-bit (64 bit) integer for size_t, this needs - only 32 * sizeof(stack_node) == 256 bytes (for 64 bit: 1024 bytes). - Pretty cheap, actually. - - 2. Chose the pivot element using a median-of-three decision tree. - This reduces the probability of selecting a bad pivot value and - eliminates certain extraneous comparisons. - - 3. Only quicksorts TOTAL_ELEMS / MAX_THRESH partitions, leaving - insertion sort to order the MAX_THRESH items within each partition. - This is a big win, since insertion sort is faster for small, mostly - sorted array segments. - - 4. The larger of the two sub-partitions is always pushed onto the - stack first, with the algorithm then concentrating on the - smaller partition. This *guarantees* no more than log (total_elems) - stack size is needed (actually O(1) in this case)! */ - -/** - * g_qsort_with_data: - * @pbase: start of array to sort - * @total_elems: elements in the array - * @size: size of each element - * @compare_func: function to compare elements - * @user_data: data to pass to @compare_func - * - * This is just like the standard C qsort() function, but - * the comparison routine accepts a user data argument. - * - **/ -void -g_qsort_with_data (gconstpointer pbase, - gint total_elems, - gsize size, - GCompareDataFunc compare_func, - gpointer user_data) -{ - register char *base_ptr = (char *) pbase; - - const size_t max_thresh = MAX_THRESH * size; - - g_return_if_fail (total_elems >= 0); - g_return_if_fail (pbase != NULL || total_elems == 0); - g_return_if_fail (compare_func != NULL); - - if (total_elems == 0) - /* Avoid lossage with unsigned arithmetic below. */ - return; - - if (total_elems > MAX_THRESH) - { - char *lo = base_ptr; - char *hi = &lo[size * (total_elems - 1)]; - stack_node stack[STACK_SIZE]; - stack_node *top = stack; - - PUSH (NULL, NULL); - - while (STACK_NOT_EMPTY) - { - char *left_ptr; - char *right_ptr; - - /* Select median value from among LO, MID, and HI. Rearrange - LO and HI so the three values are sorted. This lowers the - probability of picking a pathological pivot value and - skips a comparison for both the LEFT_PTR and RIGHT_PTR in - the while loops. */ - - char *mid = lo + size * ((hi - lo) / size >> 1); - - if ((*compare_func) ((void *) mid, (void *) lo, user_data) < 0) - SWAP (mid, lo, size); - if ((*compare_func) ((void *) hi, (void *) mid, user_data) < 0) - SWAP (mid, hi, size); - else - goto jump_over; - if ((*compare_func) ((void *) mid, (void *) lo, user_data) < 0) - SWAP (mid, lo, size); - jump_over:; - - left_ptr = lo + size; - right_ptr = hi - size; - - /* Here's the famous ``collapse the walls'' section of quicksort. - Gotta like those tight inner loops! They are the main reason - that this algorithm runs much faster than others. */ - do - { - while ((*compare_func) ((void *) left_ptr, (void *) mid, user_data) < 0) - left_ptr += size; - - while ((*compare_func) ((void *) mid, (void *) right_ptr, user_data) < 0) - right_ptr -= size; - - if (left_ptr < right_ptr) - { - SWAP (left_ptr, right_ptr, size); - if (mid == left_ptr) - mid = right_ptr; - else if (mid == right_ptr) - mid = left_ptr; - left_ptr += size; - right_ptr -= size; - } - else if (left_ptr == right_ptr) - { - left_ptr += size; - right_ptr -= size; - break; - } - } - while (left_ptr <= right_ptr); - - /* Set up pointers for next iteration. First determine whether - left and right partitions are below the threshold size. If so, - ignore one or both. Otherwise, push the larger partition's - bounds on the stack and continue sorting the smaller one. */ - - if ((size_t) (right_ptr - lo) <= max_thresh) - { - if ((size_t) (hi - left_ptr) <= max_thresh) - /* Ignore both small partitions. */ - POP (lo, hi); - else - /* Ignore small left partition. */ - lo = left_ptr; - } - else if ((size_t) (hi - left_ptr) <= max_thresh) - /* Ignore small right partition. */ - hi = right_ptr; - else if ((right_ptr - lo) > (hi - left_ptr)) - { - /* Push larger left partition indices. */ - PUSH (lo, right_ptr); - lo = left_ptr; - } - else - { - /* Push larger right partition indices. */ - PUSH (left_ptr, hi); - hi = right_ptr; - } - } - } - - /* Once the BASE_PTR array is partially sorted by quicksort the rest - is completely sorted using insertion sort, since this is efficient - for partitions below MAX_THRESH size. BASE_PTR points to the beginning - of the array to sort, and END_PTR points at the very last element in - the array (*not* one beyond it!). */ - -#define min(x, y) ((x) < (y) ? (x) : (y)) - - { - char *const end_ptr = &base_ptr[size * (total_elems - 1)]; - char *tmp_ptr = base_ptr; - char *thresh = min(end_ptr, base_ptr + max_thresh); - register char *run_ptr; - - /* Find smallest element in first threshold and place it at the - array's beginning. This is the smallest array element, - and the operation speeds up insertion sort's inner loop. */ - - for (run_ptr = tmp_ptr + size; run_ptr <= thresh; run_ptr += size) - if ((*compare_func) ((void *) run_ptr, (void *) tmp_ptr, user_data) < 0) - tmp_ptr = run_ptr; - - if (tmp_ptr != base_ptr) - SWAP (tmp_ptr, base_ptr, size); - - /* Insertion sort, running from left-hand-side up to right-hand-side. */ - - run_ptr = base_ptr + size; - while ((run_ptr += size) <= end_ptr) - { - tmp_ptr = run_ptr - size; - while ((*compare_func) ((void *) run_ptr, (void *) tmp_ptr, user_data) < 0) - tmp_ptr -= size; - - tmp_ptr += size; - if (tmp_ptr != run_ptr) - { - char *trav; - - trav = run_ptr + size; - while (--trav >= run_ptr) - { - char c = *trav; - char *hi, *lo; - - for (hi = lo = trav; (lo -= size) >= tmp_ptr; hi = lo) - *hi = *lo; - *hi = c; - } - } - } - } -} - -#define __G_QSORT_C__ -#include "galiasdef.c" diff --git a/lib/win32/glib-2.20.4/glib/gqsort.h b/lib/win32/glib-2.20.4/glib/gqsort.h deleted file mode 100644 index 3a47a584ee626..0000000000000 --- a/lib/win32/glib-2.20.4/glib/gqsort.h +++ /dev/null @@ -1,46 +0,0 @@ - /* GLIB - Library of useful routines for C programming - * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library 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 - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ - -/* - * Modified by the GLib Team and others 1997-2000. See the AUTHORS - * file for a list of people on the GLib Team. See the ChangeLog - * files for a list of changes. These files are distributed with - * GLib at ftp://ftp.gtk.org/pub/gtk/. - */ - -#if defined(G_DISABLE_SINGLE_INCLUDES) && !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION) -#error "Only can be included directly." -#endif - -#ifndef __G_QSORT_H__ -#define __G_QSORT_H__ - -#include - -G_BEGIN_DECLS - -void g_qsort_with_data (gconstpointer pbase, - gint total_elems, - gsize size, - GCompareDataFunc compare_func, - gpointer user_data); - -G_END_DECLS - -#endif /* __G_QSORT_H__ */ diff --git a/lib/win32/glib-2.20.4/glib/gquark.h b/lib/win32/glib-2.20.4/glib/gquark.h deleted file mode 100644 index a0cbe2fd72c8c..0000000000000 --- a/lib/win32/glib-2.20.4/glib/gquark.h +++ /dev/null @@ -1,52 +0,0 @@ -/* GLIB - Library of useful routines for C programming - * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library 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 - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ - -/* - * Modified by the GLib Team and others 1997-2000. See the AUTHORS - * file for a list of people on the GLib Team. See the ChangeLog - * files for a list of changes. These files are distributed with - * GLib at ftp://ftp.gtk.org/pub/gtk/. - */ - -#if defined(G_DISABLE_SINGLE_INCLUDES) && !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION) -#error "Only can be included directly." -#endif - -#ifndef __G_QUARK_H__ -#define __G_QUARK_H__ - -#include - -G_BEGIN_DECLS - -typedef guint32 GQuark; - -/* Quarks (string<->id association) - */ -GQuark g_quark_try_string (const gchar *string); -GQuark g_quark_from_static_string (const gchar *string); -GQuark g_quark_from_string (const gchar *string); -G_CONST_RETURN gchar* g_quark_to_string (GQuark quark) G_GNUC_CONST; - -G_CONST_RETURN gchar* g_intern_string (const gchar *string); -G_CONST_RETURN gchar* g_intern_static_string (const gchar *string); - -G_END_DECLS - -#endif /* __G_QUARK_H__ */ diff --git a/lib/win32/glib-2.20.4/glib/gqueue.c b/lib/win32/glib-2.20.4/glib/gqueue.c deleted file mode 100644 index 1368e2614077d..0000000000000 --- a/lib/win32/glib-2.20.4/glib/gqueue.c +++ /dev/null @@ -1,1013 +0,0 @@ -/* GLIB - Library of useful routines for C programming - * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald - * - * GQueue: Double ended queue implementation, piggy backed on GList. - * Copyright (C) 1998 Tim Janik - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library 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 - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ - -/* - * MT safe - */ - -#include "config.h" - -#include "glib.h" -#include "galias.h" - -/** - * g_queue_new: - * - * Creates a new #GQueue. - * - * Returns: a new #GQueue. - **/ -GQueue* -g_queue_new (void) -{ - return g_slice_new0 (GQueue); -} - -/** - * g_queue_free: - * @queue: a #GQueue. - * - * Frees the memory allocated for the #GQueue. Only call this function if - * @queue was created with g_queue_new(). If queue elements contain - * dynamically-allocated memory, they should be freed first. - **/ -void -g_queue_free (GQueue *queue) -{ - g_return_if_fail (queue != NULL); - - g_list_free (queue->head); - g_slice_free (GQueue, queue); -} - -/** - * g_queue_init: - * @queue: an uninitialized #GQueue - * - * A statically-allocated #GQueue must be initialized with this function - * before it can be used. Alternatively you can initialize it with - * #G_QUEUE_INIT. It is not necessary to initialize queues created with - * g_queue_new(). - * - * Since: 2.14 - **/ -void -g_queue_init (GQueue *queue) -{ - g_return_if_fail (queue != NULL); - - queue->head = queue->tail = NULL; - queue->length = 0; -} - -/** - * g_queue_clear: - * @queue: a #GQueue - * - * Removes all the elements in @queue. If queue elements contain - * dynamically-allocated memory, they should be freed first. - * - * Since: 2.14 - */ -void -g_queue_clear (GQueue *queue) -{ - g_return_if_fail (queue != NULL); - - g_list_free (queue->head); - g_queue_init (queue); -} - -/** - * g_queue_is_empty: - * @queue: a #GQueue. - * - * Returns %TRUE if the queue is empty. - * - * Returns: %TRUE if the queue is empty. - **/ -gboolean -g_queue_is_empty (GQueue *queue) -{ - g_return_val_if_fail (queue != NULL, TRUE); - - return queue->head == NULL; -} - -/** - * g_queue_get_length: - * @queue: a #GQueue - * - * Returns the number of items in @queue. - * - * Return value: The number of items in @queue. - * - * Since: 2.4 - **/ -guint -g_queue_get_length (GQueue *queue) -{ - g_return_val_if_fail (queue != NULL, 0); - - return queue->length; -} - -/** - * g_queue_reverse: - * @queue: a #GQueue - * - * Reverses the order of the items in @queue. - * - * Since: 2.4 - **/ -void -g_queue_reverse (GQueue *queue) -{ - g_return_if_fail (queue != NULL); - - queue->tail = queue->head; - queue->head = g_list_reverse (queue->head); -} - -/** - * g_queue_copy: - * @queue: a #GQueue - * - * Copies a @queue. Note that is a shallow copy. If the elements in the - * queue consist of pointers to data, the pointers are copied, but the - * actual data is not. - * - * Return value: A copy of @queue - * - * Since: 2.4 - **/ -GQueue * -g_queue_copy (GQueue *queue) -{ - GQueue *result; - GList *list; - - g_return_val_if_fail (queue != NULL, NULL); - - result = g_queue_new (); - - for (list = queue->head; list != NULL; list = list->next) - g_queue_push_tail (result, list->data); - - return result; -} - -/** - * g_queue_foreach: - * @queue: a #GQueue - * @func: the function to call for each element's data - * @user_data: user data to pass to @func - * - * Calls @func for each element in the queue passing @user_data to the - * function. - * - * Since: 2.4 - **/ -void -g_queue_foreach (GQueue *queue, - GFunc func, - gpointer user_data) -{ - GList *list; - - g_return_if_fail (queue != NULL); - g_return_if_fail (func != NULL); - - list = queue->head; - while (list) - { - GList *next = list->next; - func (list->data, user_data); - list = next; - } -} - -/** - * g_queue_find: - * @queue: a #GQueue - * @data: data to find - * - * Finds the first link in @queue which contains @data. - * - * Return value: The first link in @queue which contains @data. - * - * Since: 2.4 - **/ -GList * -g_queue_find (GQueue *queue, - gconstpointer data) -{ - g_return_val_if_fail (queue != NULL, NULL); - - return g_list_find (queue->head, data); -} - -/** - * g_queue_find_custom: - * @queue: a #GQueue - * @data: user data passed to @func - * @func: a #GCompareFunc to call for each element. It should return 0 - * when the desired element is found - * - * Finds an element in a #GQueue, using a supplied function to find the - * desired element. It iterates over the queue, calling the given function - * which should return 0 when the desired element is found. The function - * takes two gconstpointer arguments, the #GQueue element's data as the - * first argument and the given user data as the second argument. - * - * Return value: The found link, or %NULL if it wasn't found - * - * Since: 2.4 - **/ -GList * -g_queue_find_custom (GQueue *queue, - gconstpointer data, - GCompareFunc func) -{ - g_return_val_if_fail (queue != NULL, NULL); - g_return_val_if_fail (func != NULL, NULL); - - return g_list_find_custom (queue->head, data, func); -} - -/** - * g_queue_sort: - * @queue: a #GQueue - * @compare_func: the #GCompareDataFunc used to sort @queue. This function - * is passed two elements of the queue and should return 0 if they are - * equal, a negative value if the first comes before the second, and - * a positive value if the second comes before the first. - * @user_data: user data passed to @compare_func - * - * Sorts @queue using @compare_func. - * - * Since: 2.4 - **/ -void -g_queue_sort (GQueue *queue, - GCompareDataFunc compare_func, - gpointer user_data) -{ - g_return_if_fail (queue != NULL); - g_return_if_fail (compare_func != NULL); - - queue->head = g_list_sort_with_data (queue->head, compare_func, user_data); - queue->tail = g_list_last (queue->head); -} - -/** - * g_queue_push_head: - * @queue: a #GQueue. - * @data: the data for the new element. - * - * Adds a new element at the head of the queue. - **/ -void -g_queue_push_head (GQueue *queue, - gpointer data) -{ - g_return_if_fail (queue != NULL); - - queue->head = g_list_prepend (queue->head, data); - if (!queue->tail) - queue->tail = queue->head; - queue->length++; -} - -/** - * g_queue_push_nth: - * @queue: a #GQueue - * @data: the data for the new element - * @n: the position to insert the new element. If @n is negative or - * larger than the number of elements in the @queue, the element is - * added to the end of the queue. - * - * Inserts a new element into @queue at the given position - * - * Since: 2.4 - **/ -void -g_queue_push_nth (GQueue *queue, - gpointer data, - gint n) -{ - g_return_if_fail (queue != NULL); - - if (n < 0 || n >= queue->length) - { - g_queue_push_tail (queue, data); - return; - } - - g_queue_insert_before (queue, g_queue_peek_nth_link (queue, n), data); -} - -/** - * g_queue_push_head_link: - * @queue: a #GQueue. - * @link_: a single #GList element, not a list with - * more than one element. - * - * Adds a new element at the head of the queue. - **/ -void -g_queue_push_head_link (GQueue *queue, - GList *link) -{ - g_return_if_fail (queue != NULL); - g_return_if_fail (link != NULL); - g_return_if_fail (link->prev == NULL); - g_return_if_fail (link->next == NULL); - - link->next = queue->head; - if (queue->head) - queue->head->prev = link; - else - queue->tail = link; - queue->head = link; - queue->length++; -} - -/** - * g_queue_push_tail: - * @queue: a #GQueue. - * @data: the data for the new element. - * - * Adds a new element at the tail of the queue. - **/ -void -g_queue_push_tail (GQueue *queue, - gpointer data) -{ - g_return_if_fail (queue != NULL); - - queue->tail = g_list_append (queue->tail, data); - if (queue->tail->next) - queue->tail = queue->tail->next; - else - queue->head = queue->tail; - queue->length++; -} - -/** - * g_queue_push_tail_link: - * @queue: a #GQueue. - * @link_: a single #GList element, not a list with - * more than one element. - * - * Adds a new element at the tail of the queue. - **/ -void -g_queue_push_tail_link (GQueue *queue, - GList *link) -{ - g_return_if_fail (queue != NULL); - g_return_if_fail (link != NULL); - g_return_if_fail (link->prev == NULL); - g_return_if_fail (link->next == NULL); - - link->prev = queue->tail; - if (queue->tail) - queue->tail->next = link; - else - queue->head = link; - queue->tail = link; - queue->length++; -} - -/** - * g_queue_push_nth_link: - * @queue: a #GQueue - * @n: the position to insert the link. If this is negative or larger than - * the number of elements in @queue, the link is added to the end of - * @queue. - * @link_: the link to add to @queue - * - * Inserts @link into @queue at the given position. - * - * Since: 2.4 - **/ -void -g_queue_push_nth_link (GQueue *queue, - gint n, - GList *link_) -{ - GList *next; - GList *prev; - - g_return_if_fail (queue != NULL); - g_return_if_fail (link_ != NULL); - - if (n < 0 || n >= queue->length) - { - g_queue_push_tail_link (queue, link_); - return; - } - - g_assert (queue->head); - g_assert (queue->tail); - - next = g_queue_peek_nth_link (queue, n); - prev = next->prev; - - if (prev) - prev->next = link_; - next->prev = link_; - - link_->next = next; - link_->prev = prev; - - if (queue->head->prev) - queue->head = queue->head->prev; - - if (queue->tail->next) - queue->tail = queue->tail->next; - - queue->length++; -} - -/** - * g_queue_pop_head: - * @queue: a #GQueue. - * - * Removes the first element of the queue. - * - * Returns: the data of the first element in the queue, or %NULL if the queue - * is empty. - **/ -gpointer -g_queue_pop_head (GQueue *queue) -{ - g_return_val_if_fail (queue != NULL, NULL); - - if (queue->head) - { - GList *node = queue->head; - gpointer data = node->data; - - queue->head = node->next; - if (queue->head) - queue->head->prev = NULL; - else - queue->tail = NULL; - g_list_free_1 (node); - queue->length--; - - return data; - } - - return NULL; -} - -/** - * g_queue_pop_head_link: - * @queue: a #GQueue. - * - * Removes the first element of the queue. - * - * Returns: the #GList element at the head of the queue, or %NULL if the queue - * is empty. - **/ -GList* -g_queue_pop_head_link (GQueue *queue) -{ - g_return_val_if_fail (queue != NULL, NULL); - - if (queue->head) - { - GList *node = queue->head; - - queue->head = node->next; - if (queue->head) - { - queue->head->prev = NULL; - node->next = NULL; - } - else - queue->tail = NULL; - queue->length--; - - return node; - } - - return NULL; -} - -/** - * g_queue_peek_head_link: - * @queue: a #GQueue - * - * Returns the first link in @queue - * - * Return value: the first link in @queue, or %NULL if @queue is empty - * - * Since: 2.4 - **/ -GList* -g_queue_peek_head_link (GQueue *queue) -{ - g_return_val_if_fail (queue != NULL, NULL); - - return queue->head; -} - -/** - * g_queue_peek_tail_link: - * @queue: a #GQueue - * - * Returns the last link @queue. - * - * Return value: the last link in @queue, or %NULL if @queue is empty - * - * Since: 2.4 - **/ -GList* -g_queue_peek_tail_link (GQueue *queue) -{ - g_return_val_if_fail (queue != NULL, NULL); - - return queue->tail; -} - -/** - * g_queue_pop_tail: - * @queue: a #GQueue. - * - * Removes the last element of the queue. - * - * Returns: the data of the last element in the queue, or %NULL if the queue - * is empty. - **/ -gpointer -g_queue_pop_tail (GQueue *queue) -{ - g_return_val_if_fail (queue != NULL, NULL); - - if (queue->tail) - { - GList *node = queue->tail; - gpointer data = node->data; - - queue->tail = node->prev; - if (queue->tail) - queue->tail->next = NULL; - else - queue->head = NULL; - queue->length--; - g_list_free_1 (node); - - return data; - } - - return NULL; -} - -/** - * g_queue_pop_nth: - * @queue: a #GQueue - * @n: the position of the element. - * - * Removes the @n'th element of @queue. - * - * Return value: the element's data, or %NULL if @n is off the end of @queue. - * - * Since: 2.4 - **/ -gpointer -g_queue_pop_nth (GQueue *queue, - guint n) -{ - GList *nth_link; - gpointer result; - - g_return_val_if_fail (queue != NULL, NULL); - - if (n >= queue->length) - return NULL; - - nth_link = g_queue_peek_nth_link (queue, n); - result = nth_link->data; - - g_queue_delete_link (queue, nth_link); - - return result; -} - -/** - * g_queue_pop_tail_link: - * @queue: a #GQueue. - * - * Removes the last element of the queue. - * - * Returns: the #GList element at the tail of the queue, or %NULL if the queue - * is empty. - **/ -GList* -g_queue_pop_tail_link (GQueue *queue) -{ - g_return_val_if_fail (queue != NULL, NULL); - - if (queue->tail) - { - GList *node = queue->tail; - - queue->tail = node->prev; - if (queue->tail) - { - queue->tail->next = NULL; - node->prev = NULL; - } - else - queue->head = NULL; - queue->length--; - - return node; - } - - return NULL; -} - -/** - * g_queue_pop_nth_link: - * @queue: a #GQueue - * @n: the link's position - * - * Removes and returns the link at the given position. - * - * Return value: The @n'th link, or %NULL if @n is off the end of @queue. - * - * Since: 2.4 - **/ -GList* -g_queue_pop_nth_link (GQueue *queue, - guint n) -{ - GList *link; - - g_return_val_if_fail (queue != NULL, NULL); - - if (n >= queue->length) - return NULL; - - link = g_queue_peek_nth_link (queue, n); - g_queue_unlink (queue, link); - - return link; -} - -/** - * g_queue_peek_nth_link: - * @queue: a #GQueue - * @n: the position of the link - * - * Returns the link at the given position - * - * Return value: The link at the @n'th position, or %NULL if @n is off the - * end of the list - * - * Since: 2.4 - **/ -GList * -g_queue_peek_nth_link (GQueue *queue, - guint n) -{ - GList *link; - gint i; - - g_return_val_if_fail (queue != NULL, NULL); - - if (n >= queue->length) - return NULL; - - if (n > queue->length / 2) - { - n = queue->length - n - 1; - - link = queue->tail; - for (i = 0; i < n; ++i) - link = link->prev; - } - else - { - link = queue->head; - for (i = 0; i < n; ++i) - link = link->next; - } - - return link; -} - -/** - * g_queue_link_index: - * @queue: a #Gqueue - * @link_: A #GList link - * - * Returns the position of @link_ in @queue. - * - * Return value: The position of @link_, or -1 if the link is - * not part of @queue - * - * Since: 2.4 - **/ -gint -g_queue_link_index (GQueue *queue, - GList *link_) -{ - g_return_val_if_fail (queue != NULL, -1); - - return g_list_position (queue->head, link_); -} - -/** - * g_queue_unlink - * @queue: a #GQueue - * @link_: a #GList link that must be part of @queue - * - * Unlinks @link_ so that it will no longer be part of @queue. The link is - * not freed. - * - * @link_ must be part of @queue, - * - * Since: 2.4 - **/ -void -g_queue_unlink (GQueue *queue, - GList *link_) -{ - g_return_if_fail (queue != NULL); - g_return_if_fail (link_ != NULL); - - if (link_ == queue->tail) - queue->tail = queue->tail->prev; - - queue->head = g_list_remove_link (queue->head, link_); - queue->length--; -} - -/** - * g_queue_delete_link: - * @queue: a #GQueue - * @link_: a #GList link that must be part of @queue - * - * Removes @link_ from @queue and frees it. - * - * @link_ must be part of @queue. - * - * Since: 2.4 - **/ -void -g_queue_delete_link (GQueue *queue, - GList *link_) -{ - g_return_if_fail (queue != NULL); - g_return_if_fail (link_ != NULL); - - g_queue_unlink (queue, link_); - g_list_free (link_); -} - -/** - * g_queue_peek_head: - * @queue: a #GQueue. - * - * Returns the first element of the queue. - * - * Returns: the data of the first element in the queue, or %NULL if the queue - * is empty. - **/ -gpointer -g_queue_peek_head (GQueue *queue) -{ - g_return_val_if_fail (queue != NULL, NULL); - - return queue->head ? queue->head->data : NULL; -} - -/** - * g_queue_peek_tail: - * @queue: a #GQueue. - * - * Returns the last element of the queue. - * - * Returns: the data of the last element in the queue, or %NULL if the queue - * is empty. - **/ -gpointer -g_queue_peek_tail (GQueue *queue) -{ - g_return_val_if_fail (queue != NULL, NULL); - - return queue->tail ? queue->tail->data : NULL; -} - -/** - * g_queue_peek_nth: - * @queue: a #GQueue - * @n: the position of the element. - * - * Returns the @n'th element of @queue. - * - * Return value: The data for the @n'th element of @queue, or %NULL if @n is - * off the end of @queue. - * - * Since: 2.4 - **/ -gpointer -g_queue_peek_nth (GQueue *queue, - guint n) -{ - GList *link; - - g_return_val_if_fail (queue != NULL, NULL); - - link = g_queue_peek_nth_link (queue, n); - - if (link) - return link->data; - - return NULL; -} - -/** - * g_queue_index: - * @queue: a #GQueue - * @data: the data to find. - * - * Returns the position of the first element in @queue which contains @data. - * - * Return value: The position of the first element in @queue which contains @data, or -1 if no element in @queue contains @data. - * - * Since: 2.4 - **/ -gint -g_queue_index (GQueue *queue, - gconstpointer data) -{ - g_return_val_if_fail (queue != NULL, -1); - - return g_list_index (queue->head, data); -} - -/** - * g_queue_remove: - * @queue: a #GQueue - * @data: data to remove. - * - * Removes the first element in @queue that contains @data. - * - * Since: 2.4 - **/ -void -g_queue_remove (GQueue *queue, - gconstpointer data) -{ - GList *link; - - g_return_if_fail (queue != NULL); - - link = g_list_find (queue->head, data); - - if (link) - g_queue_delete_link (queue, link); -} - -/** - * g_queue_remove_all: - * @queue: a #GQueue - * @data: data to remove - * - * Remove all elemeents in @queue which contains @data. - * - * Since: 2.4 - **/ -void -g_queue_remove_all (GQueue *queue, - gconstpointer data) -{ - GList *list; - - g_return_if_fail (queue != NULL); - - list = queue->head; - while (list) - { - GList *next = list->next; - - if (list->data == data) - g_queue_delete_link (queue, list); - - list = next; - } -} - -/** - * g_queue_insert_before: - * @queue: a #GQueue - * @sibling: a #GList link that must be part of @queue - * @data: the data to insert - * - * Inserts @data into @queue before @sibling. - * - * @sibling must be part of @queue. - * - * Since: 2.4 - **/ -void -g_queue_insert_before (GQueue *queue, - GList *sibling, - gpointer data) -{ - g_return_if_fail (queue != NULL); - g_return_if_fail (sibling != NULL); - - queue->head = g_list_insert_before (queue->head, sibling, data); - queue->length++; -} - -/** - * g_queue_insert_after: - * @queue: a #GQueue - * @sibling: a #GList link that must be part of @queue - * @data: the data to insert - * - * Inserts @data into @queue after @sibling - * - * @sibling must be part of @queue - * - * Since: 2.4 - **/ -void -g_queue_insert_after (GQueue *queue, - GList *sibling, - gpointer data) -{ - g_return_if_fail (queue != NULL); - g_return_if_fail (sibling != NULL); - - if (sibling == queue->tail) - g_queue_push_tail (queue, data); - else - g_queue_insert_before (queue, sibling->next, data); -} - -/** - * g_queue_insert_sorted: - * @queue: a #GQueue - * @data: the data to insert - * @func: the #GCompareDataFunc used to compare elements in the queue. It is - * called with two elements of the @queue and @user_data. It should - * return 0 if the elements are equal, a negative value if the first - * element comes before the second, and a positive value if the second - * element comes before the first. - * @user_data: user data passed to @func. - * - * Inserts @data into @queue using @func to determine the new position. - * - * Since: 2.4 - **/ -void -g_queue_insert_sorted (GQueue *queue, - gpointer data, - GCompareDataFunc func, - gpointer user_data) -{ - GList *list; - - g_return_if_fail (queue != NULL); - - list = queue->head; - while (list && func (list->data, data, user_data) < 0) - list = list->next; - - if (list) - g_queue_insert_before (queue, list, data); - else - g_queue_push_tail (queue, data); -} - -#define __G_QUEUE_C__ -#include "galiasdef.c" diff --git a/lib/win32/glib-2.20.4/glib/gqueue.h b/lib/win32/glib-2.20.4/glib/gqueue.h deleted file mode 100644 index e78488fb65189..0000000000000 --- a/lib/win32/glib-2.20.4/glib/gqueue.h +++ /dev/null @@ -1,127 +0,0 @@ -/* GLIB - Library of useful routines for C programming - * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library 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 - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ - -/* - * Modified by the GLib Team and others 1997-2000. See the AUTHORS - * file for a list of people on the GLib Team. See the ChangeLog - * files for a list of changes. These files are distributed with - * GLib at ftp://ftp.gtk.org/pub/gtk/. - */ - -#if defined(G_DISABLE_SINGLE_INCLUDES) && !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION) -#error "Only can be included directly." -#endif - -#ifndef __G_QUEUE_H__ -#define __G_QUEUE_H__ - -#include - -G_BEGIN_DECLS - -typedef struct _GQueue GQueue; - -struct _GQueue -{ - GList *head; - GList *tail; - guint length; -}; - -#define G_QUEUE_INIT { NULL, NULL, 0 } - -/* Queues - */ -GQueue* g_queue_new (void); -void g_queue_free (GQueue *queue); -void g_queue_init (GQueue *queue); -void g_queue_clear (GQueue *queue); -gboolean g_queue_is_empty (GQueue *queue); -guint g_queue_get_length (GQueue *queue); -void g_queue_reverse (GQueue *queue); -GQueue * g_queue_copy (GQueue *queue); -void g_queue_foreach (GQueue *queue, - GFunc func, - gpointer user_data); -GList * g_queue_find (GQueue *queue, - gconstpointer data); -GList * g_queue_find_custom (GQueue *queue, - gconstpointer data, - GCompareFunc func); -void g_queue_sort (GQueue *queue, - GCompareDataFunc compare_func, - gpointer user_data); - -void g_queue_push_head (GQueue *queue, - gpointer data); -void g_queue_push_tail (GQueue *queue, - gpointer data); -void g_queue_push_nth (GQueue *queue, - gpointer data, - gint n); -gpointer g_queue_pop_head (GQueue *queue); -gpointer g_queue_pop_tail (GQueue *queue); -gpointer g_queue_pop_nth (GQueue *queue, - guint n); -gpointer g_queue_peek_head (GQueue *queue); -gpointer g_queue_peek_tail (GQueue *queue); -gpointer g_queue_peek_nth (GQueue *queue, - guint n); -gint g_queue_index (GQueue *queue, - gconstpointer data); -void g_queue_remove (GQueue *queue, - gconstpointer data); -void g_queue_remove_all (GQueue *queue, - gconstpointer data); -void g_queue_insert_before (GQueue *queue, - GList *sibling, - gpointer data); -void g_queue_insert_after (GQueue *queue, - GList *sibling, - gpointer data); -void g_queue_insert_sorted (GQueue *queue, - gpointer data, - GCompareDataFunc func, - gpointer user_data); - -void g_queue_push_head_link (GQueue *queue, - GList *link_); -void g_queue_push_tail_link (GQueue *queue, - GList *link_); -void g_queue_push_nth_link (GQueue *queue, - gint n, - GList *link_); -GList* g_queue_pop_head_link (GQueue *queue); -GList* g_queue_pop_tail_link (GQueue *queue); -GList* g_queue_pop_nth_link (GQueue *queue, - guint n); -GList* g_queue_peek_head_link (GQueue *queue); -GList* g_queue_peek_tail_link (GQueue *queue); -GList* g_queue_peek_nth_link (GQueue *queue, - guint n); -gint g_queue_link_index (GQueue *queue, - GList *link_); -void g_queue_unlink (GQueue *queue, - GList *link_); -void g_queue_delete_link (GQueue *queue, - GList *link_); - -G_END_DECLS - -#endif /* __G_QUEUE_H__ */ diff --git a/lib/win32/glib-2.20.4/glib/grand.c b/lib/win32/glib-2.20.4/glib/grand.c deleted file mode 100644 index 55f89700263fc..0000000000000 --- a/lib/win32/glib-2.20.4/glib/grand.c +++ /dev/null @@ -1,635 +0,0 @@ -/* GLIB - Library of useful routines for C programming - * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library 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 - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ - -/* Originally developed and coded by Makoto Matsumoto and Takuji - * Nishimura. Please mail , if you're using - * code from this file in your own programs or libraries. - * Further information on the Mersenne Twister can be found at - * http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/emt.html - * This code was adapted to glib by Sebastian Wilhelmi. - */ - -/* - * Modified by the GLib Team and others 1997-2000. See the AUTHORS - * file for a list of people on the GLib Team. See the ChangeLog - * files for a list of changes. These files are distributed with - * GLib at ftp://ftp.gtk.org/pub/gtk/. - */ - -/* - * MT safe - */ - -#include "config.h" - -#include -#include -#include -#include -#include -#ifdef HAVE_UNISTD_H -#include -#endif - -#include "glib.h" -#include "gthreadprivate.h" -#include "galias.h" - -#ifdef G_OS_WIN32 -#include /* For getpid() */ -#endif - -G_LOCK_DEFINE_STATIC (global_random); -static GRand* global_random = NULL; - -/* Period parameters */ -#define N 624 -#define M 397 -#define MATRIX_A 0x9908b0df /* constant vector a */ -#define UPPER_MASK 0x80000000 /* most significant w-r bits */ -#define LOWER_MASK 0x7fffffff /* least significant r bits */ - -/* Tempering parameters */ -#define TEMPERING_MASK_B 0x9d2c5680 -#define TEMPERING_MASK_C 0xefc60000 -#define TEMPERING_SHIFT_U(y) (y >> 11) -#define TEMPERING_SHIFT_S(y) (y << 7) -#define TEMPERING_SHIFT_T(y) (y << 15) -#define TEMPERING_SHIFT_L(y) (y >> 18) - -static guint -get_random_version (void) -{ - static gboolean initialized = FALSE; - static guint random_version; - - if (!initialized) - { - const gchar *version_string = g_getenv ("G_RANDOM_VERSION"); - if (!version_string || version_string[0] == '\000' || - strcmp (version_string, "2.2") == 0) - random_version = 22; - else if (strcmp (version_string, "2.0") == 0) - random_version = 20; - else - { - g_warning ("Unknown G_RANDOM_VERSION \"%s\". Using version 2.2.", - version_string); - random_version = 22; - } - initialized = TRUE; - } - - return random_version; -} - -/* This is called from g_thread_init(). It's used to - * initialize some static data in a threadsafe way. - */ -void -_g_rand_thread_init (void) -{ - (void)get_random_version (); -} - -struct _GRand -{ - guint32 mt[N]; /* the array for the state vector */ - guint mti; -}; - -/** - * g_rand_new_with_seed: - * @seed: a value to initialize the random number generator. - * - * Creates a new random number generator initialized with @seed. - * - * Return value: the new #GRand. - **/ -GRand* -g_rand_new_with_seed (guint32 seed) -{ - GRand *rand = g_new0 (GRand, 1); - g_rand_set_seed (rand, seed); - return rand; -} - -/** - * g_rand_new_with_seed_array: - * @seed: an array of seeds to initialize the random number generator. - * @seed_length: an array of seeds to initialize the random number generator. - * - * Creates a new random number generator initialized with @seed. - * - * Return value: the new #GRand. - * - * Since: 2.4 - **/ -GRand* -g_rand_new_with_seed_array (const guint32 *seed, guint seed_length) -{ - GRand *rand = g_new0 (GRand, 1); - g_rand_set_seed_array (rand, seed, seed_length); - return rand; -} - -/** - * g_rand_new: - * - * Creates a new random number generator initialized with a seed taken - * either from /dev/urandom (if existing) or from - * the current time (as a fallback). - * - * Return value: the new #GRand. - **/ -GRand* -g_rand_new (void) -{ - guint32 seed[4]; - GTimeVal now; -#ifdef G_OS_UNIX - static gboolean dev_urandom_exists = TRUE; - - if (dev_urandom_exists) - { - FILE* dev_urandom; - - do - { - errno = 0; - dev_urandom = fopen("/dev/urandom", "rb"); - } - while G_UNLIKELY (errno == EINTR); - - if (dev_urandom) - { - int r; - - do - { - errno = 0; - r = fread (seed, sizeof (seed), 1, dev_urandom); - } - while G_UNLIKELY (errno == EINTR); - - if (r != 1) - dev_urandom_exists = FALSE; - - fclose (dev_urandom); - } - else - dev_urandom_exists = FALSE; - } -#else - static gboolean dev_urandom_exists = FALSE; -#endif - - if (!dev_urandom_exists) - { - g_get_current_time (&now); - seed[0] = now.tv_sec; - seed[1] = now.tv_usec; - seed[2] = getpid (); -#ifdef G_OS_UNIX - seed[3] = getppid (); -#else - seed[3] = 0; -#endif - } - - return g_rand_new_with_seed_array (seed, 4); -} - -/** - * g_rand_free: - * @rand_: a #GRand. - * - * Frees the memory allocated for the #GRand. - **/ -void -g_rand_free (GRand* rand) -{ - g_return_if_fail (rand != NULL); - - g_free (rand); -} - -/** - * g_rand_copy: - * @rand_: a #GRand. - * - * Copies a #GRand into a new one with the same exact state as before. - * This way you can take a snapshot of the random number generator for - * replaying later. - * - * Return value: the new #GRand. - * - * Since: 2.4 - **/ -GRand * -g_rand_copy (GRand* rand) -{ - GRand* new_rand; - - g_return_val_if_fail (rand != NULL, NULL); - - new_rand = g_new0 (GRand, 1); - memcpy (new_rand, rand, sizeof (GRand)); - - return new_rand; -} - -/** - * g_rand_set_seed: - * @rand_: a #GRand. - * @seed: a value to reinitialize the random number generator. - * - * Sets the seed for the random number generator #GRand to @seed. - **/ -void -g_rand_set_seed (GRand* rand, guint32 seed) -{ - g_return_if_fail (rand != NULL); - - switch (get_random_version ()) - { - case 20: - /* setting initial seeds to mt[N] using */ - /* the generator Line 25 of Table 1 in */ - /* [KNUTH 1981, The Art of Computer Programming */ - /* Vol. 2 (2nd Ed.), pp102] */ - - if (seed == 0) /* This would make the PRNG procude only zeros */ - seed = 0x6b842128; /* Just set it to another number */ - - rand->mt[0]= seed; - for (rand->mti=1; rand->mtimti++) - rand->mt[rand->mti] = (69069 * rand->mt[rand->mti-1]); - - break; - case 22: - /* See Knuth TAOCP Vol2. 3rd Ed. P.106 for multiplier. */ - /* In the previous version (see above), MSBs of the */ - /* seed affect only MSBs of the array mt[]. */ - - rand->mt[0]= seed; - for (rand->mti=1; rand->mtimti++) - rand->mt[rand->mti] = 1812433253UL * - (rand->mt[rand->mti-1] ^ (rand->mt[rand->mti-1] >> 30)) + rand->mti; - break; - default: - g_assert_not_reached (); - } -} - -/** - * g_rand_set_seed_array: - * @rand_: a #GRand. - * @seed: array to initialize with - * @seed_length: length of array - * - * Initializes the random number generator by an array of - * longs. Array can be of arbitrary size, though only the - * first 624 values are taken. This function is useful - * if you have many low entropy seeds, or if you require more then - * 32bits of actual entropy for your application. - * - * Since: 2.4 - **/ -void -g_rand_set_seed_array (GRand* rand, const guint32 *seed, guint seed_length) -{ - int i, j, k; - - g_return_if_fail (rand != NULL); - g_return_if_fail (seed_length >= 1); - - g_rand_set_seed (rand, 19650218UL); - - i=1; j=0; - k = (N>seed_length ? N : seed_length); - for (; k; k--) - { - rand->mt[i] = (rand->mt[i] ^ - ((rand->mt[i-1] ^ (rand->mt[i-1] >> 30)) * 1664525UL)) - + seed[j] + j; /* non linear */ - rand->mt[i] &= 0xffffffffUL; /* for WORDSIZE > 32 machines */ - i++; j++; - if (i>=N) - { - rand->mt[0] = rand->mt[N-1]; - i=1; - } - if (j>=seed_length) - j=0; - } - for (k=N-1; k; k--) - { - rand->mt[i] = (rand->mt[i] ^ - ((rand->mt[i-1] ^ (rand->mt[i-1] >> 30)) * 1566083941UL)) - - i; /* non linear */ - rand->mt[i] &= 0xffffffffUL; /* for WORDSIZE > 32 machines */ - i++; - if (i>=N) - { - rand->mt[0] = rand->mt[N-1]; - i=1; - } - } - - rand->mt[0] = 0x80000000UL; /* MSB is 1; assuring non-zero initial array */ -} - -/** - * g_rand_int: - * @rand_: a #GRand. - * - * Returns the next random #guint32 from @rand_ equally distributed over - * the range [0..2^32-1]. - * - * Return value: A random number. - **/ -guint32 -g_rand_int (GRand* rand) -{ - guint32 y; - static const guint32 mag01[2]={0x0, MATRIX_A}; - /* mag01[x] = x * MATRIX_A for x=0,1 */ - - g_return_val_if_fail (rand != NULL, 0); - - if (rand->mti >= N) { /* generate N words at one time */ - int kk; - - for (kk=0;kkmt[kk]&UPPER_MASK)|(rand->mt[kk+1]&LOWER_MASK); - rand->mt[kk] = rand->mt[kk+M] ^ (y >> 1) ^ mag01[y & 0x1]; - } - for (;kkmt[kk]&UPPER_MASK)|(rand->mt[kk+1]&LOWER_MASK); - rand->mt[kk] = rand->mt[kk+(M-N)] ^ (y >> 1) ^ mag01[y & 0x1]; - } - y = (rand->mt[N-1]&UPPER_MASK)|(rand->mt[0]&LOWER_MASK); - rand->mt[N-1] = rand->mt[M-1] ^ (y >> 1) ^ mag01[y & 0x1]; - - rand->mti = 0; - } - - y = rand->mt[rand->mti++]; - y ^= TEMPERING_SHIFT_U(y); - y ^= TEMPERING_SHIFT_S(y) & TEMPERING_MASK_B; - y ^= TEMPERING_SHIFT_T(y) & TEMPERING_MASK_C; - y ^= TEMPERING_SHIFT_L(y); - - return y; -} - -/* transform [0..2^32] -> [0..1] */ -#define G_RAND_DOUBLE_TRANSFORM 2.3283064365386962890625e-10 - -/** - * g_rand_int_range: - * @rand_: a #GRand. - * @begin: lower closed bound of the interval. - * @end: upper open bound of the interval. - * - * Returns the next random #gint32 from @rand_ equally distributed over - * the range [@begin..@end-1]. - * - * Return value: A random number. - **/ -gint32 -g_rand_int_range (GRand* rand, gint32 begin, gint32 end) -{ - guint32 dist = end - begin; - guint32 random; - - g_return_val_if_fail (rand != NULL, begin); - g_return_val_if_fail (end > begin, begin); - - switch (get_random_version ()) - { - case 20: - if (dist <= 0x10000L) /* 2^16 */ - { - /* This method, which only calls g_rand_int once is only good - * for (end - begin) <= 2^16, because we only have 32 bits set - * from the one call to g_rand_int (). */ - - /* we are using (trans + trans * trans), because g_rand_int only - * covers [0..2^32-1] and thus g_rand_int * trans only covers - * [0..1-2^-32], but the biggest double < 1 is 1-2^-52. - */ - - gdouble double_rand = g_rand_int (rand) * - (G_RAND_DOUBLE_TRANSFORM + - G_RAND_DOUBLE_TRANSFORM * G_RAND_DOUBLE_TRANSFORM); - - random = (gint32) (double_rand * dist); - } - else - { - /* Now we use g_rand_double_range (), which will set 52 bits for - us, so that it is safe to round and still get a decent - distribution */ - random = (gint32) g_rand_double_range (rand, 0, dist); - } - break; - case 22: - if (dist == 0) - random = 0; - else - { - /* maxvalue is set to the predecessor of the greatest - * multiple of dist less or equal 2^32. */ - guint32 maxvalue; - if (dist <= 0x80000000u) /* 2^31 */ - { - /* maxvalue = 2^32 - 1 - (2^32 % dist) */ - guint32 leftover = (0x80000000u % dist) * 2; - if (leftover >= dist) leftover -= dist; - maxvalue = 0xffffffffu - leftover; - } - else - maxvalue = dist - 1; - - do - random = g_rand_int (rand); - while (random > maxvalue); - - random %= dist; - } - break; - default: - random = 0; /* Quiet GCC */ - g_assert_not_reached (); - } - - return begin + random; -} - -/** - * g_rand_double: - * @rand_: a #GRand. - * - * Returns the next random #gdouble from @rand_ equally distributed over - * the range [0..1). - * - * Return value: A random number. - **/ -gdouble -g_rand_double (GRand* rand) -{ - /* We set all 52 bits after the point for this, not only the first - 32. Thats why we need two calls to g_rand_int */ - gdouble retval = g_rand_int (rand) * G_RAND_DOUBLE_TRANSFORM; - retval = (retval + g_rand_int (rand)) * G_RAND_DOUBLE_TRANSFORM; - - /* The following might happen due to very bad rounding luck, but - * actually this should be more than rare, we just try again then */ - if (retval >= 1.0) - return g_rand_double (rand); - - return retval; -} - -/** - * g_rand_double_range: - * @rand_: a #GRand. - * @begin: lower closed bound of the interval. - * @end: upper open bound of the interval. - * - * Returns the next random #gdouble from @rand_ equally distributed over - * the range [@begin..@end). - * - * Return value: A random number. - **/ -gdouble -g_rand_double_range (GRand* rand, gdouble begin, gdouble end) -{ - return g_rand_double (rand) * (end - begin) + begin; -} - -/** - * g_random_int: - * - * Return a random #guint32 equally distributed over the range - * [0..2^32-1]. - * - * Return value: A random number. - **/ -guint32 -g_random_int (void) -{ - guint32 result; - G_LOCK (global_random); - if (!global_random) - global_random = g_rand_new (); - - result = g_rand_int (global_random); - G_UNLOCK (global_random); - return result; -} - -/** - * g_random_int_range: - * @begin: lower closed bound of the interval. - * @end: upper open bound of the interval. - * - * Returns a random #gint32 equally distributed over the range - * [@begin..@end-1]. - * - * Return value: A random number. - **/ -gint32 -g_random_int_range (gint32 begin, gint32 end) -{ - gint32 result; - G_LOCK (global_random); - if (!global_random) - global_random = g_rand_new (); - - result = g_rand_int_range (global_random, begin, end); - G_UNLOCK (global_random); - return result; -} - -/** - * g_random_double: - * - * Returns a random #gdouble equally distributed over the range [0..1). - * - * Return value: A random number. - **/ -gdouble -g_random_double (void) -{ - double result; - G_LOCK (global_random); - if (!global_random) - global_random = g_rand_new (); - - result = g_rand_double (global_random); - G_UNLOCK (global_random); - return result; -} - -/** - * g_random_double_range: - * @begin: lower closed bound of the interval. - * @end: upper open bound of the interval. - * - * Returns a random #gdouble equally distributed over the range [@begin..@end). - * - * Return value: A random number. - **/ -gdouble -g_random_double_range (gdouble begin, gdouble end) -{ - double result; - G_LOCK (global_random); - if (!global_random) - global_random = g_rand_new (); - - result = g_rand_double_range (global_random, begin, end); - G_UNLOCK (global_random); - return result; -} - -/** - * g_random_set_seed: - * @seed: a value to reinitialize the global random number generator. - * - * Sets the seed for the global random number generator, which is used - * by the g_random_* functions, to @seed. - **/ -void -g_random_set_seed (guint32 seed) -{ - G_LOCK (global_random); - if (!global_random) - global_random = g_rand_new_with_seed (seed); - else - g_rand_set_seed (global_random, seed); - G_UNLOCK (global_random); -} - - -#define __G_RAND_C__ -#include "galiasdef.c" diff --git a/lib/win32/glib-2.20.4/glib/grand.h b/lib/win32/glib-2.20.4/glib/grand.h deleted file mode 100644 index 07907dfc172b0..0000000000000 --- a/lib/win32/glib-2.20.4/glib/grand.h +++ /dev/null @@ -1,85 +0,0 @@ -/* GLIB - Library of useful routines for C programming - * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library 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 - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ - -/* - * Modified by the GLib Team and others 1997-2000. See the AUTHORS - * file for a list of people on the GLib Team. See the ChangeLog - * files for a list of changes. These files are distributed with - * GLib at ftp://ftp.gtk.org/pub/gtk/. - */ - -#if defined(G_DISABLE_SINGLE_INCLUDES) && !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION) -#error "Only can be included directly." -#endif - -#ifndef __G_RAND_H__ -#define __G_RAND_H__ - -#include - -G_BEGIN_DECLS - -typedef struct _GRand GRand; - -/* GRand - a good and fast random number generator: Mersenne Twister - * see http://www.math.keio.ac.jp/~matumoto/emt.html for more info. - * The range functions return a value in the intervall [begin, end). - * int -> [0..2^32-1] - * int_range -> [begin..end-1] - * double -> [0..1) - * double_range -> [begin..end) - */ - -GRand* g_rand_new_with_seed (guint32 seed); -GRand* g_rand_new_with_seed_array (const guint32 *seed, - guint seed_length); -GRand* g_rand_new (void); -void g_rand_free (GRand *rand_); -GRand* g_rand_copy (GRand *rand_); -void g_rand_set_seed (GRand *rand_, - guint32 seed); -void g_rand_set_seed_array (GRand *rand_, - const guint32 *seed, - guint seed_length); - -#define g_rand_boolean(rand_) ((g_rand_int (rand_) & (1 << 15)) != 0) - -guint32 g_rand_int (GRand *rand_); -gint32 g_rand_int_range (GRand *rand_, - gint32 begin, - gint32 end); -gdouble g_rand_double (GRand *rand_); -gdouble g_rand_double_range (GRand *rand_, - gdouble begin, - gdouble end); -void g_random_set_seed (guint32 seed); - -#define g_random_boolean() ((g_random_int () & (1 << 15)) != 0) - -guint32 g_random_int (void); -gint32 g_random_int_range (gint32 begin, - gint32 end); -gdouble g_random_double (void); -gdouble g_random_double_range (gdouble begin, - gdouble end); - - -G_END_DECLS - -#endif /* __G_RAND_H__ */ diff --git a/lib/win32/glib-2.20.4/glib/gregex.c b/lib/win32/glib-2.20.4/glib/gregex.c deleted file mode 100644 index 091b418eb551e..0000000000000 --- a/lib/win32/glib-2.20.4/glib/gregex.c +++ /dev/null @@ -1,2762 +0,0 @@ -/* GRegex -- regular expression API wrapper around PCRE. - * - * Copyright (C) 1999, 2000 Scott Wimer - * Copyright (C) 2004, Matthias Clasen - * Copyright (C) 2005 - 2007, Marco Barisione - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library 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 - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - */ - -#include "config.h" - -#include - -#include "glib.h" -#include "glibintl.h" -#include "gregex.h" - -#ifdef USE_SYSTEM_PCRE -#include -#else -#include "pcre/pcre.h" -#endif - -/* PCRE 7.3 does not contain the definition of PCRE_ERROR_NULLWSLIMIT */ -#ifndef PCRE_ERROR_NULLWSLIMIT -#define PCRE_ERROR_NULLWSLIMIT (-22) -#endif - -#include "galias.h" - -/* Mask of all the possible values for GRegexCompileFlags. */ -#define G_REGEX_COMPILE_MASK (G_REGEX_CASELESS | \ - G_REGEX_MULTILINE | \ - G_REGEX_DOTALL | \ - G_REGEX_EXTENDED | \ - G_REGEX_ANCHORED | \ - G_REGEX_DOLLAR_ENDONLY | \ - G_REGEX_UNGREEDY | \ - G_REGEX_RAW | \ - G_REGEX_NO_AUTO_CAPTURE | \ - G_REGEX_OPTIMIZE | \ - G_REGEX_DUPNAMES | \ - G_REGEX_NEWLINE_CR | \ - G_REGEX_NEWLINE_LF | \ - G_REGEX_NEWLINE_CRLF) - -/* Mask of all the possible values for GRegexMatchFlags. */ -#define G_REGEX_MATCH_MASK (G_REGEX_MATCH_ANCHORED | \ - G_REGEX_MATCH_NOTBOL | \ - G_REGEX_MATCH_NOTEOL | \ - G_REGEX_MATCH_NOTEMPTY | \ - G_REGEX_MATCH_PARTIAL | \ - G_REGEX_MATCH_NEWLINE_CR | \ - G_REGEX_MATCH_NEWLINE_LF | \ - G_REGEX_MATCH_NEWLINE_CRLF | \ - G_REGEX_MATCH_NEWLINE_ANY) - -/* if the string is in UTF-8 use g_utf8_ functions, else use - * use just +/- 1. */ -#define NEXT_CHAR(re, s) (((re)->compile_opts & PCRE_UTF8) ? \ - g_utf8_next_char (s) : \ - ((s) + 1)) -#define PREV_CHAR(re, s) (((re)->compile_opts & PCRE_UTF8) ? \ - g_utf8_prev_char (s) : \ - ((s) - 1)) - -struct _GMatchInfo -{ - GRegex *regex; /* the regex */ - GRegexMatchFlags match_opts; /* options used at match time on the regex */ - gint matches; /* number of matching sub patterns */ - gint pos; /* position in the string where last match left off */ - gint *offsets; /* array of offsets paired 0,1 ; 2,3 ; 3,4 etc */ - gint n_offsets; /* number of offsets */ - gint *workspace; /* workspace for pcre_dfa_exec() */ - gint n_workspace; /* number of workspace elements */ - const gchar *string; /* string passed to the match function */ - gssize string_len; /* length of string */ -}; - -struct _GRegex -{ - volatile gint ref_count; /* the ref count for the immutable part */ - gchar *pattern; /* the pattern */ - pcre *pcre_re; /* compiled form of the pattern */ - GRegexCompileFlags compile_opts; /* options used at compile time on the pattern */ - GRegexMatchFlags match_opts; /* options used at match time on the regex */ - pcre_extra *extra; /* data stored when G_REGEX_OPTIMIZE is used */ -}; - -/* TRUE if ret is an error code, FALSE otherwise. */ -#define IS_PCRE_ERROR(ret) ((ret) < PCRE_ERROR_NOMATCH && (ret) != PCRE_ERROR_PARTIAL) - -typedef struct _InterpolationData InterpolationData; -static gboolean interpolation_list_needs_match (GList *list); -static gboolean interpolate_replacement (const GMatchInfo *match_info, - GString *result, - gpointer data); -static GList *split_replacement (const gchar *replacement, - GError **error); -static void free_interpolation_data (InterpolationData *data); - - -static const gchar * -match_error (gint errcode) -{ - switch (errcode) - { - case PCRE_ERROR_NOMATCH: - /* not an error */ - break; - case PCRE_ERROR_NULL: - /* NULL argument, this should not happen in GRegex */ - g_warning ("A NULL argument was passed to PCRE"); - break; - case PCRE_ERROR_BADOPTION: - return "bad options"; - case PCRE_ERROR_BADMAGIC: - return _("corrupted object"); - case PCRE_ERROR_UNKNOWN_OPCODE: - return N_("internal error or corrupted object"); - case PCRE_ERROR_NOMEMORY: - return _("out of memory"); - case PCRE_ERROR_NOSUBSTRING: - /* not used by pcre_exec() */ - break; - case PCRE_ERROR_MATCHLIMIT: - return _("backtracking limit reached"); - case PCRE_ERROR_CALLOUT: - /* callouts are not implemented */ - break; - case PCRE_ERROR_BADUTF8: - case PCRE_ERROR_BADUTF8_OFFSET: - /* we do not check if strings are valid */ - break; - case PCRE_ERROR_PARTIAL: - /* not an error */ - break; - case PCRE_ERROR_BADPARTIAL: - return _("the pattern contains items not supported for partial matching"); - case PCRE_ERROR_INTERNAL: - return _("internal error"); - case PCRE_ERROR_BADCOUNT: - /* negative ovecsize, this should not happen in GRegex */ - g_warning ("A negative ovecsize was passed to PCRE"); - break; - case PCRE_ERROR_DFA_UITEM: - return _("the pattern contains items not supported for partial matching"); - case PCRE_ERROR_DFA_UCOND: - return _("back references as conditions are not supported for partial matching"); - case PCRE_ERROR_DFA_UMLIMIT: - /* the match_field field is not used in GRegex */ - break; - case PCRE_ERROR_DFA_WSSIZE: - /* handled expanding the workspace */ - break; - case PCRE_ERROR_DFA_RECURSE: - case PCRE_ERROR_RECURSIONLIMIT: - return _("recursion limit reached"); - case PCRE_ERROR_NULLWSLIMIT: - return _("workspace limit for empty substrings reached"); - case PCRE_ERROR_BADNEWLINE: - return _("invalid combination of newline flags"); - default: - break; - } - return _("unknown error"); -} - -static void -translate_compile_error (gint *errcode, const gchar **errmsg) -{ - /* Compile errors are created adding 100 to the error code returned - * by PCRE. - * If errcode is known we put the translatable error message in - * erromsg. If errcode is unknown we put the generic - * G_REGEX_ERROR_COMPILE error code in errcode and keep the - * untranslated error message returned by PCRE. - * Note that there can be more PCRE errors with the same GRegexError - * and that some PCRE errors are useless for us. - */ - *errcode += 100; - - switch (*errcode) - { - case G_REGEX_ERROR_STRAY_BACKSLASH: - *errmsg = _("\\ at end of pattern"); - break; - case G_REGEX_ERROR_MISSING_CONTROL_CHAR: - *errmsg = _("\\c at end of pattern"); - break; - case G_REGEX_ERROR_UNRECOGNIZED_ESCAPE: - *errmsg = _("unrecognized character follows \\"); - break; - case 137: - /* A number of Perl escapes are not handled by PCRE. - * Therefore it explicitly raises ERR37. - */ - *errcode = G_REGEX_ERROR_UNRECOGNIZED_ESCAPE; - *errmsg = _("case-changing escapes (\\l, \\L, \\u, \\U) are not allowed here"); - break; - case G_REGEX_ERROR_QUANTIFIERS_OUT_OF_ORDER: - *errmsg = _("numbers out of order in {} quantifier"); - break; - case G_REGEX_ERROR_QUANTIFIER_TOO_BIG: - *errmsg = _("number too big in {} quantifier"); - break; - case G_REGEX_ERROR_UNTERMINATED_CHARACTER_CLASS: - *errmsg = _("missing terminating ] for character class"); - break; - case G_REGEX_ERROR_INVALID_ESCAPE_IN_CHARACTER_CLASS: - *errmsg = _("invalid escape sequence in character class"); - break; - case G_REGEX_ERROR_RANGE_OUT_OF_ORDER: - *errmsg = _("range out of order in character class"); - break; - case G_REGEX_ERROR_NOTHING_TO_REPEAT: - *errmsg = _("nothing to repeat"); - break; - case G_REGEX_ERROR_UNRECOGNIZED_CHARACTER: - *errmsg = _("unrecognized character after (?"); - break; - case 124: - *errcode = G_REGEX_ERROR_UNRECOGNIZED_CHARACTER; - *errmsg = _("unrecognized character after (?<"); - break; - case 141: - *errcode = G_REGEX_ERROR_UNRECOGNIZED_CHARACTER; - *errmsg = _("unrecognized character after (?P"); - break; - case G_REGEX_ERROR_POSIX_NAMED_CLASS_OUTSIDE_CLASS: - *errmsg = _("POSIX named classes are supported only within a class"); - break; - case G_REGEX_ERROR_UNMATCHED_PARENTHESIS: - *errmsg = _("missing terminating )"); - break; - case 122: - *errcode = G_REGEX_ERROR_UNMATCHED_PARENTHESIS; - *errmsg = _(") without opening ("); - break; - case 129: - *errcode = G_REGEX_ERROR_UNMATCHED_PARENTHESIS; - /* translators: '(?R' and '(?[+-]digits' are both meant as (groups of) - * sequences here, '(?-54' would be an example for the second group. - */ - *errmsg = _("(?R or (?[+-]digits must be followed by )"); - break; - case G_REGEX_ERROR_INEXISTENT_SUBPATTERN_REFERENCE: - *errmsg = _("reference to non-existent subpattern"); - break; - case G_REGEX_ERROR_UNTERMINATED_COMMENT: - *errmsg = _("missing ) after comment"); - break; - case G_REGEX_ERROR_EXPRESSION_TOO_LARGE: - *errmsg = _("regular expression too large"); - break; - case G_REGEX_ERROR_MEMORY_ERROR: - *errmsg = _("failed to get memory"); - break; - case G_REGEX_ERROR_VARIABLE_LENGTH_LOOKBEHIND: - *errmsg = _("lookbehind assertion is not fixed length"); - break; - case G_REGEX_ERROR_MALFORMED_CONDITION: - *errmsg = _("malformed number or name after (?("); - break; - case G_REGEX_ERROR_TOO_MANY_CONDITIONAL_BRANCHES: - *errmsg = _("conditional group contains more than two branches"); - break; - case G_REGEX_ERROR_ASSERTION_EXPECTED: - *errmsg = _("assertion expected after (?("); - break; - case G_REGEX_ERROR_UNKNOWN_POSIX_CLASS_NAME: - *errmsg = _("unknown POSIX class name"); - break; - case G_REGEX_ERROR_POSIX_COLLATING_ELEMENTS_NOT_SUPPORTED: - *errmsg = _("POSIX collating elements are not supported"); - break; - case G_REGEX_ERROR_HEX_CODE_TOO_LARGE: - *errmsg = _("character value in \\x{...} sequence is too large"); - break; - case G_REGEX_ERROR_INVALID_CONDITION: - *errmsg = _("invalid condition (?(0)"); - break; - case G_REGEX_ERROR_SINGLE_BYTE_MATCH_IN_LOOKBEHIND: - *errmsg = _("\\C not allowed in lookbehind assertion"); - break; - case G_REGEX_ERROR_INFINITE_LOOP: - *errmsg = _("recursive call could loop indefinitely"); - break; - case G_REGEX_ERROR_MISSING_SUBPATTERN_NAME_TERMINATOR: - *errmsg = _("missing terminator in subpattern name"); - break; - case G_REGEX_ERROR_DUPLICATE_SUBPATTERN_NAME: - *errmsg = _("two named subpatterns have the same name"); - break; - case G_REGEX_ERROR_MALFORMED_PROPERTY: - *errmsg = _("malformed \\P or \\p sequence"); - break; - case G_REGEX_ERROR_UNKNOWN_PROPERTY: - *errmsg = _("unknown property name after \\P or \\p"); - break; - case G_REGEX_ERROR_SUBPATTERN_NAME_TOO_LONG: - *errmsg = _("subpattern name is too long (maximum 32 characters)"); - break; - case G_REGEX_ERROR_TOO_MANY_SUBPATTERNS: - *errmsg = _("too many named subpatterns (maximum 10,000)"); - break; - case G_REGEX_ERROR_INVALID_OCTAL_VALUE: - *errmsg = _("octal value is greater than \\377"); - break; - case G_REGEX_ERROR_TOO_MANY_BRANCHES_IN_DEFINE: - *errmsg = _("DEFINE group contains more than one branch"); - break; - case G_REGEX_ERROR_DEFINE_REPETION: - *errmsg = _("repeating a DEFINE group is not allowed"); - break; - case G_REGEX_ERROR_INCONSISTENT_NEWLINE_OPTIONS: - *errmsg = _("inconsistent NEWLINE options"); - break; - case G_REGEX_ERROR_MISSING_BACK_REFERENCE: - *errmsg = _("\\g is not followed by a braced name or an optionally " - "braced non-zero number"); - break; - case 11: - *errcode = G_REGEX_ERROR_INTERNAL; - *errmsg = _("unexpected repeat"); - break; - case 23: - *errcode = G_REGEX_ERROR_INTERNAL; - *errmsg = _("code overflow"); - break; - case 52: - *errcode = G_REGEX_ERROR_INTERNAL; - *errmsg = _("overran compiling workspace"); - break; - case 53: - *errcode = G_REGEX_ERROR_INTERNAL; - *errmsg = _("previously-checked referenced subpattern not found"); - break; - case 16: - /* This should not happen as we never pass a NULL erroffset */ - g_warning ("erroffset passed as NULL"); - *errcode = G_REGEX_ERROR_COMPILE; - break; - case 17: - /* This should not happen as we check options before passing them - * to pcre_compile2() */ - g_warning ("unknown option bit(s) set"); - *errcode = G_REGEX_ERROR_COMPILE; - break; - case 32: - case 44: - case 45: - /* These errors should not happen as we are using an UTF8-enabled PCRE - * and we do not check if strings are valid */ - g_warning ("%s", *errmsg); - *errcode = G_REGEX_ERROR_COMPILE; - break; - default: - *errcode = G_REGEX_ERROR_COMPILE; - } -} - -/* GMatchInfo */ - -static GMatchInfo * -match_info_new (const GRegex *regex, - const gchar *string, - gint string_len, - gint start_position, - gint match_options, - gboolean is_dfa) -{ - GMatchInfo *match_info; - - if (string_len < 0) - string_len = strlen (string); - - match_info = g_new0 (GMatchInfo, 1); - match_info->regex = g_regex_ref ((GRegex *)regex); - match_info->string = string; - match_info->string_len = string_len; - match_info->matches = PCRE_ERROR_NOMATCH; - match_info->pos = start_position; - match_info->match_opts = match_options; - - if (is_dfa) - { - /* These values should be enough for most cases, if they are not - * enough g_regex_match_all_full() will expand them. */ - match_info->n_offsets = 24; - match_info->n_workspace = 100; - match_info->workspace = g_new (gint, match_info->n_workspace); - } - else - { - gint capture_count; - pcre_fullinfo (regex->pcre_re, regex->extra, - PCRE_INFO_CAPTURECOUNT, &capture_count); - match_info->n_offsets = (capture_count + 1) * 3; - } - - match_info->offsets = g_new0 (gint, match_info->n_offsets); - /* Set an invalid position for the previous match. */ - match_info->offsets[0] = -1; - match_info->offsets[1] = -1; - - return match_info; -} - -/** - * g_match_info_get_regex: - * @match_info: a #GMatchInfo - * - * Returns #GRegex object used in @match_info. It belongs to Glib - * and must not be freed. Use g_regex_ref() if you need to keep it - * after you free @match_info object. - * - * Returns: #GRegex object used in @match_info - * - * Since: 2.14 - */ -GRegex * -g_match_info_get_regex (const GMatchInfo *match_info) -{ - g_return_val_if_fail (match_info != NULL, NULL); - return match_info->regex; -} - -/** - * g_match_info_get_string: - * @match_info: a #GMatchInfo - * - * Returns the string searched with @match_info. This is the - * string passed to g_regex_match() or g_regex_replace() so - * you may not free it before calling this function. - * - * Returns: the string searched with @match_info - * - * Since: 2.14 - */ -const gchar * -g_match_info_get_string (const GMatchInfo *match_info) -{ - g_return_val_if_fail (match_info != NULL, NULL); - return match_info->string; -} - -/** - * g_match_info_free: - * @match_info: a #GMatchInfo - * - * Frees all the memory associated with the #GMatchInfo structure. - * - * Since: 2.14 - */ -void -g_match_info_free (GMatchInfo *match_info) -{ - if (match_info) - { - g_regex_unref (match_info->regex); - g_free (match_info->offsets); - g_free (match_info->workspace); - g_free (match_info); - } -} - -/** - * g_match_info_next: - * @match_info: a #GMatchInfo structure - * @error: location to store the error occuring, or %NULL to ignore errors - * - * Scans for the next match using the same parameters of the previous - * call to g_regex_match_full() or g_regex_match() that returned - * @match_info. - * - * The match is done on the string passed to the match function, so you - * cannot free it before calling this function. - * - * Returns: %TRUE is the string matched, %FALSE otherwise - * - * Since: 2.14 - */ -gboolean -g_match_info_next (GMatchInfo *match_info, - GError **error) -{ - gint opts; - gint prev_match_start; - gint prev_match_end; - - g_return_val_if_fail (match_info != NULL, FALSE); - g_return_val_if_fail (error == NULL || *error == NULL, FALSE); - g_return_val_if_fail (match_info->pos >= 0, FALSE); - - opts = match_info->regex->match_opts | match_info->match_opts; - - prev_match_start = match_info->offsets[0]; - prev_match_end = match_info->offsets[1]; - - match_info->matches = pcre_exec (match_info->regex->pcre_re, - match_info->regex->extra, - match_info->string, - match_info->string_len, - match_info->pos, - match_info->regex->match_opts | - match_info->match_opts, - match_info->offsets, - match_info->n_offsets); - if (IS_PCRE_ERROR (match_info->matches)) - { - g_set_error (error, G_REGEX_ERROR, G_REGEX_ERROR_MATCH, - _("Error while matching regular expression %s: %s"), - match_info->regex->pattern, match_error (match_info->matches)); - return FALSE; - } - - /* avoid infinite loops if the pattern is an empty string or something - * equivalent */ - if (match_info->pos == match_info->offsets[1]) - { - if (match_info->pos > match_info->string_len) - { - /* we have reached the end of the string */ - match_info->pos = -1; - match_info->matches = PCRE_ERROR_NOMATCH; - return FALSE; - } - - match_info->pos = NEXT_CHAR (match_info->regex, - &match_info->string[match_info->pos]) - - match_info->string; - } - else - { - match_info->pos = match_info->offsets[1]; - } - - /* it's possibile to get two identical matches when we are matching - * empty strings, for instance if the pattern is "(?=[A-Z0-9])" and - * the string is "RegExTest" we have: - * - search at position 0: match from 0 to 0 - * - search at position 1: match from 3 to 3 - * - search at position 3: match from 3 to 3 (duplicate) - * - search at position 4: match from 5 to 5 - * - search at position 5: match from 5 to 5 (duplicate) - * - search at position 6: no match -> stop - * so we have to ignore the duplicates. - * see bug #515944: http://bugzilla.gnome.org/show_bug.cgi?id=515944 */ - if (match_info->matches >= 0 && - prev_match_start == match_info->offsets[0] && - prev_match_end == match_info->offsets[1]) - { - /* ignore this match and search the next one */ - return g_match_info_next (match_info, error); - } - - return match_info->matches >= 0; -} - -/** - * g_match_info_matches: - * @match_info: a #GMatchInfo structure - * - * Returns whether the previous match operation succeeded. - * - * Returns: %TRUE if the previous match operation succeeded, - * %FALSE otherwise - * - * Since: 2.14 - */ -gboolean -g_match_info_matches (const GMatchInfo *match_info) -{ - g_return_val_if_fail (match_info != NULL, FALSE); - - return match_info->matches >= 0; -} - -/** - * g_match_info_get_match_count: - * @match_info: a #GMatchInfo structure - * - * Retrieves the number of matched substrings (including substring 0, - * that is the whole matched text), so 1 is returned if the pattern - * has no substrings in it and 0 is returned if the match failed. - * - * If the last match was obtained using the DFA algorithm, that is - * using g_regex_match_all() or g_regex_match_all_full(), the retrieved - * count is not that of the number of capturing parentheses but that of - * the number of matched substrings. - * - * Returns: Number of matched substrings, or -1 if an error occurred - * - * Since: 2.14 - */ -gint -g_match_info_get_match_count (const GMatchInfo *match_info) -{ - g_return_val_if_fail (match_info, -1); - - if (match_info->matches == PCRE_ERROR_NOMATCH) - /* no match */ - return 0; - else if (match_info->matches < PCRE_ERROR_NOMATCH) - /* error */ - return -1; - else - /* match */ - return match_info->matches; -} - -/** - * g_match_info_is_partial_match: - * @match_info: a #GMatchInfo structure - * - * Usually if the string passed to g_regex_match*() matches as far as - * it goes, but is too short to match the entire pattern, %FALSE is - * returned. There are circumstances where it might be helpful to - * distinguish this case from other cases in which there is no match. - * - * Consider, for example, an application where a human is required to - * type in data for a field with specific formatting requirements. An - * example might be a date in the form ddmmmyy, defined by the pattern - * "^\d?\d(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)\d\d$". - * If the application sees the user’s keystrokes one by one, and can - * check that what has been typed so far is potentially valid, it is - * able to raise an error as soon as a mistake is made. - * - * GRegex supports the concept of partial matching by means of the - * #G_REGEX_MATCH_PARTIAL flag. When this is set the return code for - * g_regex_match() or g_regex_match_full() is, as usual, %TRUE - * for a complete match, %FALSE otherwise. But, when these functions - * return %FALSE, you can check if the match was partial calling - * g_match_info_is_partial_match(). - * - * When using partial matching you cannot use g_match_info_fetch*(). - * - * Because of the way certain internal optimizations are implemented - * the partial matching algorithm cannot be used with all patterns. - * So repeated single characters such as "a{2,4}" and repeated single - * meta-sequences such as "\d+" are not permitted if the maximum number - * of occurrences is greater than one. Optional items such as "\d?" - * (where the maximum is one) are permitted. Quantifiers with any values - * are permitted after parentheses, so the invalid examples above can be - * coded thus "(a){2,4}" and "(\d)+". If #G_REGEX_MATCH_PARTIAL is set - * for a pattern that does not conform to the restrictions, matching - * functions return an error. - * - * Returns: %TRUE if the match was partial, %FALSE otherwise - * - * Since: 2.14 - */ -gboolean -g_match_info_is_partial_match (const GMatchInfo *match_info) -{ - g_return_val_if_fail (match_info != NULL, FALSE); - - return match_info->matches == PCRE_ERROR_PARTIAL; -} - -/** - * g_match_info_expand_references: - * @match_info: a #GMatchInfo or %NULL - * @string_to_expand: the string to expand - * @error: location to store the error occuring, or %NULL to ignore errors - * - * Returns a new string containing the text in @string_to_expand with - * references and escape sequences expanded. References refer to the last - * match done with @string against @regex and have the same syntax used by - * g_regex_replace(). - * - * The @string_to_expand must be UTF-8 encoded even if #G_REGEX_RAW was - * passed to g_regex_new(). - * - * The backreferences are extracted from the string passed to the match - * function, so you cannot call this function after freeing the string. - * - * @match_info may be %NULL in which case @string_to_expand must not - * contain references. For instance "foo\n" does not refer to an actual - * pattern and '\n' merely will be replaced with \n character, - * while to expand "\0" (whole match) one needs the result of a match. - * Use g_regex_check_replacement() to find out whether @string_to_expand - * contains references. - * - * Returns: the expanded string, or %NULL if an error occurred - * - * Since: 2.14 - */ -gchar * -g_match_info_expand_references (const GMatchInfo *match_info, - const gchar *string_to_expand, - GError **error) -{ - GString *result; - GList *list; - GError *tmp_error = NULL; - - g_return_val_if_fail (string_to_expand != NULL, NULL); - g_return_val_if_fail (error == NULL || *error == NULL, NULL); - - list = split_replacement (string_to_expand, &tmp_error); - if (tmp_error != NULL) - { - g_propagate_error (error, tmp_error); - return NULL; - } - - if (!match_info && interpolation_list_needs_match (list)) - { - g_critical ("String '%s' contains references to the match, can't " - "expand references without GMatchInfo object", - string_to_expand); - return NULL; - } - - result = g_string_sized_new (strlen (string_to_expand)); - interpolate_replacement (match_info, result, list); - - g_list_foreach (list, (GFunc)free_interpolation_data, NULL); - g_list_free (list); - - return g_string_free (result, FALSE); -} - -/** - * g_match_info_fetch: - * @match_info: #GMatchInfo structure - * @match_num: number of the sub expression - * - * Retrieves the text matching the @match_num'th capturing - * parentheses. 0 is the full text of the match, 1 is the first paren - * set, 2 the second, and so on. - * - * If @match_num is a valid sub pattern but it didn't match anything - * (e.g. sub pattern 1, matching "b" against "(a)?b") then an empty - * string is returned. - * - * If the match was obtained using the DFA algorithm, that is using - * g_regex_match_all() or g_regex_match_all_full(), the retrieved - * string is not that of a set of parentheses but that of a matched - * substring. Substrings are matched in reverse order of length, so - * 0 is the longest match. - * - * The string is fetched from the string passed to the match function, - * so you cannot call this function after freeing the string. - * - * Returns: The matched substring, or %NULL if an error occurred. - * You have to free the string yourself - * - * Since: 2.14 - */ -gchar * -g_match_info_fetch (const GMatchInfo *match_info, - gint match_num) -{ - /* we cannot use pcre_get_substring() because it allocates the - * string using pcre_malloc(). */ - gchar *match = NULL; - gint start, end; - - g_return_val_if_fail (match_info != NULL, NULL); - g_return_val_if_fail (match_num >= 0, NULL); - - /* match_num does not exist or it didn't matched, i.e. matching "b" - * against "(a)?b" then group 0 is empty. */ - if (!g_match_info_fetch_pos (match_info, match_num, &start, &end)) - match = NULL; - else if (start == -1) - match = g_strdup (""); - else - match = g_strndup (&match_info->string[start], end - start); - - return match; -} - -/** - * g_match_info_fetch_pos: - * @match_info: #GMatchInfo structure - * @match_num: number of the sub expression - * @start_pos: pointer to location where to store the start position - * @end_pos: pointer to location where to store the end position - * - * Retrieves the position in bytes of the @match_num'th capturing - * parentheses. 0 is the full text of the match, 1 is the first - * paren set, 2 the second, and so on. - * - * If @match_num is a valid sub pattern but it didn't match anything - * (e.g. sub pattern 1, matching "b" against "(a)?b") then @start_pos - * and @end_pos are set to -1 and %TRUE is returned. - * - * If the match was obtained using the DFA algorithm, that is using - * g_regex_match_all() or g_regex_match_all_full(), the retrieved - * position is not that of a set of parentheses but that of a matched - * substring. Substrings are matched in reverse order of length, so - * 0 is the longest match. - * - * Returns: %TRUE if the position was fetched, %FALSE otherwise. If - * the position cannot be fetched, @start_pos and @end_pos are left - * unchanged - * - * Since: 2.14 - */ -gboolean -g_match_info_fetch_pos (const GMatchInfo *match_info, - gint match_num, - gint *start_pos, - gint *end_pos) -{ - g_return_val_if_fail (match_info != NULL, FALSE); - g_return_val_if_fail (match_num >= 0, FALSE); - - /* make sure the sub expression number they're requesting is less than - * the total number of sub expressions that were matched. */ - if (match_num >= match_info->matches) - return FALSE; - - if (start_pos != NULL) - *start_pos = match_info->offsets[2 * match_num]; - - if (end_pos != NULL) - *end_pos = match_info->offsets[2 * match_num + 1]; - - return TRUE; -} - -/* - * Returns number of first matched subpattern with name @name. - * There may be more than one in case when DUPNAMES is used, - * and not all subpatterns with that name match; - * pcre_get_stringnumber() does not work in that case. - */ -static gint -get_matched_substring_number (const GMatchInfo *match_info, - const gchar *name) -{ - gint entrysize; - gchar *first, *last; - guchar *entry; - - if (!(match_info->regex->compile_opts & G_REGEX_DUPNAMES)) - return pcre_get_stringnumber (match_info->regex->pcre_re, name); - - /* This code is copied from pcre_get.c: get_first_set() */ - entrysize = pcre_get_stringtable_entries (match_info->regex->pcre_re, - name, - &first, - &last); - - if (entrysize <= 0) - return entrysize; - - for (entry = (guchar*) first; entry <= (guchar*) last; entry += entrysize) - { - gint n = (entry[0] << 8) + entry[1]; - if (match_info->offsets[n*2] >= 0) - return n; - } - - return (first[0] << 8) + first[1]; -} - -/** - * g_match_info_fetch_named: - * @match_info: #GMatchInfo structure - * @name: name of the subexpression - * - * Retrieves the text matching the capturing parentheses named @name. - * - * If @name is a valid sub pattern name but it didn't match anything - * (e.g. sub pattern "X", matching "b" against "(?P<X>a)?b") - * then an empty string is returned. - * - * The string is fetched from the string passed to the match function, - * so you cannot call this function after freeing the string. - * - * Returns: The matched substring, or %NULL if an error occurred. - * You have to free the string yourself - * - * Since: 2.14 - */ -gchar * -g_match_info_fetch_named (const GMatchInfo *match_info, - const gchar *name) -{ - /* we cannot use pcre_get_named_substring() because it allocates the - * string using pcre_malloc(). */ - gint num; - - g_return_val_if_fail (match_info != NULL, NULL); - g_return_val_if_fail (name != NULL, NULL); - - num = get_matched_substring_number (match_info, name); - if (num < 0) - return NULL; - else - return g_match_info_fetch (match_info, num); -} - -/** - * g_match_info_fetch_named_pos: - * @match_info: #GMatchInfo structure - * @name: name of the subexpression - * @start_pos: pointer to location where to store the start position - * @end_pos: pointer to location where to store the end position - * - * Retrieves the position in bytes of the capturing parentheses named @name. - * - * If @name is a valid sub pattern name but it didn't match anything - * (e.g. sub pattern "X", matching "b" against "(?P<X>a)?b") - * then @start_pos and @end_pos are set to -1 and %TRUE is returned. - * - * Returns: %TRUE if the position was fetched, %FALSE otherwise. If - * the position cannot be fetched, @start_pos and @end_pos are left - * unchanged - * - * Since: 2.14 - */ -gboolean -g_match_info_fetch_named_pos (const GMatchInfo *match_info, - const gchar *name, - gint *start_pos, - gint *end_pos) -{ - gint num; - - g_return_val_if_fail (match_info != NULL, FALSE); - g_return_val_if_fail (name != NULL, FALSE); - - num = get_matched_substring_number (match_info, name); - if (num < 0) - return FALSE; - - return g_match_info_fetch_pos (match_info, num, start_pos, end_pos); -} - -/** - * g_match_info_fetch_all: - * @match_info: a #GMatchInfo structure - * - * Bundles up pointers to each of the matching substrings from a match - * and stores them in an array of gchar pointers. The first element in - * the returned array is the match number 0, i.e. the entire matched - * text. - * - * If a sub pattern didn't match anything (e.g. sub pattern 1, matching - * "b" against "(a)?b") then an empty string is inserted. - * - * If the last match was obtained using the DFA algorithm, that is using - * g_regex_match_all() or g_regex_match_all_full(), the retrieved - * strings are not that matched by sets of parentheses but that of the - * matched substring. Substrings are matched in reverse order of length, - * so the first one is the longest match. - * - * The strings are fetched from the string passed to the match function, - * so you cannot call this function after freeing the string. - * - * Returns: a %NULL-terminated array of gchar * pointers. It must be - * freed using g_strfreev(). If the previous match failed %NULL is - * returned - * - * Since: 2.14 - */ -gchar ** -g_match_info_fetch_all (const GMatchInfo *match_info) -{ - /* we cannot use pcre_get_substring_list() because the returned value - * isn't suitable for g_strfreev(). */ - gchar **result; - gint i; - - g_return_val_if_fail (match_info != NULL, NULL); - - if (match_info->matches < 0) - return NULL; - - result = g_new (gchar *, match_info->matches + 1); - for (i = 0; i < match_info->matches; i++) - result[i] = g_match_info_fetch (match_info, i); - result[i] = NULL; - - return result; -} - - -/* GRegex */ - -GQuark -g_regex_error_quark (void) -{ - static GQuark error_quark = 0; - - if (error_quark == 0) - error_quark = g_quark_from_static_string ("g-regex-error-quark"); - - return error_quark; -} - -/** - * g_regex_ref: - * @regex: a #GRegex - * - * Increases reference count of @regex by 1. - * - * Returns: @regex - * - * Since: 2.14 - */ -GRegex * -g_regex_ref (GRegex *regex) -{ - g_return_val_if_fail (regex != NULL, NULL); - g_atomic_int_inc (®ex->ref_count); - return regex; -} - -/** - * g_regex_unref: - * @regex: a #GRegex - * - * Decreases reference count of @regex by 1. When reference count drops - * to zero, it frees all the memory associated with the regex structure. - * - * Since: 2.14 - */ -void -g_regex_unref (GRegex *regex) -{ - g_return_if_fail (regex != NULL); - - if (g_atomic_int_exchange_and_add (®ex->ref_count, -1) - 1 == 0) - { - g_free (regex->pattern); - if (regex->pcre_re != NULL) - pcre_free (regex->pcre_re); - if (regex->extra != NULL) - pcre_free (regex->extra); - g_free (regex); - } -} - -/** - * g_regex_new: - * @pattern: the regular expression - * @compile_options: compile options for the regular expression, or 0 - * @match_options: match options for the regular expression, or 0 - * @error: return location for a #GError - * - * Compiles the regular expression to an internal form, and does - * the initial setup of the #GRegex structure. - * - * Returns: a #GRegex structure. Call g_regex_unref() when you - * are done with it - * - * Since: 2.14 - */ -GRegex * -g_regex_new (const gchar *pattern, - GRegexCompileFlags compile_options, - GRegexMatchFlags match_options, - GError **error) -{ - GRegex *regex; - pcre *re; - const gchar *errmsg; - gint erroffset; - gint errcode; - gboolean optimize = FALSE; - static gboolean initialized = FALSE; - unsigned long int pcre_compile_options; - - g_return_val_if_fail (pattern != NULL, NULL); - g_return_val_if_fail (error == NULL || *error == NULL, NULL); - g_return_val_if_fail ((compile_options & ~G_REGEX_COMPILE_MASK) == 0, NULL); - g_return_val_if_fail ((match_options & ~G_REGEX_MATCH_MASK) == 0, NULL); - - if (!initialized) - { - gint support; - const gchar *msg; - - pcre_config (PCRE_CONFIG_UTF8, &support); - if (!support) - { - msg = N_("PCRE library is compiled without UTF8 support"); - g_critical ("%s", msg); - g_set_error_literal (error, G_REGEX_ERROR, G_REGEX_ERROR_COMPILE, gettext (msg)); - return NULL; - } - - pcre_config (PCRE_CONFIG_UNICODE_PROPERTIES, &support); - if (!support) - { - msg = N_("PCRE library is compiled without UTF8 properties support"); - g_critical ("%s", msg); - g_set_error_literal (error, G_REGEX_ERROR, G_REGEX_ERROR_COMPILE, gettext (msg)); - return NULL; - } - - initialized = TRUE; - } - - /* G_REGEX_OPTIMIZE has the same numeric value of PCRE_NO_UTF8_CHECK, - * as we do not need to wrap PCRE_NO_UTF8_CHECK. */ - if (compile_options & G_REGEX_OPTIMIZE) - optimize = TRUE; - - /* In GRegex the string are, by default, UTF-8 encoded. PCRE - * instead uses UTF-8 only if required with PCRE_UTF8. */ - if (compile_options & G_REGEX_RAW) - { - /* disable utf-8 */ - compile_options &= ~G_REGEX_RAW; - } - else - { - /* enable utf-8 */ - compile_options |= PCRE_UTF8 | PCRE_NO_UTF8_CHECK; - match_options |= PCRE_NO_UTF8_CHECK; - } - - /* PCRE_NEWLINE_ANY is the default for the internal PCRE but - * not for the system one. */ - if (!(compile_options & G_REGEX_NEWLINE_CR) && - !(compile_options & G_REGEX_NEWLINE_LF)) - { - compile_options |= PCRE_NEWLINE_ANY; - } - - /* compile the pattern */ - re = pcre_compile2 (pattern, compile_options, &errcode, - &errmsg, &erroffset, NULL); - - /* if the compilation failed, set the error member and return - * immediately */ - if (re == NULL) - { - GError *tmp_error; - - /* Translate the PCRE error code to GRegexError and use a translated - * error message if possible */ - translate_compile_error (&errcode, &errmsg); - - /* PCRE uses byte offsets but we want to show character offsets */ - erroffset = g_utf8_pointer_to_offset (pattern, &pattern[erroffset]); - - tmp_error = g_error_new (G_REGEX_ERROR, errcode, - _("Error while compiling regular " - "expression %s at char %d: %s"), - pattern, erroffset, errmsg); - g_propagate_error (error, tmp_error); - - return NULL; - } - - /* For options set at the beginning of the pattern, pcre puts them into - * compile options, e.g. "(?i)foo" will make the pcre structure store - * PCRE_CASELESS even though it wasn't explicitly given for compilation. */ - pcre_fullinfo (re, NULL, PCRE_INFO_OPTIONS, &pcre_compile_options); - compile_options = pcre_compile_options; - - if (!(compile_options & G_REGEX_DUPNAMES)) - { - gboolean jchanged = FALSE; - pcre_fullinfo (re, NULL, PCRE_INFO_JCHANGED, &jchanged); - if (jchanged) - compile_options |= G_REGEX_DUPNAMES; - } - - regex = g_new0 (GRegex, 1); - regex->ref_count = 1; - regex->pattern = g_strdup (pattern); - regex->pcre_re = re; - regex->compile_opts = compile_options; - regex->match_opts = match_options; - - if (optimize) - { - regex->extra = pcre_study (regex->pcre_re, 0, &errmsg); - if (errmsg != NULL) - { - GError *tmp_error = g_error_new (G_REGEX_ERROR, - G_REGEX_ERROR_OPTIMIZE, - _("Error while optimizing " - "regular expression %s: %s"), - regex->pattern, - errmsg); - g_propagate_error (error, tmp_error); - - g_regex_unref (regex); - return NULL; - } - } - - return regex; -} - -/** - * g_regex_get_pattern: - * @regex: a #GRegex structure - * - * Gets the pattern string associated with @regex, i.e. a copy of - * the string passed to g_regex_new(). - * - * Returns: the pattern of @regex - * - * Since: 2.14 - */ -const gchar * -g_regex_get_pattern (const GRegex *regex) -{ - g_return_val_if_fail (regex != NULL, NULL); - - return regex->pattern; -} - -/** - * g_regex_get_max_backref: - * @regex: a #GRegex - * - * Returns the number of the highest back reference - * in the pattern, or 0 if the pattern does not contain - * back references. - * - * Returns: the number of the highest back reference - * - * Since: 2.14 - */ -gint -g_regex_get_max_backref (const GRegex *regex) -{ - gint value; - - pcre_fullinfo (regex->pcre_re, regex->extra, - PCRE_INFO_BACKREFMAX, &value); - - return value; -} - -/** - * g_regex_get_capture_count: - * @regex: a #GRegex - * - * Returns the number of capturing subpatterns in the pattern. - * - * Returns: the number of capturing subpatterns - * - * Since: 2.14 - */ -gint -g_regex_get_capture_count (const GRegex *regex) -{ - gint value; - - pcre_fullinfo (regex->pcre_re, regex->extra, - PCRE_INFO_CAPTURECOUNT, &value); - - return value; -} - -/** - * g_regex_match_simple: - * @pattern: the regular expression - * @string: the string to scan for matches - * @compile_options: compile options for the regular expression, or 0 - * @match_options: match options, or 0 - * - * Scans for a match in @string for @pattern. - * - * This function is equivalent to g_regex_match() but it does not - * require to compile the pattern with g_regex_new(), avoiding some - * lines of code when you need just to do a match without extracting - * substrings, capture counts, and so on. - * - * If this function is to be called on the same @pattern more than - * once, it's more efficient to compile the pattern once with - * g_regex_new() and then use g_regex_match(). - * - * Returns: %TRUE if the string matched, %FALSE otherwise - * - * Since: 2.14 - */ -gboolean -g_regex_match_simple (const gchar *pattern, - const gchar *string, - GRegexCompileFlags compile_options, - GRegexMatchFlags match_options) -{ - GRegex *regex; - gboolean result; - - regex = g_regex_new (pattern, compile_options, 0, NULL); - if (!regex) - return FALSE; - result = g_regex_match_full (regex, string, -1, 0, match_options, NULL, NULL); - g_regex_unref (regex); - return result; -} - -/** - * g_regex_match: - * @regex: a #GRegex structure from g_regex_new() - * @string: the string to scan for matches - * @match_options: match options - * @match_info: pointer to location where to store the #GMatchInfo, - * or %NULL if you do not need it - * - * Scans for a match in string for the pattern in @regex. - * The @match_options are combined with the match options specified - * when the @regex structure was created, letting you have more - * flexibility in reusing #GRegex structures. - * - * A #GMatchInfo structure, used to get information on the match, - * is stored in @match_info if not %NULL. Note that if @match_info - * is not %NULL then it is created even if the function returns %FALSE, - * i.e. you must free it regardless if regular expression actually matched. - * - * To retrieve all the non-overlapping matches of the pattern in - * string you can use g_match_info_next(). - * - * |[ - * static void - * print_uppercase_words (const gchar *string) - * { - * /* Print all uppercase-only words. */ - * GRegex *regex; - * GMatchInfo *match_info; - *   - * regex = g_regex_new ("[A-Z]+", 0, 0, NULL); - * g_regex_match (regex, string, 0, &match_info); - * while (g_match_info_matches (match_info)) - * { - * gchar *word = g_match_info_fetch (match_info, 0); - * g_print ("Found: %s\n", word); - * g_free (word); - * g_match_info_next (match_info, NULL); - * } - * g_match_info_free (match_info); - * g_regex_unref (regex); - * } - * ]| - * - * @string is not copied and is used in #GMatchInfo internally. If - * you use any #GMatchInfo method (except g_match_info_free()) after - * freeing or modifying @string then the behaviour is undefined. - * - * Returns: %TRUE is the string matched, %FALSE otherwise - * - * Since: 2.14 - */ -gboolean -g_regex_match (const GRegex *regex, - const gchar *string, - GRegexMatchFlags match_options, - GMatchInfo **match_info) -{ - return g_regex_match_full (regex, string, -1, 0, match_options, - match_info, NULL); -} - -/** - * g_regex_match_full: - * @regex: a #GRegex structure from g_regex_new() - * @string: the string to scan for matches - * @string_len: the length of @string, or -1 if @string is nul-terminated - * @start_position: starting index of the string to match - * @match_options: match options - * @match_info: pointer to location where to store the #GMatchInfo, - * or %NULL if you do not need it - * @error: location to store the error occuring, or %NULL to ignore errors - * - * Scans for a match in string for the pattern in @regex. - * The @match_options are combined with the match options specified - * when the @regex structure was created, letting you have more - * flexibility in reusing #GRegex structures. - * - * Setting @start_position differs from just passing over a shortened - * string and setting #G_REGEX_MATCH_NOTBOL in the case of a pattern - * that begins with any kind of lookbehind assertion, such as "\b". - * - * A #GMatchInfo structure, used to get information on the match, is - * stored in @match_info if not %NULL. Note that if @match_info is - * not %NULL then it is created even if the function returns %FALSE, - * i.e. you must free it regardless if regular expression actually - * matched. - * - * @string is not copied and is used in #GMatchInfo internally. If - * you use any #GMatchInfo method (except g_match_info_free()) after - * freeing or modifying @string then the behaviour is undefined. - * - * To retrieve all the non-overlapping matches of the pattern in - * string you can use g_match_info_next(). - * - * |[ - * static void - * print_uppercase_words (const gchar *string) - * { - * /* Print all uppercase-only words. */ - * GRegex *regex; - * GMatchInfo *match_info; - * GError *error = NULL; - *   - * regex = g_regex_new ("[A-Z]+", 0, 0, NULL); - * g_regex_match_full (regex, string, -1, 0, 0, &match_info, &error); - * while (g_match_info_matches (match_info)) - * { - * gchar *word = g_match_info_fetch (match_info, 0); - * g_print ("Found: %s\n", word); - * g_free (word); - * g_match_info_next (match_info, &error); - * } - * g_match_info_free (match_info); - * g_regex_unref (regex); - * if (error != NULL) - * { - * g_printerr ("Error while matching: %s\n", error->message); - * g_error_free (error); - * } - * } - * ]| - * - * Returns: %TRUE is the string matched, %FALSE otherwise - * - * Since: 2.14 - */ -gboolean -g_regex_match_full (const GRegex *regex, - const gchar *string, - gssize string_len, - gint start_position, - GRegexMatchFlags match_options, - GMatchInfo **match_info, - GError **error) -{ - GMatchInfo *info; - gboolean match_ok; - - g_return_val_if_fail (regex != NULL, FALSE); - g_return_val_if_fail (string != NULL, FALSE); - g_return_val_if_fail (start_position >= 0, FALSE); - g_return_val_if_fail (error == NULL || *error == NULL, FALSE); - g_return_val_if_fail ((match_options & ~G_REGEX_MATCH_MASK) == 0, FALSE); - - info = match_info_new (regex, string, string_len, start_position, - match_options, FALSE); - match_ok = g_match_info_next (info, error); - if (match_info != NULL) - *match_info = info; - else - g_match_info_free (info); - - return match_ok; -} - -/** - * g_regex_match_all: - * @regex: a #GRegex structure from g_regex_new() - * @string: the string to scan for matches - * @match_options: match options - * @match_info: pointer to location where to store the #GMatchInfo, - * or %NULL if you do not need it - * - * Using the standard algorithm for regular expression matching only - * the longest match in the string is retrieved. This function uses - * a different algorithm so it can retrieve all the possible matches. - * For more documentation see g_regex_match_all_full(). - * - * A #GMatchInfo structure, used to get information on the match, is - * stored in @match_info if not %NULL. Note that if @match_info is - * not %NULL then it is created even if the function returns %FALSE, - * i.e. you must free it regardless if regular expression actually - * matched. - * - * @string is not copied and is used in #GMatchInfo internally. If - * you use any #GMatchInfo method (except g_match_info_free()) after - * freeing or modifying @string then the behaviour is undefined. - * - * Returns: %TRUE is the string matched, %FALSE otherwise - * - * Since: 2.14 - */ -gboolean -g_regex_match_all (const GRegex *regex, - const gchar *string, - GRegexMatchFlags match_options, - GMatchInfo **match_info) -{ - return g_regex_match_all_full (regex, string, -1, 0, match_options, - match_info, NULL); -} - -/** - * g_regex_match_all_full: - * @regex: a #GRegex structure from g_regex_new() - * @string: the string to scan for matches - * @string_len: the length of @string, or -1 if @string is nul-terminated - * @start_position: starting index of the string to match - * @match_options: match options - * @match_info: pointer to location where to store the #GMatchInfo, - * or %NULL if you do not need it - * @error: location to store the error occuring, or %NULL to ignore errors - * - * Using the standard algorithm for regular expression matching only - * the longest match in the string is retrieved, it is not possibile - * to obtain all the available matches. For instance matching - * "<a> <b> <c>" against the pattern "<.*>" - * you get "<a> <b> <c>". - * - * This function uses a different algorithm (called DFA, i.e. deterministic - * finite automaton), so it can retrieve all the possible matches, all - * starting at the same point in the string. For instance matching - * "<a> <b> <c>" against the pattern "<.*>" - * you would obtain three matches: "<a> <b> <c>", - * "<a> <b>" and "<a>". - * - * The number of matched strings is retrieved using - * g_match_info_get_match_count(). To obtain the matched strings and - * their position you can use, respectively, g_match_info_fetch() and - * g_match_info_fetch_pos(). Note that the strings are returned in - * reverse order of length; that is, the longest matching string is - * given first. - * - * Note that the DFA algorithm is slower than the standard one and it - * is not able to capture substrings, so backreferences do not work. - * - * Setting @start_position differs from just passing over a shortened - * string and setting #G_REGEX_MATCH_NOTBOL in the case of a pattern - * that begins with any kind of lookbehind assertion, such as "\b". - * - * A #GMatchInfo structure, used to get information on the match, is - * stored in @match_info if not %NULL. Note that if @match_info is - * not %NULL then it is created even if the function returns %FALSE, - * i.e. you must free it regardless if regular expression actually - * matched. - * - * @string is not copied and is used in #GMatchInfo internally. If - * you use any #GMatchInfo method (except g_match_info_free()) after - * freeing or modifying @string then the behaviour is undefined. - * - * Returns: %TRUE is the string matched, %FALSE otherwise - * - * Since: 2.14 - */ -gboolean -g_regex_match_all_full (const GRegex *regex, - const gchar *string, - gssize string_len, - gint start_position, - GRegexMatchFlags match_options, - GMatchInfo **match_info, - GError **error) -{ - GMatchInfo *info; - gboolean done; - - g_return_val_if_fail (regex != NULL, FALSE); - g_return_val_if_fail (string != NULL, FALSE); - g_return_val_if_fail (start_position >= 0, FALSE); - g_return_val_if_fail (error == NULL || *error == NULL, FALSE); - g_return_val_if_fail ((match_options & ~G_REGEX_MATCH_MASK) == 0, FALSE); - - info = match_info_new (regex, string, string_len, start_position, - match_options, TRUE); - - done = FALSE; - while (!done) - { - done = TRUE; - info->matches = pcre_dfa_exec (regex->pcre_re, regex->extra, - info->string, info->string_len, - info->pos, - regex->match_opts | match_options, - info->offsets, info->n_offsets, - info->workspace, info->n_workspace); - if (info->matches == PCRE_ERROR_DFA_WSSIZE) - { - /* info->workspace is too small. */ - info->n_workspace *= 2; - info->workspace = g_realloc (info->workspace, - info->n_workspace * sizeof (gint)); - done = FALSE; - } - else if (info->matches == 0) - { - /* info->offsets is too small. */ - info->n_offsets *= 2; - info->offsets = g_realloc (info->offsets, - info->n_offsets * sizeof (gint)); - done = FALSE; - } - else if (IS_PCRE_ERROR (info->matches)) - { - g_set_error (error, G_REGEX_ERROR, G_REGEX_ERROR_MATCH, - _("Error while matching regular expression %s: %s"), - regex->pattern, match_error (info->matches)); - } - } - - /* set info->pos to -1 so that a call to g_match_info_next() fails. */ - info->pos = -1; - - if (match_info != NULL) - *match_info = info; - else - g_match_info_free (info); - - return info->matches >= 0; -} - -/** - * g_regex_get_string_number: - * @regex: #GRegex structure - * @name: name of the subexpression - * - * Retrieves the number of the subexpression named @name. - * - * Returns: The number of the subexpression or -1 if @name - * does not exists - * - * Since: 2.14 - */ -gint -g_regex_get_string_number (const GRegex *regex, - const gchar *name) -{ - gint num; - - g_return_val_if_fail (regex != NULL, -1); - g_return_val_if_fail (name != NULL, -1); - - num = pcre_get_stringnumber (regex->pcre_re, name); - if (num == PCRE_ERROR_NOSUBSTRING) - num = -1; - - return num; -} - -/** - * g_regex_split_simple: - * @pattern: the regular expression - * @string: the string to scan for matches - * @compile_options: compile options for the regular expression, or 0 - * @match_options: match options, or 0 - * - * Breaks the string on the pattern, and returns an array of - * the tokens. If the pattern contains capturing parentheses, - * then the text for each of the substrings will also be returned. - * If the pattern does not match anywhere in the string, then the - * whole string is returned as the first token. - * - * This function is equivalent to g_regex_split() but it does - * not require to compile the pattern with g_regex_new(), avoiding - * some lines of code when you need just to do a split without - * extracting substrings, capture counts, and so on. - * - * If this function is to be called on the same @pattern more than - * once, it's more efficient to compile the pattern once with - * g_regex_new() and then use g_regex_split(). - * - * As a special case, the result of splitting the empty string "" - * is an empty vector, not a vector containing a single string. - * The reason for this special case is that being able to represent - * a empty vector is typically more useful than consistent handling - * of empty elements. If you do need to represent empty elements, - * you'll need to check for the empty string before calling this - * function. - * - * A pattern that can match empty strings splits @string into - * separate characters wherever it matches the empty string between - * characters. For example splitting "ab c" using as a separator - * "\s*", you will get "a", "b" and "c". - * - * Returns: a %NULL-terminated array of strings. Free it using g_strfreev() - * - * Since: 2.14 - **/ -gchar ** -g_regex_split_simple (const gchar *pattern, - const gchar *string, - GRegexCompileFlags compile_options, - GRegexMatchFlags match_options) -{ - GRegex *regex; - gchar **result; - - regex = g_regex_new (pattern, compile_options, 0, NULL); - if (!regex) - return NULL; - result = g_regex_split_full (regex, string, -1, 0, match_options, 0, NULL); - g_regex_unref (regex); - return result; -} - -/** - * g_regex_split: - * @regex: a #GRegex structure - * @string: the string to split with the pattern - * @match_options: match time option flags - * - * Breaks the string on the pattern, and returns an array of the tokens. - * If the pattern contains capturing parentheses, then the text for each - * of the substrings will also be returned. If the pattern does not match - * anywhere in the string, then the whole string is returned as the first - * token. - * - * As a special case, the result of splitting the empty string "" is an - * empty vector, not a vector containing a single string. The reason for - * this special case is that being able to represent a empty vector is - * typically more useful than consistent handling of empty elements. If - * you do need to represent empty elements, you'll need to check for the - * empty string before calling this function. - * - * A pattern that can match empty strings splits @string into separate - * characters wherever it matches the empty string between characters. - * For example splitting "ab c" using as a separator "\s*", you will get - * "a", "b" and "c". - * - * Returns: a %NULL-terminated gchar ** array. Free it using g_strfreev() - * - * Since: 2.14 - **/ -gchar ** -g_regex_split (const GRegex *regex, - const gchar *string, - GRegexMatchFlags match_options) -{ - return g_regex_split_full (regex, string, -1, 0, - match_options, 0, NULL); -} - -/** - * g_regex_split_full: - * @regex: a #GRegex structure - * @string: the string to split with the pattern - * @string_len: the length of @string, or -1 if @string is nul-terminated - * @start_position: starting index of the string to match - * @match_options: match time option flags - * @max_tokens: the maximum number of tokens to split @string into. - * If this is less than 1, the string is split completely - * @error: return location for a #GError - * - * Breaks the string on the pattern, and returns an array of the tokens. - * If the pattern contains capturing parentheses, then the text for each - * of the substrings will also be returned. If the pattern does not match - * anywhere in the string, then the whole string is returned as the first - * token. - * - * As a special case, the result of splitting the empty string "" is an - * empty vector, not a vector containing a single string. The reason for - * this special case is that being able to represent a empty vector is - * typically more useful than consistent handling of empty elements. If - * you do need to represent empty elements, you'll need to check for the - * empty string before calling this function. - * - * A pattern that can match empty strings splits @string into separate - * characters wherever it matches the empty string between characters. - * For example splitting "ab c" using as a separator "\s*", you will get - * "a", "b" and "c". - * - * Setting @start_position differs from just passing over a shortened - * string and setting #G_REGEX_MATCH_NOTBOL in the case of a pattern - * that begins with any kind of lookbehind assertion, such as "\b". - * - * Returns: a %NULL-terminated gchar ** array. Free it using g_strfreev() - * - * Since: 2.14 - **/ -gchar ** -g_regex_split_full (const GRegex *regex, - const gchar *string, - gssize string_len, - gint start_position, - GRegexMatchFlags match_options, - gint max_tokens, - GError **error) -{ - GError *tmp_error = NULL; - GMatchInfo *match_info; - GList *list, *last; - gint i; - gint token_count; - gboolean match_ok; - /* position of the last separator. */ - gint last_separator_end; - /* was the last match 0 bytes long? */ - gboolean last_match_is_empty; - /* the returned array of char **s */ - gchar **string_list; - - g_return_val_if_fail (regex != NULL, NULL); - g_return_val_if_fail (string != NULL, NULL); - g_return_val_if_fail (start_position >= 0, NULL); - g_return_val_if_fail (error == NULL || *error == NULL, NULL); - g_return_val_if_fail ((match_options & ~G_REGEX_MATCH_MASK) == 0, NULL); - - if (max_tokens <= 0) - max_tokens = G_MAXINT; - - if (string_len < 0) - string_len = strlen (string); - - /* zero-length string */ - if (string_len - start_position == 0) - return g_new0 (gchar *, 1); - - if (max_tokens == 1) - { - string_list = g_new0 (gchar *, 2); - string_list[0] = g_strndup (&string[start_position], - string_len - start_position); - return string_list; - } - - list = NULL; - token_count = 0; - last_separator_end = start_position; - last_match_is_empty = FALSE; - - match_ok = g_regex_match_full (regex, string, string_len, start_position, - match_options, &match_info, &tmp_error); - while (tmp_error == NULL) - { - if (match_ok) - { - last_match_is_empty = - (match_info->offsets[0] == match_info->offsets[1]); - - /* we need to skip empty separators at the same position of the end - * of another separator. e.g. the string is "a b" and the separator - * is " *", so from 1 to 2 we have a match and at position 2 we have - * an empty match. */ - if (last_separator_end != match_info->offsets[1]) - { - gchar *token; - gint match_count; - - token = g_strndup (string + last_separator_end, - match_info->offsets[0] - last_separator_end); - list = g_list_prepend (list, token); - token_count++; - - /* if there were substrings, these need to be added to - * the list. */ - match_count = g_match_info_get_match_count (match_info); - if (match_count > 1) - { - for (i = 1; i < match_count; i++) - list = g_list_prepend (list, g_match_info_fetch (match_info, i)); - } - } - } - else - { - /* if there was no match, copy to end of string. */ - if (!last_match_is_empty) - { - gchar *token = g_strndup (string + last_separator_end, - match_info->string_len - last_separator_end); - list = g_list_prepend (list, token); - } - /* no more tokens, end the loop. */ - break; - } - - /* -1 to leave room for the last part. */ - if (token_count >= max_tokens - 1) - { - /* we have reached the maximum number of tokens, so we copy - * the remaining part of the string. */ - if (last_match_is_empty) - { - /* the last match was empty, so we have moved one char - * after the real position to avoid empty matches at the - * same position. */ - match_info->pos = PREV_CHAR (regex, &string[match_info->pos]) - string; - } - /* the if is needed in the case we have terminated the available - * tokens, but we are at the end of the string, so there are no - * characters left to copy. */ - if (string_len > match_info->pos) - { - gchar *token = g_strndup (string + match_info->pos, - string_len - match_info->pos); - list = g_list_prepend (list, token); - } - /* end the loop. */ - break; - } - - last_separator_end = match_info->pos; - if (last_match_is_empty) - /* if the last match was empty, g_match_info_next() has moved - * forward to avoid infinite loops, but we still need to copy that - * character. */ - last_separator_end = PREV_CHAR (regex, &string[last_separator_end]) - string; - - match_ok = g_match_info_next (match_info, &tmp_error); - } - g_match_info_free (match_info); - if (tmp_error != NULL) - { - g_propagate_error (error, tmp_error); - g_list_foreach (list, (GFunc)g_free, NULL); - g_list_free (list); - match_info->pos = -1; - return NULL; - } - - string_list = g_new (gchar *, g_list_length (list) + 1); - i = 0; - for (last = g_list_last (list); last; last = g_list_previous (last)) - string_list[i++] = last->data; - string_list[i] = NULL; - g_list_free (list); - - return string_list; -} - -enum -{ - REPL_TYPE_STRING, - REPL_TYPE_CHARACTER, - REPL_TYPE_SYMBOLIC_REFERENCE, - REPL_TYPE_NUMERIC_REFERENCE, - REPL_TYPE_CHANGE_CASE -}; - -typedef enum -{ - CHANGE_CASE_NONE = 1 << 0, - CHANGE_CASE_UPPER = 1 << 1, - CHANGE_CASE_LOWER = 1 << 2, - CHANGE_CASE_UPPER_SINGLE = 1 << 3, - CHANGE_CASE_LOWER_SINGLE = 1 << 4, - CHANGE_CASE_SINGLE_MASK = CHANGE_CASE_UPPER_SINGLE | CHANGE_CASE_LOWER_SINGLE, - CHANGE_CASE_LOWER_MASK = CHANGE_CASE_LOWER | CHANGE_CASE_LOWER_SINGLE, - CHANGE_CASE_UPPER_MASK = CHANGE_CASE_UPPER | CHANGE_CASE_UPPER_SINGLE -} ChangeCase; - -struct _InterpolationData -{ - gchar *text; - gint type; - gint num; - gchar c; - ChangeCase change_case; -}; - -static void -free_interpolation_data (InterpolationData *data) -{ - g_free (data->text); - g_free (data); -} - -static const gchar * -expand_escape (const gchar *replacement, - const gchar *p, - InterpolationData *data, - GError **error) -{ - const gchar *q, *r; - gint x, d, h, i; - const gchar *error_detail; - gint base = 0; - GError *tmp_error = NULL; - - p++; - switch (*p) - { - case 't': - p++; - data->c = '\t'; - data->type = REPL_TYPE_CHARACTER; - break; - case 'n': - p++; - data->c = '\n'; - data->type = REPL_TYPE_CHARACTER; - break; - case 'v': - p++; - data->c = '\v'; - data->type = REPL_TYPE_CHARACTER; - break; - case 'r': - p++; - data->c = '\r'; - data->type = REPL_TYPE_CHARACTER; - break; - case 'f': - p++; - data->c = '\f'; - data->type = REPL_TYPE_CHARACTER; - break; - case 'a': - p++; - data->c = '\a'; - data->type = REPL_TYPE_CHARACTER; - break; - case 'b': - p++; - data->c = '\b'; - data->type = REPL_TYPE_CHARACTER; - break; - case '\\': - p++; - data->c = '\\'; - data->type = REPL_TYPE_CHARACTER; - break; - case 'x': - p++; - x = 0; - if (*p == '{') - { - p++; - do - { - h = g_ascii_xdigit_value (*p); - if (h < 0) - { - error_detail = _("hexadecimal digit or '}' expected"); - goto error; - } - x = x * 16 + h; - p++; - } - while (*p != '}'); - p++; - } - else - { - for (i = 0; i < 2; i++) - { - h = g_ascii_xdigit_value (*p); - if (h < 0) - { - error_detail = _("hexadecimal digit expected"); - goto error; - } - x = x * 16 + h; - p++; - } - } - data->type = REPL_TYPE_STRING; - data->text = g_new0 (gchar, 8); - g_unichar_to_utf8 (x, data->text); - break; - case 'l': - p++; - data->type = REPL_TYPE_CHANGE_CASE; - data->change_case = CHANGE_CASE_LOWER_SINGLE; - break; - case 'u': - p++; - data->type = REPL_TYPE_CHANGE_CASE; - data->change_case = CHANGE_CASE_UPPER_SINGLE; - break; - case 'L': - p++; - data->type = REPL_TYPE_CHANGE_CASE; - data->change_case = CHANGE_CASE_LOWER; - break; - case 'U': - p++; - data->type = REPL_TYPE_CHANGE_CASE; - data->change_case = CHANGE_CASE_UPPER; - break; - case 'E': - p++; - data->type = REPL_TYPE_CHANGE_CASE; - data->change_case = CHANGE_CASE_NONE; - break; - case 'g': - p++; - if (*p != '<') - { - error_detail = _("missing '<' in symbolic reference"); - goto error; - } - q = p + 1; - do - { - p++; - if (!*p) - { - error_detail = _("unfinished symbolic reference"); - goto error; - } - } - while (*p != '>'); - if (p - q == 0) - { - error_detail = _("zero-length symbolic reference"); - goto error; - } - if (g_ascii_isdigit (*q)) - { - x = 0; - do - { - h = g_ascii_digit_value (*q); - if (h < 0) - { - error_detail = _("digit expected"); - p = q; - goto error; - } - x = x * 10 + h; - q++; - } - while (q != p); - data->num = x; - data->type = REPL_TYPE_NUMERIC_REFERENCE; - } - else - { - r = q; - do - { - if (!g_ascii_isalnum (*r)) - { - error_detail = _("illegal symbolic reference"); - p = r; - goto error; - } - r++; - } - while (r != p); - data->text = g_strndup (q, p - q); - data->type = REPL_TYPE_SYMBOLIC_REFERENCE; - } - p++; - break; - case '0': - /* if \0 is followed by a number is an octal number representing a - * character, else it is a numeric reference. */ - if (g_ascii_digit_value (*g_utf8_next_char (p)) >= 0) - { - base = 8; - p = g_utf8_next_char (p); - } - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': - x = 0; - d = 0; - for (i = 0; i < 3; i++) - { - h = g_ascii_digit_value (*p); - if (h < 0) - break; - if (h > 7) - { - if (base == 8) - break; - else - base = 10; - } - if (i == 2 && base == 10) - break; - x = x * 8 + h; - d = d * 10 + h; - p++; - } - if (base == 8 || i == 3) - { - data->type = REPL_TYPE_STRING; - data->text = g_new0 (gchar, 8); - g_unichar_to_utf8 (x, data->text); - } - else - { - data->type = REPL_TYPE_NUMERIC_REFERENCE; - data->num = d; - } - break; - case 0: - error_detail = _("stray final '\\'"); - goto error; - break; - default: - error_detail = _("unknown escape sequence"); - goto error; - } - - return p; - - error: - /* G_GSSIZE_FORMAT doesn't work with gettext, so we use %lu */ - tmp_error = g_error_new (G_REGEX_ERROR, - G_REGEX_ERROR_REPLACE, - _("Error while parsing replacement " - "text \"%s\" at char %lu: %s"), - replacement, - (gulong)(p - replacement), - error_detail); - g_propagate_error (error, tmp_error); - - return NULL; -} - -static GList * -split_replacement (const gchar *replacement, - GError **error) -{ - GList *list = NULL; - InterpolationData *data; - const gchar *p, *start; - - start = p = replacement; - while (*p) - { - if (*p == '\\') - { - data = g_new0 (InterpolationData, 1); - start = p = expand_escape (replacement, p, data, error); - if (p == NULL) - { - g_list_foreach (list, (GFunc)free_interpolation_data, NULL); - g_list_free (list); - free_interpolation_data (data); - - return NULL; - } - list = g_list_prepend (list, data); - } - else - { - p++; - if (*p == '\\' || *p == '\0') - { - if (p - start > 0) - { - data = g_new0 (InterpolationData, 1); - data->text = g_strndup (start, p - start); - data->type = REPL_TYPE_STRING; - list = g_list_prepend (list, data); - } - } - } - } - - return g_list_reverse (list); -} - -/* Change the case of c based on change_case. */ -#define CHANGE_CASE(c, change_case) \ - (((change_case) & CHANGE_CASE_LOWER_MASK) ? \ - g_unichar_tolower (c) : \ - g_unichar_toupper (c)) - -static void -string_append (GString *string, - const gchar *text, - ChangeCase *change_case) -{ - gunichar c; - - if (text[0] == '\0') - return; - - if (*change_case == CHANGE_CASE_NONE) - { - g_string_append (string, text); - } - else if (*change_case & CHANGE_CASE_SINGLE_MASK) - { - c = g_utf8_get_char (text); - g_string_append_unichar (string, CHANGE_CASE (c, *change_case)); - g_string_append (string, g_utf8_next_char (text)); - *change_case = CHANGE_CASE_NONE; - } - else - { - while (*text != '\0') - { - c = g_utf8_get_char (text); - g_string_append_unichar (string, CHANGE_CASE (c, *change_case)); - text = g_utf8_next_char (text); - } - } -} - -static gboolean -interpolate_replacement (const GMatchInfo *match_info, - GString *result, - gpointer data) -{ - GList *list; - InterpolationData *idata; - gchar *match; - ChangeCase change_case = CHANGE_CASE_NONE; - - for (list = data; list; list = list->next) - { - idata = list->data; - switch (idata->type) - { - case REPL_TYPE_STRING: - string_append (result, idata->text, &change_case); - break; - case REPL_TYPE_CHARACTER: - g_string_append_c (result, CHANGE_CASE (idata->c, change_case)); - if (change_case & CHANGE_CASE_SINGLE_MASK) - change_case = CHANGE_CASE_NONE; - break; - case REPL_TYPE_NUMERIC_REFERENCE: - match = g_match_info_fetch (match_info, idata->num); - if (match) - { - string_append (result, match, &change_case); - g_free (match); - } - break; - case REPL_TYPE_SYMBOLIC_REFERENCE: - match = g_match_info_fetch_named (match_info, idata->text); - if (match) - { - string_append (result, match, &change_case); - g_free (match); - } - break; - case REPL_TYPE_CHANGE_CASE: - change_case = idata->change_case; - break; - } - } - - return FALSE; -} - -/* whether actual match_info is needed for replacement, i.e. - * whether there are references - */ -static gboolean -interpolation_list_needs_match (GList *list) -{ - while (list != NULL) - { - InterpolationData *data = list->data; - - if (data->type == REPL_TYPE_SYMBOLIC_REFERENCE || - data->type == REPL_TYPE_NUMERIC_REFERENCE) - { - return TRUE; - } - - list = list->next; - } - - return FALSE; -} - -/** - * g_regex_replace: - * @regex: a #GRegex structure - * @string: the string to perform matches against - * @string_len: the length of @string, or -1 if @string is nul-terminated - * @start_position: starting index of the string to match - * @replacement: text to replace each match with - * @match_options: options for the match - * @error: location to store the error occuring, or %NULL to ignore errors - * - * Replaces all occurrences of the pattern in @regex with the - * replacement text. Backreferences of the form '\number' or - * '\g<number>' in the replacement text are interpolated by the - * number-th captured subexpression of the match, '\g<name>' refers - * to the captured subexpression with the given name. '\0' refers to the - * complete match, but '\0' followed by a number is the octal representation - * of a character. To include a literal '\' in the replacement, write '\\'. - * There are also escapes that changes the case of the following text: - * - * - * \l - * - * Convert to lower case the next character - * - * - * \u - * - * Convert to upper case the next character - * - * - * \L - * - * Convert to lower case till \E - * - * - * \U - * - * Convert to upper case till \E - * - * - * \E - * - * End case modification - * - * - * - * - * If you do not need to use backreferences use g_regex_replace_literal(). - * - * The @replacement string must be UTF-8 encoded even if #G_REGEX_RAW was - * passed to g_regex_new(). If you want to use not UTF-8 encoded stings - * you can use g_regex_replace_literal(). - * - * Setting @start_position differs from just passing over a shortened - * string and setting #G_REGEX_MATCH_NOTBOL in the case of a pattern that - * begins with any kind of lookbehind assertion, such as "\b". - * - * Returns: a newly allocated string containing the replacements - * - * Since: 2.14 - */ -gchar * -g_regex_replace (const GRegex *regex, - const gchar *string, - gssize string_len, - gint start_position, - const gchar *replacement, - GRegexMatchFlags match_options, - GError **error) -{ - gchar *result; - GList *list; - GError *tmp_error = NULL; - - g_return_val_if_fail (regex != NULL, NULL); - g_return_val_if_fail (string != NULL, NULL); - g_return_val_if_fail (start_position >= 0, NULL); - g_return_val_if_fail (replacement != NULL, NULL); - g_return_val_if_fail (error == NULL || *error == NULL, NULL); - g_return_val_if_fail ((match_options & ~G_REGEX_MATCH_MASK) == 0, NULL); - - list = split_replacement (replacement, &tmp_error); - if (tmp_error != NULL) - { - g_propagate_error (error, tmp_error); - return NULL; - } - - result = g_regex_replace_eval (regex, - string, string_len, start_position, - match_options, - interpolate_replacement, - (gpointer)list, - &tmp_error); - if (tmp_error != NULL) - g_propagate_error (error, tmp_error); - - g_list_foreach (list, (GFunc)free_interpolation_data, NULL); - g_list_free (list); - - return result; -} - -static gboolean -literal_replacement (const GMatchInfo *match_info, - GString *result, - gpointer data) -{ - g_string_append (result, data); - return FALSE; -} - -/** - * g_regex_replace_literal: - * @regex: a #GRegex structure - * @string: the string to perform matches against - * @string_len: the length of @string, or -1 if @string is nul-terminated - * @start_position: starting index of the string to match - * @replacement: text to replace each match with - * @match_options: options for the match - * @error: location to store the error occuring, or %NULL to ignore errors - * - * Replaces all occurrences of the pattern in @regex with the - * replacement text. @replacement is replaced literally, to - * include backreferences use g_regex_replace(). - * - * Setting @start_position differs from just passing over a - * shortened string and setting #G_REGEX_MATCH_NOTBOL in the - * case of a pattern that begins with any kind of lookbehind - * assertion, such as "\b". - * - * Returns: a newly allocated string containing the replacements - * - * Since: 2.14 - */ -gchar * -g_regex_replace_literal (const GRegex *regex, - const gchar *string, - gssize string_len, - gint start_position, - const gchar *replacement, - GRegexMatchFlags match_options, - GError **error) -{ - g_return_val_if_fail (replacement != NULL, NULL); - g_return_val_if_fail ((match_options & ~G_REGEX_MATCH_MASK) == 0, NULL); - - return g_regex_replace_eval (regex, - string, string_len, start_position, - match_options, - literal_replacement, - (gpointer)replacement, - error); -} - -/** - * g_regex_replace_eval: - * @regex: a #GRegex structure from g_regex_new() - * @string: string to perform matches against - * @string_len: the length of @string, or -1 if @string is nul-terminated - * @start_position: starting index of the string to match - * @match_options: options for the match - * @eval: a function to call for each match - * @user_data: user data to pass to the function - * @error: location to store the error occuring, or %NULL to ignore errors - * - * Replaces occurrences of the pattern in regex with the output of - * @eval for that occurrence. - * - * Setting @start_position differs from just passing over a shortened - * string and setting #G_REGEX_MATCH_NOTBOL in the case of a pattern - * that begins with any kind of lookbehind assertion, such as "\b". - * - * The following example uses g_regex_replace_eval() to replace multiple - * strings at once: - * |[ - * static gboolean - * eval_cb (const GMatchInfo *info, - * GString *res, - * gpointer data) - * { - * gchar *match; - * gchar *r; - * - * match = g_match_info_fetch (info, 0); - * r = g_hash_table_lookup ((GHashTable *)data, match); - * g_string_append (res, r); - * g_free (match); - * - * return FALSE; - * } - * - * /* ... */ - * - * GRegex *reg; - * GHashTable *h; - * gchar *res; - * - * h = g_hash_table_new (g_str_hash, g_str_equal); - * - * g_hash_table_insert (h, "1", "ONE"); - * g_hash_table_insert (h, "2", "TWO"); - * g_hash_table_insert (h, "3", "THREE"); - * g_hash_table_insert (h, "4", "FOUR"); - * - * reg = g_regex_new ("1|2|3|4", 0, 0, NULL); - * res = g_regex_replace_eval (reg, text, -1, 0, 0, eval_cb, h, NULL); - * g_hash_table_destroy (h); - * - * /* ... */ - * ]| - * - * Returns: a newly allocated string containing the replacements - * - * Since: 2.14 - */ -gchar * -g_regex_replace_eval (const GRegex *regex, - const gchar *string, - gssize string_len, - gint start_position, - GRegexMatchFlags match_options, - GRegexEvalCallback eval, - gpointer user_data, - GError **error) -{ - GMatchInfo *match_info; - GString *result; - gint str_pos = 0; - gboolean done = FALSE; - GError *tmp_error = NULL; - - g_return_val_if_fail (regex != NULL, NULL); - g_return_val_if_fail (string != NULL, NULL); - g_return_val_if_fail (start_position >= 0, NULL); - g_return_val_if_fail (eval != NULL, NULL); - g_return_val_if_fail ((match_options & ~G_REGEX_MATCH_MASK) == 0, NULL); - - if (string_len < 0) - string_len = strlen (string); - - result = g_string_sized_new (string_len); - - /* run down the string making matches. */ - g_regex_match_full (regex, string, string_len, start_position, - match_options, &match_info, &tmp_error); - while (!done && g_match_info_matches (match_info)) - { - g_string_append_len (result, - string + str_pos, - match_info->offsets[0] - str_pos); - done = (*eval) (match_info, result, user_data); - str_pos = match_info->offsets[1]; - g_match_info_next (match_info, &tmp_error); - } - g_match_info_free (match_info); - if (tmp_error != NULL) - { - g_propagate_error (error, tmp_error); - g_string_free (result, TRUE); - return NULL; - } - - g_string_append_len (result, string + str_pos, string_len - str_pos); - return g_string_free (result, FALSE); -} - -/** - * g_regex_check_replacement: - * @replacement: the replacement string - * @has_references: location to store information about - * references in @replacement or %NULL - * @error: location to store error - * - * Checks whether @replacement is a valid replacement string - * (see g_regex_replace()), i.e. that all escape sequences in - * it are valid. - * - * If @has_references is not %NULL then @replacement is checked - * for pattern references. For instance, replacement text 'foo\n' - * does not contain references and may be evaluated without information - * about actual match, but '\0\1' (whole match followed by first - * subpattern) requires valid #GMatchInfo object. - * - * Returns: whether @replacement is a valid replacement string - * - * Since: 2.14 - */ -gboolean -g_regex_check_replacement (const gchar *replacement, - gboolean *has_references, - GError **error) -{ - GList *list; - GError *tmp = NULL; - - list = split_replacement (replacement, &tmp); - - if (tmp) - { - g_propagate_error (error, tmp); - return FALSE; - } - - if (has_references) - *has_references = interpolation_list_needs_match (list); - - g_list_foreach (list, (GFunc) free_interpolation_data, NULL); - g_list_free (list); - - return TRUE; -} - -/** - * g_regex_escape_string: - * @string: the string to escape - * @length: the length of @string, or -1 if @string is nul-terminated - * - * Escapes the special characters used for regular expressions - * in @string, for instance "a.b*c" becomes "a\.b\*c". This - * function is useful to dynamically generate regular expressions. - * - * @string can contain nul characters that are replaced with "\0", - * in this case remember to specify the correct length of @string - * in @length. - * - * Returns: a newly-allocated escaped string - * - * Since: 2.14 - */ -gchar * -g_regex_escape_string (const gchar *string, - gint length) -{ - GString *escaped; - const char *p, *piece_start, *end; - - g_return_val_if_fail (string != NULL, NULL); - - if (length < 0) - length = strlen (string); - - end = string + length; - p = piece_start = string; - escaped = g_string_sized_new (length + 1); - - while (p < end) - { - switch (*p) - { - case '\0': - case '\\': - case '|': - case '(': - case ')': - case '[': - case ']': - case '{': - case '}': - case '^': - case '$': - case '*': - case '+': - case '?': - case '.': - if (p != piece_start) - /* copy the previous piece. */ - g_string_append_len (escaped, piece_start, p - piece_start); - g_string_append_c (escaped, '\\'); - if (*p == '\0') - g_string_append_c (escaped, '0'); - else - g_string_append_c (escaped, *p); - piece_start = ++p; - break; - default: - p = g_utf8_next_char (p); - break; - } - } - - if (piece_start < end) - g_string_append_len (escaped, piece_start, end - piece_start); - - return g_string_free (escaped, FALSE); -} - -#define __G_REGEX_C__ -#include "galiasdef.c" diff --git a/lib/win32/glib-2.20.4/glib/gregex.h b/lib/win32/glib-2.20.4/glib/gregex.h deleted file mode 100644 index a96fbda514829..0000000000000 --- a/lib/win32/glib-2.20.4/glib/gregex.h +++ /dev/null @@ -1,243 +0,0 @@ -/* GRegex -- regular expression API wrapper around PCRE. - * - * Copyright (C) 1999, 2000 Scott Wimer - * Copyright (C) 2004, Matthias Clasen - * Copyright (C) 2005 - 2007, Marco Barisione - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library 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 - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - */ - -#if defined(G_DISABLE_SINGLE_INCLUDES) && !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION) -#error "Only can be included directly." -#endif - -#ifndef __G_REGEX_H__ -#define __G_REGEX_H__ - -#include -#include - -G_BEGIN_DECLS - -typedef enum -{ - G_REGEX_ERROR_COMPILE, - G_REGEX_ERROR_OPTIMIZE, - G_REGEX_ERROR_REPLACE, - G_REGEX_ERROR_MATCH, - G_REGEX_ERROR_INTERNAL, - - /* These are the error codes from PCRE + 100 */ - G_REGEX_ERROR_STRAY_BACKSLASH = 101, - G_REGEX_ERROR_MISSING_CONTROL_CHAR = 102, - G_REGEX_ERROR_UNRECOGNIZED_ESCAPE = 103, - G_REGEX_ERROR_QUANTIFIERS_OUT_OF_ORDER = 104, - G_REGEX_ERROR_QUANTIFIER_TOO_BIG = 105, - G_REGEX_ERROR_UNTERMINATED_CHARACTER_CLASS = 106, - G_REGEX_ERROR_INVALID_ESCAPE_IN_CHARACTER_CLASS = 107, - G_REGEX_ERROR_RANGE_OUT_OF_ORDER = 108, - G_REGEX_ERROR_NOTHING_TO_REPEAT = 109, - G_REGEX_ERROR_UNRECOGNIZED_CHARACTER = 112, - G_REGEX_ERROR_POSIX_NAMED_CLASS_OUTSIDE_CLASS = 113, - G_REGEX_ERROR_UNMATCHED_PARENTHESIS = 114, - G_REGEX_ERROR_INEXISTENT_SUBPATTERN_REFERENCE = 115, - G_REGEX_ERROR_UNTERMINATED_COMMENT = 118, - G_REGEX_ERROR_EXPRESSION_TOO_LARGE = 120, - G_REGEX_ERROR_MEMORY_ERROR = 121, - G_REGEX_ERROR_VARIABLE_LENGTH_LOOKBEHIND = 125, - G_REGEX_ERROR_MALFORMED_CONDITION = 126, - G_REGEX_ERROR_TOO_MANY_CONDITIONAL_BRANCHES = 127, - G_REGEX_ERROR_ASSERTION_EXPECTED = 128, - G_REGEX_ERROR_UNKNOWN_POSIX_CLASS_NAME = 130, - G_REGEX_ERROR_POSIX_COLLATING_ELEMENTS_NOT_SUPPORTED = 131, - G_REGEX_ERROR_HEX_CODE_TOO_LARGE = 134, - G_REGEX_ERROR_INVALID_CONDITION = 135, - G_REGEX_ERROR_SINGLE_BYTE_MATCH_IN_LOOKBEHIND = 136, - G_REGEX_ERROR_INFINITE_LOOP = 140, - G_REGEX_ERROR_MISSING_SUBPATTERN_NAME_TERMINATOR = 142, - G_REGEX_ERROR_DUPLICATE_SUBPATTERN_NAME = 143, - G_REGEX_ERROR_MALFORMED_PROPERTY = 146, - G_REGEX_ERROR_UNKNOWN_PROPERTY = 147, - G_REGEX_ERROR_SUBPATTERN_NAME_TOO_LONG = 148, - G_REGEX_ERROR_TOO_MANY_SUBPATTERNS = 149, - G_REGEX_ERROR_INVALID_OCTAL_VALUE = 151, - G_REGEX_ERROR_TOO_MANY_BRANCHES_IN_DEFINE = 154, - G_REGEX_ERROR_DEFINE_REPETION = 155, - G_REGEX_ERROR_INCONSISTENT_NEWLINE_OPTIONS = 156, - G_REGEX_ERROR_MISSING_BACK_REFERENCE = 157 -} GRegexError; - -#define G_REGEX_ERROR g_regex_error_quark () - -GQuark g_regex_error_quark (void); - -/* Remember to update G_REGEX_COMPILE_MASK in gregex.c after - * adding a new flag. */ -typedef enum -{ - G_REGEX_CASELESS = 1 << 0, - G_REGEX_MULTILINE = 1 << 1, - G_REGEX_DOTALL = 1 << 2, - G_REGEX_EXTENDED = 1 << 3, - G_REGEX_ANCHORED = 1 << 4, - G_REGEX_DOLLAR_ENDONLY = 1 << 5, - G_REGEX_UNGREEDY = 1 << 9, - G_REGEX_RAW = 1 << 11, - G_REGEX_NO_AUTO_CAPTURE = 1 << 12, - G_REGEX_OPTIMIZE = 1 << 13, - G_REGEX_DUPNAMES = 1 << 19, - G_REGEX_NEWLINE_CR = 1 << 20, - G_REGEX_NEWLINE_LF = 1 << 21, - G_REGEX_NEWLINE_CRLF = G_REGEX_NEWLINE_CR | G_REGEX_NEWLINE_LF -} GRegexCompileFlags; - -/* Remember to update G_REGEX_MATCH_MASK in gregex.c after - * adding a new flag. */ -typedef enum -{ - G_REGEX_MATCH_ANCHORED = 1 << 4, - G_REGEX_MATCH_NOTBOL = 1 << 7, - G_REGEX_MATCH_NOTEOL = 1 << 8, - G_REGEX_MATCH_NOTEMPTY = 1 << 10, - G_REGEX_MATCH_PARTIAL = 1 << 15, - G_REGEX_MATCH_NEWLINE_CR = 1 << 20, - G_REGEX_MATCH_NEWLINE_LF = 1 << 21, - G_REGEX_MATCH_NEWLINE_CRLF = G_REGEX_MATCH_NEWLINE_CR | G_REGEX_MATCH_NEWLINE_LF, - G_REGEX_MATCH_NEWLINE_ANY = 1 << 22 -} GRegexMatchFlags; - -typedef struct _GRegex GRegex; -typedef struct _GMatchInfo GMatchInfo; - -typedef gboolean (*GRegexEvalCallback) (const GMatchInfo *match_info, - GString *result, - gpointer user_data); - - -GRegex *g_regex_new (const gchar *pattern, - GRegexCompileFlags compile_options, - GRegexMatchFlags match_options, - GError **error); -GRegex *g_regex_ref (GRegex *regex); -void g_regex_unref (GRegex *regex); -const gchar *g_regex_get_pattern (const GRegex *regex); -gint g_regex_get_max_backref (const GRegex *regex); -gint g_regex_get_capture_count (const GRegex *regex); -gint g_regex_get_string_number (const GRegex *regex, - const gchar *name); -gchar *g_regex_escape_string (const gchar *string, - gint length); - -/* Matching. */ -gboolean g_regex_match_simple (const gchar *pattern, - const gchar *string, - GRegexCompileFlags compile_options, - GRegexMatchFlags match_options); -gboolean g_regex_match (const GRegex *regex, - const gchar *string, - GRegexMatchFlags match_options, - GMatchInfo **match_info); -gboolean g_regex_match_full (const GRegex *regex, - const gchar *string, - gssize string_len, - gint start_position, - GRegexMatchFlags match_options, - GMatchInfo **match_info, - GError **error); -gboolean g_regex_match_all (const GRegex *regex, - const gchar *string, - GRegexMatchFlags match_options, - GMatchInfo **match_info); -gboolean g_regex_match_all_full (const GRegex *regex, - const gchar *string, - gssize string_len, - gint start_position, - GRegexMatchFlags match_options, - GMatchInfo **match_info, - GError **error); - -/* String splitting. */ -gchar **g_regex_split_simple (const gchar *pattern, - const gchar *string, - GRegexCompileFlags compile_options, - GRegexMatchFlags match_options); -gchar **g_regex_split (const GRegex *regex, - const gchar *string, - GRegexMatchFlags match_options); -gchar **g_regex_split_full (const GRegex *regex, - const gchar *string, - gssize string_len, - gint start_position, - GRegexMatchFlags match_options, - gint max_tokens, - GError **error); - -/* String replacement. */ -gchar *g_regex_replace (const GRegex *regex, - const gchar *string, - gssize string_len, - gint start_position, - const gchar *replacement, - GRegexMatchFlags match_options, - GError **error); -gchar *g_regex_replace_literal (const GRegex *regex, - const gchar *string, - gssize string_len, - gint start_position, - const gchar *replacement, - GRegexMatchFlags match_options, - GError **error); -gchar *g_regex_replace_eval (const GRegex *regex, - const gchar *string, - gssize string_len, - gint start_position, - GRegexMatchFlags match_options, - GRegexEvalCallback eval, - gpointer user_data, - GError **error); -gboolean g_regex_check_replacement (const gchar *replacement, - gboolean *has_references, - GError **error); - -/* Match info */ -GRegex *g_match_info_get_regex (const GMatchInfo *match_info); -const gchar *g_match_info_get_string (const GMatchInfo *match_info); - -void g_match_info_free (GMatchInfo *match_info); -gboolean g_match_info_next (GMatchInfo *match_info, - GError **error); -gboolean g_match_info_matches (const GMatchInfo *match_info); -gint g_match_info_get_match_count (const GMatchInfo *match_info); -gboolean g_match_info_is_partial_match (const GMatchInfo *match_info); -gchar *g_match_info_expand_references(const GMatchInfo *match_info, - const gchar *string_to_expand, - GError **error); -gchar *g_match_info_fetch (const GMatchInfo *match_info, - gint match_num); -gboolean g_match_info_fetch_pos (const GMatchInfo *match_info, - gint match_num, - gint *start_pos, - gint *end_pos); -gchar *g_match_info_fetch_named (const GMatchInfo *match_info, - const gchar *name); -gboolean g_match_info_fetch_named_pos (const GMatchInfo *match_info, - const gchar *name, - gint *start_pos, - gint *end_pos); -gchar **g_match_info_fetch_all (const GMatchInfo *match_info); - -G_END_DECLS - -#endif /* __G_REGEX_H__ */ diff --git a/lib/win32/glib-2.20.4/glib/grel.c b/lib/win32/glib-2.20.4/glib/grel.c deleted file mode 100644 index b6ee65110565b..0000000000000 --- a/lib/win32/glib-2.20.4/glib/grel.c +++ /dev/null @@ -1,484 +0,0 @@ -/* GLIB - Library of useful routines for C programming - * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library 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 - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free - * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - */ - -/* - * Modified by the GLib Team and others 1997-2000. See the AUTHORS - * file for a list of people on the GLib Team. See the ChangeLog - * files for a list of changes. These files are distributed with - * GLib at ftp://ftp.gtk.org/pub/gtk/. - */ - -/* - * MT safe - */ - -#include "config.h" - -#include -#include - -#include "glib.h" -#include "galias.h" - - -typedef struct _GRealTuples GRealTuples; - -struct _GRelation -{ - gint fields; - gint current_field; - - GHashTable *all_tuples; - GHashTable **hashed_tuple_tables; - - gint count; -}; - -struct _GRealTuples -{ - gint len; - gint width; - gpointer *data; -}; - -static gboolean -tuple_equal_2 (gconstpointer v_a, - gconstpointer v_b) -{ - gpointer* a = (gpointer*) v_a; - gpointer* b = (gpointer*) v_b; - - return a[0] == b[0] && a[1] == b[1]; -} - -static guint -tuple_hash_2 (gconstpointer v_a) -{ -#if GLIB_SIZEOF_VOID_P > GLIB_SIZEOF_LONG - /* In practise this snippet has been written for 64-bit Windows - * where ints are 32 bits, pointers 64 bits. More exotic platforms - * need more tweaks. - */ - guint* a = (guint*) v_a; - - return (a[0] ^ a[1] ^ a[2] ^ a[3]); -#else - gpointer* a = (gpointer*) v_a; - - return (gulong)a[0] ^ (gulong)a[1]; -#endif -} - -static GHashFunc -tuple_hash (gint fields) -{ - switch (fields) - { - case 2: - return tuple_hash_2; - default: - g_error ("no tuple hash for %d", fields); - } - - return NULL; -} - -static GEqualFunc -tuple_equal (gint fields) -{ - switch (fields) - { - case 2: - return tuple_equal_2; - default: - g_error ("no tuple equal for %d", fields); - } - - return NULL; -} - -GRelation* -g_relation_new (gint fields) -{ - GRelation* rel = g_new0 (GRelation, 1); - - rel->fields = fields; - rel->all_tuples = g_hash_table_new (tuple_hash (fields), tuple_equal (fields)); - rel->hashed_tuple_tables = g_new0 (GHashTable*, fields); - - return rel; -} - -static void -relation_delete_value_tuple (gpointer tuple_key, - gpointer tuple_value, - gpointer user_data) -{ - GRelation *relation = user_data; - gpointer *tuple = tuple_value; - g_slice_free1 (relation->fields * sizeof (gpointer), tuple); -} - -static void -g_relation_free_array (gpointer key, gpointer value, gpointer user_data) -{ - g_hash_table_destroy ((GHashTable*) value); -} - -void -g_relation_destroy (GRelation *relation) -{ - gint i; - - if (relation) - { - for (i = 0; i < relation->fields; i += 1) - { - if (relation->hashed_tuple_tables[i]) - { - g_hash_table_foreach (relation->hashed_tuple_tables[i], g_relation_free_array, NULL); - g_hash_table_destroy (relation->hashed_tuple_tables[i]); - } - } - - g_hash_table_foreach (relation->all_tuples, relation_delete_value_tuple, relation); - g_hash_table_destroy (relation->all_tuples); - - g_free (relation->hashed_tuple_tables); - g_free (relation); - } -} - -void -g_relation_index (GRelation *relation, - gint field, - GHashFunc hash_func, - GEqualFunc key_equal_func) -{ - g_return_if_fail (relation != NULL); - - g_return_if_fail (relation->count == 0 && relation->hashed_tuple_tables[field] == NULL); - - relation->hashed_tuple_tables[field] = g_hash_table_new (hash_func, key_equal_func); -} - -void -g_relation_insert (GRelation *relation, - ...) -{ - gpointer* tuple = g_slice_alloc (relation->fields * sizeof (gpointer)); - va_list args; - gint i; - - va_start (args, relation); - - for (i = 0; i < relation->fields; i += 1) - tuple[i] = va_arg (args, gpointer); - - va_end (args); - - g_hash_table_insert (relation->all_tuples, tuple, tuple); - - relation->count += 1; - - for (i = 0; i < relation->fields; i += 1) - { - GHashTable *table; - gpointer key; - GHashTable *per_key_table; - - table = relation->hashed_tuple_tables[i]; - - if (table == NULL) - continue; - - key = tuple[i]; - per_key_table = g_hash_table_lookup (table, key); - - if (per_key_table == NULL) - { - per_key_table = g_hash_table_new (tuple_hash (relation->fields), tuple_equal (relation->fields)); - g_hash_table_insert (table, key, per_key_table); - } - - g_hash_table_insert (per_key_table, tuple, tuple); - } -} - -static void -g_relation_delete_tuple (gpointer tuple_key, - gpointer tuple_value, - gpointer user_data) -{ - gpointer *tuple = (gpointer*) tuple_value; - GRelation *relation = (GRelation *) user_data; - gint j; - - g_assert (tuple_key == tuple_value); - - for (j = 0; j < relation->fields; j += 1) - { - GHashTable *one_table = relation->hashed_tuple_tables[j]; - gpointer one_key; - GHashTable *per_key_table; - - if (one_table == NULL) - continue; - - if (j == relation->current_field) - /* can't delete from the table we're foreaching in */ - continue; - - one_key = tuple[j]; - - per_key_table = g_hash_table_lookup (one_table, one_key); - - g_hash_table_remove (per_key_table, tuple); - } - - if (g_hash_table_remove (relation->all_tuples, tuple)) - g_slice_free1 (relation->fields * sizeof (gpointer), tuple); - - relation->count -= 1; -} - -gint -g_relation_delete (GRelation *relation, - gconstpointer key, - gint field) -{ - GHashTable *table; - GHashTable *key_table; - gint count; - - g_return_val_if_fail (relation != NULL, 0); - - table = relation->hashed_tuple_tables[field]; - count = relation->count; - - g_return_val_if_fail (table != NULL, 0); - - key_table = g_hash_table_lookup (table, key); - - if (!key_table) - return 0; - - relation->current_field = field; - - g_hash_table_foreach (key_table, g_relation_delete_tuple, relation); - - g_hash_table_remove (table, key); - - g_hash_table_destroy (key_table); - - /* @@@ FIXME: Remove empty hash tables. */ - - return count - relation->count; -} - -static void -g_relation_select_tuple (gpointer tuple_key, - gpointer tuple_value, - gpointer user_data) -{ - gpointer *tuple = (gpointer*) tuple_value; - GRealTuples *tuples = (GRealTuples*) user_data; - gint stride = sizeof (gpointer) * tuples->width; - - g_assert (tuple_key == tuple_value); - - memcpy (tuples->data + (tuples->len * tuples->width), - tuple, - stride); - - tuples->len += 1; -} - -GTuples* -g_relation_select (GRelation *relation, - gconstpointer key, - gint field) -{ - GHashTable *table; - GHashTable *key_table; - GRealTuples *tuples; - gint count; - - g_return_val_if_fail (relation != NULL, NULL); - - table = relation->hashed_tuple_tables[field]; - - g_return_val_if_fail (table != NULL, NULL); - - tuples = g_new0 (GRealTuples, 1); - key_table = g_hash_table_lookup (table, key); - - if (!key_table) - return (GTuples*)tuples; - - count = g_relation_count (relation, key, field); - - tuples->data = g_malloc (sizeof (gpointer) * relation->fields * count); - tuples->width = relation->fields; - - g_hash_table_foreach (key_table, g_relation_select_tuple, tuples); - - g_assert (count == tuples->len); - - return (GTuples*)tuples; -} - -gint -g_relation_count (GRelation *relation, - gconstpointer key, - gint field) -{ - GHashTable *table; - GHashTable *key_table; - - g_return_val_if_fail (relation != NULL, 0); - - table = relation->hashed_tuple_tables[field]; - - g_return_val_if_fail (table != NULL, 0); - - key_table = g_hash_table_lookup (table, key); - - if (!key_table) - return 0; - - return g_hash_table_size (key_table); -} - -gboolean -g_relation_exists (GRelation *relation, ...) -{ - gpointer *tuple = g_slice_alloc (relation->fields * sizeof (gpointer)); - va_list args; - gint i; - gboolean result; - - va_start(args, relation); - - for (i = 0; i < relation->fields; i += 1) - tuple[i] = va_arg(args, gpointer); - - va_end(args); - - result = g_hash_table_lookup (relation->all_tuples, tuple) != NULL; - - g_slice_free1 (relation->fields * sizeof (gpointer), tuple); - - return result; -} - -void -g_tuples_destroy (GTuples *tuples0) -{ - GRealTuples *tuples = (GRealTuples*) tuples0; - - if (tuples) - { - g_free (tuples->data); - g_free (tuples); - } -} - -gpointer -g_tuples_index (GTuples *tuples0, - gint index, - gint field) -{ - GRealTuples *tuples = (GRealTuples*) tuples0; - - g_return_val_if_fail (tuples0 != NULL, NULL); - g_return_val_if_fail (field < tuples->width, NULL); - - return tuples->data[index * tuples->width + field]; -} - -/* Print - */ - -static void -g_relation_print_one (gpointer tuple_key, - gpointer tuple_value, - gpointer user_data) -{ - gint i; - GString *gstring; - GRelation* rel = (GRelation*) user_data; - gpointer* tuples = (gpointer*) tuple_value; - - gstring = g_string_new ("["); - - for (i = 0; i < rel->fields; i += 1) - { - g_string_append_printf (gstring, "%p", tuples[i]); - - if (i < (rel->fields - 1)) - g_string_append (gstring, ","); - } - - g_string_append (gstring, "]"); - g_log (G_LOG_DOMAIN, G_LOG_LEVEL_INFO, "%s", gstring->str); - g_string_free (gstring, TRUE); -} - -static void -g_relation_print_index (gpointer tuple_key, - gpointer tuple_value, - gpointer user_data) -{ - GRelation* rel = (GRelation*) user_data; - GHashTable* table = (GHashTable*) tuple_value; - - g_log (G_LOG_DOMAIN, G_LOG_LEVEL_INFO, "*** key %p", tuple_key); - - g_hash_table_foreach (table, - g_relation_print_one, - rel); -} - -void -g_relation_print (GRelation *relation) -{ - gint i; - - g_log (G_LOG_DOMAIN, G_LOG_LEVEL_INFO, "*** all tuples (%d)", relation->count); - - g_hash_table_foreach (relation->all_tuples, - g_relation_print_one, - relation); - - for (i = 0; i < relation->fields; i += 1) - { - if (relation->hashed_tuple_tables[i] == NULL) - continue; - - g_log (G_LOG_DOMAIN, G_LOG_LEVEL_INFO, "*** index %d", i); - - g_hash_table_foreach (relation->hashed_tuple_tables[i], - g_relation_print_index, - relation); - } - -} - -#define __G_REL_C__ -#include "galiasdef.c" diff --git a/lib/win32/glib-2.20.4/glib/grel.h b/lib/win32/glib-2.20.4/glib/grel.h deleted file mode 100644 index e7c929133795c..0000000000000 --- a/lib/win32/glib-2.20.4/glib/grel.h +++ /dev/null @@ -1,97 +0,0 @@ -/* GLIB - Library of useful routines for C programming - * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library 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 - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ - -/* - * Modified by the GLib Team and others 1997-2000. See the AUTHORS - * file for a list of people on the GLib Team. See the ChangeLog - * files for a list of changes. These files are distributed with - * GLib at ftp://ftp.gtk.org/pub/gtk/. - */ - -#if defined(G_DISABLE_SINGLE_INCLUDES) && !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION) -#error "Only can be included directly." -#endif - -#ifndef __G_REL_H__ -#define __G_REL_H__ - -#include - -G_BEGIN_DECLS - -typedef struct _GRelation GRelation; -typedef struct _GTuples GTuples; - -struct _GTuples -{ - guint len; -}; - -/* GRelation - * - * Indexed Relations. Imagine a really simple table in a - * database. Relations are not ordered. This data type is meant for - * maintaining a N-way mapping. - * - * g_relation_new() creates a relation with FIELDS fields - * - * g_relation_destroy() frees all resources - * g_tuples_destroy() frees the result of g_relation_select() - * - * g_relation_index() indexes relation FIELD with the provided - * equality and hash functions. this must be done before any - * calls to insert are made. - * - * g_relation_insert() inserts a new tuple. you are expected to - * provide the right number of fields. - * - * g_relation_delete() deletes all relations with KEY in FIELD - * g_relation_select() returns ... - * g_relation_count() counts ... - */ - -GRelation* g_relation_new (gint fields); -void g_relation_destroy (GRelation *relation); -void g_relation_index (GRelation *relation, - gint field, - GHashFunc hash_func, - GEqualFunc key_equal_func); -void g_relation_insert (GRelation *relation, - ...); -gint g_relation_delete (GRelation *relation, - gconstpointer key, - gint field); -GTuples* g_relation_select (GRelation *relation, - gconstpointer key, - gint field); -gint g_relation_count (GRelation *relation, - gconstpointer key, - gint field); -gboolean g_relation_exists (GRelation *relation, - ...); -void g_relation_print (GRelation *relation); - -void g_tuples_destroy (GTuples *tuples); -gpointer g_tuples_index (GTuples *tuples, - gint index_, - gint field); - -G_END_DECLS - -#endif /* __G_REL_H__ */ diff --git a/lib/win32/glib-2.20.4/glib/gscanner.c b/lib/win32/glib-2.20.4/glib/gscanner.c deleted file mode 100644 index 233cc73b9e6f6..0000000000000 --- a/lib/win32/glib-2.20.4/glib/gscanner.c +++ /dev/null @@ -1,1767 +0,0 @@ -/* GLIB - Library of useful routines for C programming - * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald - * - * GScanner: Flexible lexical scanner for general purpose. - * Copyright (C) 1997, 1998 Tim Janik - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library 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 - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ - -/* - * Modified by the GLib Team and others 1997-2000. See the AUTHORS - * file for a list of people on the GLib Team. See the ChangeLog - * files for a list of changes. These files are distributed with - * GLib at ftp://ftp.gtk.org/pub/gtk/. - */ - -/* - * MT safe - */ - -#include "config.h" - -#include -#include -#include -#include -#include -#ifdef HAVE_UNISTD_H -#include -#endif - -#include "glib.h" -#include "gprintfint.h" -#include "galias.h" - -#ifdef G_OS_WIN32 -#include /* For _read() */ -#endif - -/* --- defines --- */ -#define to_lower(c) ( \ - (guchar) ( \ - ( (((guchar)(c))>='A' && ((guchar)(c))<='Z') * ('a'-'A') ) | \ - ( (((guchar)(c))>=192 && ((guchar)(c))<=214) * (224-192) ) | \ - ( (((guchar)(c))>=216 && ((guchar)(c))<=222) * (248-216) ) | \ - ((guchar)(c)) \ - ) \ -) -#define READ_BUFFER_SIZE (4000) - - -/* --- typedefs --- */ -typedef struct _GScannerKey GScannerKey; - -struct _GScannerKey -{ - guint scope_id; - gchar *symbol; - gpointer value; -}; - - -/* --- variables --- */ -static const GScannerConfig g_scanner_config_template = -{ - ( - " \t\r\n" - ) /* cset_skip_characters */, - ( - G_CSET_a_2_z - "_" - G_CSET_A_2_Z - ) /* cset_identifier_first */, - ( - G_CSET_a_2_z - "_" - G_CSET_A_2_Z - G_CSET_DIGITS - G_CSET_LATINS - G_CSET_LATINC - ) /* cset_identifier_nth */, - ( "#\n" ) /* cpair_comment_single */, - - FALSE /* case_sensitive */, - - TRUE /* skip_comment_multi */, - TRUE /* skip_comment_single */, - TRUE /* scan_comment_multi */, - TRUE /* scan_identifier */, - FALSE /* scan_identifier_1char */, - FALSE /* scan_identifier_NULL */, - TRUE /* scan_symbols */, - FALSE /* scan_binary */, - TRUE /* scan_octal */, - TRUE /* scan_float */, - TRUE /* scan_hex */, - FALSE /* scan_hex_dollar */, - TRUE /* scan_string_sq */, - TRUE /* scan_string_dq */, - TRUE /* numbers_2_int */, - FALSE /* int_2_float */, - FALSE /* identifier_2_string */, - TRUE /* char_2_token */, - FALSE /* symbol_2_token */, - FALSE /* scope_0_fallback */, - FALSE /* store_int64 */, -}; - - -/* --- prototypes --- */ -static inline -GScannerKey* g_scanner_lookup_internal (GScanner *scanner, - guint scope_id, - const gchar *symbol); -static gboolean g_scanner_key_equal (gconstpointer v1, - gconstpointer v2); -static guint g_scanner_key_hash (gconstpointer v); -static void g_scanner_get_token_ll (GScanner *scanner, - GTokenType *token_p, - GTokenValue *value_p, - guint *line_p, - guint *position_p); -static void g_scanner_get_token_i (GScanner *scanner, - GTokenType *token_p, - GTokenValue *value_p, - guint *line_p, - guint *position_p); - -static guchar g_scanner_peek_next_char (GScanner *scanner); -static guchar g_scanner_get_char (GScanner *scanner, - guint *line_p, - guint *position_p); -static void g_scanner_msg_handler (GScanner *scanner, - gchar *message, - gboolean is_error); - - -/* --- functions --- */ -static inline gint -g_scanner_char_2_num (guchar c, - guchar base) -{ - if (c >= '0' && c <= '9') - c -= '0'; - else if (c >= 'A' && c <= 'Z') - c -= 'A' - 10; - else if (c >= 'a' && c <= 'z') - c -= 'a' - 10; - else - return -1; - - if (c < base) - return c; - - return -1; -} - -GScanner* -g_scanner_new (const GScannerConfig *config_templ) -{ - GScanner *scanner; - - if (!config_templ) - config_templ = &g_scanner_config_template; - - scanner = g_new0 (GScanner, 1); - - scanner->user_data = NULL; - scanner->max_parse_errors = 1; - scanner->parse_errors = 0; - scanner->input_name = NULL; - g_datalist_init (&scanner->qdata); - - scanner->config = g_new0 (GScannerConfig, 1); - - scanner->config->case_sensitive = config_templ->case_sensitive; - scanner->config->cset_skip_characters = config_templ->cset_skip_characters; - if (!scanner->config->cset_skip_characters) - scanner->config->cset_skip_characters = ""; - scanner->config->cset_identifier_first = config_templ->cset_identifier_first; - scanner->config->cset_identifier_nth = config_templ->cset_identifier_nth; - scanner->config->cpair_comment_single = config_templ->cpair_comment_single; - scanner->config->skip_comment_multi = config_templ->skip_comment_multi; - scanner->config->skip_comment_single = config_templ->skip_comment_single; - scanner->config->scan_comment_multi = config_templ->scan_comment_multi; - scanner->config->scan_identifier = config_templ->scan_identifier; - scanner->config->scan_identifier_1char = config_templ->scan_identifier_1char; - scanner->config->scan_identifier_NULL = config_templ->scan_identifier_NULL; - scanner->config->scan_symbols = config_templ->scan_symbols; - scanner->config->scan_binary = config_templ->scan_binary; - scanner->config->scan_octal = config_templ->scan_octal; - scanner->config->scan_float = config_templ->scan_float; - scanner->config->scan_hex = config_templ->scan_hex; - scanner->config->scan_hex_dollar = config_templ->scan_hex_dollar; - scanner->config->scan_string_sq = config_templ->scan_string_sq; - scanner->config->scan_string_dq = config_templ->scan_string_dq; - scanner->config->numbers_2_int = config_templ->numbers_2_int; - scanner->config->int_2_float = config_templ->int_2_float; - scanner->config->identifier_2_string = config_templ->identifier_2_string; - scanner->config->char_2_token = config_templ->char_2_token; - scanner->config->symbol_2_token = config_templ->symbol_2_token; - scanner->config->scope_0_fallback = config_templ->scope_0_fallback; - scanner->config->store_int64 = config_templ->store_int64; - - scanner->token = G_TOKEN_NONE; - scanner->value.v_int64 = 0; - scanner->line = 1; - scanner->position = 0; - - scanner->next_token = G_TOKEN_NONE; - scanner->next_value.v_int64 = 0; - scanner->next_line = 1; - scanner->next_position = 0; - - scanner->symbol_table = g_hash_table_new (g_scanner_key_hash, g_scanner_key_equal); - scanner->input_fd = -1; - scanner->text = NULL; - scanner->text_end = NULL; - scanner->buffer = NULL; - scanner->scope_id = 0; - - scanner->msg_handler = g_scanner_msg_handler; - - return scanner; -} - -static inline void -g_scanner_free_value (GTokenType *token_p, - GTokenValue *value_p) -{ - switch (*token_p) - { - case G_TOKEN_STRING: - case G_TOKEN_IDENTIFIER: - case G_TOKEN_IDENTIFIER_NULL: - case G_TOKEN_COMMENT_SINGLE: - case G_TOKEN_COMMENT_MULTI: - g_free (value_p->v_string); - break; - - default: - break; - } - - *token_p = G_TOKEN_NONE; -} - -static void -g_scanner_destroy_symbol_table_entry (gpointer _key, - gpointer _value, - gpointer _data) -{ - GScannerKey *key = _key; - - g_free (key->symbol); - g_free (key); -} - -void -g_scanner_destroy (GScanner *scanner) -{ - g_return_if_fail (scanner != NULL); - - g_datalist_clear (&scanner->qdata); - g_hash_table_foreach (scanner->symbol_table, - g_scanner_destroy_symbol_table_entry, NULL); - g_hash_table_destroy (scanner->symbol_table); - g_scanner_free_value (&scanner->token, &scanner->value); - g_scanner_free_value (&scanner->next_token, &scanner->next_value); - g_free (scanner->config); - g_free (scanner->buffer); - g_free (scanner); -} - -static void -g_scanner_msg_handler (GScanner *scanner, - gchar *message, - gboolean is_error) -{ - g_return_if_fail (scanner != NULL); - - _g_fprintf (stderr, "%s:%d: ", - scanner->input_name ? scanner->input_name : "", - scanner->line); - if (is_error) - _g_fprintf (stderr, "error: "); - _g_fprintf (stderr, "%s\n", message); -} - -void -g_scanner_error (GScanner *scanner, - const gchar *format, - ...) -{ - g_return_if_fail (scanner != NULL); - g_return_if_fail (format != NULL); - - scanner->parse_errors++; - - if (scanner->msg_handler) - { - va_list args; - gchar *string; - - va_start (args, format); - string = g_strdup_vprintf (format, args); - va_end (args); - - scanner->msg_handler (scanner, string, TRUE); - - g_free (string); - } -} - -void -g_scanner_warn (GScanner *scanner, - const gchar *format, - ...) -{ - g_return_if_fail (scanner != NULL); - g_return_if_fail (format != NULL); - - if (scanner->msg_handler) - { - va_list args; - gchar *string; - - va_start (args, format); - string = g_strdup_vprintf (format, args); - va_end (args); - - scanner->msg_handler (scanner, string, FALSE); - - g_free (string); - } -} - -static gboolean -g_scanner_key_equal (gconstpointer v1, - gconstpointer v2) -{ - const GScannerKey *key1 = v1; - const GScannerKey *key2 = v2; - - return (key1->scope_id == key2->scope_id) && (strcmp (key1->symbol, key2->symbol) == 0); -} - -static guint -g_scanner_key_hash (gconstpointer v) -{ - const GScannerKey *key = v; - gchar *c; - guint h; - - h = key->scope_id; - for (c = key->symbol; *c; c++) - h = (h << 5) - h + *c; - - return h; -} - -static inline GScannerKey* -g_scanner_lookup_internal (GScanner *scanner, - guint scope_id, - const gchar *symbol) -{ - GScannerKey *key_p; - GScannerKey key; - - key.scope_id = scope_id; - - if (!scanner->config->case_sensitive) - { - gchar *d; - const gchar *c; - - key.symbol = g_new (gchar, strlen (symbol) + 1); - for (d = key.symbol, c = symbol; *c; c++, d++) - *d = to_lower (*c); - *d = 0; - key_p = g_hash_table_lookup (scanner->symbol_table, &key); - g_free (key.symbol); - } - else - { - key.symbol = (gchar*) symbol; - key_p = g_hash_table_lookup (scanner->symbol_table, &key); - } - - return key_p; -} - -void -g_scanner_scope_add_symbol (GScanner *scanner, - guint scope_id, - const gchar *symbol, - gpointer value) -{ - GScannerKey *key; - - g_return_if_fail (scanner != NULL); - g_return_if_fail (symbol != NULL); - - key = g_scanner_lookup_internal (scanner, scope_id, symbol); - - if (!key) - { - key = g_new (GScannerKey, 1); - key->scope_id = scope_id; - key->symbol = g_strdup (symbol); - key->value = value; - if (!scanner->config->case_sensitive) - { - gchar *c; - - c = key->symbol; - while (*c != 0) - { - *c = to_lower (*c); - c++; - } - } - g_hash_table_insert (scanner->symbol_table, key, key); - } - else - key->value = value; -} - -void -g_scanner_scope_remove_symbol (GScanner *scanner, - guint scope_id, - const gchar *symbol) -{ - GScannerKey *key; - - g_return_if_fail (scanner != NULL); - g_return_if_fail (symbol != NULL); - - key = g_scanner_lookup_internal (scanner, scope_id, symbol); - - if (key) - { - g_hash_table_remove (scanner->symbol_table, key); - g_free (key->symbol); - g_free (key); - } -} - -gpointer -g_scanner_lookup_symbol (GScanner *scanner, - const gchar *symbol) -{ - GScannerKey *key; - guint scope_id; - - g_return_val_if_fail (scanner != NULL, NULL); - - if (!symbol) - return NULL; - - scope_id = scanner->scope_id; - key = g_scanner_lookup_internal (scanner, scope_id, symbol); - if (!key && scope_id && scanner->config->scope_0_fallback) - key = g_scanner_lookup_internal (scanner, 0, symbol); - - if (key) - return key->value; - else - return NULL; -} - -gpointer -g_scanner_scope_lookup_symbol (GScanner *scanner, - guint scope_id, - const gchar *symbol) -{ - GScannerKey *key; - - g_return_val_if_fail (scanner != NULL, NULL); - - if (!symbol) - return NULL; - - key = g_scanner_lookup_internal (scanner, scope_id, symbol); - - if (key) - return key->value; - else - return NULL; -} - -guint -g_scanner_set_scope (GScanner *scanner, - guint scope_id) -{ - guint old_scope_id; - - g_return_val_if_fail (scanner != NULL, 0); - - old_scope_id = scanner->scope_id; - scanner->scope_id = scope_id; - - return old_scope_id; -} - -static void -g_scanner_foreach_internal (gpointer _key, - gpointer _value, - gpointer _user_data) -{ - GScannerKey *key; - gpointer *d; - GHFunc func; - gpointer user_data; - guint *scope_id; - - d = _user_data; - func = (GHFunc) d[0]; - user_data = d[1]; - scope_id = d[2]; - key = _value; - - if (key->scope_id == *scope_id) - func (key->symbol, key->value, user_data); -} - -void -g_scanner_scope_foreach_symbol (GScanner *scanner, - guint scope_id, - GHFunc func, - gpointer user_data) -{ - gpointer d[3]; - - g_return_if_fail (scanner != NULL); - - d[0] = (gpointer) func; - d[1] = user_data; - d[2] = &scope_id; - - g_hash_table_foreach (scanner->symbol_table, g_scanner_foreach_internal, d); -} - -GTokenType -g_scanner_peek_next_token (GScanner *scanner) -{ - g_return_val_if_fail (scanner != NULL, G_TOKEN_EOF); - - if (scanner->next_token == G_TOKEN_NONE) - { - scanner->next_line = scanner->line; - scanner->next_position = scanner->position; - g_scanner_get_token_i (scanner, - &scanner->next_token, - &scanner->next_value, - &scanner->next_line, - &scanner->next_position); - } - - return scanner->next_token; -} - -GTokenType -g_scanner_get_next_token (GScanner *scanner) -{ - g_return_val_if_fail (scanner != NULL, G_TOKEN_EOF); - - if (scanner->next_token != G_TOKEN_NONE) - { - g_scanner_free_value (&scanner->token, &scanner->value); - - scanner->token = scanner->next_token; - scanner->value = scanner->next_value; - scanner->line = scanner->next_line; - scanner->position = scanner->next_position; - scanner->next_token = G_TOKEN_NONE; - } - else - g_scanner_get_token_i (scanner, - &scanner->token, - &scanner->value, - &scanner->line, - &scanner->position); - - return scanner->token; -} - -GTokenType -g_scanner_cur_token (GScanner *scanner) -{ - g_return_val_if_fail (scanner != NULL, G_TOKEN_EOF); - - return scanner->token; -} - -GTokenValue -g_scanner_cur_value (GScanner *scanner) -{ - GTokenValue v; - - v.v_int64 = 0; - - g_return_val_if_fail (scanner != NULL, v); - - /* MSC isn't capable of handling return scanner->value; ? */ - - v = scanner->value; - - return v; -} - -guint -g_scanner_cur_line (GScanner *scanner) -{ - g_return_val_if_fail (scanner != NULL, 0); - - return scanner->line; -} - -guint -g_scanner_cur_position (GScanner *scanner) -{ - g_return_val_if_fail (scanner != NULL, 0); - - return scanner->position; -} - -gboolean -g_scanner_eof (GScanner *scanner) -{ - g_return_val_if_fail (scanner != NULL, TRUE); - - return scanner->token == G_TOKEN_EOF || scanner->token == G_TOKEN_ERROR; -} - -void -g_scanner_input_file (GScanner *scanner, - gint input_fd) -{ - g_return_if_fail (scanner != NULL); - g_return_if_fail (input_fd >= 0); - - if (scanner->input_fd >= 0) - g_scanner_sync_file_offset (scanner); - - scanner->token = G_TOKEN_NONE; - scanner->value.v_int64 = 0; - scanner->line = 1; - scanner->position = 0; - scanner->next_token = G_TOKEN_NONE; - - scanner->input_fd = input_fd; - scanner->text = NULL; - scanner->text_end = NULL; - - if (!scanner->buffer) - scanner->buffer = g_new (gchar, READ_BUFFER_SIZE + 1); -} - -void -g_scanner_input_text (GScanner *scanner, - const gchar *text, - guint text_len) -{ - g_return_if_fail (scanner != NULL); - if (text_len) - g_return_if_fail (text != NULL); - else - text = NULL; - - if (scanner->input_fd >= 0) - g_scanner_sync_file_offset (scanner); - - scanner->token = G_TOKEN_NONE; - scanner->value.v_int64 = 0; - scanner->line = 1; - scanner->position = 0; - scanner->next_token = G_TOKEN_NONE; - - scanner->input_fd = -1; - scanner->text = text; - scanner->text_end = text + text_len; - - if (scanner->buffer) - { - g_free (scanner->buffer); - scanner->buffer = NULL; - } -} - -static guchar -g_scanner_peek_next_char (GScanner *scanner) -{ - if (scanner->text < scanner->text_end) - { - return *scanner->text; - } - else if (scanner->input_fd >= 0) - { - gint count; - gchar *buffer; - - buffer = scanner->buffer; - do - { - count = read (scanner->input_fd, buffer, READ_BUFFER_SIZE); - } - while (count == -1 && (errno == EINTR || errno == EAGAIN)); - - if (count < 1) - { - scanner->input_fd = -1; - - return 0; - } - else - { - scanner->text = buffer; - scanner->text_end = buffer + count; - - return *buffer; - } - } - else - return 0; -} - -void -g_scanner_sync_file_offset (GScanner *scanner) -{ - g_return_if_fail (scanner != NULL); - - /* for file input, rewind the filedescriptor to the current - * buffer position and blow the file read ahead buffer. useful - * for third party uses of our file descriptor, which hooks - * onto the current scanning position. - */ - - if (scanner->input_fd >= 0 && scanner->text_end > scanner->text) - { - gint buffered; - - buffered = scanner->text_end - scanner->text; - if (lseek (scanner->input_fd, - buffered, SEEK_CUR) >= 0) - { - /* we succeeded, blow our buffer's contents now */ - scanner->text = NULL; - scanner->text_end = NULL; - } - else - errno = 0; - } -} - -static guchar -g_scanner_get_char (GScanner *scanner, - guint *line_p, - guint *position_p) -{ - guchar fchar; - - if (scanner->text < scanner->text_end) - fchar = *(scanner->text++); - else if (scanner->input_fd >= 0) - { - gint count; - gchar *buffer; - - buffer = scanner->buffer; - do - { - count = read (scanner->input_fd, buffer, READ_BUFFER_SIZE); - } - while (count == -1 && (errno == EINTR || errno == EAGAIN)); - - if (count < 1) - { - scanner->input_fd = -1; - fchar = 0; - } - else - { - scanner->text = buffer + 1; - scanner->text_end = buffer + count; - fchar = *buffer; - if (!fchar) - { - g_scanner_sync_file_offset (scanner); - scanner->text_end = scanner->text; - scanner->input_fd = -1; - } - } - } - else - fchar = 0; - - if (fchar == '\n') - { - (*position_p) = 0; - (*line_p)++; - } - else if (fchar) - { - (*position_p)++; - } - - return fchar; -} - -void -g_scanner_unexp_token (GScanner *scanner, - GTokenType expected_token, - const gchar *identifier_spec, - const gchar *symbol_spec, - const gchar *symbol_name, - const gchar *message, - gint is_error) -{ - gchar *token_string; - guint token_string_len; - gchar *expected_string; - guint expected_string_len; - gchar *message_prefix; - gboolean print_unexp; - void (*msg_handler) (GScanner*, const gchar*, ...); - - g_return_if_fail (scanner != NULL); - - if (is_error) - msg_handler = g_scanner_error; - else - msg_handler = g_scanner_warn; - - if (!identifier_spec) - identifier_spec = "identifier"; - if (!symbol_spec) - symbol_spec = "symbol"; - - token_string_len = 56; - token_string = g_new (gchar, token_string_len + 1); - expected_string_len = 64; - expected_string = g_new (gchar, expected_string_len + 1); - print_unexp = TRUE; - - switch (scanner->token) - { - case G_TOKEN_EOF: - _g_snprintf (token_string, token_string_len, "end of file"); - break; - - default: - if (scanner->token >= 1 && scanner->token <= 255) - { - if ((scanner->token >= ' ' && scanner->token <= '~') || - strchr (scanner->config->cset_identifier_first, scanner->token) || - strchr (scanner->config->cset_identifier_nth, scanner->token)) - _g_snprintf (token_string, token_string_len, "character `%c'", scanner->token); - else - _g_snprintf (token_string, token_string_len, "character `\\%o'", scanner->token); - break; - } - else if (!scanner->config->symbol_2_token) - { - _g_snprintf (token_string, token_string_len, "(unknown) token <%d>", scanner->token); - break; - } - /* fall through */ - case G_TOKEN_SYMBOL: - if (expected_token == G_TOKEN_SYMBOL || - (scanner->config->symbol_2_token && - expected_token > G_TOKEN_LAST)) - print_unexp = FALSE; - if (symbol_name) - _g_snprintf (token_string, - token_string_len, - "%s%s `%s'", - print_unexp ? "" : "invalid ", - symbol_spec, - symbol_name); - else - _g_snprintf (token_string, - token_string_len, - "%s%s", - print_unexp ? "" : "invalid ", - symbol_spec); - break; - - case G_TOKEN_ERROR: - print_unexp = FALSE; - expected_token = G_TOKEN_NONE; - switch (scanner->value.v_error) - { - case G_ERR_UNEXP_EOF: - _g_snprintf (token_string, token_string_len, "scanner: unexpected end of file"); - break; - - case G_ERR_UNEXP_EOF_IN_STRING: - _g_snprintf (token_string, token_string_len, "scanner: unterminated string constant"); - break; - - case G_ERR_UNEXP_EOF_IN_COMMENT: - _g_snprintf (token_string, token_string_len, "scanner: unterminated comment"); - break; - - case G_ERR_NON_DIGIT_IN_CONST: - _g_snprintf (token_string, token_string_len, "scanner: non digit in constant"); - break; - - case G_ERR_FLOAT_RADIX: - _g_snprintf (token_string, token_string_len, "scanner: invalid radix for floating constant"); - break; - - case G_ERR_FLOAT_MALFORMED: - _g_snprintf (token_string, token_string_len, "scanner: malformed floating constant"); - break; - - case G_ERR_DIGIT_RADIX: - _g_snprintf (token_string, token_string_len, "scanner: digit is beyond radix"); - break; - - case G_ERR_UNKNOWN: - default: - _g_snprintf (token_string, token_string_len, "scanner: unknown error"); - break; - } - break; - - case G_TOKEN_CHAR: - _g_snprintf (token_string, token_string_len, "character `%c'", scanner->value.v_char); - break; - - case G_TOKEN_IDENTIFIER: - case G_TOKEN_IDENTIFIER_NULL: - if (expected_token == G_TOKEN_IDENTIFIER || - expected_token == G_TOKEN_IDENTIFIER_NULL) - print_unexp = FALSE; - _g_snprintf (token_string, - token_string_len, - "%s%s `%s'", - print_unexp ? "" : "invalid ", - identifier_spec, - scanner->token == G_TOKEN_IDENTIFIER ? scanner->value.v_string : "null"); - break; - - case G_TOKEN_BINARY: - case G_TOKEN_OCTAL: - case G_TOKEN_INT: - case G_TOKEN_HEX: - if (scanner->config->store_int64) - _g_snprintf (token_string, token_string_len, "number `%" G_GUINT64_FORMAT "'", scanner->value.v_int64); - else - _g_snprintf (token_string, token_string_len, "number `%lu'", scanner->value.v_int); - break; - - case G_TOKEN_FLOAT: - _g_snprintf (token_string, token_string_len, "number `%.3f'", scanner->value.v_float); - break; - - case G_TOKEN_STRING: - if (expected_token == G_TOKEN_STRING) - print_unexp = FALSE; - _g_snprintf (token_string, - token_string_len, - "%s%sstring constant \"%s\"", - print_unexp ? "" : "invalid ", - scanner->value.v_string[0] == 0 ? "empty " : "", - scanner->value.v_string); - token_string[token_string_len - 2] = '"'; - token_string[token_string_len - 1] = 0; - break; - - case G_TOKEN_COMMENT_SINGLE: - case G_TOKEN_COMMENT_MULTI: - _g_snprintf (token_string, token_string_len, "comment"); - break; - - case G_TOKEN_NONE: - /* somehow the user's parsing code is screwed, there isn't much - * we can do about it. - * Note, a common case to trigger this is - * g_scanner_peek_next_token(); g_scanner_unexp_token(); - * without an intermediate g_scanner_get_next_token(). - */ - g_assert_not_reached (); - break; - } - - - switch (expected_token) - { - gboolean need_valid; - gchar *tstring; - case G_TOKEN_EOF: - _g_snprintf (expected_string, expected_string_len, "end of file"); - break; - default: - if (expected_token >= 1 && expected_token <= 255) - { - if ((expected_token >= ' ' && expected_token <= '~') || - strchr (scanner->config->cset_identifier_first, expected_token) || - strchr (scanner->config->cset_identifier_nth, expected_token)) - _g_snprintf (expected_string, expected_string_len, "character `%c'", expected_token); - else - _g_snprintf (expected_string, expected_string_len, "character `\\%o'", expected_token); - break; - } - else if (!scanner->config->symbol_2_token) - { - _g_snprintf (expected_string, expected_string_len, "(unknown) token <%d>", expected_token); - break; - } - /* fall through */ - case G_TOKEN_SYMBOL: - need_valid = (scanner->token == G_TOKEN_SYMBOL || - (scanner->config->symbol_2_token && - scanner->token > G_TOKEN_LAST)); - _g_snprintf (expected_string, - expected_string_len, - "%s%s", - need_valid ? "valid " : "", - symbol_spec); - /* FIXME: should we attempt to lookup the symbol_name for symbol_2_token? */ - break; - case G_TOKEN_CHAR: - _g_snprintf (expected_string, expected_string_len, "%scharacter", - scanner->token == G_TOKEN_CHAR ? "valid " : ""); - break; - case G_TOKEN_BINARY: - tstring = "binary"; - _g_snprintf (expected_string, expected_string_len, "%snumber (%s)", - scanner->token == expected_token ? "valid " : "", tstring); - break; - case G_TOKEN_OCTAL: - tstring = "octal"; - _g_snprintf (expected_string, expected_string_len, "%snumber (%s)", - scanner->token == expected_token ? "valid " : "", tstring); - break; - case G_TOKEN_INT: - tstring = "integer"; - _g_snprintf (expected_string, expected_string_len, "%snumber (%s)", - scanner->token == expected_token ? "valid " : "", tstring); - break; - case G_TOKEN_HEX: - tstring = "hexadecimal"; - _g_snprintf (expected_string, expected_string_len, "%snumber (%s)", - scanner->token == expected_token ? "valid " : "", tstring); - break; - case G_TOKEN_FLOAT: - tstring = "float"; - _g_snprintf (expected_string, expected_string_len, "%snumber (%s)", - scanner->token == expected_token ? "valid " : "", tstring); - break; - case G_TOKEN_STRING: - _g_snprintf (expected_string, - expected_string_len, - "%sstring constant", - scanner->token == G_TOKEN_STRING ? "valid " : ""); - break; - case G_TOKEN_IDENTIFIER: - case G_TOKEN_IDENTIFIER_NULL: - need_valid = (scanner->token == G_TOKEN_IDENTIFIER_NULL || - scanner->token == G_TOKEN_IDENTIFIER); - _g_snprintf (expected_string, - expected_string_len, - "%s%s", - need_valid ? "valid " : "", - identifier_spec); - break; - case G_TOKEN_COMMENT_SINGLE: - tstring = "single-line"; - _g_snprintf (expected_string, expected_string_len, "%scomment (%s)", - scanner->token == expected_token ? "valid " : "", tstring); - break; - case G_TOKEN_COMMENT_MULTI: - tstring = "multi-line"; - _g_snprintf (expected_string, expected_string_len, "%scomment (%s)", - scanner->token == expected_token ? "valid " : "", tstring); - break; - case G_TOKEN_NONE: - case G_TOKEN_ERROR: - /* this is handled upon printout */ - break; - } - - if (message && message[0] != 0) - message_prefix = " - "; - else - { - message_prefix = ""; - message = ""; - } - if (expected_token == G_TOKEN_ERROR) - { - msg_handler (scanner, - "failure around %s%s%s", - token_string, - message_prefix, - message); - } - else if (expected_token == G_TOKEN_NONE) - { - if (print_unexp) - msg_handler (scanner, - "unexpected %s%s%s", - token_string, - message_prefix, - message); - else - msg_handler (scanner, - "%s%s%s", - token_string, - message_prefix, - message); - } - else - { - if (print_unexp) - msg_handler (scanner, - "unexpected %s, expected %s%s%s", - token_string, - expected_string, - message_prefix, - message); - else - msg_handler (scanner, - "%s, expected %s%s%s", - token_string, - expected_string, - message_prefix, - message); - } - - g_free (token_string); - g_free (expected_string); -} - -static void -g_scanner_get_token_i (GScanner *scanner, - GTokenType *token_p, - GTokenValue *value_p, - guint *line_p, - guint *position_p) -{ - do - { - g_scanner_free_value (token_p, value_p); - g_scanner_get_token_ll (scanner, token_p, value_p, line_p, position_p); - } - while (((*token_p > 0 && *token_p < 256) && - strchr (scanner->config->cset_skip_characters, *token_p)) || - (*token_p == G_TOKEN_CHAR && - strchr (scanner->config->cset_skip_characters, value_p->v_char)) || - (*token_p == G_TOKEN_COMMENT_MULTI && - scanner->config->skip_comment_multi) || - (*token_p == G_TOKEN_COMMENT_SINGLE && - scanner->config->skip_comment_single)); - - switch (*token_p) - { - case G_TOKEN_IDENTIFIER: - if (scanner->config->identifier_2_string) - *token_p = G_TOKEN_STRING; - break; - - case G_TOKEN_SYMBOL: - if (scanner->config->symbol_2_token) - *token_p = (GTokenType) value_p->v_symbol; - break; - - case G_TOKEN_BINARY: - case G_TOKEN_OCTAL: - case G_TOKEN_HEX: - if (scanner->config->numbers_2_int) - *token_p = G_TOKEN_INT; - break; - - default: - break; - } - - if (*token_p == G_TOKEN_INT && - scanner->config->int_2_float) - { - *token_p = G_TOKEN_FLOAT; - if (scanner->config->store_int64) - { -#ifdef _MSC_VER - /* work around error C2520, see gvaluetransform.c */ - value_p->v_float = (__int64)value_p->v_int64; -#else - value_p->v_float = value_p->v_int64; -#endif - } - else - value_p->v_float = value_p->v_int; - } - - errno = 0; -} - -static void -g_scanner_get_token_ll (GScanner *scanner, - GTokenType *token_p, - GTokenValue *value_p, - guint *line_p, - guint *position_p) -{ - GScannerConfig *config; - GTokenType token; - gboolean in_comment_multi; - gboolean in_comment_single; - gboolean in_string_sq; - gboolean in_string_dq; - GString *gstring; - GTokenValue value; - guchar ch; - - config = scanner->config; - (*value_p).v_int64 = 0; - - if ((scanner->text >= scanner->text_end && scanner->input_fd < 0) || - scanner->token == G_TOKEN_EOF) - { - *token_p = G_TOKEN_EOF; - return; - } - - in_comment_multi = FALSE; - in_comment_single = FALSE; - in_string_sq = FALSE; - in_string_dq = FALSE; - gstring = NULL; - - do /* while (ch != 0) */ - { - gboolean dotted_float = FALSE; - - ch = g_scanner_get_char (scanner, line_p, position_p); - - value.v_int64 = 0; - token = G_TOKEN_NONE; - - /* this is *evil*, but needed ;( - * we first check for identifier first character, because it - * might interfere with other key chars like slashes or numbers - */ - if (config->scan_identifier && - ch && strchr (config->cset_identifier_first, ch)) - goto identifier_precedence; - - switch (ch) - { - case 0: - token = G_TOKEN_EOF; - (*position_p)++; - /* ch = 0; */ - break; - - case '/': - if (!config->scan_comment_multi || - g_scanner_peek_next_char (scanner) != '*') - goto default_case; - g_scanner_get_char (scanner, line_p, position_p); - token = G_TOKEN_COMMENT_MULTI; - in_comment_multi = TRUE; - gstring = g_string_new (NULL); - while ((ch = g_scanner_get_char (scanner, line_p, position_p)) != 0) - { - if (ch == '*' && g_scanner_peek_next_char (scanner) == '/') - { - g_scanner_get_char (scanner, line_p, position_p); - in_comment_multi = FALSE; - break; - } - else - gstring = g_string_append_c (gstring, ch); - } - ch = 0; - break; - - case '\'': - if (!config->scan_string_sq) - goto default_case; - token = G_TOKEN_STRING; - in_string_sq = TRUE; - gstring = g_string_new (NULL); - while ((ch = g_scanner_get_char (scanner, line_p, position_p)) != 0) - { - if (ch == '\'') - { - in_string_sq = FALSE; - break; - } - else - gstring = g_string_append_c (gstring, ch); - } - ch = 0; - break; - - case '"': - if (!config->scan_string_dq) - goto default_case; - token = G_TOKEN_STRING; - in_string_dq = TRUE; - gstring = g_string_new (NULL); - while ((ch = g_scanner_get_char (scanner, line_p, position_p)) != 0) - { - if (ch == '"') - { - in_string_dq = FALSE; - break; - } - else - { - if (ch == '\\') - { - ch = g_scanner_get_char (scanner, line_p, position_p); - switch (ch) - { - guint i; - guint fchar; - - case 0: - break; - - case '\\': - gstring = g_string_append_c (gstring, '\\'); - break; - - case 'n': - gstring = g_string_append_c (gstring, '\n'); - break; - - case 't': - gstring = g_string_append_c (gstring, '\t'); - break; - - case 'r': - gstring = g_string_append_c (gstring, '\r'); - break; - - case 'b': - gstring = g_string_append_c (gstring, '\b'); - break; - - case 'f': - gstring = g_string_append_c (gstring, '\f'); - break; - - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - i = ch - '0'; - fchar = g_scanner_peek_next_char (scanner); - if (fchar >= '0' && fchar <= '7') - { - ch = g_scanner_get_char (scanner, line_p, position_p); - i = i * 8 + ch - '0'; - fchar = g_scanner_peek_next_char (scanner); - if (fchar >= '0' && fchar <= '7') - { - ch = g_scanner_get_char (scanner, line_p, position_p); - i = i * 8 + ch - '0'; - } - } - gstring = g_string_append_c (gstring, i); - break; - - default: - gstring = g_string_append_c (gstring, ch); - break; - } - } - else - gstring = g_string_append_c (gstring, ch); - } - } - ch = 0; - break; - - case '.': - if (!config->scan_float) - goto default_case; - token = G_TOKEN_FLOAT; - dotted_float = TRUE; - ch = g_scanner_get_char (scanner, line_p, position_p); - goto number_parsing; - - case '$': - if (!config->scan_hex_dollar) - goto default_case; - token = G_TOKEN_HEX; - ch = g_scanner_get_char (scanner, line_p, position_p); - goto number_parsing; - - case '0': - if (config->scan_octal) - token = G_TOKEN_OCTAL; - else - token = G_TOKEN_INT; - ch = g_scanner_peek_next_char (scanner); - if (config->scan_hex && (ch == 'x' || ch == 'X')) - { - token = G_TOKEN_HEX; - g_scanner_get_char (scanner, line_p, position_p); - ch = g_scanner_get_char (scanner, line_p, position_p); - if (ch == 0) - { - token = G_TOKEN_ERROR; - value.v_error = G_ERR_UNEXP_EOF; - (*position_p)++; - break; - } - if (g_scanner_char_2_num (ch, 16) < 0) - { - token = G_TOKEN_ERROR; - value.v_error = G_ERR_DIGIT_RADIX; - ch = 0; - break; - } - } - else if (config->scan_binary && (ch == 'b' || ch == 'B')) - { - token = G_TOKEN_BINARY; - g_scanner_get_char (scanner, line_p, position_p); - ch = g_scanner_get_char (scanner, line_p, position_p); - if (ch == 0) - { - token = G_TOKEN_ERROR; - value.v_error = G_ERR_UNEXP_EOF; - (*position_p)++; - break; - } - if (g_scanner_char_2_num (ch, 10) < 0) - { - token = G_TOKEN_ERROR; - value.v_error = G_ERR_NON_DIGIT_IN_CONST; - ch = 0; - break; - } - } - else - ch = '0'; - /* fall through */ - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': - number_parsing: - { - gboolean in_number = TRUE; - gchar *endptr; - - if (token == G_TOKEN_NONE) - token = G_TOKEN_INT; - - gstring = g_string_new (dotted_float ? "0." : ""); - gstring = g_string_append_c (gstring, ch); - - do /* while (in_number) */ - { - gboolean is_E; - - is_E = token == G_TOKEN_FLOAT && (ch == 'e' || ch == 'E'); - - ch = g_scanner_peek_next_char (scanner); - - if (g_scanner_char_2_num (ch, 36) >= 0 || - (config->scan_float && ch == '.') || - (is_E && (ch == '+' || ch == '-'))) - { - ch = g_scanner_get_char (scanner, line_p, position_p); - - switch (ch) - { - case '.': - if (token != G_TOKEN_INT && token != G_TOKEN_OCTAL) - { - value.v_error = token == G_TOKEN_FLOAT ? G_ERR_FLOAT_MALFORMED : G_ERR_FLOAT_RADIX; - token = G_TOKEN_ERROR; - in_number = FALSE; - } - else - { - token = G_TOKEN_FLOAT; - gstring = g_string_append_c (gstring, ch); - } - break; - - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': - gstring = g_string_append_c (gstring, ch); - break; - - case '-': - case '+': - if (token != G_TOKEN_FLOAT) - { - token = G_TOKEN_ERROR; - value.v_error = G_ERR_NON_DIGIT_IN_CONST; - in_number = FALSE; - } - else - gstring = g_string_append_c (gstring, ch); - break; - - case 'e': - case 'E': - if ((token != G_TOKEN_HEX && !config->scan_float) || - (token != G_TOKEN_HEX && - token != G_TOKEN_OCTAL && - token != G_TOKEN_FLOAT && - token != G_TOKEN_INT)) - { - token = G_TOKEN_ERROR; - value.v_error = G_ERR_NON_DIGIT_IN_CONST; - in_number = FALSE; - } - else - { - if (token != G_TOKEN_HEX) - token = G_TOKEN_FLOAT; - gstring = g_string_append_c (gstring, ch); - } - break; - - default: - if (token != G_TOKEN_HEX) - { - token = G_TOKEN_ERROR; - value.v_error = G_ERR_NON_DIGIT_IN_CONST; - in_number = FALSE; - } - else - gstring = g_string_append_c (gstring, ch); - break; - } - } - else - in_number = FALSE; - } - while (in_number); - - endptr = NULL; - if (token == G_TOKEN_FLOAT) - value.v_float = g_strtod (gstring->str, &endptr); - else - { - guint64 ui64 = 0; - switch (token) - { - case G_TOKEN_BINARY: - ui64 = g_ascii_strtoull (gstring->str, &endptr, 2); - break; - case G_TOKEN_OCTAL: - ui64 = g_ascii_strtoull (gstring->str, &endptr, 8); - break; - case G_TOKEN_INT: - ui64 = g_ascii_strtoull (gstring->str, &endptr, 10); - break; - case G_TOKEN_HEX: - ui64 = g_ascii_strtoull (gstring->str, &endptr, 16); - break; - default: ; - } - if (scanner->config->store_int64) - value.v_int64 = ui64; - else - value.v_int = ui64; - } - if (endptr && *endptr) - { - token = G_TOKEN_ERROR; - if (*endptr == 'e' || *endptr == 'E') - value.v_error = G_ERR_NON_DIGIT_IN_CONST; - else - value.v_error = G_ERR_DIGIT_RADIX; - } - g_string_free (gstring, TRUE); - gstring = NULL; - ch = 0; - } /* number_parsing:... */ - break; - - default: - default_case: - { - if (config->cpair_comment_single && - ch == config->cpair_comment_single[0]) - { - token = G_TOKEN_COMMENT_SINGLE; - in_comment_single = TRUE; - gstring = g_string_new (NULL); - ch = g_scanner_get_char (scanner, line_p, position_p); - while (ch != 0) - { - if (ch == config->cpair_comment_single[1]) - { - in_comment_single = FALSE; - ch = 0; - break; - } - - gstring = g_string_append_c (gstring, ch); - ch = g_scanner_get_char (scanner, line_p, position_p); - } - /* ignore a missing newline at EOF for single line comments */ - if (in_comment_single && - config->cpair_comment_single[1] == '\n') - in_comment_single = FALSE; - } - else if (config->scan_identifier && ch && - strchr (config->cset_identifier_first, ch)) - { - identifier_precedence: - - if (config->cset_identifier_nth && ch && - strchr (config->cset_identifier_nth, - g_scanner_peek_next_char (scanner))) - { - token = G_TOKEN_IDENTIFIER; - gstring = g_string_new (NULL); - gstring = g_string_append_c (gstring, ch); - do - { - ch = g_scanner_get_char (scanner, line_p, position_p); - gstring = g_string_append_c (gstring, ch); - ch = g_scanner_peek_next_char (scanner); - } - while (ch && strchr (config->cset_identifier_nth, ch)); - ch = 0; - } - else if (config->scan_identifier_1char) - { - token = G_TOKEN_IDENTIFIER; - value.v_identifier = g_new0 (gchar, 2); - value.v_identifier[0] = ch; - ch = 0; - } - } - if (ch) - { - if (config->char_2_token) - token = ch; - else - { - token = G_TOKEN_CHAR; - value.v_char = ch; - } - ch = 0; - } - } /* default_case:... */ - break; - } - g_assert (ch == 0 && token != G_TOKEN_NONE); /* paranoid */ - } - while (ch != 0); - - if (in_comment_multi || in_comment_single || - in_string_sq || in_string_dq) - { - token = G_TOKEN_ERROR; - if (gstring) - { - g_string_free (gstring, TRUE); - gstring = NULL; - } - (*position_p)++; - if (in_comment_multi || in_comment_single) - value.v_error = G_ERR_UNEXP_EOF_IN_COMMENT; - else /* (in_string_sq || in_string_dq) */ - value.v_error = G_ERR_UNEXP_EOF_IN_STRING; - } - - if (gstring) - { - value.v_string = g_string_free (gstring, FALSE); - gstring = NULL; - } - - if (token == G_TOKEN_IDENTIFIER) - { - if (config->scan_symbols) - { - GScannerKey *key; - guint scope_id; - - scope_id = scanner->scope_id; - key = g_scanner_lookup_internal (scanner, scope_id, value.v_identifier); - if (!key && scope_id && scanner->config->scope_0_fallback) - key = g_scanner_lookup_internal (scanner, 0, value.v_identifier); - - if (key) - { - g_free (value.v_identifier); - token = G_TOKEN_SYMBOL; - value.v_symbol = key->value; - } - } - - if (token == G_TOKEN_IDENTIFIER && - config->scan_identifier_NULL && - strlen (value.v_identifier) == 4) - { - gchar *null_upper = "NULL"; - gchar *null_lower = "null"; - - if (scanner->config->case_sensitive) - { - if (value.v_identifier[0] == null_upper[0] && - value.v_identifier[1] == null_upper[1] && - value.v_identifier[2] == null_upper[2] && - value.v_identifier[3] == null_upper[3]) - token = G_TOKEN_IDENTIFIER_NULL; - } - else - { - if ((value.v_identifier[0] == null_upper[0] || - value.v_identifier[0] == null_lower[0]) && - (value.v_identifier[1] == null_upper[1] || - value.v_identifier[1] == null_lower[1]) && - (value.v_identifier[2] == null_upper[2] || - value.v_identifier[2] == null_lower[2]) && - (value.v_identifier[3] == null_upper[3] || - value.v_identifier[3] == null_lower[3])) - token = G_TOKEN_IDENTIFIER_NULL; - } - } - } - - *token_p = token; - *value_p = value; -} - -#define __G_SCANNER_C__ -#include "galiasdef.c" diff --git a/lib/win32/glib-2.20.4/glib/gscanner.h b/lib/win32/glib-2.20.4/glib/gscanner.h deleted file mode 100644 index 3b7ad6fab0cce..0000000000000 --- a/lib/win32/glib-2.20.4/glib/gscanner.h +++ /dev/null @@ -1,278 +0,0 @@ -/* GLIB - Library of useful routines for C programming - * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library 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 - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ - -/* - * Modified by the GLib Team and others 1997-2000. See the AUTHORS - * file for a list of people on the GLib Team. See the ChangeLog - * files for a list of changes. These files are distributed with - * GLib at ftp://ftp.gtk.org/pub/gtk/. - */ - -#if defined(G_DISABLE_SINGLE_INCLUDES) && !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION) -#error "Only can be included directly." -#endif - -#ifndef __G_SCANNER_H__ -#define __G_SCANNER_H__ - -#include -#include - -G_BEGIN_DECLS - -typedef struct _GScanner GScanner; -typedef struct _GScannerConfig GScannerConfig; -typedef union _GTokenValue GTokenValue; - -typedef void (*GScannerMsgFunc) (GScanner *scanner, - gchar *message, - gboolean error); - -/* GScanner: Flexible lexical scanner for general purpose. - */ - -/* Character sets */ -#define G_CSET_A_2_Z "ABCDEFGHIJKLMNOPQRSTUVWXYZ" -#define G_CSET_a_2_z "abcdefghijklmnopqrstuvwxyz" -#define G_CSET_DIGITS "0123456789" -#define G_CSET_LATINC "\300\301\302\303\304\305\306"\ - "\307\310\311\312\313\314\315\316\317\320"\ - "\321\322\323\324\325\326"\ - "\330\331\332\333\334\335\336" -#define G_CSET_LATINS "\337\340\341\342\343\344\345\346"\ - "\347\350\351\352\353\354\355\356\357\360"\ - "\361\362\363\364\365\366"\ - "\370\371\372\373\374\375\376\377" - -/* Error types */ -typedef enum -{ - G_ERR_UNKNOWN, - G_ERR_UNEXP_EOF, - G_ERR_UNEXP_EOF_IN_STRING, - G_ERR_UNEXP_EOF_IN_COMMENT, - G_ERR_NON_DIGIT_IN_CONST, - G_ERR_DIGIT_RADIX, - G_ERR_FLOAT_RADIX, - G_ERR_FLOAT_MALFORMED -} GErrorType; - -/* Token types */ -typedef enum -{ - G_TOKEN_EOF = 0, - - G_TOKEN_LEFT_PAREN = '(', - G_TOKEN_RIGHT_PAREN = ')', - G_TOKEN_LEFT_CURLY = '{', - G_TOKEN_RIGHT_CURLY = '}', - G_TOKEN_LEFT_BRACE = '[', - G_TOKEN_RIGHT_BRACE = ']', - G_TOKEN_EQUAL_SIGN = '=', - G_TOKEN_COMMA = ',', - - G_TOKEN_NONE = 256, - - G_TOKEN_ERROR, - - G_TOKEN_CHAR, - G_TOKEN_BINARY, - G_TOKEN_OCTAL, - G_TOKEN_INT, - G_TOKEN_HEX, - G_TOKEN_FLOAT, - G_TOKEN_STRING, - - G_TOKEN_SYMBOL, - G_TOKEN_IDENTIFIER, - G_TOKEN_IDENTIFIER_NULL, - - G_TOKEN_COMMENT_SINGLE, - G_TOKEN_COMMENT_MULTI, - G_TOKEN_LAST -} GTokenType; - -union _GTokenValue -{ - gpointer v_symbol; - gchar *v_identifier; - gulong v_binary; - gulong v_octal; - gulong v_int; - guint64 v_int64; - gdouble v_float; - gulong v_hex; - gchar *v_string; - gchar *v_comment; - guchar v_char; - guint v_error; -}; - -struct _GScannerConfig -{ - /* Character sets - */ - gchar *cset_skip_characters; /* default: " \t\n" */ - gchar *cset_identifier_first; - gchar *cset_identifier_nth; - gchar *cpair_comment_single; /* default: "#\n" */ - - /* Should symbol lookup work case sensitive? - */ - guint case_sensitive : 1; - - /* Boolean values to be adjusted "on the fly" - * to configure scanning behaviour. - */ - guint skip_comment_multi : 1; /* C like comment */ - guint skip_comment_single : 1; /* single line comment */ - guint scan_comment_multi : 1; /* scan multi line comments? */ - guint scan_identifier : 1; - guint scan_identifier_1char : 1; - guint scan_identifier_NULL : 1; - guint scan_symbols : 1; - guint scan_binary : 1; - guint scan_octal : 1; - guint scan_float : 1; - guint scan_hex : 1; /* `0x0ff0' */ - guint scan_hex_dollar : 1; /* `$0ff0' */ - guint scan_string_sq : 1; /* string: 'anything' */ - guint scan_string_dq : 1; /* string: "\\-escapes!\n" */ - guint numbers_2_int : 1; /* bin, octal, hex => int */ - guint int_2_float : 1; /* int => G_TOKEN_FLOAT? */ - guint identifier_2_string : 1; - guint char_2_token : 1; /* return G_TOKEN_CHAR? */ - guint symbol_2_token : 1; - guint scope_0_fallback : 1; /* try scope 0 on lookups? */ - guint store_int64 : 1; /* use value.v_int64 rather than v_int */ - guint padding_dummy; -}; - -struct _GScanner -{ - /* unused fields */ - gpointer user_data; - guint max_parse_errors; - - /* g_scanner_error() increments this field */ - guint parse_errors; - - /* name of input stream, featured by the default message handler */ - const gchar *input_name; - - /* quarked data */ - GData *qdata; - - /* link into the scanner configuration */ - GScannerConfig *config; - - /* fields filled in after g_scanner_get_next_token() */ - GTokenType token; - GTokenValue value; - guint line; - guint position; - - /* fields filled in after g_scanner_peek_next_token() */ - GTokenType next_token; - GTokenValue next_value; - guint next_line; - guint next_position; - - /* to be considered private */ - GHashTable *symbol_table; - gint input_fd; - const gchar *text; - const gchar *text_end; - gchar *buffer; - guint scope_id; - - /* handler function for _warn and _error */ - GScannerMsgFunc msg_handler; -}; - -GScanner* g_scanner_new (const GScannerConfig *config_templ); -void g_scanner_destroy (GScanner *scanner); -void g_scanner_input_file (GScanner *scanner, - gint input_fd); -void g_scanner_sync_file_offset (GScanner *scanner); -void g_scanner_input_text (GScanner *scanner, - const gchar *text, - guint text_len); -GTokenType g_scanner_get_next_token (GScanner *scanner); -GTokenType g_scanner_peek_next_token (GScanner *scanner); -GTokenType g_scanner_cur_token (GScanner *scanner); -GTokenValue g_scanner_cur_value (GScanner *scanner); -guint g_scanner_cur_line (GScanner *scanner); -guint g_scanner_cur_position (GScanner *scanner); -gboolean g_scanner_eof (GScanner *scanner); -guint g_scanner_set_scope (GScanner *scanner, - guint scope_id); -void g_scanner_scope_add_symbol (GScanner *scanner, - guint scope_id, - const gchar *symbol, - gpointer value); -void g_scanner_scope_remove_symbol (GScanner *scanner, - guint scope_id, - const gchar *symbol); -gpointer g_scanner_scope_lookup_symbol (GScanner *scanner, - guint scope_id, - const gchar *symbol); -void g_scanner_scope_foreach_symbol (GScanner *scanner, - guint scope_id, - GHFunc func, - gpointer user_data); -gpointer g_scanner_lookup_symbol (GScanner *scanner, - const gchar *symbol); -void g_scanner_unexp_token (GScanner *scanner, - GTokenType expected_token, - const gchar *identifier_spec, - const gchar *symbol_spec, - const gchar *symbol_name, - const gchar *message, - gint is_error); -void g_scanner_error (GScanner *scanner, - const gchar *format, - ...) G_GNUC_PRINTF (2,3); -void g_scanner_warn (GScanner *scanner, - const gchar *format, - ...) G_GNUC_PRINTF (2,3); - -#ifndef G_DISABLE_DEPRECATED - -/* keep downward source compatibility */ -#define g_scanner_add_symbol( scanner, symbol, value ) G_STMT_START { \ - g_scanner_scope_add_symbol ((scanner), 0, (symbol), (value)); \ -} G_STMT_END -#define g_scanner_remove_symbol( scanner, symbol ) G_STMT_START { \ - g_scanner_scope_remove_symbol ((scanner), 0, (symbol)); \ -} G_STMT_END -#define g_scanner_foreach_symbol( scanner, func, data ) G_STMT_START { \ - g_scanner_scope_foreach_symbol ((scanner), 0, (func), (data)); \ -} G_STMT_END - -/* The following two functions are deprecated and will be removed in - * the next major release. They do no good. */ -#define g_scanner_freeze_symbol_table(scanner) ((void)0) -#define g_scanner_thaw_symbol_table(scanner) ((void)0) - -#endif /* G_DISABLE_DEPRECATED */ - -G_END_DECLS - -#endif /* __G_SCANNER_H__ */ diff --git a/lib/win32/glib-2.20.4/glib/gscripttable.h b/lib/win32/glib-2.20.4/glib/gscripttable.h deleted file mode 100644 index b63e2da55099c..0000000000000 --- a/lib/win32/glib-2.20.4/glib/gscripttable.h +++ /dev/null @@ -1,3012 +0,0 @@ -/* gscripttable.h: Generated by gen-script-table.pl - * - * Date: Mon Apr 7 23:17:02 2008 - * Source: Scripts-5.1.0.txt - * - * Do not edit. - */ - -#define G_EASY_SCRIPTS_RANGE 8192 - -static const guchar g_script_easy_table[8192] = { - - G_UNICODE_SCRIPT_COMMON, G_UNICODE_SCRIPT_COMMON, G_UNICODE_SCRIPT_COMMON, - G_UNICODE_SCRIPT_COMMON, G_UNICODE_SCRIPT_COMMON, G_UNICODE_SCRIPT_COMMON, - G_UNICODE_SCRIPT_COMMON, G_UNICODE_SCRIPT_COMMON, G_UNICODE_SCRIPT_COMMON, - G_UNICODE_SCRIPT_COMMON, G_UNICODE_SCRIPT_COMMON, G_UNICODE_SCRIPT_COMMON, - G_UNICODE_SCRIPT_COMMON, G_UNICODE_SCRIPT_COMMON, G_UNICODE_SCRIPT_COMMON, - G_UNICODE_SCRIPT_COMMON, G_UNICODE_SCRIPT_COMMON, G_UNICODE_SCRIPT_COMMON, - G_UNICODE_SCRIPT_COMMON, G_UNICODE_SCRIPT_COMMON, G_UNICODE_SCRIPT_COMMON, - G_UNICODE_SCRIPT_COMMON, G_UNICODE_SCRIPT_COMMON, G_UNICODE_SCRIPT_COMMON, - G_UNICODE_SCRIPT_COMMON, G_UNICODE_SCRIPT_COMMON, G_UNICODE_SCRIPT_COMMON, - G_UNICODE_SCRIPT_COMMON, G_UNICODE_SCRIPT_COMMON, G_UNICODE_SCRIPT_COMMON, - G_UNICODE_SCRIPT_COMMON, G_UNICODE_SCRIPT_COMMON, G_UNICODE_SCRIPT_COMMON, - G_UNICODE_SCRIPT_COMMON, G_UNICODE_SCRIPT_COMMON, G_UNICODE_SCRIPT_COMMON, - G_UNICODE_SCRIPT_COMMON, G_UNICODE_SCRIPT_COMMON, G_UNICODE_SCRIPT_COMMON, - G_UNICODE_SCRIPT_COMMON, G_UNICODE_SCRIPT_COMMON, G_UNICODE_SCRIPT_COMMON, - G_UNICODE_SCRIPT_COMMON, G_UNICODE_SCRIPT_COMMON, G_UNICODE_SCRIPT_COMMON, - G_UNICODE_SCRIPT_COMMON, G_UNICODE_SCRIPT_COMMON, G_UNICODE_SCRIPT_COMMON, - G_UNICODE_SCRIPT_COMMON, G_UNICODE_SCRIPT_COMMON, G_UNICODE_SCRIPT_COMMON, - G_UNICODE_SCRIPT_COMMON, G_UNICODE_SCRIPT_COMMON, G_UNICODE_SCRIPT_COMMON, - G_UNICODE_SCRIPT_COMMON, G_UNICODE_SCRIPT_COMMON, G_UNICODE_SCRIPT_COMMON, - G_UNICODE_SCRIPT_COMMON, G_UNICODE_SCRIPT_COMMON, G_UNICODE_SCRIPT_COMMON, - G_UNICODE_SCRIPT_COMMON, G_UNICODE_SCRIPT_COMMON, G_UNICODE_SCRIPT_COMMON, - G_UNICODE_SCRIPT_COMMON, G_UNICODE_SCRIPT_COMMON, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_COMMON, G_UNICODE_SCRIPT_COMMON, - G_UNICODE_SCRIPT_COMMON, G_UNICODE_SCRIPT_COMMON, G_UNICODE_SCRIPT_COMMON, - G_UNICODE_SCRIPT_COMMON, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_COMMON, G_UNICODE_SCRIPT_COMMON, G_UNICODE_SCRIPT_COMMON, - G_UNICODE_SCRIPT_COMMON, G_UNICODE_SCRIPT_COMMON, G_UNICODE_SCRIPT_COMMON, - G_UNICODE_SCRIPT_COMMON, G_UNICODE_SCRIPT_COMMON, G_UNICODE_SCRIPT_COMMON, - G_UNICODE_SCRIPT_COMMON, G_UNICODE_SCRIPT_COMMON, G_UNICODE_SCRIPT_COMMON, - G_UNICODE_SCRIPT_COMMON, G_UNICODE_SCRIPT_COMMON, G_UNICODE_SCRIPT_COMMON, - G_UNICODE_SCRIPT_COMMON, G_UNICODE_SCRIPT_COMMON, G_UNICODE_SCRIPT_COMMON, - G_UNICODE_SCRIPT_COMMON, G_UNICODE_SCRIPT_COMMON, G_UNICODE_SCRIPT_COMMON, - G_UNICODE_SCRIPT_COMMON, G_UNICODE_SCRIPT_COMMON, G_UNICODE_SCRIPT_COMMON, - G_UNICODE_SCRIPT_COMMON, G_UNICODE_SCRIPT_COMMON, G_UNICODE_SCRIPT_COMMON, - G_UNICODE_SCRIPT_COMMON, G_UNICODE_SCRIPT_COMMON, G_UNICODE_SCRIPT_COMMON, - G_UNICODE_SCRIPT_COMMON, G_UNICODE_SCRIPT_COMMON, G_UNICODE_SCRIPT_COMMON, - G_UNICODE_SCRIPT_COMMON, G_UNICODE_SCRIPT_COMMON, G_UNICODE_SCRIPT_COMMON, - G_UNICODE_SCRIPT_COMMON, G_UNICODE_SCRIPT_COMMON, G_UNICODE_SCRIPT_COMMON, - G_UNICODE_SCRIPT_COMMON, G_UNICODE_SCRIPT_COMMON, G_UNICODE_SCRIPT_COMMON, - G_UNICODE_SCRIPT_COMMON, G_UNICODE_SCRIPT_COMMON, G_UNICODE_SCRIPT_COMMON, - G_UNICODE_SCRIPT_COMMON, G_UNICODE_SCRIPT_COMMON, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_COMMON, G_UNICODE_SCRIPT_COMMON, G_UNICODE_SCRIPT_COMMON, - G_UNICODE_SCRIPT_COMMON, G_UNICODE_SCRIPT_COMMON, G_UNICODE_SCRIPT_COMMON, - G_UNICODE_SCRIPT_COMMON, G_UNICODE_SCRIPT_COMMON, G_UNICODE_SCRIPT_COMMON, - G_UNICODE_SCRIPT_COMMON, G_UNICODE_SCRIPT_COMMON, G_UNICODE_SCRIPT_COMMON, - G_UNICODE_SCRIPT_COMMON, G_UNICODE_SCRIPT_COMMON, G_UNICODE_SCRIPT_COMMON, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_COMMON, G_UNICODE_SCRIPT_COMMON, - G_UNICODE_SCRIPT_COMMON, G_UNICODE_SCRIPT_COMMON, G_UNICODE_SCRIPT_COMMON, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_COMMON, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_COMMON, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_COMMON, G_UNICODE_SCRIPT_COMMON, - G_UNICODE_SCRIPT_COMMON, G_UNICODE_SCRIPT_COMMON, G_UNICODE_SCRIPT_COMMON, - G_UNICODE_SCRIPT_COMMON, G_UNICODE_SCRIPT_COMMON, G_UNICODE_SCRIPT_COMMON, - G_UNICODE_SCRIPT_COMMON, G_UNICODE_SCRIPT_COMMON, G_UNICODE_SCRIPT_COMMON, - G_UNICODE_SCRIPT_COMMON, G_UNICODE_SCRIPT_COMMON, G_UNICODE_SCRIPT_COMMON, - G_UNICODE_SCRIPT_COMMON, G_UNICODE_SCRIPT_COMMON, G_UNICODE_SCRIPT_COMMON, - G_UNICODE_SCRIPT_COMMON, G_UNICODE_SCRIPT_COMMON, G_UNICODE_SCRIPT_COMMON, - G_UNICODE_SCRIPT_COMMON, G_UNICODE_SCRIPT_COMMON, G_UNICODE_SCRIPT_COMMON, - G_UNICODE_SCRIPT_COMMON, G_UNICODE_SCRIPT_COMMON, G_UNICODE_SCRIPT_COMMON, - G_UNICODE_SCRIPT_COMMON, G_UNICODE_SCRIPT_COMMON, G_UNICODE_SCRIPT_COMMON, - G_UNICODE_SCRIPT_COMMON, G_UNICODE_SCRIPT_COMMON, G_UNICODE_SCRIPT_COMMON, - G_UNICODE_SCRIPT_COMMON, G_UNICODE_SCRIPT_COMMON, G_UNICODE_SCRIPT_COMMON, - G_UNICODE_SCRIPT_COMMON, G_UNICODE_SCRIPT_COMMON, G_UNICODE_SCRIPT_COMMON, - G_UNICODE_SCRIPT_COMMON, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_COMMON, G_UNICODE_SCRIPT_COMMON, G_UNICODE_SCRIPT_COMMON, - G_UNICODE_SCRIPT_COMMON, G_UNICODE_SCRIPT_COMMON, G_UNICODE_SCRIPT_COMMON, - G_UNICODE_SCRIPT_COMMON, G_UNICODE_SCRIPT_COMMON, G_UNICODE_SCRIPT_COMMON, - G_UNICODE_SCRIPT_COMMON, G_UNICODE_SCRIPT_COMMON, G_UNICODE_SCRIPT_COMMON, - G_UNICODE_SCRIPT_COMMON, G_UNICODE_SCRIPT_COMMON, G_UNICODE_SCRIPT_COMMON, - G_UNICODE_SCRIPT_COMMON, G_UNICODE_SCRIPT_COMMON, G_UNICODE_SCRIPT_COMMON, - G_UNICODE_SCRIPT_COMMON, G_UNICODE_SCRIPT_COMMON, G_UNICODE_SCRIPT_COMMON, - G_UNICODE_SCRIPT_COMMON, G_UNICODE_SCRIPT_COMMON, G_UNICODE_SCRIPT_COMMON, - G_UNICODE_SCRIPT_COMMON, G_UNICODE_SCRIPT_COMMON, G_UNICODE_SCRIPT_COMMON, - G_UNICODE_SCRIPT_INHERITED, G_UNICODE_SCRIPT_INHERITED, G_UNICODE_SCRIPT_INHERITED, - G_UNICODE_SCRIPT_INHERITED, G_UNICODE_SCRIPT_INHERITED, G_UNICODE_SCRIPT_INHERITED, - G_UNICODE_SCRIPT_INHERITED, G_UNICODE_SCRIPT_INHERITED, G_UNICODE_SCRIPT_INHERITED, - G_UNICODE_SCRIPT_INHERITED, G_UNICODE_SCRIPT_INHERITED, G_UNICODE_SCRIPT_INHERITED, - G_UNICODE_SCRIPT_INHERITED, G_UNICODE_SCRIPT_INHERITED, G_UNICODE_SCRIPT_INHERITED, - G_UNICODE_SCRIPT_INHERITED, G_UNICODE_SCRIPT_INHERITED, G_UNICODE_SCRIPT_INHERITED, - G_UNICODE_SCRIPT_INHERITED, G_UNICODE_SCRIPT_INHERITED, G_UNICODE_SCRIPT_INHERITED, - G_UNICODE_SCRIPT_INHERITED, G_UNICODE_SCRIPT_INHERITED, G_UNICODE_SCRIPT_INHERITED, - G_UNICODE_SCRIPT_INHERITED, G_UNICODE_SCRIPT_INHERITED, G_UNICODE_SCRIPT_INHERITED, - G_UNICODE_SCRIPT_INHERITED, G_UNICODE_SCRIPT_INHERITED, G_UNICODE_SCRIPT_INHERITED, - G_UNICODE_SCRIPT_INHERITED, G_UNICODE_SCRIPT_INHERITED, G_UNICODE_SCRIPT_INHERITED, - G_UNICODE_SCRIPT_INHERITED, G_UNICODE_SCRIPT_INHERITED, G_UNICODE_SCRIPT_INHERITED, - G_UNICODE_SCRIPT_INHERITED, G_UNICODE_SCRIPT_INHERITED, G_UNICODE_SCRIPT_INHERITED, - G_UNICODE_SCRIPT_INHERITED, G_UNICODE_SCRIPT_INHERITED, G_UNICODE_SCRIPT_INHERITED, - G_UNICODE_SCRIPT_INHERITED, G_UNICODE_SCRIPT_INHERITED, G_UNICODE_SCRIPT_INHERITED, - G_UNICODE_SCRIPT_INHERITED, G_UNICODE_SCRIPT_INHERITED, G_UNICODE_SCRIPT_INHERITED, - G_UNICODE_SCRIPT_INHERITED, G_UNICODE_SCRIPT_INHERITED, G_UNICODE_SCRIPT_INHERITED, - G_UNICODE_SCRIPT_INHERITED, G_UNICODE_SCRIPT_INHERITED, G_UNICODE_SCRIPT_INHERITED, - G_UNICODE_SCRIPT_INHERITED, G_UNICODE_SCRIPT_INHERITED, G_UNICODE_SCRIPT_INHERITED, - G_UNICODE_SCRIPT_INHERITED, G_UNICODE_SCRIPT_INHERITED, G_UNICODE_SCRIPT_INHERITED, - G_UNICODE_SCRIPT_INHERITED, G_UNICODE_SCRIPT_INHERITED, G_UNICODE_SCRIPT_INHERITED, - G_UNICODE_SCRIPT_INHERITED, G_UNICODE_SCRIPT_INHERITED, G_UNICODE_SCRIPT_INHERITED, - G_UNICODE_SCRIPT_INHERITED, G_UNICODE_SCRIPT_INHERITED, G_UNICODE_SCRIPT_INHERITED, - G_UNICODE_SCRIPT_INHERITED, G_UNICODE_SCRIPT_INHERITED, G_UNICODE_SCRIPT_INHERITED, - G_UNICODE_SCRIPT_INHERITED, G_UNICODE_SCRIPT_INHERITED, G_UNICODE_SCRIPT_INHERITED, - G_UNICODE_SCRIPT_INHERITED, G_UNICODE_SCRIPT_INHERITED, G_UNICODE_SCRIPT_INHERITED, - G_UNICODE_SCRIPT_INHERITED, G_UNICODE_SCRIPT_INHERITED, G_UNICODE_SCRIPT_INHERITED, - G_UNICODE_SCRIPT_INHERITED, G_UNICODE_SCRIPT_INHERITED, G_UNICODE_SCRIPT_INHERITED, - G_UNICODE_SCRIPT_INHERITED, G_UNICODE_SCRIPT_INHERITED, G_UNICODE_SCRIPT_INHERITED, - G_UNICODE_SCRIPT_INHERITED, G_UNICODE_SCRIPT_INHERITED, G_UNICODE_SCRIPT_INHERITED, - G_UNICODE_SCRIPT_INHERITED, G_UNICODE_SCRIPT_INHERITED, G_UNICODE_SCRIPT_INHERITED, - G_UNICODE_SCRIPT_INHERITED, G_UNICODE_SCRIPT_INHERITED, G_UNICODE_SCRIPT_INHERITED, - G_UNICODE_SCRIPT_INHERITED, G_UNICODE_SCRIPT_INHERITED, G_UNICODE_SCRIPT_INHERITED, - G_UNICODE_SCRIPT_INHERITED, G_UNICODE_SCRIPT_INHERITED, G_UNICODE_SCRIPT_INHERITED, - G_UNICODE_SCRIPT_INHERITED, G_UNICODE_SCRIPT_INHERITED, G_UNICODE_SCRIPT_INHERITED, - G_UNICODE_SCRIPT_INHERITED, G_UNICODE_SCRIPT_INHERITED, G_UNICODE_SCRIPT_INHERITED, - G_UNICODE_SCRIPT_INHERITED, G_UNICODE_SCRIPT_INHERITED, G_UNICODE_SCRIPT_INHERITED, - G_UNICODE_SCRIPT_INHERITED, G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, - G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_COMMON, - G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_GREEK, - G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, - G_UNICODE_SCRIPT_COMMON, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_COMMON, G_UNICODE_SCRIPT_GREEK, - G_UNICODE_SCRIPT_COMMON, G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, - G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_GREEK, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, - G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, - G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, - G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, - G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, - G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, - G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, - G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, - G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, - G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, - G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, - G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, - G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, - G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, - G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, - G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, - G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, - G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, - G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, - G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, - G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, - G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, - G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, - G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, - G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, - G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, - G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, - G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_COPTIC, G_UNICODE_SCRIPT_COPTIC, - G_UNICODE_SCRIPT_COPTIC, G_UNICODE_SCRIPT_COPTIC, G_UNICODE_SCRIPT_COPTIC, - G_UNICODE_SCRIPT_COPTIC, G_UNICODE_SCRIPT_COPTIC, G_UNICODE_SCRIPT_COPTIC, - G_UNICODE_SCRIPT_COPTIC, G_UNICODE_SCRIPT_COPTIC, G_UNICODE_SCRIPT_COPTIC, - G_UNICODE_SCRIPT_COPTIC, G_UNICODE_SCRIPT_COPTIC, G_UNICODE_SCRIPT_COPTIC, - G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, - G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, - G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, - G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, - G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, - G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_CYRILLIC, G_UNICODE_SCRIPT_CYRILLIC, - G_UNICODE_SCRIPT_CYRILLIC, G_UNICODE_SCRIPT_CYRILLIC, G_UNICODE_SCRIPT_CYRILLIC, - G_UNICODE_SCRIPT_CYRILLIC, G_UNICODE_SCRIPT_CYRILLIC, G_UNICODE_SCRIPT_CYRILLIC, - G_UNICODE_SCRIPT_CYRILLIC, G_UNICODE_SCRIPT_CYRILLIC, G_UNICODE_SCRIPT_CYRILLIC, - G_UNICODE_SCRIPT_CYRILLIC, G_UNICODE_SCRIPT_CYRILLIC, G_UNICODE_SCRIPT_CYRILLIC, - G_UNICODE_SCRIPT_CYRILLIC, G_UNICODE_SCRIPT_CYRILLIC, G_UNICODE_SCRIPT_CYRILLIC, - G_UNICODE_SCRIPT_CYRILLIC, G_UNICODE_SCRIPT_CYRILLIC, G_UNICODE_SCRIPT_CYRILLIC, - G_UNICODE_SCRIPT_CYRILLIC, G_UNICODE_SCRIPT_CYRILLIC, G_UNICODE_SCRIPT_CYRILLIC, - G_UNICODE_SCRIPT_CYRILLIC, G_UNICODE_SCRIPT_CYRILLIC, G_UNICODE_SCRIPT_CYRILLIC, - G_UNICODE_SCRIPT_CYRILLIC, G_UNICODE_SCRIPT_CYRILLIC, G_UNICODE_SCRIPT_CYRILLIC, - G_UNICODE_SCRIPT_CYRILLIC, G_UNICODE_SCRIPT_CYRILLIC, G_UNICODE_SCRIPT_CYRILLIC, - G_UNICODE_SCRIPT_CYRILLIC, G_UNICODE_SCRIPT_CYRILLIC, G_UNICODE_SCRIPT_CYRILLIC, - G_UNICODE_SCRIPT_CYRILLIC, G_UNICODE_SCRIPT_CYRILLIC, G_UNICODE_SCRIPT_CYRILLIC, - G_UNICODE_SCRIPT_CYRILLIC, G_UNICODE_SCRIPT_CYRILLIC, G_UNICODE_SCRIPT_CYRILLIC, - G_UNICODE_SCRIPT_CYRILLIC, G_UNICODE_SCRIPT_CYRILLIC, G_UNICODE_SCRIPT_CYRILLIC, - G_UNICODE_SCRIPT_CYRILLIC, G_UNICODE_SCRIPT_CYRILLIC, G_UNICODE_SCRIPT_CYRILLIC, - G_UNICODE_SCRIPT_CYRILLIC, G_UNICODE_SCRIPT_CYRILLIC, G_UNICODE_SCRIPT_CYRILLIC, - G_UNICODE_SCRIPT_CYRILLIC, G_UNICODE_SCRIPT_CYRILLIC, G_UNICODE_SCRIPT_CYRILLIC, - G_UNICODE_SCRIPT_CYRILLIC, G_UNICODE_SCRIPT_CYRILLIC, G_UNICODE_SCRIPT_CYRILLIC, - G_UNICODE_SCRIPT_CYRILLIC, G_UNICODE_SCRIPT_CYRILLIC, G_UNICODE_SCRIPT_CYRILLIC, - G_UNICODE_SCRIPT_CYRILLIC, G_UNICODE_SCRIPT_CYRILLIC, G_UNICODE_SCRIPT_CYRILLIC, - G_UNICODE_SCRIPT_CYRILLIC, G_UNICODE_SCRIPT_CYRILLIC, G_UNICODE_SCRIPT_CYRILLIC, - G_UNICODE_SCRIPT_CYRILLIC, G_UNICODE_SCRIPT_CYRILLIC, G_UNICODE_SCRIPT_CYRILLIC, - G_UNICODE_SCRIPT_CYRILLIC, G_UNICODE_SCRIPT_CYRILLIC, G_UNICODE_SCRIPT_CYRILLIC, - G_UNICODE_SCRIPT_CYRILLIC, G_UNICODE_SCRIPT_CYRILLIC, G_UNICODE_SCRIPT_CYRILLIC, - G_UNICODE_SCRIPT_CYRILLIC, G_UNICODE_SCRIPT_CYRILLIC, G_UNICODE_SCRIPT_CYRILLIC, - G_UNICODE_SCRIPT_CYRILLIC, G_UNICODE_SCRIPT_CYRILLIC, G_UNICODE_SCRIPT_CYRILLIC, - G_UNICODE_SCRIPT_CYRILLIC, G_UNICODE_SCRIPT_CYRILLIC, G_UNICODE_SCRIPT_CYRILLIC, - G_UNICODE_SCRIPT_CYRILLIC, G_UNICODE_SCRIPT_CYRILLIC, G_UNICODE_SCRIPT_CYRILLIC, - G_UNICODE_SCRIPT_CYRILLIC, G_UNICODE_SCRIPT_CYRILLIC, G_UNICODE_SCRIPT_CYRILLIC, - G_UNICODE_SCRIPT_CYRILLIC, G_UNICODE_SCRIPT_CYRILLIC, G_UNICODE_SCRIPT_CYRILLIC, - G_UNICODE_SCRIPT_CYRILLIC, G_UNICODE_SCRIPT_CYRILLIC, G_UNICODE_SCRIPT_CYRILLIC, - G_UNICODE_SCRIPT_CYRILLIC, G_UNICODE_SCRIPT_CYRILLIC, G_UNICODE_SCRIPT_CYRILLIC, - G_UNICODE_SCRIPT_CYRILLIC, G_UNICODE_SCRIPT_CYRILLIC, G_UNICODE_SCRIPT_CYRILLIC, - G_UNICODE_SCRIPT_CYRILLIC, G_UNICODE_SCRIPT_CYRILLIC, G_UNICODE_SCRIPT_CYRILLIC, - G_UNICODE_SCRIPT_CYRILLIC, G_UNICODE_SCRIPT_CYRILLIC, G_UNICODE_SCRIPT_CYRILLIC, - G_UNICODE_SCRIPT_CYRILLIC, G_UNICODE_SCRIPT_CYRILLIC, G_UNICODE_SCRIPT_CYRILLIC, - G_UNICODE_SCRIPT_CYRILLIC, G_UNICODE_SCRIPT_CYRILLIC, G_UNICODE_SCRIPT_CYRILLIC, - G_UNICODE_SCRIPT_CYRILLIC, G_UNICODE_SCRIPT_CYRILLIC, G_UNICODE_SCRIPT_CYRILLIC, - G_UNICODE_SCRIPT_CYRILLIC, G_UNICODE_SCRIPT_CYRILLIC, G_UNICODE_SCRIPT_CYRILLIC, - G_UNICODE_SCRIPT_CYRILLIC, G_UNICODE_SCRIPT_CYRILLIC, G_UNICODE_SCRIPT_CYRILLIC, - G_UNICODE_SCRIPT_CYRILLIC, G_UNICODE_SCRIPT_CYRILLIC, G_UNICODE_SCRIPT_CYRILLIC, - G_UNICODE_SCRIPT_CYRILLIC, G_UNICODE_SCRIPT_CYRILLIC, G_UNICODE_SCRIPT_CYRILLIC, - G_UNICODE_SCRIPT_CYRILLIC, G_UNICODE_SCRIPT_CYRILLIC, G_UNICODE_SCRIPT_CYRILLIC, - G_UNICODE_SCRIPT_CYRILLIC, G_UNICODE_SCRIPT_CYRILLIC, G_UNICODE_SCRIPT_CYRILLIC, - G_UNICODE_SCRIPT_CYRILLIC, G_UNICODE_SCRIPT_CYRILLIC, G_UNICODE_SCRIPT_CYRILLIC, - G_UNICODE_SCRIPT_CYRILLIC, G_UNICODE_SCRIPT_CYRILLIC, G_UNICODE_SCRIPT_CYRILLIC, - G_UNICODE_SCRIPT_CYRILLIC, G_UNICODE_SCRIPT_CYRILLIC, G_UNICODE_SCRIPT_CYRILLIC, - G_UNICODE_SCRIPT_CYRILLIC, G_UNICODE_SCRIPT_CYRILLIC, G_UNICODE_SCRIPT_CYRILLIC, - G_UNICODE_SCRIPT_CYRILLIC, G_UNICODE_SCRIPT_CYRILLIC, G_UNICODE_SCRIPT_CYRILLIC, - G_UNICODE_SCRIPT_CYRILLIC, G_UNICODE_SCRIPT_CYRILLIC, G_UNICODE_SCRIPT_CYRILLIC, - G_UNICODE_SCRIPT_CYRILLIC, G_UNICODE_SCRIPT_CYRILLIC, G_UNICODE_SCRIPT_CYRILLIC, - G_UNICODE_SCRIPT_CYRILLIC, G_UNICODE_SCRIPT_CYRILLIC, G_UNICODE_SCRIPT_CYRILLIC, - G_UNICODE_SCRIPT_CYRILLIC, G_UNICODE_SCRIPT_CYRILLIC, G_UNICODE_SCRIPT_CYRILLIC, - G_UNICODE_SCRIPT_CYRILLIC, G_UNICODE_SCRIPT_CYRILLIC, G_UNICODE_SCRIPT_CYRILLIC, - G_UNICODE_SCRIPT_CYRILLIC, G_UNICODE_SCRIPT_CYRILLIC, G_UNICODE_SCRIPT_CYRILLIC, - G_UNICODE_SCRIPT_CYRILLIC, G_UNICODE_SCRIPT_CYRILLIC, G_UNICODE_SCRIPT_CYRILLIC, - G_UNICODE_SCRIPT_CYRILLIC, G_UNICODE_SCRIPT_CYRILLIC, G_UNICODE_SCRIPT_CYRILLIC, - G_UNICODE_SCRIPT_CYRILLIC, G_UNICODE_SCRIPT_CYRILLIC, G_UNICODE_SCRIPT_CYRILLIC, - G_UNICODE_SCRIPT_CYRILLIC, G_UNICODE_SCRIPT_CYRILLIC, G_UNICODE_SCRIPT_CYRILLIC, - G_UNICODE_SCRIPT_CYRILLIC, G_UNICODE_SCRIPT_CYRILLIC, G_UNICODE_SCRIPT_CYRILLIC, - G_UNICODE_SCRIPT_CYRILLIC, G_UNICODE_SCRIPT_CYRILLIC, G_UNICODE_SCRIPT_CYRILLIC, - G_UNICODE_SCRIPT_CYRILLIC, G_UNICODE_SCRIPT_CYRILLIC, G_UNICODE_SCRIPT_CYRILLIC, - G_UNICODE_SCRIPT_CYRILLIC, G_UNICODE_SCRIPT_CYRILLIC, G_UNICODE_SCRIPT_CYRILLIC, - G_UNICODE_SCRIPT_CYRILLIC, G_UNICODE_SCRIPT_CYRILLIC, G_UNICODE_SCRIPT_CYRILLIC, - G_UNICODE_SCRIPT_CYRILLIC, G_UNICODE_SCRIPT_CYRILLIC, G_UNICODE_SCRIPT_CYRILLIC, - G_UNICODE_SCRIPT_CYRILLIC, G_UNICODE_SCRIPT_CYRILLIC, G_UNICODE_SCRIPT_CYRILLIC, - G_UNICODE_SCRIPT_CYRILLIC, G_UNICODE_SCRIPT_CYRILLIC, G_UNICODE_SCRIPT_CYRILLIC, - G_UNICODE_SCRIPT_CYRILLIC, G_UNICODE_SCRIPT_CYRILLIC, G_UNICODE_SCRIPT_CYRILLIC, - G_UNICODE_SCRIPT_CYRILLIC, G_UNICODE_SCRIPT_CYRILLIC, G_UNICODE_SCRIPT_CYRILLIC, - G_UNICODE_SCRIPT_CYRILLIC, G_UNICODE_SCRIPT_CYRILLIC, G_UNICODE_SCRIPT_CYRILLIC, - G_UNICODE_SCRIPT_CYRILLIC, G_UNICODE_SCRIPT_CYRILLIC, G_UNICODE_SCRIPT_CYRILLIC, - G_UNICODE_SCRIPT_CYRILLIC, G_UNICODE_SCRIPT_CYRILLIC, G_UNICODE_SCRIPT_CYRILLIC, - G_UNICODE_SCRIPT_CYRILLIC, G_UNICODE_SCRIPT_CYRILLIC, G_UNICODE_SCRIPT_CYRILLIC, - G_UNICODE_SCRIPT_CYRILLIC, G_UNICODE_SCRIPT_CYRILLIC, G_UNICODE_SCRIPT_CYRILLIC, - G_UNICODE_SCRIPT_CYRILLIC, G_UNICODE_SCRIPT_CYRILLIC, G_UNICODE_SCRIPT_CYRILLIC, - G_UNICODE_SCRIPT_CYRILLIC, G_UNICODE_SCRIPT_CYRILLIC, G_UNICODE_SCRIPT_CYRILLIC, - G_UNICODE_SCRIPT_CYRILLIC, G_UNICODE_SCRIPT_CYRILLIC, G_UNICODE_SCRIPT_CYRILLIC, - G_UNICODE_SCRIPT_CYRILLIC, G_UNICODE_SCRIPT_CYRILLIC, G_UNICODE_SCRIPT_CYRILLIC, - G_UNICODE_SCRIPT_CYRILLIC, G_UNICODE_SCRIPT_CYRILLIC, G_UNICODE_SCRIPT_CYRILLIC, - G_UNICODE_SCRIPT_CYRILLIC, G_UNICODE_SCRIPT_CYRILLIC, G_UNICODE_SCRIPT_CYRILLIC, - G_UNICODE_SCRIPT_CYRILLIC, G_UNICODE_SCRIPT_CYRILLIC, G_UNICODE_SCRIPT_CYRILLIC, - G_UNICODE_SCRIPT_CYRILLIC, G_UNICODE_SCRIPT_CYRILLIC, G_UNICODE_SCRIPT_CYRILLIC, - G_UNICODE_SCRIPT_CYRILLIC, G_UNICODE_SCRIPT_CYRILLIC, G_UNICODE_SCRIPT_CYRILLIC, - G_UNICODE_SCRIPT_CYRILLIC, G_UNICODE_SCRIPT_CYRILLIC, G_UNICODE_SCRIPT_CYRILLIC, - G_UNICODE_SCRIPT_CYRILLIC, G_UNICODE_SCRIPT_CYRILLIC, G_UNICODE_SCRIPT_CYRILLIC, - G_UNICODE_SCRIPT_CYRILLIC, G_UNICODE_SCRIPT_CYRILLIC, G_UNICODE_SCRIPT_CYRILLIC, - G_UNICODE_SCRIPT_CYRILLIC, G_UNICODE_SCRIPT_CYRILLIC, G_UNICODE_SCRIPT_CYRILLIC, - G_UNICODE_SCRIPT_CYRILLIC, G_UNICODE_SCRIPT_CYRILLIC, G_UNICODE_SCRIPT_CYRILLIC, - G_UNICODE_SCRIPT_CYRILLIC, G_UNICODE_SCRIPT_CYRILLIC, G_UNICODE_SCRIPT_CYRILLIC, - G_UNICODE_SCRIPT_CYRILLIC, G_UNICODE_SCRIPT_CYRILLIC, G_UNICODE_SCRIPT_CYRILLIC, - G_UNICODE_SCRIPT_CYRILLIC, G_UNICODE_SCRIPT_CYRILLIC, G_UNICODE_SCRIPT_CYRILLIC, - G_UNICODE_SCRIPT_CYRILLIC, G_UNICODE_SCRIPT_CYRILLIC, G_UNICODE_SCRIPT_CYRILLIC, - G_UNICODE_SCRIPT_CYRILLIC, G_UNICODE_SCRIPT_CYRILLIC, G_UNICODE_SCRIPT_CYRILLIC, - G_UNICODE_SCRIPT_CYRILLIC, G_UNICODE_SCRIPT_CYRILLIC, G_UNICODE_SCRIPT_CYRILLIC, - G_UNICODE_SCRIPT_CYRILLIC, G_UNICODE_SCRIPT_CYRILLIC, G_UNICODE_SCRIPT_CYRILLIC, - G_UNICODE_SCRIPT_CYRILLIC, G_UNICODE_SCRIPT_CYRILLIC, G_UNICODE_SCRIPT_CYRILLIC, - G_UNICODE_SCRIPT_CYRILLIC, G_UNICODE_SCRIPT_CYRILLIC, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_ARMENIAN, G_UNICODE_SCRIPT_ARMENIAN, G_UNICODE_SCRIPT_ARMENIAN, - G_UNICODE_SCRIPT_ARMENIAN, G_UNICODE_SCRIPT_ARMENIAN, G_UNICODE_SCRIPT_ARMENIAN, - G_UNICODE_SCRIPT_ARMENIAN, G_UNICODE_SCRIPT_ARMENIAN, G_UNICODE_SCRIPT_ARMENIAN, - G_UNICODE_SCRIPT_ARMENIAN, G_UNICODE_SCRIPT_ARMENIAN, G_UNICODE_SCRIPT_ARMENIAN, - G_UNICODE_SCRIPT_ARMENIAN, G_UNICODE_SCRIPT_ARMENIAN, G_UNICODE_SCRIPT_ARMENIAN, - G_UNICODE_SCRIPT_ARMENIAN, G_UNICODE_SCRIPT_ARMENIAN, G_UNICODE_SCRIPT_ARMENIAN, - G_UNICODE_SCRIPT_ARMENIAN, G_UNICODE_SCRIPT_ARMENIAN, G_UNICODE_SCRIPT_ARMENIAN, - G_UNICODE_SCRIPT_ARMENIAN, G_UNICODE_SCRIPT_ARMENIAN, G_UNICODE_SCRIPT_ARMENIAN, - G_UNICODE_SCRIPT_ARMENIAN, G_UNICODE_SCRIPT_ARMENIAN, G_UNICODE_SCRIPT_ARMENIAN, - G_UNICODE_SCRIPT_ARMENIAN, G_UNICODE_SCRIPT_ARMENIAN, G_UNICODE_SCRIPT_ARMENIAN, - G_UNICODE_SCRIPT_ARMENIAN, G_UNICODE_SCRIPT_ARMENIAN, G_UNICODE_SCRIPT_ARMENIAN, - G_UNICODE_SCRIPT_ARMENIAN, G_UNICODE_SCRIPT_ARMENIAN, G_UNICODE_SCRIPT_ARMENIAN, - G_UNICODE_SCRIPT_ARMENIAN, G_UNICODE_SCRIPT_ARMENIAN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_ARMENIAN, G_UNICODE_SCRIPT_ARMENIAN, - G_UNICODE_SCRIPT_ARMENIAN, G_UNICODE_SCRIPT_ARMENIAN, G_UNICODE_SCRIPT_ARMENIAN, - G_UNICODE_SCRIPT_ARMENIAN, G_UNICODE_SCRIPT_ARMENIAN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_ARMENIAN, G_UNICODE_SCRIPT_ARMENIAN, G_UNICODE_SCRIPT_ARMENIAN, - G_UNICODE_SCRIPT_ARMENIAN, G_UNICODE_SCRIPT_ARMENIAN, G_UNICODE_SCRIPT_ARMENIAN, - G_UNICODE_SCRIPT_ARMENIAN, G_UNICODE_SCRIPT_ARMENIAN, G_UNICODE_SCRIPT_ARMENIAN, - G_UNICODE_SCRIPT_ARMENIAN, G_UNICODE_SCRIPT_ARMENIAN, G_UNICODE_SCRIPT_ARMENIAN, - G_UNICODE_SCRIPT_ARMENIAN, G_UNICODE_SCRIPT_ARMENIAN, G_UNICODE_SCRIPT_ARMENIAN, - G_UNICODE_SCRIPT_ARMENIAN, G_UNICODE_SCRIPT_ARMENIAN, G_UNICODE_SCRIPT_ARMENIAN, - G_UNICODE_SCRIPT_ARMENIAN, G_UNICODE_SCRIPT_ARMENIAN, G_UNICODE_SCRIPT_ARMENIAN, - G_UNICODE_SCRIPT_ARMENIAN, G_UNICODE_SCRIPT_ARMENIAN, G_UNICODE_SCRIPT_ARMENIAN, - G_UNICODE_SCRIPT_ARMENIAN, G_UNICODE_SCRIPT_ARMENIAN, G_UNICODE_SCRIPT_ARMENIAN, - G_UNICODE_SCRIPT_ARMENIAN, G_UNICODE_SCRIPT_ARMENIAN, G_UNICODE_SCRIPT_ARMENIAN, - G_UNICODE_SCRIPT_ARMENIAN, G_UNICODE_SCRIPT_ARMENIAN, G_UNICODE_SCRIPT_ARMENIAN, - G_UNICODE_SCRIPT_ARMENIAN, G_UNICODE_SCRIPT_ARMENIAN, G_UNICODE_SCRIPT_ARMENIAN, - G_UNICODE_SCRIPT_ARMENIAN, G_UNICODE_SCRIPT_ARMENIAN, G_UNICODE_SCRIPT_ARMENIAN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_COMMON, G_UNICODE_SCRIPT_ARMENIAN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_HEBREW, G_UNICODE_SCRIPT_HEBREW, G_UNICODE_SCRIPT_HEBREW, - G_UNICODE_SCRIPT_HEBREW, G_UNICODE_SCRIPT_HEBREW, G_UNICODE_SCRIPT_HEBREW, - G_UNICODE_SCRIPT_HEBREW, G_UNICODE_SCRIPT_HEBREW, G_UNICODE_SCRIPT_HEBREW, - G_UNICODE_SCRIPT_HEBREW, G_UNICODE_SCRIPT_HEBREW, G_UNICODE_SCRIPT_HEBREW, - G_UNICODE_SCRIPT_HEBREW, G_UNICODE_SCRIPT_HEBREW, G_UNICODE_SCRIPT_HEBREW, - G_UNICODE_SCRIPT_HEBREW, G_UNICODE_SCRIPT_HEBREW, G_UNICODE_SCRIPT_HEBREW, - G_UNICODE_SCRIPT_HEBREW, G_UNICODE_SCRIPT_HEBREW, G_UNICODE_SCRIPT_HEBREW, - G_UNICODE_SCRIPT_HEBREW, G_UNICODE_SCRIPT_HEBREW, G_UNICODE_SCRIPT_HEBREW, - G_UNICODE_SCRIPT_HEBREW, G_UNICODE_SCRIPT_HEBREW, G_UNICODE_SCRIPT_HEBREW, - G_UNICODE_SCRIPT_HEBREW, G_UNICODE_SCRIPT_HEBREW, G_UNICODE_SCRIPT_HEBREW, - G_UNICODE_SCRIPT_HEBREW, G_UNICODE_SCRIPT_HEBREW, G_UNICODE_SCRIPT_HEBREW, - G_UNICODE_SCRIPT_HEBREW, G_UNICODE_SCRIPT_HEBREW, G_UNICODE_SCRIPT_HEBREW, - G_UNICODE_SCRIPT_HEBREW, G_UNICODE_SCRIPT_HEBREW, G_UNICODE_SCRIPT_HEBREW, - G_UNICODE_SCRIPT_HEBREW, G_UNICODE_SCRIPT_HEBREW, G_UNICODE_SCRIPT_HEBREW, - G_UNICODE_SCRIPT_HEBREW, G_UNICODE_SCRIPT_HEBREW, G_UNICODE_SCRIPT_HEBREW, - G_UNICODE_SCRIPT_HEBREW, G_UNICODE_SCRIPT_HEBREW, G_UNICODE_SCRIPT_HEBREW, - G_UNICODE_SCRIPT_HEBREW, G_UNICODE_SCRIPT_HEBREW, G_UNICODE_SCRIPT_HEBREW, - G_UNICODE_SCRIPT_HEBREW, G_UNICODE_SCRIPT_HEBREW, G_UNICODE_SCRIPT_HEBREW, - G_UNICODE_SCRIPT_HEBREW, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_HEBREW, G_UNICODE_SCRIPT_HEBREW, G_UNICODE_SCRIPT_HEBREW, - G_UNICODE_SCRIPT_HEBREW, G_UNICODE_SCRIPT_HEBREW, G_UNICODE_SCRIPT_HEBREW, - G_UNICODE_SCRIPT_HEBREW, G_UNICODE_SCRIPT_HEBREW, G_UNICODE_SCRIPT_HEBREW, - G_UNICODE_SCRIPT_HEBREW, G_UNICODE_SCRIPT_HEBREW, G_UNICODE_SCRIPT_HEBREW, - G_UNICODE_SCRIPT_HEBREW, G_UNICODE_SCRIPT_HEBREW, G_UNICODE_SCRIPT_HEBREW, - G_UNICODE_SCRIPT_HEBREW, G_UNICODE_SCRIPT_HEBREW, G_UNICODE_SCRIPT_HEBREW, - G_UNICODE_SCRIPT_HEBREW, G_UNICODE_SCRIPT_HEBREW, G_UNICODE_SCRIPT_HEBREW, - G_UNICODE_SCRIPT_HEBREW, G_UNICODE_SCRIPT_HEBREW, G_UNICODE_SCRIPT_HEBREW, - G_UNICODE_SCRIPT_HEBREW, G_UNICODE_SCRIPT_HEBREW, G_UNICODE_SCRIPT_HEBREW, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_HEBREW, - G_UNICODE_SCRIPT_HEBREW, G_UNICODE_SCRIPT_HEBREW, G_UNICODE_SCRIPT_HEBREW, - G_UNICODE_SCRIPT_HEBREW, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_COMMON, G_UNICODE_SCRIPT_COMMON, G_UNICODE_SCRIPT_COMMON, - G_UNICODE_SCRIPT_COMMON, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_ARABIC, G_UNICODE_SCRIPT_ARABIC, G_UNICODE_SCRIPT_ARABIC, - G_UNICODE_SCRIPT_ARABIC, G_UNICODE_SCRIPT_ARABIC, G_UNICODE_SCRIPT_ARABIC, - G_UNICODE_SCRIPT_COMMON, G_UNICODE_SCRIPT_ARABIC, G_UNICODE_SCRIPT_ARABIC, - G_UNICODE_SCRIPT_ARABIC, G_UNICODE_SCRIPT_ARABIC, G_UNICODE_SCRIPT_ARABIC, - G_UNICODE_SCRIPT_ARABIC, G_UNICODE_SCRIPT_ARABIC, G_UNICODE_SCRIPT_ARABIC, - G_UNICODE_SCRIPT_ARABIC, G_UNICODE_SCRIPT_ARABIC, G_UNICODE_SCRIPT_ARABIC, - G_UNICODE_SCRIPT_ARABIC, G_UNICODE_SCRIPT_ARABIC, G_UNICODE_SCRIPT_ARABIC, - G_UNICODE_SCRIPT_COMMON, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_ARABIC, G_UNICODE_SCRIPT_COMMON, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_ARABIC, G_UNICODE_SCRIPT_ARABIC, G_UNICODE_SCRIPT_ARABIC, - G_UNICODE_SCRIPT_ARABIC, G_UNICODE_SCRIPT_ARABIC, G_UNICODE_SCRIPT_ARABIC, - G_UNICODE_SCRIPT_ARABIC, G_UNICODE_SCRIPT_ARABIC, G_UNICODE_SCRIPT_ARABIC, - G_UNICODE_SCRIPT_ARABIC, G_UNICODE_SCRIPT_ARABIC, G_UNICODE_SCRIPT_ARABIC, - G_UNICODE_SCRIPT_ARABIC, G_UNICODE_SCRIPT_ARABIC, G_UNICODE_SCRIPT_ARABIC, - G_UNICODE_SCRIPT_ARABIC, G_UNICODE_SCRIPT_ARABIC, G_UNICODE_SCRIPT_ARABIC, - G_UNICODE_SCRIPT_ARABIC, G_UNICODE_SCRIPT_ARABIC, G_UNICODE_SCRIPT_ARABIC, - G_UNICODE_SCRIPT_ARABIC, G_UNICODE_SCRIPT_ARABIC, G_UNICODE_SCRIPT_ARABIC, - G_UNICODE_SCRIPT_ARABIC, G_UNICODE_SCRIPT_ARABIC, G_UNICODE_SCRIPT_ARABIC, - G_UNICODE_SCRIPT_ARABIC, G_UNICODE_SCRIPT_ARABIC, G_UNICODE_SCRIPT_ARABIC, - G_UNICODE_SCRIPT_ARABIC, G_UNICODE_SCRIPT_COMMON, G_UNICODE_SCRIPT_ARABIC, - G_UNICODE_SCRIPT_ARABIC, G_UNICODE_SCRIPT_ARABIC, G_UNICODE_SCRIPT_ARABIC, - G_UNICODE_SCRIPT_ARABIC, G_UNICODE_SCRIPT_ARABIC, G_UNICODE_SCRIPT_ARABIC, - G_UNICODE_SCRIPT_ARABIC, G_UNICODE_SCRIPT_ARABIC, G_UNICODE_SCRIPT_ARABIC, - G_UNICODE_SCRIPT_INHERITED, G_UNICODE_SCRIPT_INHERITED, G_UNICODE_SCRIPT_INHERITED, - G_UNICODE_SCRIPT_INHERITED, G_UNICODE_SCRIPT_INHERITED, G_UNICODE_SCRIPT_INHERITED, - G_UNICODE_SCRIPT_INHERITED, G_UNICODE_SCRIPT_INHERITED, G_UNICODE_SCRIPT_INHERITED, - G_UNICODE_SCRIPT_INHERITED, G_UNICODE_SCRIPT_INHERITED, G_UNICODE_SCRIPT_ARABIC, - G_UNICODE_SCRIPT_ARABIC, G_UNICODE_SCRIPT_ARABIC, G_UNICODE_SCRIPT_ARABIC, - G_UNICODE_SCRIPT_ARABIC, G_UNICODE_SCRIPT_ARABIC, G_UNICODE_SCRIPT_ARABIC, - G_UNICODE_SCRIPT_ARABIC, G_UNICODE_SCRIPT_ARABIC, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_COMMON, G_UNICODE_SCRIPT_COMMON, G_UNICODE_SCRIPT_COMMON, - G_UNICODE_SCRIPT_COMMON, G_UNICODE_SCRIPT_COMMON, G_UNICODE_SCRIPT_COMMON, - G_UNICODE_SCRIPT_COMMON, G_UNICODE_SCRIPT_COMMON, G_UNICODE_SCRIPT_COMMON, - G_UNICODE_SCRIPT_COMMON, G_UNICODE_SCRIPT_ARABIC, G_UNICODE_SCRIPT_ARABIC, - G_UNICODE_SCRIPT_ARABIC, G_UNICODE_SCRIPT_ARABIC, G_UNICODE_SCRIPT_ARABIC, - G_UNICODE_SCRIPT_ARABIC, G_UNICODE_SCRIPT_INHERITED, G_UNICODE_SCRIPT_ARABIC, - G_UNICODE_SCRIPT_ARABIC, G_UNICODE_SCRIPT_ARABIC, G_UNICODE_SCRIPT_ARABIC, - G_UNICODE_SCRIPT_ARABIC, G_UNICODE_SCRIPT_ARABIC, G_UNICODE_SCRIPT_ARABIC, - G_UNICODE_SCRIPT_ARABIC, G_UNICODE_SCRIPT_ARABIC, G_UNICODE_SCRIPT_ARABIC, - G_UNICODE_SCRIPT_ARABIC, G_UNICODE_SCRIPT_ARABIC, G_UNICODE_SCRIPT_ARABIC, - G_UNICODE_SCRIPT_ARABIC, G_UNICODE_SCRIPT_ARABIC, G_UNICODE_SCRIPT_ARABIC, - G_UNICODE_SCRIPT_ARABIC, G_UNICODE_SCRIPT_ARABIC, G_UNICODE_SCRIPT_ARABIC, - G_UNICODE_SCRIPT_ARABIC, G_UNICODE_SCRIPT_ARABIC, G_UNICODE_SCRIPT_ARABIC, - G_UNICODE_SCRIPT_ARABIC, G_UNICODE_SCRIPT_ARABIC, G_UNICODE_SCRIPT_ARABIC, - G_UNICODE_SCRIPT_ARABIC, G_UNICODE_SCRIPT_ARABIC, G_UNICODE_SCRIPT_ARABIC, - G_UNICODE_SCRIPT_ARABIC, G_UNICODE_SCRIPT_ARABIC, G_UNICODE_SCRIPT_ARABIC, - G_UNICODE_SCRIPT_ARABIC, G_UNICODE_SCRIPT_ARABIC, G_UNICODE_SCRIPT_ARABIC, - G_UNICODE_SCRIPT_ARABIC, G_UNICODE_SCRIPT_ARABIC, G_UNICODE_SCRIPT_ARABIC, - G_UNICODE_SCRIPT_ARABIC, G_UNICODE_SCRIPT_ARABIC, G_UNICODE_SCRIPT_ARABIC, - G_UNICODE_SCRIPT_ARABIC, G_UNICODE_SCRIPT_ARABIC, G_UNICODE_SCRIPT_ARABIC, - G_UNICODE_SCRIPT_ARABIC, G_UNICODE_SCRIPT_ARABIC, G_UNICODE_SCRIPT_ARABIC, - G_UNICODE_SCRIPT_ARABIC, G_UNICODE_SCRIPT_ARABIC, G_UNICODE_SCRIPT_ARABIC, - G_UNICODE_SCRIPT_ARABIC, G_UNICODE_SCRIPT_ARABIC, G_UNICODE_SCRIPT_ARABIC, - G_UNICODE_SCRIPT_ARABIC, G_UNICODE_SCRIPT_ARABIC, G_UNICODE_SCRIPT_ARABIC, - G_UNICODE_SCRIPT_ARABIC, G_UNICODE_SCRIPT_ARABIC, G_UNICODE_SCRIPT_ARABIC, - G_UNICODE_SCRIPT_ARABIC, G_UNICODE_SCRIPT_ARABIC, G_UNICODE_SCRIPT_ARABIC, - G_UNICODE_SCRIPT_ARABIC, G_UNICODE_SCRIPT_ARABIC, G_UNICODE_SCRIPT_ARABIC, - G_UNICODE_SCRIPT_ARABIC, G_UNICODE_SCRIPT_ARABIC, G_UNICODE_SCRIPT_ARABIC, - G_UNICODE_SCRIPT_ARABIC, G_UNICODE_SCRIPT_ARABIC, G_UNICODE_SCRIPT_ARABIC, - G_UNICODE_SCRIPT_ARABIC, G_UNICODE_SCRIPT_ARABIC, G_UNICODE_SCRIPT_ARABIC, - G_UNICODE_SCRIPT_ARABIC, G_UNICODE_SCRIPT_ARABIC, G_UNICODE_SCRIPT_ARABIC, - G_UNICODE_SCRIPT_ARABIC, G_UNICODE_SCRIPT_ARABIC, G_UNICODE_SCRIPT_ARABIC, - G_UNICODE_SCRIPT_ARABIC, G_UNICODE_SCRIPT_ARABIC, G_UNICODE_SCRIPT_ARABIC, - G_UNICODE_SCRIPT_ARABIC, G_UNICODE_SCRIPT_ARABIC, G_UNICODE_SCRIPT_ARABIC, - G_UNICODE_SCRIPT_ARABIC, G_UNICODE_SCRIPT_ARABIC, G_UNICODE_SCRIPT_ARABIC, - G_UNICODE_SCRIPT_ARABIC, G_UNICODE_SCRIPT_ARABIC, G_UNICODE_SCRIPT_ARABIC, - G_UNICODE_SCRIPT_ARABIC, G_UNICODE_SCRIPT_ARABIC, G_UNICODE_SCRIPT_ARABIC, - G_UNICODE_SCRIPT_ARABIC, G_UNICODE_SCRIPT_ARABIC, G_UNICODE_SCRIPT_ARABIC, - G_UNICODE_SCRIPT_ARABIC, G_UNICODE_SCRIPT_ARABIC, G_UNICODE_SCRIPT_ARABIC, - G_UNICODE_SCRIPT_ARABIC, G_UNICODE_SCRIPT_ARABIC, G_UNICODE_SCRIPT_ARABIC, - G_UNICODE_SCRIPT_ARABIC, G_UNICODE_SCRIPT_ARABIC, G_UNICODE_SCRIPT_ARABIC, - G_UNICODE_SCRIPT_ARABIC, G_UNICODE_SCRIPT_ARABIC, G_UNICODE_SCRIPT_COMMON, - G_UNICODE_SCRIPT_ARABIC, G_UNICODE_SCRIPT_ARABIC, G_UNICODE_SCRIPT_ARABIC, - G_UNICODE_SCRIPT_ARABIC, G_UNICODE_SCRIPT_ARABIC, G_UNICODE_SCRIPT_ARABIC, - G_UNICODE_SCRIPT_ARABIC, G_UNICODE_SCRIPT_ARABIC, G_UNICODE_SCRIPT_ARABIC, - G_UNICODE_SCRIPT_ARABIC, G_UNICODE_SCRIPT_ARABIC, G_UNICODE_SCRIPT_ARABIC, - G_UNICODE_SCRIPT_ARABIC, G_UNICODE_SCRIPT_ARABIC, G_UNICODE_SCRIPT_ARABIC, - G_UNICODE_SCRIPT_ARABIC, G_UNICODE_SCRIPT_ARABIC, G_UNICODE_SCRIPT_ARABIC, - G_UNICODE_SCRIPT_ARABIC, G_UNICODE_SCRIPT_ARABIC, G_UNICODE_SCRIPT_ARABIC, - G_UNICODE_SCRIPT_ARABIC, G_UNICODE_SCRIPT_ARABIC, G_UNICODE_SCRIPT_ARABIC, - G_UNICODE_SCRIPT_ARABIC, G_UNICODE_SCRIPT_ARABIC, G_UNICODE_SCRIPT_ARABIC, - G_UNICODE_SCRIPT_ARABIC, G_UNICODE_SCRIPT_ARABIC, G_UNICODE_SCRIPT_ARABIC, - G_UNICODE_SCRIPT_ARABIC, G_UNICODE_SCRIPT_ARABIC, G_UNICODE_SCRIPT_ARABIC, - G_UNICODE_SCRIPT_ARABIC, G_UNICODE_SCRIPT_SYRIAC, G_UNICODE_SCRIPT_SYRIAC, - G_UNICODE_SCRIPT_SYRIAC, G_UNICODE_SCRIPT_SYRIAC, G_UNICODE_SCRIPT_SYRIAC, - G_UNICODE_SCRIPT_SYRIAC, G_UNICODE_SCRIPT_SYRIAC, G_UNICODE_SCRIPT_SYRIAC, - G_UNICODE_SCRIPT_SYRIAC, G_UNICODE_SCRIPT_SYRIAC, G_UNICODE_SCRIPT_SYRIAC, - G_UNICODE_SCRIPT_SYRIAC, G_UNICODE_SCRIPT_SYRIAC, G_UNICODE_SCRIPT_SYRIAC, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_SYRIAC, G_UNICODE_SCRIPT_SYRIAC, - G_UNICODE_SCRIPT_SYRIAC, G_UNICODE_SCRIPT_SYRIAC, G_UNICODE_SCRIPT_SYRIAC, - G_UNICODE_SCRIPT_SYRIAC, G_UNICODE_SCRIPT_SYRIAC, G_UNICODE_SCRIPT_SYRIAC, - G_UNICODE_SCRIPT_SYRIAC, G_UNICODE_SCRIPT_SYRIAC, G_UNICODE_SCRIPT_SYRIAC, - G_UNICODE_SCRIPT_SYRIAC, G_UNICODE_SCRIPT_SYRIAC, G_UNICODE_SCRIPT_SYRIAC, - G_UNICODE_SCRIPT_SYRIAC, G_UNICODE_SCRIPT_SYRIAC, G_UNICODE_SCRIPT_SYRIAC, - G_UNICODE_SCRIPT_SYRIAC, G_UNICODE_SCRIPT_SYRIAC, G_UNICODE_SCRIPT_SYRIAC, - G_UNICODE_SCRIPT_SYRIAC, G_UNICODE_SCRIPT_SYRIAC, G_UNICODE_SCRIPT_SYRIAC, - G_UNICODE_SCRIPT_SYRIAC, G_UNICODE_SCRIPT_SYRIAC, G_UNICODE_SCRIPT_SYRIAC, - G_UNICODE_SCRIPT_SYRIAC, G_UNICODE_SCRIPT_SYRIAC, G_UNICODE_SCRIPT_SYRIAC, - G_UNICODE_SCRIPT_SYRIAC, G_UNICODE_SCRIPT_SYRIAC, G_UNICODE_SCRIPT_SYRIAC, - G_UNICODE_SCRIPT_SYRIAC, G_UNICODE_SCRIPT_SYRIAC, G_UNICODE_SCRIPT_SYRIAC, - G_UNICODE_SCRIPT_SYRIAC, G_UNICODE_SCRIPT_SYRIAC, G_UNICODE_SCRIPT_SYRIAC, - G_UNICODE_SCRIPT_SYRIAC, G_UNICODE_SCRIPT_SYRIAC, G_UNICODE_SCRIPT_SYRIAC, - G_UNICODE_SCRIPT_SYRIAC, G_UNICODE_SCRIPT_SYRIAC, G_UNICODE_SCRIPT_SYRIAC, - G_UNICODE_SCRIPT_SYRIAC, G_UNICODE_SCRIPT_SYRIAC, G_UNICODE_SCRIPT_SYRIAC, - G_UNICODE_SCRIPT_SYRIAC, G_UNICODE_SCRIPT_SYRIAC, G_UNICODE_SCRIPT_SYRIAC, - G_UNICODE_SCRIPT_SYRIAC, G_UNICODE_SCRIPT_SYRIAC, G_UNICODE_SCRIPT_SYRIAC, - G_UNICODE_SCRIPT_SYRIAC, G_UNICODE_SCRIPT_SYRIAC, G_UNICODE_SCRIPT_SYRIAC, - G_UNICODE_SCRIPT_SYRIAC, G_UNICODE_SCRIPT_SYRIAC, G_UNICODE_SCRIPT_SYRIAC, - G_UNICODE_SCRIPT_SYRIAC, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_SYRIAC, G_UNICODE_SCRIPT_SYRIAC, G_UNICODE_SCRIPT_SYRIAC, - G_UNICODE_SCRIPT_ARABIC, G_UNICODE_SCRIPT_ARABIC, G_UNICODE_SCRIPT_ARABIC, - G_UNICODE_SCRIPT_ARABIC, G_UNICODE_SCRIPT_ARABIC, G_UNICODE_SCRIPT_ARABIC, - G_UNICODE_SCRIPT_ARABIC, G_UNICODE_SCRIPT_ARABIC, G_UNICODE_SCRIPT_ARABIC, - G_UNICODE_SCRIPT_ARABIC, G_UNICODE_SCRIPT_ARABIC, G_UNICODE_SCRIPT_ARABIC, - G_UNICODE_SCRIPT_ARABIC, G_UNICODE_SCRIPT_ARABIC, G_UNICODE_SCRIPT_ARABIC, - G_UNICODE_SCRIPT_ARABIC, G_UNICODE_SCRIPT_ARABIC, G_UNICODE_SCRIPT_ARABIC, - G_UNICODE_SCRIPT_ARABIC, G_UNICODE_SCRIPT_ARABIC, G_UNICODE_SCRIPT_ARABIC, - G_UNICODE_SCRIPT_ARABIC, G_UNICODE_SCRIPT_ARABIC, G_UNICODE_SCRIPT_ARABIC, - G_UNICODE_SCRIPT_ARABIC, G_UNICODE_SCRIPT_ARABIC, G_UNICODE_SCRIPT_ARABIC, - G_UNICODE_SCRIPT_ARABIC, G_UNICODE_SCRIPT_ARABIC, G_UNICODE_SCRIPT_ARABIC, - G_UNICODE_SCRIPT_ARABIC, G_UNICODE_SCRIPT_ARABIC, G_UNICODE_SCRIPT_ARABIC, - G_UNICODE_SCRIPT_ARABIC, G_UNICODE_SCRIPT_ARABIC, G_UNICODE_SCRIPT_ARABIC, - G_UNICODE_SCRIPT_ARABIC, G_UNICODE_SCRIPT_ARABIC, G_UNICODE_SCRIPT_ARABIC, - G_UNICODE_SCRIPT_ARABIC, G_UNICODE_SCRIPT_ARABIC, G_UNICODE_SCRIPT_ARABIC, - G_UNICODE_SCRIPT_ARABIC, G_UNICODE_SCRIPT_ARABIC, G_UNICODE_SCRIPT_ARABIC, - G_UNICODE_SCRIPT_ARABIC, G_UNICODE_SCRIPT_ARABIC, G_UNICODE_SCRIPT_ARABIC, - G_UNICODE_SCRIPT_THAANA, G_UNICODE_SCRIPT_THAANA, G_UNICODE_SCRIPT_THAANA, - G_UNICODE_SCRIPT_THAANA, G_UNICODE_SCRIPT_THAANA, G_UNICODE_SCRIPT_THAANA, - G_UNICODE_SCRIPT_THAANA, G_UNICODE_SCRIPT_THAANA, G_UNICODE_SCRIPT_THAANA, - G_UNICODE_SCRIPT_THAANA, G_UNICODE_SCRIPT_THAANA, G_UNICODE_SCRIPT_THAANA, - G_UNICODE_SCRIPT_THAANA, G_UNICODE_SCRIPT_THAANA, G_UNICODE_SCRIPT_THAANA, - G_UNICODE_SCRIPT_THAANA, G_UNICODE_SCRIPT_THAANA, G_UNICODE_SCRIPT_THAANA, - G_UNICODE_SCRIPT_THAANA, G_UNICODE_SCRIPT_THAANA, G_UNICODE_SCRIPT_THAANA, - G_UNICODE_SCRIPT_THAANA, G_UNICODE_SCRIPT_THAANA, G_UNICODE_SCRIPT_THAANA, - G_UNICODE_SCRIPT_THAANA, G_UNICODE_SCRIPT_THAANA, G_UNICODE_SCRIPT_THAANA, - G_UNICODE_SCRIPT_THAANA, G_UNICODE_SCRIPT_THAANA, G_UNICODE_SCRIPT_THAANA, - G_UNICODE_SCRIPT_THAANA, G_UNICODE_SCRIPT_THAANA, G_UNICODE_SCRIPT_THAANA, - G_UNICODE_SCRIPT_THAANA, G_UNICODE_SCRIPT_THAANA, G_UNICODE_SCRIPT_THAANA, - G_UNICODE_SCRIPT_THAANA, G_UNICODE_SCRIPT_THAANA, G_UNICODE_SCRIPT_THAANA, - G_UNICODE_SCRIPT_THAANA, G_UNICODE_SCRIPT_THAANA, G_UNICODE_SCRIPT_THAANA, - G_UNICODE_SCRIPT_THAANA, G_UNICODE_SCRIPT_THAANA, G_UNICODE_SCRIPT_THAANA, - G_UNICODE_SCRIPT_THAANA, G_UNICODE_SCRIPT_THAANA, G_UNICODE_SCRIPT_THAANA, - G_UNICODE_SCRIPT_THAANA, G_UNICODE_SCRIPT_THAANA, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_NKO, G_UNICODE_SCRIPT_NKO, - G_UNICODE_SCRIPT_NKO, G_UNICODE_SCRIPT_NKO, G_UNICODE_SCRIPT_NKO, - G_UNICODE_SCRIPT_NKO, G_UNICODE_SCRIPT_NKO, G_UNICODE_SCRIPT_NKO, - G_UNICODE_SCRIPT_NKO, G_UNICODE_SCRIPT_NKO, G_UNICODE_SCRIPT_NKO, - G_UNICODE_SCRIPT_NKO, G_UNICODE_SCRIPT_NKO, G_UNICODE_SCRIPT_NKO, - G_UNICODE_SCRIPT_NKO, G_UNICODE_SCRIPT_NKO, G_UNICODE_SCRIPT_NKO, - G_UNICODE_SCRIPT_NKO, G_UNICODE_SCRIPT_NKO, G_UNICODE_SCRIPT_NKO, - G_UNICODE_SCRIPT_NKO, G_UNICODE_SCRIPT_NKO, G_UNICODE_SCRIPT_NKO, - G_UNICODE_SCRIPT_NKO, G_UNICODE_SCRIPT_NKO, G_UNICODE_SCRIPT_NKO, - G_UNICODE_SCRIPT_NKO, G_UNICODE_SCRIPT_NKO, G_UNICODE_SCRIPT_NKO, - G_UNICODE_SCRIPT_NKO, G_UNICODE_SCRIPT_NKO, G_UNICODE_SCRIPT_NKO, - G_UNICODE_SCRIPT_NKO, G_UNICODE_SCRIPT_NKO, G_UNICODE_SCRIPT_NKO, - G_UNICODE_SCRIPT_NKO, G_UNICODE_SCRIPT_NKO, G_UNICODE_SCRIPT_NKO, - G_UNICODE_SCRIPT_NKO, G_UNICODE_SCRIPT_NKO, G_UNICODE_SCRIPT_NKO, - G_UNICODE_SCRIPT_NKO, G_UNICODE_SCRIPT_NKO, G_UNICODE_SCRIPT_NKO, - G_UNICODE_SCRIPT_NKO, G_UNICODE_SCRIPT_NKO, G_UNICODE_SCRIPT_NKO, - G_UNICODE_SCRIPT_NKO, G_UNICODE_SCRIPT_NKO, G_UNICODE_SCRIPT_NKO, - G_UNICODE_SCRIPT_NKO, G_UNICODE_SCRIPT_NKO, G_UNICODE_SCRIPT_NKO, - G_UNICODE_SCRIPT_NKO, G_UNICODE_SCRIPT_NKO, G_UNICODE_SCRIPT_NKO, - G_UNICODE_SCRIPT_NKO, G_UNICODE_SCRIPT_NKO, G_UNICODE_SCRIPT_NKO, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_DEVANAGARI, G_UNICODE_SCRIPT_DEVANAGARI, - G_UNICODE_SCRIPT_DEVANAGARI, G_UNICODE_SCRIPT_DEVANAGARI, G_UNICODE_SCRIPT_DEVANAGARI, - G_UNICODE_SCRIPT_DEVANAGARI, G_UNICODE_SCRIPT_DEVANAGARI, G_UNICODE_SCRIPT_DEVANAGARI, - G_UNICODE_SCRIPT_DEVANAGARI, G_UNICODE_SCRIPT_DEVANAGARI, G_UNICODE_SCRIPT_DEVANAGARI, - G_UNICODE_SCRIPT_DEVANAGARI, G_UNICODE_SCRIPT_DEVANAGARI, G_UNICODE_SCRIPT_DEVANAGARI, - G_UNICODE_SCRIPT_DEVANAGARI, G_UNICODE_SCRIPT_DEVANAGARI, G_UNICODE_SCRIPT_DEVANAGARI, - G_UNICODE_SCRIPT_DEVANAGARI, G_UNICODE_SCRIPT_DEVANAGARI, G_UNICODE_SCRIPT_DEVANAGARI, - G_UNICODE_SCRIPT_DEVANAGARI, G_UNICODE_SCRIPT_DEVANAGARI, G_UNICODE_SCRIPT_DEVANAGARI, - G_UNICODE_SCRIPT_DEVANAGARI, G_UNICODE_SCRIPT_DEVANAGARI, G_UNICODE_SCRIPT_DEVANAGARI, - G_UNICODE_SCRIPT_DEVANAGARI, G_UNICODE_SCRIPT_DEVANAGARI, G_UNICODE_SCRIPT_DEVANAGARI, - G_UNICODE_SCRIPT_DEVANAGARI, G_UNICODE_SCRIPT_DEVANAGARI, G_UNICODE_SCRIPT_DEVANAGARI, - G_UNICODE_SCRIPT_DEVANAGARI, G_UNICODE_SCRIPT_DEVANAGARI, G_UNICODE_SCRIPT_DEVANAGARI, - G_UNICODE_SCRIPT_DEVANAGARI, G_UNICODE_SCRIPT_DEVANAGARI, G_UNICODE_SCRIPT_DEVANAGARI, - G_UNICODE_SCRIPT_DEVANAGARI, G_UNICODE_SCRIPT_DEVANAGARI, G_UNICODE_SCRIPT_DEVANAGARI, - G_UNICODE_SCRIPT_DEVANAGARI, G_UNICODE_SCRIPT_DEVANAGARI, G_UNICODE_SCRIPT_DEVANAGARI, - G_UNICODE_SCRIPT_DEVANAGARI, G_UNICODE_SCRIPT_DEVANAGARI, G_UNICODE_SCRIPT_DEVANAGARI, - G_UNICODE_SCRIPT_DEVANAGARI, G_UNICODE_SCRIPT_DEVANAGARI, G_UNICODE_SCRIPT_DEVANAGARI, - G_UNICODE_SCRIPT_DEVANAGARI, G_UNICODE_SCRIPT_DEVANAGARI, G_UNICODE_SCRIPT_DEVANAGARI, - G_UNICODE_SCRIPT_DEVANAGARI, G_UNICODE_SCRIPT_DEVANAGARI, G_UNICODE_SCRIPT_DEVANAGARI, - G_UNICODE_SCRIPT_DEVANAGARI, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_DEVANAGARI, G_UNICODE_SCRIPT_DEVANAGARI, G_UNICODE_SCRIPT_DEVANAGARI, - G_UNICODE_SCRIPT_DEVANAGARI, G_UNICODE_SCRIPT_DEVANAGARI, G_UNICODE_SCRIPT_DEVANAGARI, - G_UNICODE_SCRIPT_DEVANAGARI, G_UNICODE_SCRIPT_DEVANAGARI, G_UNICODE_SCRIPT_DEVANAGARI, - G_UNICODE_SCRIPT_DEVANAGARI, G_UNICODE_SCRIPT_DEVANAGARI, G_UNICODE_SCRIPT_DEVANAGARI, - G_UNICODE_SCRIPT_DEVANAGARI, G_UNICODE_SCRIPT_DEVANAGARI, G_UNICODE_SCRIPT_DEVANAGARI, - G_UNICODE_SCRIPT_DEVANAGARI, G_UNICODE_SCRIPT_DEVANAGARI, G_UNICODE_SCRIPT_DEVANAGARI, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_DEVANAGARI, - G_UNICODE_SCRIPT_INHERITED, G_UNICODE_SCRIPT_INHERITED, G_UNICODE_SCRIPT_DEVANAGARI, - G_UNICODE_SCRIPT_DEVANAGARI, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_DEVANAGARI, G_UNICODE_SCRIPT_DEVANAGARI, - G_UNICODE_SCRIPT_DEVANAGARI, G_UNICODE_SCRIPT_DEVANAGARI, G_UNICODE_SCRIPT_DEVANAGARI, - G_UNICODE_SCRIPT_DEVANAGARI, G_UNICODE_SCRIPT_DEVANAGARI, G_UNICODE_SCRIPT_DEVANAGARI, - G_UNICODE_SCRIPT_DEVANAGARI, G_UNICODE_SCRIPT_DEVANAGARI, G_UNICODE_SCRIPT_DEVANAGARI, - G_UNICODE_SCRIPT_DEVANAGARI, G_UNICODE_SCRIPT_COMMON, G_UNICODE_SCRIPT_COMMON, - G_UNICODE_SCRIPT_DEVANAGARI, G_UNICODE_SCRIPT_DEVANAGARI, G_UNICODE_SCRIPT_DEVANAGARI, - G_UNICODE_SCRIPT_DEVANAGARI, G_UNICODE_SCRIPT_DEVANAGARI, G_UNICODE_SCRIPT_DEVANAGARI, - G_UNICODE_SCRIPT_DEVANAGARI, G_UNICODE_SCRIPT_DEVANAGARI, G_UNICODE_SCRIPT_DEVANAGARI, - G_UNICODE_SCRIPT_DEVANAGARI, G_UNICODE_SCRIPT_COMMON, G_UNICODE_SCRIPT_DEVANAGARI, - G_UNICODE_SCRIPT_DEVANAGARI, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_DEVANAGARI, G_UNICODE_SCRIPT_DEVANAGARI, G_UNICODE_SCRIPT_DEVANAGARI, - G_UNICODE_SCRIPT_DEVANAGARI, G_UNICODE_SCRIPT_DEVANAGARI, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_BENGALI, G_UNICODE_SCRIPT_BENGALI, G_UNICODE_SCRIPT_BENGALI, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_BENGALI, G_UNICODE_SCRIPT_BENGALI, - G_UNICODE_SCRIPT_BENGALI, G_UNICODE_SCRIPT_BENGALI, G_UNICODE_SCRIPT_BENGALI, - G_UNICODE_SCRIPT_BENGALI, G_UNICODE_SCRIPT_BENGALI, G_UNICODE_SCRIPT_BENGALI, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_BENGALI, - G_UNICODE_SCRIPT_BENGALI, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_BENGALI, G_UNICODE_SCRIPT_BENGALI, G_UNICODE_SCRIPT_BENGALI, - G_UNICODE_SCRIPT_BENGALI, G_UNICODE_SCRIPT_BENGALI, G_UNICODE_SCRIPT_BENGALI, - G_UNICODE_SCRIPT_BENGALI, G_UNICODE_SCRIPT_BENGALI, G_UNICODE_SCRIPT_BENGALI, - G_UNICODE_SCRIPT_BENGALI, G_UNICODE_SCRIPT_BENGALI, G_UNICODE_SCRIPT_BENGALI, - G_UNICODE_SCRIPT_BENGALI, G_UNICODE_SCRIPT_BENGALI, G_UNICODE_SCRIPT_BENGALI, - G_UNICODE_SCRIPT_BENGALI, G_UNICODE_SCRIPT_BENGALI, G_UNICODE_SCRIPT_BENGALI, - G_UNICODE_SCRIPT_BENGALI, G_UNICODE_SCRIPT_BENGALI, G_UNICODE_SCRIPT_BENGALI, - G_UNICODE_SCRIPT_BENGALI, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_BENGALI, - G_UNICODE_SCRIPT_BENGALI, G_UNICODE_SCRIPT_BENGALI, G_UNICODE_SCRIPT_BENGALI, - G_UNICODE_SCRIPT_BENGALI, G_UNICODE_SCRIPT_BENGALI, G_UNICODE_SCRIPT_BENGALI, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_BENGALI, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_BENGALI, - G_UNICODE_SCRIPT_BENGALI, G_UNICODE_SCRIPT_BENGALI, G_UNICODE_SCRIPT_BENGALI, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_BENGALI, - G_UNICODE_SCRIPT_BENGALI, G_UNICODE_SCRIPT_BENGALI, G_UNICODE_SCRIPT_BENGALI, - G_UNICODE_SCRIPT_BENGALI, G_UNICODE_SCRIPT_BENGALI, G_UNICODE_SCRIPT_BENGALI, - G_UNICODE_SCRIPT_BENGALI, G_UNICODE_SCRIPT_BENGALI, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_BENGALI, G_UNICODE_SCRIPT_BENGALI, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_BENGALI, - G_UNICODE_SCRIPT_BENGALI, G_UNICODE_SCRIPT_BENGALI, G_UNICODE_SCRIPT_BENGALI, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_BENGALI, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_BENGALI, G_UNICODE_SCRIPT_BENGALI, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_BENGALI, G_UNICODE_SCRIPT_BENGALI, - G_UNICODE_SCRIPT_BENGALI, G_UNICODE_SCRIPT_BENGALI, G_UNICODE_SCRIPT_BENGALI, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_BENGALI, - G_UNICODE_SCRIPT_BENGALI, G_UNICODE_SCRIPT_BENGALI, G_UNICODE_SCRIPT_BENGALI, - G_UNICODE_SCRIPT_BENGALI, G_UNICODE_SCRIPT_BENGALI, G_UNICODE_SCRIPT_BENGALI, - G_UNICODE_SCRIPT_BENGALI, G_UNICODE_SCRIPT_BENGALI, G_UNICODE_SCRIPT_BENGALI, - G_UNICODE_SCRIPT_BENGALI, G_UNICODE_SCRIPT_BENGALI, G_UNICODE_SCRIPT_BENGALI, - G_UNICODE_SCRIPT_BENGALI, G_UNICODE_SCRIPT_BENGALI, G_UNICODE_SCRIPT_BENGALI, - G_UNICODE_SCRIPT_BENGALI, G_UNICODE_SCRIPT_BENGALI, G_UNICODE_SCRIPT_BENGALI, - G_UNICODE_SCRIPT_BENGALI, G_UNICODE_SCRIPT_BENGALI, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_GURMUKHI, - G_UNICODE_SCRIPT_GURMUKHI, G_UNICODE_SCRIPT_GURMUKHI, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_GURMUKHI, G_UNICODE_SCRIPT_GURMUKHI, G_UNICODE_SCRIPT_GURMUKHI, - G_UNICODE_SCRIPT_GURMUKHI, G_UNICODE_SCRIPT_GURMUKHI, G_UNICODE_SCRIPT_GURMUKHI, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_GURMUKHI, G_UNICODE_SCRIPT_GURMUKHI, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_GURMUKHI, - G_UNICODE_SCRIPT_GURMUKHI, G_UNICODE_SCRIPT_GURMUKHI, G_UNICODE_SCRIPT_GURMUKHI, - G_UNICODE_SCRIPT_GURMUKHI, G_UNICODE_SCRIPT_GURMUKHI, G_UNICODE_SCRIPT_GURMUKHI, - G_UNICODE_SCRIPT_GURMUKHI, G_UNICODE_SCRIPT_GURMUKHI, G_UNICODE_SCRIPT_GURMUKHI, - G_UNICODE_SCRIPT_GURMUKHI, G_UNICODE_SCRIPT_GURMUKHI, G_UNICODE_SCRIPT_GURMUKHI, - G_UNICODE_SCRIPT_GURMUKHI, G_UNICODE_SCRIPT_GURMUKHI, G_UNICODE_SCRIPT_GURMUKHI, - G_UNICODE_SCRIPT_GURMUKHI, G_UNICODE_SCRIPT_GURMUKHI, G_UNICODE_SCRIPT_GURMUKHI, - G_UNICODE_SCRIPT_GURMUKHI, G_UNICODE_SCRIPT_GURMUKHI, G_UNICODE_SCRIPT_GURMUKHI, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_GURMUKHI, G_UNICODE_SCRIPT_GURMUKHI, - G_UNICODE_SCRIPT_GURMUKHI, G_UNICODE_SCRIPT_GURMUKHI, G_UNICODE_SCRIPT_GURMUKHI, - G_UNICODE_SCRIPT_GURMUKHI, G_UNICODE_SCRIPT_GURMUKHI, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_GURMUKHI, G_UNICODE_SCRIPT_GURMUKHI, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_GURMUKHI, G_UNICODE_SCRIPT_GURMUKHI, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_GURMUKHI, G_UNICODE_SCRIPT_GURMUKHI, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_GURMUKHI, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_GURMUKHI, G_UNICODE_SCRIPT_GURMUKHI, G_UNICODE_SCRIPT_GURMUKHI, - G_UNICODE_SCRIPT_GURMUKHI, G_UNICODE_SCRIPT_GURMUKHI, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_GURMUKHI, G_UNICODE_SCRIPT_GURMUKHI, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_GURMUKHI, G_UNICODE_SCRIPT_GURMUKHI, - G_UNICODE_SCRIPT_GURMUKHI, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_GURMUKHI, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_GURMUKHI, G_UNICODE_SCRIPT_GURMUKHI, G_UNICODE_SCRIPT_GURMUKHI, - G_UNICODE_SCRIPT_GURMUKHI, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_GURMUKHI, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_GURMUKHI, G_UNICODE_SCRIPT_GURMUKHI, - G_UNICODE_SCRIPT_GURMUKHI, G_UNICODE_SCRIPT_GURMUKHI, G_UNICODE_SCRIPT_GURMUKHI, - G_UNICODE_SCRIPT_GURMUKHI, G_UNICODE_SCRIPT_GURMUKHI, G_UNICODE_SCRIPT_GURMUKHI, - G_UNICODE_SCRIPT_GURMUKHI, G_UNICODE_SCRIPT_GURMUKHI, G_UNICODE_SCRIPT_GURMUKHI, - G_UNICODE_SCRIPT_GURMUKHI, G_UNICODE_SCRIPT_GURMUKHI, G_UNICODE_SCRIPT_GURMUKHI, - G_UNICODE_SCRIPT_GURMUKHI, G_UNICODE_SCRIPT_GURMUKHI, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_GUJARATI, G_UNICODE_SCRIPT_GUJARATI, - G_UNICODE_SCRIPT_GUJARATI, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_GUJARATI, - G_UNICODE_SCRIPT_GUJARATI, G_UNICODE_SCRIPT_GUJARATI, G_UNICODE_SCRIPT_GUJARATI, - G_UNICODE_SCRIPT_GUJARATI, G_UNICODE_SCRIPT_GUJARATI, G_UNICODE_SCRIPT_GUJARATI, - G_UNICODE_SCRIPT_GUJARATI, G_UNICODE_SCRIPT_GUJARATI, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_GUJARATI, G_UNICODE_SCRIPT_GUJARATI, G_UNICODE_SCRIPT_GUJARATI, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_GUJARATI, G_UNICODE_SCRIPT_GUJARATI, - G_UNICODE_SCRIPT_GUJARATI, G_UNICODE_SCRIPT_GUJARATI, G_UNICODE_SCRIPT_GUJARATI, - G_UNICODE_SCRIPT_GUJARATI, G_UNICODE_SCRIPT_GUJARATI, G_UNICODE_SCRIPT_GUJARATI, - G_UNICODE_SCRIPT_GUJARATI, G_UNICODE_SCRIPT_GUJARATI, G_UNICODE_SCRIPT_GUJARATI, - G_UNICODE_SCRIPT_GUJARATI, G_UNICODE_SCRIPT_GUJARATI, G_UNICODE_SCRIPT_GUJARATI, - G_UNICODE_SCRIPT_GUJARATI, G_UNICODE_SCRIPT_GUJARATI, G_UNICODE_SCRIPT_GUJARATI, - G_UNICODE_SCRIPT_GUJARATI, G_UNICODE_SCRIPT_GUJARATI, G_UNICODE_SCRIPT_GUJARATI, - G_UNICODE_SCRIPT_GUJARATI, G_UNICODE_SCRIPT_GUJARATI, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_GUJARATI, G_UNICODE_SCRIPT_GUJARATI, G_UNICODE_SCRIPT_GUJARATI, - G_UNICODE_SCRIPT_GUJARATI, G_UNICODE_SCRIPT_GUJARATI, G_UNICODE_SCRIPT_GUJARATI, - G_UNICODE_SCRIPT_GUJARATI, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_GUJARATI, - G_UNICODE_SCRIPT_GUJARATI, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_GUJARATI, - G_UNICODE_SCRIPT_GUJARATI, G_UNICODE_SCRIPT_GUJARATI, G_UNICODE_SCRIPT_GUJARATI, - G_UNICODE_SCRIPT_GUJARATI, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_GUJARATI, G_UNICODE_SCRIPT_GUJARATI, G_UNICODE_SCRIPT_GUJARATI, - G_UNICODE_SCRIPT_GUJARATI, G_UNICODE_SCRIPT_GUJARATI, G_UNICODE_SCRIPT_GUJARATI, - G_UNICODE_SCRIPT_GUJARATI, G_UNICODE_SCRIPT_GUJARATI, G_UNICODE_SCRIPT_GUJARATI, - G_UNICODE_SCRIPT_GUJARATI, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_GUJARATI, - G_UNICODE_SCRIPT_GUJARATI, G_UNICODE_SCRIPT_GUJARATI, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_GUJARATI, G_UNICODE_SCRIPT_GUJARATI, G_UNICODE_SCRIPT_GUJARATI, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_GUJARATI, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_GUJARATI, G_UNICODE_SCRIPT_GUJARATI, G_UNICODE_SCRIPT_GUJARATI, - G_UNICODE_SCRIPT_GUJARATI, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_GUJARATI, G_UNICODE_SCRIPT_GUJARATI, G_UNICODE_SCRIPT_GUJARATI, - G_UNICODE_SCRIPT_GUJARATI, G_UNICODE_SCRIPT_GUJARATI, G_UNICODE_SCRIPT_GUJARATI, - G_UNICODE_SCRIPT_GUJARATI, G_UNICODE_SCRIPT_GUJARATI, G_UNICODE_SCRIPT_GUJARATI, - G_UNICODE_SCRIPT_GUJARATI, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_GUJARATI, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_ORIYA, G_UNICODE_SCRIPT_ORIYA, G_UNICODE_SCRIPT_ORIYA, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_ORIYA, G_UNICODE_SCRIPT_ORIYA, - G_UNICODE_SCRIPT_ORIYA, G_UNICODE_SCRIPT_ORIYA, G_UNICODE_SCRIPT_ORIYA, - G_UNICODE_SCRIPT_ORIYA, G_UNICODE_SCRIPT_ORIYA, G_UNICODE_SCRIPT_ORIYA, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_ORIYA, - G_UNICODE_SCRIPT_ORIYA, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_ORIYA, G_UNICODE_SCRIPT_ORIYA, G_UNICODE_SCRIPT_ORIYA, - G_UNICODE_SCRIPT_ORIYA, G_UNICODE_SCRIPT_ORIYA, G_UNICODE_SCRIPT_ORIYA, - G_UNICODE_SCRIPT_ORIYA, G_UNICODE_SCRIPT_ORIYA, G_UNICODE_SCRIPT_ORIYA, - G_UNICODE_SCRIPT_ORIYA, G_UNICODE_SCRIPT_ORIYA, G_UNICODE_SCRIPT_ORIYA, - G_UNICODE_SCRIPT_ORIYA, G_UNICODE_SCRIPT_ORIYA, G_UNICODE_SCRIPT_ORIYA, - G_UNICODE_SCRIPT_ORIYA, G_UNICODE_SCRIPT_ORIYA, G_UNICODE_SCRIPT_ORIYA, - G_UNICODE_SCRIPT_ORIYA, G_UNICODE_SCRIPT_ORIYA, G_UNICODE_SCRIPT_ORIYA, - G_UNICODE_SCRIPT_ORIYA, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_ORIYA, - G_UNICODE_SCRIPT_ORIYA, G_UNICODE_SCRIPT_ORIYA, G_UNICODE_SCRIPT_ORIYA, - G_UNICODE_SCRIPT_ORIYA, G_UNICODE_SCRIPT_ORIYA, G_UNICODE_SCRIPT_ORIYA, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_ORIYA, G_UNICODE_SCRIPT_ORIYA, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_ORIYA, G_UNICODE_SCRIPT_ORIYA, - G_UNICODE_SCRIPT_ORIYA, G_UNICODE_SCRIPT_ORIYA, G_UNICODE_SCRIPT_ORIYA, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_ORIYA, - G_UNICODE_SCRIPT_ORIYA, G_UNICODE_SCRIPT_ORIYA, G_UNICODE_SCRIPT_ORIYA, - G_UNICODE_SCRIPT_ORIYA, G_UNICODE_SCRIPT_ORIYA, G_UNICODE_SCRIPT_ORIYA, - G_UNICODE_SCRIPT_ORIYA, G_UNICODE_SCRIPT_ORIYA, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_ORIYA, G_UNICODE_SCRIPT_ORIYA, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_ORIYA, - G_UNICODE_SCRIPT_ORIYA, G_UNICODE_SCRIPT_ORIYA, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_ORIYA, G_UNICODE_SCRIPT_ORIYA, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_ORIYA, G_UNICODE_SCRIPT_ORIYA, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_ORIYA, G_UNICODE_SCRIPT_ORIYA, - G_UNICODE_SCRIPT_ORIYA, G_UNICODE_SCRIPT_ORIYA, G_UNICODE_SCRIPT_ORIYA, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_ORIYA, - G_UNICODE_SCRIPT_ORIYA, G_UNICODE_SCRIPT_ORIYA, G_UNICODE_SCRIPT_ORIYA, - G_UNICODE_SCRIPT_ORIYA, G_UNICODE_SCRIPT_ORIYA, G_UNICODE_SCRIPT_ORIYA, - G_UNICODE_SCRIPT_ORIYA, G_UNICODE_SCRIPT_ORIYA, G_UNICODE_SCRIPT_ORIYA, - G_UNICODE_SCRIPT_ORIYA, G_UNICODE_SCRIPT_ORIYA, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_TAMIL, G_UNICODE_SCRIPT_TAMIL, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_TAMIL, G_UNICODE_SCRIPT_TAMIL, G_UNICODE_SCRIPT_TAMIL, - G_UNICODE_SCRIPT_TAMIL, G_UNICODE_SCRIPT_TAMIL, G_UNICODE_SCRIPT_TAMIL, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_TAMIL, G_UNICODE_SCRIPT_TAMIL, G_UNICODE_SCRIPT_TAMIL, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_TAMIL, G_UNICODE_SCRIPT_TAMIL, - G_UNICODE_SCRIPT_TAMIL, G_UNICODE_SCRIPT_TAMIL, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_TAMIL, - G_UNICODE_SCRIPT_TAMIL, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_TAMIL, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_TAMIL, G_UNICODE_SCRIPT_TAMIL, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_TAMIL, G_UNICODE_SCRIPT_TAMIL, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_TAMIL, - G_UNICODE_SCRIPT_TAMIL, G_UNICODE_SCRIPT_TAMIL, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_TAMIL, - G_UNICODE_SCRIPT_TAMIL, G_UNICODE_SCRIPT_TAMIL, G_UNICODE_SCRIPT_TAMIL, - G_UNICODE_SCRIPT_TAMIL, G_UNICODE_SCRIPT_TAMIL, G_UNICODE_SCRIPT_TAMIL, - G_UNICODE_SCRIPT_TAMIL, G_UNICODE_SCRIPT_TAMIL, G_UNICODE_SCRIPT_TAMIL, - G_UNICODE_SCRIPT_TAMIL, G_UNICODE_SCRIPT_TAMIL, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_TAMIL, G_UNICODE_SCRIPT_TAMIL, G_UNICODE_SCRIPT_TAMIL, - G_UNICODE_SCRIPT_TAMIL, G_UNICODE_SCRIPT_TAMIL, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_TAMIL, - G_UNICODE_SCRIPT_TAMIL, G_UNICODE_SCRIPT_TAMIL, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_TAMIL, G_UNICODE_SCRIPT_TAMIL, G_UNICODE_SCRIPT_TAMIL, - G_UNICODE_SCRIPT_TAMIL, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_TAMIL, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_TAMIL, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_TAMIL, G_UNICODE_SCRIPT_TAMIL, - G_UNICODE_SCRIPT_TAMIL, G_UNICODE_SCRIPT_TAMIL, G_UNICODE_SCRIPT_TAMIL, - G_UNICODE_SCRIPT_TAMIL, G_UNICODE_SCRIPT_TAMIL, G_UNICODE_SCRIPT_TAMIL, - G_UNICODE_SCRIPT_TAMIL, G_UNICODE_SCRIPT_TAMIL, G_UNICODE_SCRIPT_TAMIL, - G_UNICODE_SCRIPT_TAMIL, G_UNICODE_SCRIPT_TAMIL, G_UNICODE_SCRIPT_TAMIL, - G_UNICODE_SCRIPT_TAMIL, G_UNICODE_SCRIPT_TAMIL, G_UNICODE_SCRIPT_TAMIL, - G_UNICODE_SCRIPT_TAMIL, G_UNICODE_SCRIPT_TAMIL, G_UNICODE_SCRIPT_TAMIL, - G_UNICODE_SCRIPT_TAMIL, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_TELUGU, G_UNICODE_SCRIPT_TELUGU, - G_UNICODE_SCRIPT_TELUGU, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_TELUGU, - G_UNICODE_SCRIPT_TELUGU, G_UNICODE_SCRIPT_TELUGU, G_UNICODE_SCRIPT_TELUGU, - G_UNICODE_SCRIPT_TELUGU, G_UNICODE_SCRIPT_TELUGU, G_UNICODE_SCRIPT_TELUGU, - G_UNICODE_SCRIPT_TELUGU, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_TELUGU, - G_UNICODE_SCRIPT_TELUGU, G_UNICODE_SCRIPT_TELUGU, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_TELUGU, G_UNICODE_SCRIPT_TELUGU, G_UNICODE_SCRIPT_TELUGU, - G_UNICODE_SCRIPT_TELUGU, G_UNICODE_SCRIPT_TELUGU, G_UNICODE_SCRIPT_TELUGU, - G_UNICODE_SCRIPT_TELUGU, G_UNICODE_SCRIPT_TELUGU, G_UNICODE_SCRIPT_TELUGU, - G_UNICODE_SCRIPT_TELUGU, G_UNICODE_SCRIPT_TELUGU, G_UNICODE_SCRIPT_TELUGU, - G_UNICODE_SCRIPT_TELUGU, G_UNICODE_SCRIPT_TELUGU, G_UNICODE_SCRIPT_TELUGU, - G_UNICODE_SCRIPT_TELUGU, G_UNICODE_SCRIPT_TELUGU, G_UNICODE_SCRIPT_TELUGU, - G_UNICODE_SCRIPT_TELUGU, G_UNICODE_SCRIPT_TELUGU, G_UNICODE_SCRIPT_TELUGU, - G_UNICODE_SCRIPT_TELUGU, G_UNICODE_SCRIPT_TELUGU, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_TELUGU, G_UNICODE_SCRIPT_TELUGU, G_UNICODE_SCRIPT_TELUGU, - G_UNICODE_SCRIPT_TELUGU, G_UNICODE_SCRIPT_TELUGU, G_UNICODE_SCRIPT_TELUGU, - G_UNICODE_SCRIPT_TELUGU, G_UNICODE_SCRIPT_TELUGU, G_UNICODE_SCRIPT_TELUGU, - G_UNICODE_SCRIPT_TELUGU, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_TELUGU, - G_UNICODE_SCRIPT_TELUGU, G_UNICODE_SCRIPT_TELUGU, G_UNICODE_SCRIPT_TELUGU, - G_UNICODE_SCRIPT_TELUGU, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_TELUGU, G_UNICODE_SCRIPT_TELUGU, - G_UNICODE_SCRIPT_TELUGU, G_UNICODE_SCRIPT_TELUGU, G_UNICODE_SCRIPT_TELUGU, - G_UNICODE_SCRIPT_TELUGU, G_UNICODE_SCRIPT_TELUGU, G_UNICODE_SCRIPT_TELUGU, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_TELUGU, G_UNICODE_SCRIPT_TELUGU, - G_UNICODE_SCRIPT_TELUGU, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_TELUGU, - G_UNICODE_SCRIPT_TELUGU, G_UNICODE_SCRIPT_TELUGU, G_UNICODE_SCRIPT_TELUGU, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_TELUGU, G_UNICODE_SCRIPT_TELUGU, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_TELUGU, G_UNICODE_SCRIPT_TELUGU, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_TELUGU, G_UNICODE_SCRIPT_TELUGU, G_UNICODE_SCRIPT_TELUGU, - G_UNICODE_SCRIPT_TELUGU, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_TELUGU, G_UNICODE_SCRIPT_TELUGU, G_UNICODE_SCRIPT_TELUGU, - G_UNICODE_SCRIPT_TELUGU, G_UNICODE_SCRIPT_TELUGU, G_UNICODE_SCRIPT_TELUGU, - G_UNICODE_SCRIPT_TELUGU, G_UNICODE_SCRIPT_TELUGU, G_UNICODE_SCRIPT_TELUGU, - G_UNICODE_SCRIPT_TELUGU, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_TELUGU, G_UNICODE_SCRIPT_TELUGU, G_UNICODE_SCRIPT_TELUGU, - G_UNICODE_SCRIPT_TELUGU, G_UNICODE_SCRIPT_TELUGU, G_UNICODE_SCRIPT_TELUGU, - G_UNICODE_SCRIPT_TELUGU, G_UNICODE_SCRIPT_TELUGU, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_KANNADA, G_UNICODE_SCRIPT_KANNADA, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_KANNADA, G_UNICODE_SCRIPT_KANNADA, - G_UNICODE_SCRIPT_KANNADA, G_UNICODE_SCRIPT_KANNADA, G_UNICODE_SCRIPT_KANNADA, - G_UNICODE_SCRIPT_KANNADA, G_UNICODE_SCRIPT_KANNADA, G_UNICODE_SCRIPT_KANNADA, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_KANNADA, G_UNICODE_SCRIPT_KANNADA, - G_UNICODE_SCRIPT_KANNADA, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_KANNADA, - G_UNICODE_SCRIPT_KANNADA, G_UNICODE_SCRIPT_KANNADA, G_UNICODE_SCRIPT_KANNADA, - G_UNICODE_SCRIPT_KANNADA, G_UNICODE_SCRIPT_KANNADA, G_UNICODE_SCRIPT_KANNADA, - G_UNICODE_SCRIPT_KANNADA, G_UNICODE_SCRIPT_KANNADA, G_UNICODE_SCRIPT_KANNADA, - G_UNICODE_SCRIPT_KANNADA, G_UNICODE_SCRIPT_KANNADA, G_UNICODE_SCRIPT_KANNADA, - G_UNICODE_SCRIPT_KANNADA, G_UNICODE_SCRIPT_KANNADA, G_UNICODE_SCRIPT_KANNADA, - G_UNICODE_SCRIPT_KANNADA, G_UNICODE_SCRIPT_KANNADA, G_UNICODE_SCRIPT_KANNADA, - G_UNICODE_SCRIPT_KANNADA, G_UNICODE_SCRIPT_KANNADA, G_UNICODE_SCRIPT_KANNADA, - G_UNICODE_SCRIPT_KANNADA, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_KANNADA, - G_UNICODE_SCRIPT_KANNADA, G_UNICODE_SCRIPT_KANNADA, G_UNICODE_SCRIPT_KANNADA, - G_UNICODE_SCRIPT_KANNADA, G_UNICODE_SCRIPT_KANNADA, G_UNICODE_SCRIPT_KANNADA, - G_UNICODE_SCRIPT_KANNADA, G_UNICODE_SCRIPT_KANNADA, G_UNICODE_SCRIPT_KANNADA, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_KANNADA, G_UNICODE_SCRIPT_KANNADA, - G_UNICODE_SCRIPT_KANNADA, G_UNICODE_SCRIPT_KANNADA, G_UNICODE_SCRIPT_KANNADA, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_KANNADA, - G_UNICODE_SCRIPT_KANNADA, G_UNICODE_SCRIPT_KANNADA, G_UNICODE_SCRIPT_KANNADA, - G_UNICODE_SCRIPT_KANNADA, G_UNICODE_SCRIPT_KANNADA, G_UNICODE_SCRIPT_KANNADA, - G_UNICODE_SCRIPT_KANNADA, G_UNICODE_SCRIPT_KANNADA, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_KANNADA, G_UNICODE_SCRIPT_KANNADA, G_UNICODE_SCRIPT_KANNADA, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_KANNADA, G_UNICODE_SCRIPT_KANNADA, - G_UNICODE_SCRIPT_KANNADA, G_UNICODE_SCRIPT_KANNADA, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_KANNADA, G_UNICODE_SCRIPT_KANNADA, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_KANNADA, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_KANNADA, - G_UNICODE_SCRIPT_KANNADA, G_UNICODE_SCRIPT_KANNADA, G_UNICODE_SCRIPT_KANNADA, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_KANNADA, - G_UNICODE_SCRIPT_KANNADA, G_UNICODE_SCRIPT_KANNADA, G_UNICODE_SCRIPT_KANNADA, - G_UNICODE_SCRIPT_KANNADA, G_UNICODE_SCRIPT_KANNADA, G_UNICODE_SCRIPT_KANNADA, - G_UNICODE_SCRIPT_KANNADA, G_UNICODE_SCRIPT_KANNADA, G_UNICODE_SCRIPT_KANNADA, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_COMMON, G_UNICODE_SCRIPT_COMMON, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_MALAYALAM, G_UNICODE_SCRIPT_MALAYALAM, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_MALAYALAM, G_UNICODE_SCRIPT_MALAYALAM, G_UNICODE_SCRIPT_MALAYALAM, - G_UNICODE_SCRIPT_MALAYALAM, G_UNICODE_SCRIPT_MALAYALAM, G_UNICODE_SCRIPT_MALAYALAM, - G_UNICODE_SCRIPT_MALAYALAM, G_UNICODE_SCRIPT_MALAYALAM, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_MALAYALAM, G_UNICODE_SCRIPT_MALAYALAM, G_UNICODE_SCRIPT_MALAYALAM, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_MALAYALAM, G_UNICODE_SCRIPT_MALAYALAM, - G_UNICODE_SCRIPT_MALAYALAM, G_UNICODE_SCRIPT_MALAYALAM, G_UNICODE_SCRIPT_MALAYALAM, - G_UNICODE_SCRIPT_MALAYALAM, G_UNICODE_SCRIPT_MALAYALAM, G_UNICODE_SCRIPT_MALAYALAM, - G_UNICODE_SCRIPT_MALAYALAM, G_UNICODE_SCRIPT_MALAYALAM, G_UNICODE_SCRIPT_MALAYALAM, - G_UNICODE_SCRIPT_MALAYALAM, G_UNICODE_SCRIPT_MALAYALAM, G_UNICODE_SCRIPT_MALAYALAM, - G_UNICODE_SCRIPT_MALAYALAM, G_UNICODE_SCRIPT_MALAYALAM, G_UNICODE_SCRIPT_MALAYALAM, - G_UNICODE_SCRIPT_MALAYALAM, G_UNICODE_SCRIPT_MALAYALAM, G_UNICODE_SCRIPT_MALAYALAM, - G_UNICODE_SCRIPT_MALAYALAM, G_UNICODE_SCRIPT_MALAYALAM, G_UNICODE_SCRIPT_MALAYALAM, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_MALAYALAM, G_UNICODE_SCRIPT_MALAYALAM, - G_UNICODE_SCRIPT_MALAYALAM, G_UNICODE_SCRIPT_MALAYALAM, G_UNICODE_SCRIPT_MALAYALAM, - G_UNICODE_SCRIPT_MALAYALAM, G_UNICODE_SCRIPT_MALAYALAM, G_UNICODE_SCRIPT_MALAYALAM, - G_UNICODE_SCRIPT_MALAYALAM, G_UNICODE_SCRIPT_MALAYALAM, G_UNICODE_SCRIPT_MALAYALAM, - G_UNICODE_SCRIPT_MALAYALAM, G_UNICODE_SCRIPT_MALAYALAM, G_UNICODE_SCRIPT_MALAYALAM, - G_UNICODE_SCRIPT_MALAYALAM, G_UNICODE_SCRIPT_MALAYALAM, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_MALAYALAM, - G_UNICODE_SCRIPT_MALAYALAM, G_UNICODE_SCRIPT_MALAYALAM, G_UNICODE_SCRIPT_MALAYALAM, - G_UNICODE_SCRIPT_MALAYALAM, G_UNICODE_SCRIPT_MALAYALAM, G_UNICODE_SCRIPT_MALAYALAM, - G_UNICODE_SCRIPT_MALAYALAM, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_MALAYALAM, - G_UNICODE_SCRIPT_MALAYALAM, G_UNICODE_SCRIPT_MALAYALAM, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_MALAYALAM, G_UNICODE_SCRIPT_MALAYALAM, G_UNICODE_SCRIPT_MALAYALAM, - G_UNICODE_SCRIPT_MALAYALAM, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_MALAYALAM, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_MALAYALAM, G_UNICODE_SCRIPT_MALAYALAM, - G_UNICODE_SCRIPT_MALAYALAM, G_UNICODE_SCRIPT_MALAYALAM, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_MALAYALAM, G_UNICODE_SCRIPT_MALAYALAM, - G_UNICODE_SCRIPT_MALAYALAM, G_UNICODE_SCRIPT_MALAYALAM, G_UNICODE_SCRIPT_MALAYALAM, - G_UNICODE_SCRIPT_MALAYALAM, G_UNICODE_SCRIPT_MALAYALAM, G_UNICODE_SCRIPT_MALAYALAM, - G_UNICODE_SCRIPT_MALAYALAM, G_UNICODE_SCRIPT_MALAYALAM, G_UNICODE_SCRIPT_MALAYALAM, - G_UNICODE_SCRIPT_MALAYALAM, G_UNICODE_SCRIPT_MALAYALAM, G_UNICODE_SCRIPT_MALAYALAM, - G_UNICODE_SCRIPT_MALAYALAM, G_UNICODE_SCRIPT_MALAYALAM, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_MALAYALAM, - G_UNICODE_SCRIPT_MALAYALAM, G_UNICODE_SCRIPT_MALAYALAM, G_UNICODE_SCRIPT_MALAYALAM, - G_UNICODE_SCRIPT_MALAYALAM, G_UNICODE_SCRIPT_MALAYALAM, G_UNICODE_SCRIPT_MALAYALAM, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_SINHALA, - G_UNICODE_SCRIPT_SINHALA, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_SINHALA, - G_UNICODE_SCRIPT_SINHALA, G_UNICODE_SCRIPT_SINHALA, G_UNICODE_SCRIPT_SINHALA, - G_UNICODE_SCRIPT_SINHALA, G_UNICODE_SCRIPT_SINHALA, G_UNICODE_SCRIPT_SINHALA, - G_UNICODE_SCRIPT_SINHALA, G_UNICODE_SCRIPT_SINHALA, G_UNICODE_SCRIPT_SINHALA, - G_UNICODE_SCRIPT_SINHALA, G_UNICODE_SCRIPT_SINHALA, G_UNICODE_SCRIPT_SINHALA, - G_UNICODE_SCRIPT_SINHALA, G_UNICODE_SCRIPT_SINHALA, G_UNICODE_SCRIPT_SINHALA, - G_UNICODE_SCRIPT_SINHALA, G_UNICODE_SCRIPT_SINHALA, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_SINHALA, - G_UNICODE_SCRIPT_SINHALA, G_UNICODE_SCRIPT_SINHALA, G_UNICODE_SCRIPT_SINHALA, - G_UNICODE_SCRIPT_SINHALA, G_UNICODE_SCRIPT_SINHALA, G_UNICODE_SCRIPT_SINHALA, - G_UNICODE_SCRIPT_SINHALA, G_UNICODE_SCRIPT_SINHALA, G_UNICODE_SCRIPT_SINHALA, - G_UNICODE_SCRIPT_SINHALA, G_UNICODE_SCRIPT_SINHALA, G_UNICODE_SCRIPT_SINHALA, - G_UNICODE_SCRIPT_SINHALA, G_UNICODE_SCRIPT_SINHALA, G_UNICODE_SCRIPT_SINHALA, - G_UNICODE_SCRIPT_SINHALA, G_UNICODE_SCRIPT_SINHALA, G_UNICODE_SCRIPT_SINHALA, - G_UNICODE_SCRIPT_SINHALA, G_UNICODE_SCRIPT_SINHALA, G_UNICODE_SCRIPT_SINHALA, - G_UNICODE_SCRIPT_SINHALA, G_UNICODE_SCRIPT_SINHALA, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_SINHALA, G_UNICODE_SCRIPT_SINHALA, G_UNICODE_SCRIPT_SINHALA, - G_UNICODE_SCRIPT_SINHALA, G_UNICODE_SCRIPT_SINHALA, G_UNICODE_SCRIPT_SINHALA, - G_UNICODE_SCRIPT_SINHALA, G_UNICODE_SCRIPT_SINHALA, G_UNICODE_SCRIPT_SINHALA, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_SINHALA, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_SINHALA, G_UNICODE_SCRIPT_SINHALA, - G_UNICODE_SCRIPT_SINHALA, G_UNICODE_SCRIPT_SINHALA, G_UNICODE_SCRIPT_SINHALA, - G_UNICODE_SCRIPT_SINHALA, G_UNICODE_SCRIPT_SINHALA, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_SINHALA, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_SINHALA, G_UNICODE_SCRIPT_SINHALA, - G_UNICODE_SCRIPT_SINHALA, G_UNICODE_SCRIPT_SINHALA, G_UNICODE_SCRIPT_SINHALA, - G_UNICODE_SCRIPT_SINHALA, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_SINHALA, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_SINHALA, G_UNICODE_SCRIPT_SINHALA, - G_UNICODE_SCRIPT_SINHALA, G_UNICODE_SCRIPT_SINHALA, G_UNICODE_SCRIPT_SINHALA, - G_UNICODE_SCRIPT_SINHALA, G_UNICODE_SCRIPT_SINHALA, G_UNICODE_SCRIPT_SINHALA, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_SINHALA, G_UNICODE_SCRIPT_SINHALA, G_UNICODE_SCRIPT_SINHALA, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_THAI, G_UNICODE_SCRIPT_THAI, G_UNICODE_SCRIPT_THAI, - G_UNICODE_SCRIPT_THAI, G_UNICODE_SCRIPT_THAI, G_UNICODE_SCRIPT_THAI, - G_UNICODE_SCRIPT_THAI, G_UNICODE_SCRIPT_THAI, G_UNICODE_SCRIPT_THAI, - G_UNICODE_SCRIPT_THAI, G_UNICODE_SCRIPT_THAI, G_UNICODE_SCRIPT_THAI, - G_UNICODE_SCRIPT_THAI, G_UNICODE_SCRIPT_THAI, G_UNICODE_SCRIPT_THAI, - G_UNICODE_SCRIPT_THAI, G_UNICODE_SCRIPT_THAI, G_UNICODE_SCRIPT_THAI, - G_UNICODE_SCRIPT_THAI, G_UNICODE_SCRIPT_THAI, G_UNICODE_SCRIPT_THAI, - G_UNICODE_SCRIPT_THAI, G_UNICODE_SCRIPT_THAI, G_UNICODE_SCRIPT_THAI, - G_UNICODE_SCRIPT_THAI, G_UNICODE_SCRIPT_THAI, G_UNICODE_SCRIPT_THAI, - G_UNICODE_SCRIPT_THAI, G_UNICODE_SCRIPT_THAI, G_UNICODE_SCRIPT_THAI, - G_UNICODE_SCRIPT_THAI, G_UNICODE_SCRIPT_THAI, G_UNICODE_SCRIPT_THAI, - G_UNICODE_SCRIPT_THAI, G_UNICODE_SCRIPT_THAI, G_UNICODE_SCRIPT_THAI, - G_UNICODE_SCRIPT_THAI, G_UNICODE_SCRIPT_THAI, G_UNICODE_SCRIPT_THAI, - G_UNICODE_SCRIPT_THAI, G_UNICODE_SCRIPT_THAI, G_UNICODE_SCRIPT_THAI, - G_UNICODE_SCRIPT_THAI, G_UNICODE_SCRIPT_THAI, G_UNICODE_SCRIPT_THAI, - G_UNICODE_SCRIPT_THAI, G_UNICODE_SCRIPT_THAI, G_UNICODE_SCRIPT_THAI, - G_UNICODE_SCRIPT_THAI, G_UNICODE_SCRIPT_THAI, G_UNICODE_SCRIPT_THAI, - G_UNICODE_SCRIPT_THAI, G_UNICODE_SCRIPT_THAI, G_UNICODE_SCRIPT_THAI, - G_UNICODE_SCRIPT_THAI, G_UNICODE_SCRIPT_THAI, G_UNICODE_SCRIPT_THAI, - G_UNICODE_SCRIPT_THAI, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_COMMON, - G_UNICODE_SCRIPT_THAI, G_UNICODE_SCRIPT_THAI, G_UNICODE_SCRIPT_THAI, - G_UNICODE_SCRIPT_THAI, G_UNICODE_SCRIPT_THAI, G_UNICODE_SCRIPT_THAI, - G_UNICODE_SCRIPT_THAI, G_UNICODE_SCRIPT_THAI, G_UNICODE_SCRIPT_THAI, - G_UNICODE_SCRIPT_THAI, G_UNICODE_SCRIPT_THAI, G_UNICODE_SCRIPT_THAI, - G_UNICODE_SCRIPT_THAI, G_UNICODE_SCRIPT_THAI, G_UNICODE_SCRIPT_THAI, - G_UNICODE_SCRIPT_THAI, G_UNICODE_SCRIPT_THAI, G_UNICODE_SCRIPT_THAI, - G_UNICODE_SCRIPT_THAI, G_UNICODE_SCRIPT_THAI, G_UNICODE_SCRIPT_THAI, - G_UNICODE_SCRIPT_THAI, G_UNICODE_SCRIPT_THAI, G_UNICODE_SCRIPT_THAI, - G_UNICODE_SCRIPT_THAI, G_UNICODE_SCRIPT_THAI, G_UNICODE_SCRIPT_THAI, - G_UNICODE_SCRIPT_THAI, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_LAO, - G_UNICODE_SCRIPT_LAO, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_LAO, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_LAO, - G_UNICODE_SCRIPT_LAO, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_LAO, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_LAO, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_LAO, G_UNICODE_SCRIPT_LAO, G_UNICODE_SCRIPT_LAO, - G_UNICODE_SCRIPT_LAO, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_LAO, - G_UNICODE_SCRIPT_LAO, G_UNICODE_SCRIPT_LAO, G_UNICODE_SCRIPT_LAO, - G_UNICODE_SCRIPT_LAO, G_UNICODE_SCRIPT_LAO, G_UNICODE_SCRIPT_LAO, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_LAO, G_UNICODE_SCRIPT_LAO, - G_UNICODE_SCRIPT_LAO, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_LAO, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_LAO, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_LAO, G_UNICODE_SCRIPT_LAO, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_LAO, G_UNICODE_SCRIPT_LAO, - G_UNICODE_SCRIPT_LAO, G_UNICODE_SCRIPT_LAO, G_UNICODE_SCRIPT_LAO, - G_UNICODE_SCRIPT_LAO, G_UNICODE_SCRIPT_LAO, G_UNICODE_SCRIPT_LAO, - G_UNICODE_SCRIPT_LAO, G_UNICODE_SCRIPT_LAO, G_UNICODE_SCRIPT_LAO, - G_UNICODE_SCRIPT_LAO, G_UNICODE_SCRIPT_LAO, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_LAO, G_UNICODE_SCRIPT_LAO, G_UNICODE_SCRIPT_LAO, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_LAO, - G_UNICODE_SCRIPT_LAO, G_UNICODE_SCRIPT_LAO, G_UNICODE_SCRIPT_LAO, - G_UNICODE_SCRIPT_LAO, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_LAO, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_LAO, G_UNICODE_SCRIPT_LAO, - G_UNICODE_SCRIPT_LAO, G_UNICODE_SCRIPT_LAO, G_UNICODE_SCRIPT_LAO, - G_UNICODE_SCRIPT_LAO, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_LAO, G_UNICODE_SCRIPT_LAO, G_UNICODE_SCRIPT_LAO, - G_UNICODE_SCRIPT_LAO, G_UNICODE_SCRIPT_LAO, G_UNICODE_SCRIPT_LAO, - G_UNICODE_SCRIPT_LAO, G_UNICODE_SCRIPT_LAO, G_UNICODE_SCRIPT_LAO, - G_UNICODE_SCRIPT_LAO, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_LAO, G_UNICODE_SCRIPT_LAO, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_TIBETAN, G_UNICODE_SCRIPT_TIBETAN, G_UNICODE_SCRIPT_TIBETAN, - G_UNICODE_SCRIPT_TIBETAN, G_UNICODE_SCRIPT_TIBETAN, G_UNICODE_SCRIPT_TIBETAN, - G_UNICODE_SCRIPT_TIBETAN, G_UNICODE_SCRIPT_TIBETAN, G_UNICODE_SCRIPT_TIBETAN, - G_UNICODE_SCRIPT_TIBETAN, G_UNICODE_SCRIPT_TIBETAN, G_UNICODE_SCRIPT_TIBETAN, - G_UNICODE_SCRIPT_TIBETAN, G_UNICODE_SCRIPT_TIBETAN, G_UNICODE_SCRIPT_TIBETAN, - G_UNICODE_SCRIPT_TIBETAN, G_UNICODE_SCRIPT_TIBETAN, G_UNICODE_SCRIPT_TIBETAN, - G_UNICODE_SCRIPT_TIBETAN, G_UNICODE_SCRIPT_TIBETAN, G_UNICODE_SCRIPT_TIBETAN, - G_UNICODE_SCRIPT_TIBETAN, G_UNICODE_SCRIPT_TIBETAN, G_UNICODE_SCRIPT_TIBETAN, - G_UNICODE_SCRIPT_TIBETAN, G_UNICODE_SCRIPT_TIBETAN, G_UNICODE_SCRIPT_TIBETAN, - G_UNICODE_SCRIPT_TIBETAN, G_UNICODE_SCRIPT_TIBETAN, G_UNICODE_SCRIPT_TIBETAN, - G_UNICODE_SCRIPT_TIBETAN, G_UNICODE_SCRIPT_TIBETAN, G_UNICODE_SCRIPT_TIBETAN, - G_UNICODE_SCRIPT_TIBETAN, G_UNICODE_SCRIPT_TIBETAN, G_UNICODE_SCRIPT_TIBETAN, - G_UNICODE_SCRIPT_TIBETAN, G_UNICODE_SCRIPT_TIBETAN, G_UNICODE_SCRIPT_TIBETAN, - G_UNICODE_SCRIPT_TIBETAN, G_UNICODE_SCRIPT_TIBETAN, G_UNICODE_SCRIPT_TIBETAN, - G_UNICODE_SCRIPT_TIBETAN, G_UNICODE_SCRIPT_TIBETAN, G_UNICODE_SCRIPT_TIBETAN, - G_UNICODE_SCRIPT_TIBETAN, G_UNICODE_SCRIPT_TIBETAN, G_UNICODE_SCRIPT_TIBETAN, - G_UNICODE_SCRIPT_TIBETAN, G_UNICODE_SCRIPT_TIBETAN, G_UNICODE_SCRIPT_TIBETAN, - G_UNICODE_SCRIPT_TIBETAN, G_UNICODE_SCRIPT_TIBETAN, G_UNICODE_SCRIPT_TIBETAN, - G_UNICODE_SCRIPT_TIBETAN, G_UNICODE_SCRIPT_TIBETAN, G_UNICODE_SCRIPT_TIBETAN, - G_UNICODE_SCRIPT_TIBETAN, G_UNICODE_SCRIPT_TIBETAN, G_UNICODE_SCRIPT_TIBETAN, - G_UNICODE_SCRIPT_TIBETAN, G_UNICODE_SCRIPT_TIBETAN, G_UNICODE_SCRIPT_TIBETAN, - G_UNICODE_SCRIPT_TIBETAN, G_UNICODE_SCRIPT_TIBETAN, G_UNICODE_SCRIPT_TIBETAN, - G_UNICODE_SCRIPT_TIBETAN, G_UNICODE_SCRIPT_TIBETAN, G_UNICODE_SCRIPT_TIBETAN, - G_UNICODE_SCRIPT_TIBETAN, G_UNICODE_SCRIPT_TIBETAN, G_UNICODE_SCRIPT_TIBETAN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_TIBETAN, G_UNICODE_SCRIPT_TIBETAN, - G_UNICODE_SCRIPT_TIBETAN, G_UNICODE_SCRIPT_TIBETAN, G_UNICODE_SCRIPT_TIBETAN, - G_UNICODE_SCRIPT_TIBETAN, G_UNICODE_SCRIPT_TIBETAN, G_UNICODE_SCRIPT_TIBETAN, - G_UNICODE_SCRIPT_TIBETAN, G_UNICODE_SCRIPT_TIBETAN, G_UNICODE_SCRIPT_TIBETAN, - G_UNICODE_SCRIPT_TIBETAN, G_UNICODE_SCRIPT_TIBETAN, G_UNICODE_SCRIPT_TIBETAN, - G_UNICODE_SCRIPT_TIBETAN, G_UNICODE_SCRIPT_TIBETAN, G_UNICODE_SCRIPT_TIBETAN, - G_UNICODE_SCRIPT_TIBETAN, G_UNICODE_SCRIPT_TIBETAN, G_UNICODE_SCRIPT_TIBETAN, - G_UNICODE_SCRIPT_TIBETAN, G_UNICODE_SCRIPT_TIBETAN, G_UNICODE_SCRIPT_TIBETAN, - G_UNICODE_SCRIPT_TIBETAN, G_UNICODE_SCRIPT_TIBETAN, G_UNICODE_SCRIPT_TIBETAN, - G_UNICODE_SCRIPT_TIBETAN, G_UNICODE_SCRIPT_TIBETAN, G_UNICODE_SCRIPT_TIBETAN, - G_UNICODE_SCRIPT_TIBETAN, G_UNICODE_SCRIPT_TIBETAN, G_UNICODE_SCRIPT_TIBETAN, - G_UNICODE_SCRIPT_TIBETAN, G_UNICODE_SCRIPT_TIBETAN, G_UNICODE_SCRIPT_TIBETAN, - G_UNICODE_SCRIPT_TIBETAN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_TIBETAN, - G_UNICODE_SCRIPT_TIBETAN, G_UNICODE_SCRIPT_TIBETAN, G_UNICODE_SCRIPT_TIBETAN, - G_UNICODE_SCRIPT_TIBETAN, G_UNICODE_SCRIPT_TIBETAN, G_UNICODE_SCRIPT_TIBETAN, - G_UNICODE_SCRIPT_TIBETAN, G_UNICODE_SCRIPT_TIBETAN, G_UNICODE_SCRIPT_TIBETAN, - G_UNICODE_SCRIPT_TIBETAN, G_UNICODE_SCRIPT_TIBETAN, G_UNICODE_SCRIPT_TIBETAN, - G_UNICODE_SCRIPT_TIBETAN, G_UNICODE_SCRIPT_TIBETAN, G_UNICODE_SCRIPT_TIBETAN, - G_UNICODE_SCRIPT_TIBETAN, G_UNICODE_SCRIPT_TIBETAN, G_UNICODE_SCRIPT_TIBETAN, - G_UNICODE_SCRIPT_TIBETAN, G_UNICODE_SCRIPT_TIBETAN, G_UNICODE_SCRIPT_TIBETAN, - G_UNICODE_SCRIPT_TIBETAN, G_UNICODE_SCRIPT_TIBETAN, G_UNICODE_SCRIPT_TIBETAN, - G_UNICODE_SCRIPT_TIBETAN, G_UNICODE_SCRIPT_TIBETAN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_TIBETAN, G_UNICODE_SCRIPT_TIBETAN, G_UNICODE_SCRIPT_TIBETAN, - G_UNICODE_SCRIPT_TIBETAN, G_UNICODE_SCRIPT_TIBETAN, G_UNICODE_SCRIPT_TIBETAN, - G_UNICODE_SCRIPT_TIBETAN, G_UNICODE_SCRIPT_TIBETAN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_TIBETAN, G_UNICODE_SCRIPT_TIBETAN, G_UNICODE_SCRIPT_TIBETAN, - G_UNICODE_SCRIPT_TIBETAN, G_UNICODE_SCRIPT_TIBETAN, G_UNICODE_SCRIPT_TIBETAN, - G_UNICODE_SCRIPT_TIBETAN, G_UNICODE_SCRIPT_TIBETAN, G_UNICODE_SCRIPT_TIBETAN, - G_UNICODE_SCRIPT_TIBETAN, G_UNICODE_SCRIPT_TIBETAN, G_UNICODE_SCRIPT_TIBETAN, - G_UNICODE_SCRIPT_TIBETAN, G_UNICODE_SCRIPT_TIBETAN, G_UNICODE_SCRIPT_TIBETAN, - G_UNICODE_SCRIPT_TIBETAN, G_UNICODE_SCRIPT_TIBETAN, G_UNICODE_SCRIPT_TIBETAN, - G_UNICODE_SCRIPT_TIBETAN, G_UNICODE_SCRIPT_TIBETAN, G_UNICODE_SCRIPT_TIBETAN, - G_UNICODE_SCRIPT_TIBETAN, G_UNICODE_SCRIPT_TIBETAN, G_UNICODE_SCRIPT_TIBETAN, - G_UNICODE_SCRIPT_TIBETAN, G_UNICODE_SCRIPT_TIBETAN, G_UNICODE_SCRIPT_TIBETAN, - G_UNICODE_SCRIPT_TIBETAN, G_UNICODE_SCRIPT_TIBETAN, G_UNICODE_SCRIPT_TIBETAN, - G_UNICODE_SCRIPT_TIBETAN, G_UNICODE_SCRIPT_TIBETAN, G_UNICODE_SCRIPT_TIBETAN, - G_UNICODE_SCRIPT_TIBETAN, G_UNICODE_SCRIPT_TIBETAN, G_UNICODE_SCRIPT_TIBETAN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_TIBETAN, G_UNICODE_SCRIPT_TIBETAN, - G_UNICODE_SCRIPT_TIBETAN, G_UNICODE_SCRIPT_TIBETAN, G_UNICODE_SCRIPT_TIBETAN, - G_UNICODE_SCRIPT_TIBETAN, G_UNICODE_SCRIPT_TIBETAN, G_UNICODE_SCRIPT_TIBETAN, - G_UNICODE_SCRIPT_TIBETAN, G_UNICODE_SCRIPT_TIBETAN, G_UNICODE_SCRIPT_TIBETAN, - G_UNICODE_SCRIPT_TIBETAN, G_UNICODE_SCRIPT_TIBETAN, G_UNICODE_SCRIPT_TIBETAN, - G_UNICODE_SCRIPT_TIBETAN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_TIBETAN, - G_UNICODE_SCRIPT_TIBETAN, G_UNICODE_SCRIPT_TIBETAN, G_UNICODE_SCRIPT_TIBETAN, - G_UNICODE_SCRIPT_TIBETAN, G_UNICODE_SCRIPT_TIBETAN, G_UNICODE_SCRIPT_TIBETAN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_MYANMAR, G_UNICODE_SCRIPT_MYANMAR, - G_UNICODE_SCRIPT_MYANMAR, G_UNICODE_SCRIPT_MYANMAR, G_UNICODE_SCRIPT_MYANMAR, - G_UNICODE_SCRIPT_MYANMAR, G_UNICODE_SCRIPT_MYANMAR, G_UNICODE_SCRIPT_MYANMAR, - G_UNICODE_SCRIPT_MYANMAR, G_UNICODE_SCRIPT_MYANMAR, G_UNICODE_SCRIPT_MYANMAR, - G_UNICODE_SCRIPT_MYANMAR, G_UNICODE_SCRIPT_MYANMAR, G_UNICODE_SCRIPT_MYANMAR, - G_UNICODE_SCRIPT_MYANMAR, G_UNICODE_SCRIPT_MYANMAR, G_UNICODE_SCRIPT_MYANMAR, - G_UNICODE_SCRIPT_MYANMAR, G_UNICODE_SCRIPT_MYANMAR, G_UNICODE_SCRIPT_MYANMAR, - G_UNICODE_SCRIPT_MYANMAR, G_UNICODE_SCRIPT_MYANMAR, G_UNICODE_SCRIPT_MYANMAR, - G_UNICODE_SCRIPT_MYANMAR, G_UNICODE_SCRIPT_MYANMAR, G_UNICODE_SCRIPT_MYANMAR, - G_UNICODE_SCRIPT_MYANMAR, G_UNICODE_SCRIPT_MYANMAR, G_UNICODE_SCRIPT_MYANMAR, - G_UNICODE_SCRIPT_MYANMAR, G_UNICODE_SCRIPT_MYANMAR, G_UNICODE_SCRIPT_MYANMAR, - G_UNICODE_SCRIPT_MYANMAR, G_UNICODE_SCRIPT_MYANMAR, G_UNICODE_SCRIPT_MYANMAR, - G_UNICODE_SCRIPT_MYANMAR, G_UNICODE_SCRIPT_MYANMAR, G_UNICODE_SCRIPT_MYANMAR, - G_UNICODE_SCRIPT_MYANMAR, G_UNICODE_SCRIPT_MYANMAR, G_UNICODE_SCRIPT_MYANMAR, - G_UNICODE_SCRIPT_MYANMAR, G_UNICODE_SCRIPT_MYANMAR, G_UNICODE_SCRIPT_MYANMAR, - G_UNICODE_SCRIPT_MYANMAR, G_UNICODE_SCRIPT_MYANMAR, G_UNICODE_SCRIPT_MYANMAR, - G_UNICODE_SCRIPT_MYANMAR, G_UNICODE_SCRIPT_MYANMAR, G_UNICODE_SCRIPT_MYANMAR, - G_UNICODE_SCRIPT_MYANMAR, G_UNICODE_SCRIPT_MYANMAR, G_UNICODE_SCRIPT_MYANMAR, - G_UNICODE_SCRIPT_MYANMAR, G_UNICODE_SCRIPT_MYANMAR, G_UNICODE_SCRIPT_MYANMAR, - G_UNICODE_SCRIPT_MYANMAR, G_UNICODE_SCRIPT_MYANMAR, G_UNICODE_SCRIPT_MYANMAR, - G_UNICODE_SCRIPT_MYANMAR, G_UNICODE_SCRIPT_MYANMAR, G_UNICODE_SCRIPT_MYANMAR, - G_UNICODE_SCRIPT_MYANMAR, G_UNICODE_SCRIPT_MYANMAR, G_UNICODE_SCRIPT_MYANMAR, - G_UNICODE_SCRIPT_MYANMAR, G_UNICODE_SCRIPT_MYANMAR, G_UNICODE_SCRIPT_MYANMAR, - G_UNICODE_SCRIPT_MYANMAR, G_UNICODE_SCRIPT_MYANMAR, G_UNICODE_SCRIPT_MYANMAR, - G_UNICODE_SCRIPT_MYANMAR, G_UNICODE_SCRIPT_MYANMAR, G_UNICODE_SCRIPT_MYANMAR, - G_UNICODE_SCRIPT_MYANMAR, G_UNICODE_SCRIPT_MYANMAR, G_UNICODE_SCRIPT_MYANMAR, - G_UNICODE_SCRIPT_MYANMAR, G_UNICODE_SCRIPT_MYANMAR, G_UNICODE_SCRIPT_MYANMAR, - G_UNICODE_SCRIPT_MYANMAR, G_UNICODE_SCRIPT_MYANMAR, G_UNICODE_SCRIPT_MYANMAR, - G_UNICODE_SCRIPT_MYANMAR, G_UNICODE_SCRIPT_MYANMAR, G_UNICODE_SCRIPT_MYANMAR, - G_UNICODE_SCRIPT_MYANMAR, G_UNICODE_SCRIPT_MYANMAR, G_UNICODE_SCRIPT_MYANMAR, - G_UNICODE_SCRIPT_MYANMAR, G_UNICODE_SCRIPT_MYANMAR, G_UNICODE_SCRIPT_MYANMAR, - G_UNICODE_SCRIPT_MYANMAR, G_UNICODE_SCRIPT_MYANMAR, G_UNICODE_SCRIPT_MYANMAR, - G_UNICODE_SCRIPT_MYANMAR, G_UNICODE_SCRIPT_MYANMAR, G_UNICODE_SCRIPT_MYANMAR, - G_UNICODE_SCRIPT_MYANMAR, G_UNICODE_SCRIPT_MYANMAR, G_UNICODE_SCRIPT_MYANMAR, - G_UNICODE_SCRIPT_MYANMAR, G_UNICODE_SCRIPT_MYANMAR, G_UNICODE_SCRIPT_MYANMAR, - G_UNICODE_SCRIPT_MYANMAR, G_UNICODE_SCRIPT_MYANMAR, G_UNICODE_SCRIPT_MYANMAR, - G_UNICODE_SCRIPT_MYANMAR, G_UNICODE_SCRIPT_MYANMAR, G_UNICODE_SCRIPT_MYANMAR, - G_UNICODE_SCRIPT_MYANMAR, G_UNICODE_SCRIPT_MYANMAR, G_UNICODE_SCRIPT_MYANMAR, - G_UNICODE_SCRIPT_MYANMAR, G_UNICODE_SCRIPT_MYANMAR, G_UNICODE_SCRIPT_MYANMAR, - G_UNICODE_SCRIPT_MYANMAR, G_UNICODE_SCRIPT_MYANMAR, G_UNICODE_SCRIPT_MYANMAR, - G_UNICODE_SCRIPT_MYANMAR, G_UNICODE_SCRIPT_MYANMAR, G_UNICODE_SCRIPT_MYANMAR, - G_UNICODE_SCRIPT_MYANMAR, G_UNICODE_SCRIPT_MYANMAR, G_UNICODE_SCRIPT_MYANMAR, - G_UNICODE_SCRIPT_MYANMAR, G_UNICODE_SCRIPT_MYANMAR, G_UNICODE_SCRIPT_MYANMAR, - G_UNICODE_SCRIPT_MYANMAR, G_UNICODE_SCRIPT_MYANMAR, G_UNICODE_SCRIPT_MYANMAR, - G_UNICODE_SCRIPT_MYANMAR, G_UNICODE_SCRIPT_MYANMAR, G_UNICODE_SCRIPT_MYANMAR, - G_UNICODE_SCRIPT_MYANMAR, G_UNICODE_SCRIPT_MYANMAR, G_UNICODE_SCRIPT_MYANMAR, - G_UNICODE_SCRIPT_MYANMAR, G_UNICODE_SCRIPT_MYANMAR, G_UNICODE_SCRIPT_MYANMAR, - G_UNICODE_SCRIPT_MYANMAR, G_UNICODE_SCRIPT_MYANMAR, G_UNICODE_SCRIPT_MYANMAR, - G_UNICODE_SCRIPT_MYANMAR, G_UNICODE_SCRIPT_MYANMAR, G_UNICODE_SCRIPT_MYANMAR, - G_UNICODE_SCRIPT_MYANMAR, G_UNICODE_SCRIPT_MYANMAR, G_UNICODE_SCRIPT_MYANMAR, - G_UNICODE_SCRIPT_MYANMAR, G_UNICODE_SCRIPT_MYANMAR, G_UNICODE_SCRIPT_MYANMAR, - G_UNICODE_SCRIPT_MYANMAR, G_UNICODE_SCRIPT_MYANMAR, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_MYANMAR, G_UNICODE_SCRIPT_MYANMAR, G_UNICODE_SCRIPT_GEORGIAN, - G_UNICODE_SCRIPT_GEORGIAN, G_UNICODE_SCRIPT_GEORGIAN, G_UNICODE_SCRIPT_GEORGIAN, - G_UNICODE_SCRIPT_GEORGIAN, G_UNICODE_SCRIPT_GEORGIAN, G_UNICODE_SCRIPT_GEORGIAN, - G_UNICODE_SCRIPT_GEORGIAN, G_UNICODE_SCRIPT_GEORGIAN, G_UNICODE_SCRIPT_GEORGIAN, - G_UNICODE_SCRIPT_GEORGIAN, G_UNICODE_SCRIPT_GEORGIAN, G_UNICODE_SCRIPT_GEORGIAN, - G_UNICODE_SCRIPT_GEORGIAN, G_UNICODE_SCRIPT_GEORGIAN, G_UNICODE_SCRIPT_GEORGIAN, - G_UNICODE_SCRIPT_GEORGIAN, G_UNICODE_SCRIPT_GEORGIAN, G_UNICODE_SCRIPT_GEORGIAN, - G_UNICODE_SCRIPT_GEORGIAN, G_UNICODE_SCRIPT_GEORGIAN, G_UNICODE_SCRIPT_GEORGIAN, - G_UNICODE_SCRIPT_GEORGIAN, G_UNICODE_SCRIPT_GEORGIAN, G_UNICODE_SCRIPT_GEORGIAN, - G_UNICODE_SCRIPT_GEORGIAN, G_UNICODE_SCRIPT_GEORGIAN, G_UNICODE_SCRIPT_GEORGIAN, - G_UNICODE_SCRIPT_GEORGIAN, G_UNICODE_SCRIPT_GEORGIAN, G_UNICODE_SCRIPT_GEORGIAN, - G_UNICODE_SCRIPT_GEORGIAN, G_UNICODE_SCRIPT_GEORGIAN, G_UNICODE_SCRIPT_GEORGIAN, - G_UNICODE_SCRIPT_GEORGIAN, G_UNICODE_SCRIPT_GEORGIAN, G_UNICODE_SCRIPT_GEORGIAN, - G_UNICODE_SCRIPT_GEORGIAN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_GEORGIAN, - G_UNICODE_SCRIPT_GEORGIAN, G_UNICODE_SCRIPT_GEORGIAN, G_UNICODE_SCRIPT_GEORGIAN, - G_UNICODE_SCRIPT_GEORGIAN, G_UNICODE_SCRIPT_GEORGIAN, G_UNICODE_SCRIPT_GEORGIAN, - G_UNICODE_SCRIPT_GEORGIAN, G_UNICODE_SCRIPT_GEORGIAN, G_UNICODE_SCRIPT_GEORGIAN, - G_UNICODE_SCRIPT_GEORGIAN, G_UNICODE_SCRIPT_GEORGIAN, G_UNICODE_SCRIPT_GEORGIAN, - G_UNICODE_SCRIPT_GEORGIAN, G_UNICODE_SCRIPT_GEORGIAN, G_UNICODE_SCRIPT_GEORGIAN, - G_UNICODE_SCRIPT_GEORGIAN, G_UNICODE_SCRIPT_GEORGIAN, G_UNICODE_SCRIPT_GEORGIAN, - G_UNICODE_SCRIPT_GEORGIAN, G_UNICODE_SCRIPT_GEORGIAN, G_UNICODE_SCRIPT_GEORGIAN, - G_UNICODE_SCRIPT_GEORGIAN, G_UNICODE_SCRIPT_GEORGIAN, G_UNICODE_SCRIPT_GEORGIAN, - G_UNICODE_SCRIPT_GEORGIAN, G_UNICODE_SCRIPT_GEORGIAN, G_UNICODE_SCRIPT_GEORGIAN, - G_UNICODE_SCRIPT_GEORGIAN, G_UNICODE_SCRIPT_GEORGIAN, G_UNICODE_SCRIPT_GEORGIAN, - G_UNICODE_SCRIPT_GEORGIAN, G_UNICODE_SCRIPT_GEORGIAN, G_UNICODE_SCRIPT_GEORGIAN, - G_UNICODE_SCRIPT_GEORGIAN, G_UNICODE_SCRIPT_GEORGIAN, G_UNICODE_SCRIPT_GEORGIAN, - G_UNICODE_SCRIPT_GEORGIAN, G_UNICODE_SCRIPT_GEORGIAN, G_UNICODE_SCRIPT_GEORGIAN, - G_UNICODE_SCRIPT_GEORGIAN, G_UNICODE_SCRIPT_GEORGIAN, G_UNICODE_SCRIPT_GEORGIAN, - G_UNICODE_SCRIPT_COMMON, G_UNICODE_SCRIPT_GEORGIAN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_HANGUL, - G_UNICODE_SCRIPT_HANGUL, G_UNICODE_SCRIPT_HANGUL, G_UNICODE_SCRIPT_HANGUL, - G_UNICODE_SCRIPT_HANGUL, G_UNICODE_SCRIPT_HANGUL, G_UNICODE_SCRIPT_HANGUL, - G_UNICODE_SCRIPT_HANGUL, G_UNICODE_SCRIPT_HANGUL, G_UNICODE_SCRIPT_HANGUL, - G_UNICODE_SCRIPT_HANGUL, G_UNICODE_SCRIPT_HANGUL, G_UNICODE_SCRIPT_HANGUL, - G_UNICODE_SCRIPT_HANGUL, G_UNICODE_SCRIPT_HANGUL, G_UNICODE_SCRIPT_HANGUL, - G_UNICODE_SCRIPT_HANGUL, G_UNICODE_SCRIPT_HANGUL, G_UNICODE_SCRIPT_HANGUL, - G_UNICODE_SCRIPT_HANGUL, G_UNICODE_SCRIPT_HANGUL, G_UNICODE_SCRIPT_HANGUL, - G_UNICODE_SCRIPT_HANGUL, G_UNICODE_SCRIPT_HANGUL, G_UNICODE_SCRIPT_HANGUL, - G_UNICODE_SCRIPT_HANGUL, G_UNICODE_SCRIPT_HANGUL, G_UNICODE_SCRIPT_HANGUL, - G_UNICODE_SCRIPT_HANGUL, G_UNICODE_SCRIPT_HANGUL, G_UNICODE_SCRIPT_HANGUL, - G_UNICODE_SCRIPT_HANGUL, G_UNICODE_SCRIPT_HANGUL, G_UNICODE_SCRIPT_HANGUL, - G_UNICODE_SCRIPT_HANGUL, G_UNICODE_SCRIPT_HANGUL, G_UNICODE_SCRIPT_HANGUL, - G_UNICODE_SCRIPT_HANGUL, G_UNICODE_SCRIPT_HANGUL, G_UNICODE_SCRIPT_HANGUL, - G_UNICODE_SCRIPT_HANGUL, G_UNICODE_SCRIPT_HANGUL, G_UNICODE_SCRIPT_HANGUL, - G_UNICODE_SCRIPT_HANGUL, G_UNICODE_SCRIPT_HANGUL, G_UNICODE_SCRIPT_HANGUL, - G_UNICODE_SCRIPT_HANGUL, G_UNICODE_SCRIPT_HANGUL, G_UNICODE_SCRIPT_HANGUL, - G_UNICODE_SCRIPT_HANGUL, G_UNICODE_SCRIPT_HANGUL, G_UNICODE_SCRIPT_HANGUL, - G_UNICODE_SCRIPT_HANGUL, G_UNICODE_SCRIPT_HANGUL, G_UNICODE_SCRIPT_HANGUL, - G_UNICODE_SCRIPT_HANGUL, G_UNICODE_SCRIPT_HANGUL, G_UNICODE_SCRIPT_HANGUL, - G_UNICODE_SCRIPT_HANGUL, G_UNICODE_SCRIPT_HANGUL, G_UNICODE_SCRIPT_HANGUL, - G_UNICODE_SCRIPT_HANGUL, G_UNICODE_SCRIPT_HANGUL, G_UNICODE_SCRIPT_HANGUL, - G_UNICODE_SCRIPT_HANGUL, G_UNICODE_SCRIPT_HANGUL, G_UNICODE_SCRIPT_HANGUL, - G_UNICODE_SCRIPT_HANGUL, G_UNICODE_SCRIPT_HANGUL, G_UNICODE_SCRIPT_HANGUL, - G_UNICODE_SCRIPT_HANGUL, G_UNICODE_SCRIPT_HANGUL, G_UNICODE_SCRIPT_HANGUL, - G_UNICODE_SCRIPT_HANGUL, G_UNICODE_SCRIPT_HANGUL, G_UNICODE_SCRIPT_HANGUL, - G_UNICODE_SCRIPT_HANGUL, G_UNICODE_SCRIPT_HANGUL, G_UNICODE_SCRIPT_HANGUL, - G_UNICODE_SCRIPT_HANGUL, G_UNICODE_SCRIPT_HANGUL, G_UNICODE_SCRIPT_HANGUL, - G_UNICODE_SCRIPT_HANGUL, G_UNICODE_SCRIPT_HANGUL, G_UNICODE_SCRIPT_HANGUL, - G_UNICODE_SCRIPT_HANGUL, G_UNICODE_SCRIPT_HANGUL, G_UNICODE_SCRIPT_HANGUL, - G_UNICODE_SCRIPT_HANGUL, G_UNICODE_SCRIPT_HANGUL, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_HANGUL, G_UNICODE_SCRIPT_HANGUL, - G_UNICODE_SCRIPT_HANGUL, G_UNICODE_SCRIPT_HANGUL, G_UNICODE_SCRIPT_HANGUL, - G_UNICODE_SCRIPT_HANGUL, G_UNICODE_SCRIPT_HANGUL, G_UNICODE_SCRIPT_HANGUL, - G_UNICODE_SCRIPT_HANGUL, G_UNICODE_SCRIPT_HANGUL, G_UNICODE_SCRIPT_HANGUL, - G_UNICODE_SCRIPT_HANGUL, G_UNICODE_SCRIPT_HANGUL, G_UNICODE_SCRIPT_HANGUL, - G_UNICODE_SCRIPT_HANGUL, G_UNICODE_SCRIPT_HANGUL, G_UNICODE_SCRIPT_HANGUL, - G_UNICODE_SCRIPT_HANGUL, G_UNICODE_SCRIPT_HANGUL, G_UNICODE_SCRIPT_HANGUL, - G_UNICODE_SCRIPT_HANGUL, G_UNICODE_SCRIPT_HANGUL, G_UNICODE_SCRIPT_HANGUL, - G_UNICODE_SCRIPT_HANGUL, G_UNICODE_SCRIPT_HANGUL, G_UNICODE_SCRIPT_HANGUL, - G_UNICODE_SCRIPT_HANGUL, G_UNICODE_SCRIPT_HANGUL, G_UNICODE_SCRIPT_HANGUL, - G_UNICODE_SCRIPT_HANGUL, G_UNICODE_SCRIPT_HANGUL, G_UNICODE_SCRIPT_HANGUL, - G_UNICODE_SCRIPT_HANGUL, G_UNICODE_SCRIPT_HANGUL, G_UNICODE_SCRIPT_HANGUL, - G_UNICODE_SCRIPT_HANGUL, G_UNICODE_SCRIPT_HANGUL, G_UNICODE_SCRIPT_HANGUL, - G_UNICODE_SCRIPT_HANGUL, G_UNICODE_SCRIPT_HANGUL, G_UNICODE_SCRIPT_HANGUL, - G_UNICODE_SCRIPT_HANGUL, G_UNICODE_SCRIPT_HANGUL, G_UNICODE_SCRIPT_HANGUL, - G_UNICODE_SCRIPT_HANGUL, G_UNICODE_SCRIPT_HANGUL, G_UNICODE_SCRIPT_HANGUL, - G_UNICODE_SCRIPT_HANGUL, G_UNICODE_SCRIPT_HANGUL, G_UNICODE_SCRIPT_HANGUL, - G_UNICODE_SCRIPT_HANGUL, G_UNICODE_SCRIPT_HANGUL, G_UNICODE_SCRIPT_HANGUL, - G_UNICODE_SCRIPT_HANGUL, G_UNICODE_SCRIPT_HANGUL, G_UNICODE_SCRIPT_HANGUL, - G_UNICODE_SCRIPT_HANGUL, G_UNICODE_SCRIPT_HANGUL, G_UNICODE_SCRIPT_HANGUL, - G_UNICODE_SCRIPT_HANGUL, G_UNICODE_SCRIPT_HANGUL, G_UNICODE_SCRIPT_HANGUL, - G_UNICODE_SCRIPT_HANGUL, G_UNICODE_SCRIPT_HANGUL, G_UNICODE_SCRIPT_HANGUL, - G_UNICODE_SCRIPT_HANGUL, G_UNICODE_SCRIPT_HANGUL, G_UNICODE_SCRIPT_HANGUL, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_HANGUL, - G_UNICODE_SCRIPT_HANGUL, G_UNICODE_SCRIPT_HANGUL, G_UNICODE_SCRIPT_HANGUL, - G_UNICODE_SCRIPT_HANGUL, G_UNICODE_SCRIPT_HANGUL, G_UNICODE_SCRIPT_HANGUL, - G_UNICODE_SCRIPT_HANGUL, G_UNICODE_SCRIPT_HANGUL, G_UNICODE_SCRIPT_HANGUL, - G_UNICODE_SCRIPT_HANGUL, G_UNICODE_SCRIPT_HANGUL, G_UNICODE_SCRIPT_HANGUL, - G_UNICODE_SCRIPT_HANGUL, G_UNICODE_SCRIPT_HANGUL, G_UNICODE_SCRIPT_HANGUL, - G_UNICODE_SCRIPT_HANGUL, G_UNICODE_SCRIPT_HANGUL, G_UNICODE_SCRIPT_HANGUL, - G_UNICODE_SCRIPT_HANGUL, G_UNICODE_SCRIPT_HANGUL, G_UNICODE_SCRIPT_HANGUL, - G_UNICODE_SCRIPT_HANGUL, G_UNICODE_SCRIPT_HANGUL, G_UNICODE_SCRIPT_HANGUL, - G_UNICODE_SCRIPT_HANGUL, G_UNICODE_SCRIPT_HANGUL, G_UNICODE_SCRIPT_HANGUL, - G_UNICODE_SCRIPT_HANGUL, G_UNICODE_SCRIPT_HANGUL, G_UNICODE_SCRIPT_HANGUL, - G_UNICODE_SCRIPT_HANGUL, G_UNICODE_SCRIPT_HANGUL, G_UNICODE_SCRIPT_HANGUL, - G_UNICODE_SCRIPT_HANGUL, G_UNICODE_SCRIPT_HANGUL, G_UNICODE_SCRIPT_HANGUL, - G_UNICODE_SCRIPT_HANGUL, G_UNICODE_SCRIPT_HANGUL, G_UNICODE_SCRIPT_HANGUL, - G_UNICODE_SCRIPT_HANGUL, G_UNICODE_SCRIPT_HANGUL, G_UNICODE_SCRIPT_HANGUL, - G_UNICODE_SCRIPT_HANGUL, G_UNICODE_SCRIPT_HANGUL, G_UNICODE_SCRIPT_HANGUL, - G_UNICODE_SCRIPT_HANGUL, G_UNICODE_SCRIPT_HANGUL, G_UNICODE_SCRIPT_HANGUL, - G_UNICODE_SCRIPT_HANGUL, G_UNICODE_SCRIPT_HANGUL, G_UNICODE_SCRIPT_HANGUL, - G_UNICODE_SCRIPT_HANGUL, G_UNICODE_SCRIPT_HANGUL, G_UNICODE_SCRIPT_HANGUL, - G_UNICODE_SCRIPT_HANGUL, G_UNICODE_SCRIPT_HANGUL, G_UNICODE_SCRIPT_HANGUL, - G_UNICODE_SCRIPT_HANGUL, G_UNICODE_SCRIPT_HANGUL, G_UNICODE_SCRIPT_HANGUL, - G_UNICODE_SCRIPT_HANGUL, G_UNICODE_SCRIPT_HANGUL, G_UNICODE_SCRIPT_HANGUL, - G_UNICODE_SCRIPT_HANGUL, G_UNICODE_SCRIPT_HANGUL, G_UNICODE_SCRIPT_HANGUL, - G_UNICODE_SCRIPT_HANGUL, G_UNICODE_SCRIPT_HANGUL, G_UNICODE_SCRIPT_HANGUL, - G_UNICODE_SCRIPT_HANGUL, G_UNICODE_SCRIPT_HANGUL, G_UNICODE_SCRIPT_HANGUL, - G_UNICODE_SCRIPT_HANGUL, G_UNICODE_SCRIPT_HANGUL, G_UNICODE_SCRIPT_HANGUL, - G_UNICODE_SCRIPT_HANGUL, G_UNICODE_SCRIPT_HANGUL, G_UNICODE_SCRIPT_HANGUL, - G_UNICODE_SCRIPT_HANGUL, G_UNICODE_SCRIPT_HANGUL, G_UNICODE_SCRIPT_HANGUL, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, - G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, - G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, - G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, - G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, - G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, - G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, - G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, - G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, - G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, - G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, - G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, - G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, - G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, - G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, - G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, - G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, - G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, - G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, - G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, - G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, - G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, - G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, - G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, - G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_ETHIOPIC, - G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_ETHIOPIC, - G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, - G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, - G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, - G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, - G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, - G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, - G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, - G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, - G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, - G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, - G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, - G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, - G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, - G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, - G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, - G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, - G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, - G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, - G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, - G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, - G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, - G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, - G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, - G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, - G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, - G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, - G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, - G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, - G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, - G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_ETHIOPIC, - G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_ETHIOPIC, - G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, - G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, - G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, - G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, - G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, - G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, - G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, - G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, - G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, - G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, - G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, - G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, - G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, - G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, - G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, - G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, - G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, - G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, - G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, - G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, - G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, - G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, - G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, - G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, - G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, - G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, - G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, - G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, - G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, - G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, - G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, - G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, - G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, - G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, - G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, - G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, - G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, - G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, - G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, - G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, - G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, - G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, - G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, - G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, - G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, - G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, - G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, - G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, - G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, - G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, - G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, - G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, - G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, - G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, - G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, - G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, - G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, - G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, - G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, - G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, - G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, - G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, - G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_ETHIOPIC, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_CHEROKEE, - G_UNICODE_SCRIPT_CHEROKEE, G_UNICODE_SCRIPT_CHEROKEE, G_UNICODE_SCRIPT_CHEROKEE, - G_UNICODE_SCRIPT_CHEROKEE, G_UNICODE_SCRIPT_CHEROKEE, G_UNICODE_SCRIPT_CHEROKEE, - G_UNICODE_SCRIPT_CHEROKEE, G_UNICODE_SCRIPT_CHEROKEE, G_UNICODE_SCRIPT_CHEROKEE, - G_UNICODE_SCRIPT_CHEROKEE, G_UNICODE_SCRIPT_CHEROKEE, G_UNICODE_SCRIPT_CHEROKEE, - G_UNICODE_SCRIPT_CHEROKEE, G_UNICODE_SCRIPT_CHEROKEE, G_UNICODE_SCRIPT_CHEROKEE, - G_UNICODE_SCRIPT_CHEROKEE, G_UNICODE_SCRIPT_CHEROKEE, G_UNICODE_SCRIPT_CHEROKEE, - G_UNICODE_SCRIPT_CHEROKEE, G_UNICODE_SCRIPT_CHEROKEE, G_UNICODE_SCRIPT_CHEROKEE, - G_UNICODE_SCRIPT_CHEROKEE, G_UNICODE_SCRIPT_CHEROKEE, G_UNICODE_SCRIPT_CHEROKEE, - G_UNICODE_SCRIPT_CHEROKEE, G_UNICODE_SCRIPT_CHEROKEE, G_UNICODE_SCRIPT_CHEROKEE, - G_UNICODE_SCRIPT_CHEROKEE, G_UNICODE_SCRIPT_CHEROKEE, G_UNICODE_SCRIPT_CHEROKEE, - G_UNICODE_SCRIPT_CHEROKEE, G_UNICODE_SCRIPT_CHEROKEE, G_UNICODE_SCRIPT_CHEROKEE, - G_UNICODE_SCRIPT_CHEROKEE, G_UNICODE_SCRIPT_CHEROKEE, G_UNICODE_SCRIPT_CHEROKEE, - G_UNICODE_SCRIPT_CHEROKEE, G_UNICODE_SCRIPT_CHEROKEE, G_UNICODE_SCRIPT_CHEROKEE, - G_UNICODE_SCRIPT_CHEROKEE, G_UNICODE_SCRIPT_CHEROKEE, G_UNICODE_SCRIPT_CHEROKEE, - G_UNICODE_SCRIPT_CHEROKEE, G_UNICODE_SCRIPT_CHEROKEE, G_UNICODE_SCRIPT_CHEROKEE, - G_UNICODE_SCRIPT_CHEROKEE, G_UNICODE_SCRIPT_CHEROKEE, G_UNICODE_SCRIPT_CHEROKEE, - G_UNICODE_SCRIPT_CHEROKEE, G_UNICODE_SCRIPT_CHEROKEE, G_UNICODE_SCRIPT_CHEROKEE, - G_UNICODE_SCRIPT_CHEROKEE, G_UNICODE_SCRIPT_CHEROKEE, G_UNICODE_SCRIPT_CHEROKEE, - G_UNICODE_SCRIPT_CHEROKEE, G_UNICODE_SCRIPT_CHEROKEE, G_UNICODE_SCRIPT_CHEROKEE, - G_UNICODE_SCRIPT_CHEROKEE, G_UNICODE_SCRIPT_CHEROKEE, G_UNICODE_SCRIPT_CHEROKEE, - G_UNICODE_SCRIPT_CHEROKEE, G_UNICODE_SCRIPT_CHEROKEE, G_UNICODE_SCRIPT_CHEROKEE, - G_UNICODE_SCRIPT_CHEROKEE, G_UNICODE_SCRIPT_CHEROKEE, G_UNICODE_SCRIPT_CHEROKEE, - G_UNICODE_SCRIPT_CHEROKEE, G_UNICODE_SCRIPT_CHEROKEE, G_UNICODE_SCRIPT_CHEROKEE, - G_UNICODE_SCRIPT_CHEROKEE, G_UNICODE_SCRIPT_CHEROKEE, G_UNICODE_SCRIPT_CHEROKEE, - G_UNICODE_SCRIPT_CHEROKEE, G_UNICODE_SCRIPT_CHEROKEE, G_UNICODE_SCRIPT_CHEROKEE, - G_UNICODE_SCRIPT_CHEROKEE, G_UNICODE_SCRIPT_CHEROKEE, G_UNICODE_SCRIPT_CHEROKEE, - G_UNICODE_SCRIPT_CHEROKEE, G_UNICODE_SCRIPT_CHEROKEE, G_UNICODE_SCRIPT_CHEROKEE, - G_UNICODE_SCRIPT_CHEROKEE, G_UNICODE_SCRIPT_CHEROKEE, G_UNICODE_SCRIPT_CHEROKEE, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_OGHAM, G_UNICODE_SCRIPT_OGHAM, G_UNICODE_SCRIPT_OGHAM, - G_UNICODE_SCRIPT_OGHAM, G_UNICODE_SCRIPT_OGHAM, G_UNICODE_SCRIPT_OGHAM, - G_UNICODE_SCRIPT_OGHAM, G_UNICODE_SCRIPT_OGHAM, G_UNICODE_SCRIPT_OGHAM, - G_UNICODE_SCRIPT_OGHAM, G_UNICODE_SCRIPT_OGHAM, G_UNICODE_SCRIPT_OGHAM, - G_UNICODE_SCRIPT_OGHAM, G_UNICODE_SCRIPT_OGHAM, G_UNICODE_SCRIPT_OGHAM, - G_UNICODE_SCRIPT_OGHAM, G_UNICODE_SCRIPT_OGHAM, G_UNICODE_SCRIPT_OGHAM, - G_UNICODE_SCRIPT_OGHAM, G_UNICODE_SCRIPT_OGHAM, G_UNICODE_SCRIPT_OGHAM, - G_UNICODE_SCRIPT_OGHAM, G_UNICODE_SCRIPT_OGHAM, G_UNICODE_SCRIPT_OGHAM, - G_UNICODE_SCRIPT_OGHAM, G_UNICODE_SCRIPT_OGHAM, G_UNICODE_SCRIPT_OGHAM, - G_UNICODE_SCRIPT_OGHAM, G_UNICODE_SCRIPT_OGHAM, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_RUNIC, - G_UNICODE_SCRIPT_RUNIC, G_UNICODE_SCRIPT_RUNIC, G_UNICODE_SCRIPT_RUNIC, - G_UNICODE_SCRIPT_RUNIC, G_UNICODE_SCRIPT_RUNIC, G_UNICODE_SCRIPT_RUNIC, - G_UNICODE_SCRIPT_RUNIC, G_UNICODE_SCRIPT_RUNIC, G_UNICODE_SCRIPT_RUNIC, - G_UNICODE_SCRIPT_RUNIC, G_UNICODE_SCRIPT_RUNIC, G_UNICODE_SCRIPT_RUNIC, - G_UNICODE_SCRIPT_RUNIC, G_UNICODE_SCRIPT_RUNIC, G_UNICODE_SCRIPT_RUNIC, - G_UNICODE_SCRIPT_RUNIC, G_UNICODE_SCRIPT_RUNIC, G_UNICODE_SCRIPT_RUNIC, - G_UNICODE_SCRIPT_RUNIC, G_UNICODE_SCRIPT_RUNIC, G_UNICODE_SCRIPT_RUNIC, - G_UNICODE_SCRIPT_RUNIC, G_UNICODE_SCRIPT_RUNIC, G_UNICODE_SCRIPT_RUNIC, - G_UNICODE_SCRIPT_RUNIC, G_UNICODE_SCRIPT_RUNIC, G_UNICODE_SCRIPT_RUNIC, - G_UNICODE_SCRIPT_RUNIC, G_UNICODE_SCRIPT_RUNIC, G_UNICODE_SCRIPT_RUNIC, - G_UNICODE_SCRIPT_RUNIC, G_UNICODE_SCRIPT_RUNIC, G_UNICODE_SCRIPT_RUNIC, - G_UNICODE_SCRIPT_RUNIC, G_UNICODE_SCRIPT_RUNIC, G_UNICODE_SCRIPT_RUNIC, - G_UNICODE_SCRIPT_RUNIC, G_UNICODE_SCRIPT_RUNIC, G_UNICODE_SCRIPT_RUNIC, - G_UNICODE_SCRIPT_RUNIC, G_UNICODE_SCRIPT_RUNIC, G_UNICODE_SCRIPT_RUNIC, - G_UNICODE_SCRIPT_RUNIC, G_UNICODE_SCRIPT_RUNIC, G_UNICODE_SCRIPT_RUNIC, - G_UNICODE_SCRIPT_RUNIC, G_UNICODE_SCRIPT_RUNIC, G_UNICODE_SCRIPT_RUNIC, - G_UNICODE_SCRIPT_RUNIC, G_UNICODE_SCRIPT_RUNIC, G_UNICODE_SCRIPT_RUNIC, - G_UNICODE_SCRIPT_RUNIC, G_UNICODE_SCRIPT_RUNIC, G_UNICODE_SCRIPT_RUNIC, - G_UNICODE_SCRIPT_RUNIC, G_UNICODE_SCRIPT_RUNIC, G_UNICODE_SCRIPT_RUNIC, - G_UNICODE_SCRIPT_RUNIC, G_UNICODE_SCRIPT_RUNIC, G_UNICODE_SCRIPT_RUNIC, - G_UNICODE_SCRIPT_RUNIC, G_UNICODE_SCRIPT_RUNIC, G_UNICODE_SCRIPT_RUNIC, - G_UNICODE_SCRIPT_RUNIC, G_UNICODE_SCRIPT_RUNIC, G_UNICODE_SCRIPT_RUNIC, - G_UNICODE_SCRIPT_RUNIC, G_UNICODE_SCRIPT_RUNIC, G_UNICODE_SCRIPT_RUNIC, - G_UNICODE_SCRIPT_RUNIC, G_UNICODE_SCRIPT_RUNIC, G_UNICODE_SCRIPT_RUNIC, - G_UNICODE_SCRIPT_RUNIC, G_UNICODE_SCRIPT_RUNIC, G_UNICODE_SCRIPT_COMMON, - G_UNICODE_SCRIPT_COMMON, G_UNICODE_SCRIPT_COMMON, G_UNICODE_SCRIPT_RUNIC, - G_UNICODE_SCRIPT_RUNIC, G_UNICODE_SCRIPT_RUNIC, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_TAGALOG, - G_UNICODE_SCRIPT_TAGALOG, G_UNICODE_SCRIPT_TAGALOG, G_UNICODE_SCRIPT_TAGALOG, - G_UNICODE_SCRIPT_TAGALOG, G_UNICODE_SCRIPT_TAGALOG, G_UNICODE_SCRIPT_TAGALOG, - G_UNICODE_SCRIPT_TAGALOG, G_UNICODE_SCRIPT_TAGALOG, G_UNICODE_SCRIPT_TAGALOG, - G_UNICODE_SCRIPT_TAGALOG, G_UNICODE_SCRIPT_TAGALOG, G_UNICODE_SCRIPT_TAGALOG, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_TAGALOG, G_UNICODE_SCRIPT_TAGALOG, - G_UNICODE_SCRIPT_TAGALOG, G_UNICODE_SCRIPT_TAGALOG, G_UNICODE_SCRIPT_TAGALOG, - G_UNICODE_SCRIPT_TAGALOG, G_UNICODE_SCRIPT_TAGALOG, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_HANUNOO, G_UNICODE_SCRIPT_HANUNOO, - G_UNICODE_SCRIPT_HANUNOO, G_UNICODE_SCRIPT_HANUNOO, G_UNICODE_SCRIPT_HANUNOO, - G_UNICODE_SCRIPT_HANUNOO, G_UNICODE_SCRIPT_HANUNOO, G_UNICODE_SCRIPT_HANUNOO, - G_UNICODE_SCRIPT_HANUNOO, G_UNICODE_SCRIPT_HANUNOO, G_UNICODE_SCRIPT_HANUNOO, - G_UNICODE_SCRIPT_HANUNOO, G_UNICODE_SCRIPT_HANUNOO, G_UNICODE_SCRIPT_HANUNOO, - G_UNICODE_SCRIPT_HANUNOO, G_UNICODE_SCRIPT_HANUNOO, G_UNICODE_SCRIPT_HANUNOO, - G_UNICODE_SCRIPT_HANUNOO, G_UNICODE_SCRIPT_HANUNOO, G_UNICODE_SCRIPT_HANUNOO, - G_UNICODE_SCRIPT_HANUNOO, G_UNICODE_SCRIPT_COMMON, G_UNICODE_SCRIPT_COMMON, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_BUHID, G_UNICODE_SCRIPT_BUHID, G_UNICODE_SCRIPT_BUHID, - G_UNICODE_SCRIPT_BUHID, G_UNICODE_SCRIPT_BUHID, G_UNICODE_SCRIPT_BUHID, - G_UNICODE_SCRIPT_BUHID, G_UNICODE_SCRIPT_BUHID, G_UNICODE_SCRIPT_BUHID, - G_UNICODE_SCRIPT_BUHID, G_UNICODE_SCRIPT_BUHID, G_UNICODE_SCRIPT_BUHID, - G_UNICODE_SCRIPT_BUHID, G_UNICODE_SCRIPT_BUHID, G_UNICODE_SCRIPT_BUHID, - G_UNICODE_SCRIPT_BUHID, G_UNICODE_SCRIPT_BUHID, G_UNICODE_SCRIPT_BUHID, - G_UNICODE_SCRIPT_BUHID, G_UNICODE_SCRIPT_BUHID, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_TAGBANWA, - G_UNICODE_SCRIPT_TAGBANWA, G_UNICODE_SCRIPT_TAGBANWA, G_UNICODE_SCRIPT_TAGBANWA, - G_UNICODE_SCRIPT_TAGBANWA, G_UNICODE_SCRIPT_TAGBANWA, G_UNICODE_SCRIPT_TAGBANWA, - G_UNICODE_SCRIPT_TAGBANWA, G_UNICODE_SCRIPT_TAGBANWA, G_UNICODE_SCRIPT_TAGBANWA, - G_UNICODE_SCRIPT_TAGBANWA, G_UNICODE_SCRIPT_TAGBANWA, G_UNICODE_SCRIPT_TAGBANWA, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_TAGBANWA, G_UNICODE_SCRIPT_TAGBANWA, - G_UNICODE_SCRIPT_TAGBANWA, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_TAGBANWA, - G_UNICODE_SCRIPT_TAGBANWA, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_KHMER, G_UNICODE_SCRIPT_KHMER, - G_UNICODE_SCRIPT_KHMER, G_UNICODE_SCRIPT_KHMER, G_UNICODE_SCRIPT_KHMER, - G_UNICODE_SCRIPT_KHMER, G_UNICODE_SCRIPT_KHMER, G_UNICODE_SCRIPT_KHMER, - G_UNICODE_SCRIPT_KHMER, G_UNICODE_SCRIPT_KHMER, G_UNICODE_SCRIPT_KHMER, - G_UNICODE_SCRIPT_KHMER, G_UNICODE_SCRIPT_KHMER, G_UNICODE_SCRIPT_KHMER, - G_UNICODE_SCRIPT_KHMER, G_UNICODE_SCRIPT_KHMER, G_UNICODE_SCRIPT_KHMER, - G_UNICODE_SCRIPT_KHMER, G_UNICODE_SCRIPT_KHMER, G_UNICODE_SCRIPT_KHMER, - G_UNICODE_SCRIPT_KHMER, G_UNICODE_SCRIPT_KHMER, G_UNICODE_SCRIPT_KHMER, - G_UNICODE_SCRIPT_KHMER, G_UNICODE_SCRIPT_KHMER, G_UNICODE_SCRIPT_KHMER, - G_UNICODE_SCRIPT_KHMER, G_UNICODE_SCRIPT_KHMER, G_UNICODE_SCRIPT_KHMER, - G_UNICODE_SCRIPT_KHMER, G_UNICODE_SCRIPT_KHMER, G_UNICODE_SCRIPT_KHMER, - G_UNICODE_SCRIPT_KHMER, G_UNICODE_SCRIPT_KHMER, G_UNICODE_SCRIPT_KHMER, - G_UNICODE_SCRIPT_KHMER, G_UNICODE_SCRIPT_KHMER, G_UNICODE_SCRIPT_KHMER, - G_UNICODE_SCRIPT_KHMER, G_UNICODE_SCRIPT_KHMER, G_UNICODE_SCRIPT_KHMER, - G_UNICODE_SCRIPT_KHMER, G_UNICODE_SCRIPT_KHMER, G_UNICODE_SCRIPT_KHMER, - G_UNICODE_SCRIPT_KHMER, G_UNICODE_SCRIPT_KHMER, G_UNICODE_SCRIPT_KHMER, - G_UNICODE_SCRIPT_KHMER, G_UNICODE_SCRIPT_KHMER, G_UNICODE_SCRIPT_KHMER, - G_UNICODE_SCRIPT_KHMER, G_UNICODE_SCRIPT_KHMER, G_UNICODE_SCRIPT_KHMER, - G_UNICODE_SCRIPT_KHMER, G_UNICODE_SCRIPT_KHMER, G_UNICODE_SCRIPT_KHMER, - G_UNICODE_SCRIPT_KHMER, G_UNICODE_SCRIPT_KHMER, G_UNICODE_SCRIPT_KHMER, - G_UNICODE_SCRIPT_KHMER, G_UNICODE_SCRIPT_KHMER, G_UNICODE_SCRIPT_KHMER, - G_UNICODE_SCRIPT_KHMER, G_UNICODE_SCRIPT_KHMER, G_UNICODE_SCRIPT_KHMER, - G_UNICODE_SCRIPT_KHMER, G_UNICODE_SCRIPT_KHMER, G_UNICODE_SCRIPT_KHMER, - G_UNICODE_SCRIPT_KHMER, G_UNICODE_SCRIPT_KHMER, G_UNICODE_SCRIPT_KHMER, - G_UNICODE_SCRIPT_KHMER, G_UNICODE_SCRIPT_KHMER, G_UNICODE_SCRIPT_KHMER, - G_UNICODE_SCRIPT_KHMER, G_UNICODE_SCRIPT_KHMER, G_UNICODE_SCRIPT_KHMER, - G_UNICODE_SCRIPT_KHMER, G_UNICODE_SCRIPT_KHMER, G_UNICODE_SCRIPT_KHMER, - G_UNICODE_SCRIPT_KHMER, G_UNICODE_SCRIPT_KHMER, G_UNICODE_SCRIPT_KHMER, - G_UNICODE_SCRIPT_KHMER, G_UNICODE_SCRIPT_KHMER, G_UNICODE_SCRIPT_KHMER, - G_UNICODE_SCRIPT_KHMER, G_UNICODE_SCRIPT_KHMER, G_UNICODE_SCRIPT_KHMER, - G_UNICODE_SCRIPT_KHMER, G_UNICODE_SCRIPT_KHMER, G_UNICODE_SCRIPT_KHMER, - G_UNICODE_SCRIPT_KHMER, G_UNICODE_SCRIPT_KHMER, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_KHMER, G_UNICODE_SCRIPT_KHMER, - G_UNICODE_SCRIPT_KHMER, G_UNICODE_SCRIPT_KHMER, G_UNICODE_SCRIPT_KHMER, - G_UNICODE_SCRIPT_KHMER, G_UNICODE_SCRIPT_KHMER, G_UNICODE_SCRIPT_KHMER, - G_UNICODE_SCRIPT_KHMER, G_UNICODE_SCRIPT_KHMER, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_KHMER, - G_UNICODE_SCRIPT_KHMER, G_UNICODE_SCRIPT_KHMER, G_UNICODE_SCRIPT_KHMER, - G_UNICODE_SCRIPT_KHMER, G_UNICODE_SCRIPT_KHMER, G_UNICODE_SCRIPT_KHMER, - G_UNICODE_SCRIPT_KHMER, G_UNICODE_SCRIPT_KHMER, G_UNICODE_SCRIPT_KHMER, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_MONGOLIAN, G_UNICODE_SCRIPT_MONGOLIAN, G_UNICODE_SCRIPT_COMMON, - G_UNICODE_SCRIPT_COMMON, G_UNICODE_SCRIPT_MONGOLIAN, G_UNICODE_SCRIPT_COMMON, - G_UNICODE_SCRIPT_MONGOLIAN, G_UNICODE_SCRIPT_MONGOLIAN, G_UNICODE_SCRIPT_MONGOLIAN, - G_UNICODE_SCRIPT_MONGOLIAN, G_UNICODE_SCRIPT_MONGOLIAN, G_UNICODE_SCRIPT_MONGOLIAN, - G_UNICODE_SCRIPT_MONGOLIAN, G_UNICODE_SCRIPT_MONGOLIAN, G_UNICODE_SCRIPT_MONGOLIAN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_MONGOLIAN, G_UNICODE_SCRIPT_MONGOLIAN, - G_UNICODE_SCRIPT_MONGOLIAN, G_UNICODE_SCRIPT_MONGOLIAN, G_UNICODE_SCRIPT_MONGOLIAN, - G_UNICODE_SCRIPT_MONGOLIAN, G_UNICODE_SCRIPT_MONGOLIAN, G_UNICODE_SCRIPT_MONGOLIAN, - G_UNICODE_SCRIPT_MONGOLIAN, G_UNICODE_SCRIPT_MONGOLIAN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_MONGOLIAN, - G_UNICODE_SCRIPT_MONGOLIAN, G_UNICODE_SCRIPT_MONGOLIAN, G_UNICODE_SCRIPT_MONGOLIAN, - G_UNICODE_SCRIPT_MONGOLIAN, G_UNICODE_SCRIPT_MONGOLIAN, G_UNICODE_SCRIPT_MONGOLIAN, - G_UNICODE_SCRIPT_MONGOLIAN, G_UNICODE_SCRIPT_MONGOLIAN, G_UNICODE_SCRIPT_MONGOLIAN, - G_UNICODE_SCRIPT_MONGOLIAN, G_UNICODE_SCRIPT_MONGOLIAN, G_UNICODE_SCRIPT_MONGOLIAN, - G_UNICODE_SCRIPT_MONGOLIAN, G_UNICODE_SCRIPT_MONGOLIAN, G_UNICODE_SCRIPT_MONGOLIAN, - G_UNICODE_SCRIPT_MONGOLIAN, G_UNICODE_SCRIPT_MONGOLIAN, G_UNICODE_SCRIPT_MONGOLIAN, - G_UNICODE_SCRIPT_MONGOLIAN, G_UNICODE_SCRIPT_MONGOLIAN, G_UNICODE_SCRIPT_MONGOLIAN, - G_UNICODE_SCRIPT_MONGOLIAN, G_UNICODE_SCRIPT_MONGOLIAN, G_UNICODE_SCRIPT_MONGOLIAN, - G_UNICODE_SCRIPT_MONGOLIAN, G_UNICODE_SCRIPT_MONGOLIAN, G_UNICODE_SCRIPT_MONGOLIAN, - G_UNICODE_SCRIPT_MONGOLIAN, G_UNICODE_SCRIPT_MONGOLIAN, G_UNICODE_SCRIPT_MONGOLIAN, - G_UNICODE_SCRIPT_MONGOLIAN, G_UNICODE_SCRIPT_MONGOLIAN, G_UNICODE_SCRIPT_MONGOLIAN, - G_UNICODE_SCRIPT_MONGOLIAN, G_UNICODE_SCRIPT_MONGOLIAN, G_UNICODE_SCRIPT_MONGOLIAN, - G_UNICODE_SCRIPT_MONGOLIAN, G_UNICODE_SCRIPT_MONGOLIAN, G_UNICODE_SCRIPT_MONGOLIAN, - G_UNICODE_SCRIPT_MONGOLIAN, G_UNICODE_SCRIPT_MONGOLIAN, G_UNICODE_SCRIPT_MONGOLIAN, - G_UNICODE_SCRIPT_MONGOLIAN, G_UNICODE_SCRIPT_MONGOLIAN, G_UNICODE_SCRIPT_MONGOLIAN, - G_UNICODE_SCRIPT_MONGOLIAN, G_UNICODE_SCRIPT_MONGOLIAN, G_UNICODE_SCRIPT_MONGOLIAN, - G_UNICODE_SCRIPT_MONGOLIAN, G_UNICODE_SCRIPT_MONGOLIAN, G_UNICODE_SCRIPT_MONGOLIAN, - G_UNICODE_SCRIPT_MONGOLIAN, G_UNICODE_SCRIPT_MONGOLIAN, G_UNICODE_SCRIPT_MONGOLIAN, - G_UNICODE_SCRIPT_MONGOLIAN, G_UNICODE_SCRIPT_MONGOLIAN, G_UNICODE_SCRIPT_MONGOLIAN, - G_UNICODE_SCRIPT_MONGOLIAN, G_UNICODE_SCRIPT_MONGOLIAN, G_UNICODE_SCRIPT_MONGOLIAN, - G_UNICODE_SCRIPT_MONGOLIAN, G_UNICODE_SCRIPT_MONGOLIAN, G_UNICODE_SCRIPT_MONGOLIAN, - G_UNICODE_SCRIPT_MONGOLIAN, G_UNICODE_SCRIPT_MONGOLIAN, G_UNICODE_SCRIPT_MONGOLIAN, - G_UNICODE_SCRIPT_MONGOLIAN, G_UNICODE_SCRIPT_MONGOLIAN, G_UNICODE_SCRIPT_MONGOLIAN, - G_UNICODE_SCRIPT_MONGOLIAN, G_UNICODE_SCRIPT_MONGOLIAN, G_UNICODE_SCRIPT_MONGOLIAN, - G_UNICODE_SCRIPT_MONGOLIAN, G_UNICODE_SCRIPT_MONGOLIAN, G_UNICODE_SCRIPT_MONGOLIAN, - G_UNICODE_SCRIPT_MONGOLIAN, G_UNICODE_SCRIPT_MONGOLIAN, G_UNICODE_SCRIPT_MONGOLIAN, - G_UNICODE_SCRIPT_MONGOLIAN, G_UNICODE_SCRIPT_MONGOLIAN, G_UNICODE_SCRIPT_MONGOLIAN, - G_UNICODE_SCRIPT_MONGOLIAN, G_UNICODE_SCRIPT_MONGOLIAN, G_UNICODE_SCRIPT_MONGOLIAN, - G_UNICODE_SCRIPT_MONGOLIAN, G_UNICODE_SCRIPT_MONGOLIAN, G_UNICODE_SCRIPT_MONGOLIAN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_MONGOLIAN, - G_UNICODE_SCRIPT_MONGOLIAN, G_UNICODE_SCRIPT_MONGOLIAN, G_UNICODE_SCRIPT_MONGOLIAN, - G_UNICODE_SCRIPT_MONGOLIAN, G_UNICODE_SCRIPT_MONGOLIAN, G_UNICODE_SCRIPT_MONGOLIAN, - G_UNICODE_SCRIPT_MONGOLIAN, G_UNICODE_SCRIPT_MONGOLIAN, G_UNICODE_SCRIPT_MONGOLIAN, - G_UNICODE_SCRIPT_MONGOLIAN, G_UNICODE_SCRIPT_MONGOLIAN, G_UNICODE_SCRIPT_MONGOLIAN, - G_UNICODE_SCRIPT_MONGOLIAN, G_UNICODE_SCRIPT_MONGOLIAN, G_UNICODE_SCRIPT_MONGOLIAN, - G_UNICODE_SCRIPT_MONGOLIAN, G_UNICODE_SCRIPT_MONGOLIAN, G_UNICODE_SCRIPT_MONGOLIAN, - G_UNICODE_SCRIPT_MONGOLIAN, G_UNICODE_SCRIPT_MONGOLIAN, G_UNICODE_SCRIPT_MONGOLIAN, - G_UNICODE_SCRIPT_MONGOLIAN, G_UNICODE_SCRIPT_MONGOLIAN, G_UNICODE_SCRIPT_MONGOLIAN, - G_UNICODE_SCRIPT_MONGOLIAN, G_UNICODE_SCRIPT_MONGOLIAN, G_UNICODE_SCRIPT_MONGOLIAN, - G_UNICODE_SCRIPT_MONGOLIAN, G_UNICODE_SCRIPT_MONGOLIAN, G_UNICODE_SCRIPT_MONGOLIAN, - G_UNICODE_SCRIPT_MONGOLIAN, G_UNICODE_SCRIPT_MONGOLIAN, G_UNICODE_SCRIPT_MONGOLIAN, - G_UNICODE_SCRIPT_MONGOLIAN, G_UNICODE_SCRIPT_MONGOLIAN, G_UNICODE_SCRIPT_MONGOLIAN, - G_UNICODE_SCRIPT_MONGOLIAN, G_UNICODE_SCRIPT_MONGOLIAN, G_UNICODE_SCRIPT_MONGOLIAN, - G_UNICODE_SCRIPT_MONGOLIAN, G_UNICODE_SCRIPT_MONGOLIAN, G_UNICODE_SCRIPT_MONGOLIAN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_LIMBU, G_UNICODE_SCRIPT_LIMBU, - G_UNICODE_SCRIPT_LIMBU, G_UNICODE_SCRIPT_LIMBU, G_UNICODE_SCRIPT_LIMBU, - G_UNICODE_SCRIPT_LIMBU, G_UNICODE_SCRIPT_LIMBU, G_UNICODE_SCRIPT_LIMBU, - G_UNICODE_SCRIPT_LIMBU, G_UNICODE_SCRIPT_LIMBU, G_UNICODE_SCRIPT_LIMBU, - G_UNICODE_SCRIPT_LIMBU, G_UNICODE_SCRIPT_LIMBU, G_UNICODE_SCRIPT_LIMBU, - G_UNICODE_SCRIPT_LIMBU, G_UNICODE_SCRIPT_LIMBU, G_UNICODE_SCRIPT_LIMBU, - G_UNICODE_SCRIPT_LIMBU, G_UNICODE_SCRIPT_LIMBU, G_UNICODE_SCRIPT_LIMBU, - G_UNICODE_SCRIPT_LIMBU, G_UNICODE_SCRIPT_LIMBU, G_UNICODE_SCRIPT_LIMBU, - G_UNICODE_SCRIPT_LIMBU, G_UNICODE_SCRIPT_LIMBU, G_UNICODE_SCRIPT_LIMBU, - G_UNICODE_SCRIPT_LIMBU, G_UNICODE_SCRIPT_LIMBU, G_UNICODE_SCRIPT_LIMBU, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_LIMBU, G_UNICODE_SCRIPT_LIMBU, G_UNICODE_SCRIPT_LIMBU, - G_UNICODE_SCRIPT_LIMBU, G_UNICODE_SCRIPT_LIMBU, G_UNICODE_SCRIPT_LIMBU, - G_UNICODE_SCRIPT_LIMBU, G_UNICODE_SCRIPT_LIMBU, G_UNICODE_SCRIPT_LIMBU, - G_UNICODE_SCRIPT_LIMBU, G_UNICODE_SCRIPT_LIMBU, G_UNICODE_SCRIPT_LIMBU, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_LIMBU, G_UNICODE_SCRIPT_LIMBU, - G_UNICODE_SCRIPT_LIMBU, G_UNICODE_SCRIPT_LIMBU, G_UNICODE_SCRIPT_LIMBU, - G_UNICODE_SCRIPT_LIMBU, G_UNICODE_SCRIPT_LIMBU, G_UNICODE_SCRIPT_LIMBU, - G_UNICODE_SCRIPT_LIMBU, G_UNICODE_SCRIPT_LIMBU, G_UNICODE_SCRIPT_LIMBU, - G_UNICODE_SCRIPT_LIMBU, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_LIMBU, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_LIMBU, G_UNICODE_SCRIPT_LIMBU, G_UNICODE_SCRIPT_LIMBU, - G_UNICODE_SCRIPT_LIMBU, G_UNICODE_SCRIPT_LIMBU, G_UNICODE_SCRIPT_LIMBU, - G_UNICODE_SCRIPT_LIMBU, G_UNICODE_SCRIPT_LIMBU, G_UNICODE_SCRIPT_LIMBU, - G_UNICODE_SCRIPT_LIMBU, G_UNICODE_SCRIPT_LIMBU, G_UNICODE_SCRIPT_LIMBU, - G_UNICODE_SCRIPT_TAI_LE, G_UNICODE_SCRIPT_TAI_LE, G_UNICODE_SCRIPT_TAI_LE, - G_UNICODE_SCRIPT_TAI_LE, G_UNICODE_SCRIPT_TAI_LE, G_UNICODE_SCRIPT_TAI_LE, - G_UNICODE_SCRIPT_TAI_LE, G_UNICODE_SCRIPT_TAI_LE, G_UNICODE_SCRIPT_TAI_LE, - G_UNICODE_SCRIPT_TAI_LE, G_UNICODE_SCRIPT_TAI_LE, G_UNICODE_SCRIPT_TAI_LE, - G_UNICODE_SCRIPT_TAI_LE, G_UNICODE_SCRIPT_TAI_LE, G_UNICODE_SCRIPT_TAI_LE, - G_UNICODE_SCRIPT_TAI_LE, G_UNICODE_SCRIPT_TAI_LE, G_UNICODE_SCRIPT_TAI_LE, - G_UNICODE_SCRIPT_TAI_LE, G_UNICODE_SCRIPT_TAI_LE, G_UNICODE_SCRIPT_TAI_LE, - G_UNICODE_SCRIPT_TAI_LE, G_UNICODE_SCRIPT_TAI_LE, G_UNICODE_SCRIPT_TAI_LE, - G_UNICODE_SCRIPT_TAI_LE, G_UNICODE_SCRIPT_TAI_LE, G_UNICODE_SCRIPT_TAI_LE, - G_UNICODE_SCRIPT_TAI_LE, G_UNICODE_SCRIPT_TAI_LE, G_UNICODE_SCRIPT_TAI_LE, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_TAI_LE, - G_UNICODE_SCRIPT_TAI_LE, G_UNICODE_SCRIPT_TAI_LE, G_UNICODE_SCRIPT_TAI_LE, - G_UNICODE_SCRIPT_TAI_LE, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_NEW_TAI_LUE, G_UNICODE_SCRIPT_NEW_TAI_LUE, G_UNICODE_SCRIPT_NEW_TAI_LUE, - G_UNICODE_SCRIPT_NEW_TAI_LUE, G_UNICODE_SCRIPT_NEW_TAI_LUE, G_UNICODE_SCRIPT_NEW_TAI_LUE, - G_UNICODE_SCRIPT_NEW_TAI_LUE, G_UNICODE_SCRIPT_NEW_TAI_LUE, G_UNICODE_SCRIPT_NEW_TAI_LUE, - G_UNICODE_SCRIPT_NEW_TAI_LUE, G_UNICODE_SCRIPT_NEW_TAI_LUE, G_UNICODE_SCRIPT_NEW_TAI_LUE, - G_UNICODE_SCRIPT_NEW_TAI_LUE, G_UNICODE_SCRIPT_NEW_TAI_LUE, G_UNICODE_SCRIPT_NEW_TAI_LUE, - G_UNICODE_SCRIPT_NEW_TAI_LUE, G_UNICODE_SCRIPT_NEW_TAI_LUE, G_UNICODE_SCRIPT_NEW_TAI_LUE, - G_UNICODE_SCRIPT_NEW_TAI_LUE, G_UNICODE_SCRIPT_NEW_TAI_LUE, G_UNICODE_SCRIPT_NEW_TAI_LUE, - G_UNICODE_SCRIPT_NEW_TAI_LUE, G_UNICODE_SCRIPT_NEW_TAI_LUE, G_UNICODE_SCRIPT_NEW_TAI_LUE, - G_UNICODE_SCRIPT_NEW_TAI_LUE, G_UNICODE_SCRIPT_NEW_TAI_LUE, G_UNICODE_SCRIPT_NEW_TAI_LUE, - G_UNICODE_SCRIPT_NEW_TAI_LUE, G_UNICODE_SCRIPT_NEW_TAI_LUE, G_UNICODE_SCRIPT_NEW_TAI_LUE, - G_UNICODE_SCRIPT_NEW_TAI_LUE, G_UNICODE_SCRIPT_NEW_TAI_LUE, G_UNICODE_SCRIPT_NEW_TAI_LUE, - G_UNICODE_SCRIPT_NEW_TAI_LUE, G_UNICODE_SCRIPT_NEW_TAI_LUE, G_UNICODE_SCRIPT_NEW_TAI_LUE, - G_UNICODE_SCRIPT_NEW_TAI_LUE, G_UNICODE_SCRIPT_NEW_TAI_LUE, G_UNICODE_SCRIPT_NEW_TAI_LUE, - G_UNICODE_SCRIPT_NEW_TAI_LUE, G_UNICODE_SCRIPT_NEW_TAI_LUE, G_UNICODE_SCRIPT_NEW_TAI_LUE, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_NEW_TAI_LUE, G_UNICODE_SCRIPT_NEW_TAI_LUE, G_UNICODE_SCRIPT_NEW_TAI_LUE, - G_UNICODE_SCRIPT_NEW_TAI_LUE, G_UNICODE_SCRIPT_NEW_TAI_LUE, G_UNICODE_SCRIPT_NEW_TAI_LUE, - G_UNICODE_SCRIPT_NEW_TAI_LUE, G_UNICODE_SCRIPT_NEW_TAI_LUE, G_UNICODE_SCRIPT_NEW_TAI_LUE, - G_UNICODE_SCRIPT_NEW_TAI_LUE, G_UNICODE_SCRIPT_NEW_TAI_LUE, G_UNICODE_SCRIPT_NEW_TAI_LUE, - G_UNICODE_SCRIPT_NEW_TAI_LUE, G_UNICODE_SCRIPT_NEW_TAI_LUE, G_UNICODE_SCRIPT_NEW_TAI_LUE, - G_UNICODE_SCRIPT_NEW_TAI_LUE, G_UNICODE_SCRIPT_NEW_TAI_LUE, G_UNICODE_SCRIPT_NEW_TAI_LUE, - G_UNICODE_SCRIPT_NEW_TAI_LUE, G_UNICODE_SCRIPT_NEW_TAI_LUE, G_UNICODE_SCRIPT_NEW_TAI_LUE, - G_UNICODE_SCRIPT_NEW_TAI_LUE, G_UNICODE_SCRIPT_NEW_TAI_LUE, G_UNICODE_SCRIPT_NEW_TAI_LUE, - G_UNICODE_SCRIPT_NEW_TAI_LUE, G_UNICODE_SCRIPT_NEW_TAI_LUE, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_NEW_TAI_LUE, - G_UNICODE_SCRIPT_NEW_TAI_LUE, G_UNICODE_SCRIPT_NEW_TAI_LUE, G_UNICODE_SCRIPT_NEW_TAI_LUE, - G_UNICODE_SCRIPT_NEW_TAI_LUE, G_UNICODE_SCRIPT_NEW_TAI_LUE, G_UNICODE_SCRIPT_NEW_TAI_LUE, - G_UNICODE_SCRIPT_NEW_TAI_LUE, G_UNICODE_SCRIPT_NEW_TAI_LUE, G_UNICODE_SCRIPT_NEW_TAI_LUE, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_NEW_TAI_LUE, G_UNICODE_SCRIPT_NEW_TAI_LUE, - G_UNICODE_SCRIPT_KHMER, G_UNICODE_SCRIPT_KHMER, G_UNICODE_SCRIPT_KHMER, - G_UNICODE_SCRIPT_KHMER, G_UNICODE_SCRIPT_KHMER, G_UNICODE_SCRIPT_KHMER, - G_UNICODE_SCRIPT_KHMER, G_UNICODE_SCRIPT_KHMER, G_UNICODE_SCRIPT_KHMER, - G_UNICODE_SCRIPT_KHMER, G_UNICODE_SCRIPT_KHMER, G_UNICODE_SCRIPT_KHMER, - G_UNICODE_SCRIPT_KHMER, G_UNICODE_SCRIPT_KHMER, G_UNICODE_SCRIPT_KHMER, - G_UNICODE_SCRIPT_KHMER, G_UNICODE_SCRIPT_KHMER, G_UNICODE_SCRIPT_KHMER, - G_UNICODE_SCRIPT_KHMER, G_UNICODE_SCRIPT_KHMER, G_UNICODE_SCRIPT_KHMER, - G_UNICODE_SCRIPT_KHMER, G_UNICODE_SCRIPT_KHMER, G_UNICODE_SCRIPT_KHMER, - G_UNICODE_SCRIPT_KHMER, G_UNICODE_SCRIPT_KHMER, G_UNICODE_SCRIPT_KHMER, - G_UNICODE_SCRIPT_KHMER, G_UNICODE_SCRIPT_KHMER, G_UNICODE_SCRIPT_KHMER, - G_UNICODE_SCRIPT_KHMER, G_UNICODE_SCRIPT_KHMER, G_UNICODE_SCRIPT_BUGINESE, - G_UNICODE_SCRIPT_BUGINESE, G_UNICODE_SCRIPT_BUGINESE, G_UNICODE_SCRIPT_BUGINESE, - G_UNICODE_SCRIPT_BUGINESE, G_UNICODE_SCRIPT_BUGINESE, G_UNICODE_SCRIPT_BUGINESE, - G_UNICODE_SCRIPT_BUGINESE, G_UNICODE_SCRIPT_BUGINESE, G_UNICODE_SCRIPT_BUGINESE, - G_UNICODE_SCRIPT_BUGINESE, G_UNICODE_SCRIPT_BUGINESE, G_UNICODE_SCRIPT_BUGINESE, - G_UNICODE_SCRIPT_BUGINESE, G_UNICODE_SCRIPT_BUGINESE, G_UNICODE_SCRIPT_BUGINESE, - G_UNICODE_SCRIPT_BUGINESE, G_UNICODE_SCRIPT_BUGINESE, G_UNICODE_SCRIPT_BUGINESE, - G_UNICODE_SCRIPT_BUGINESE, G_UNICODE_SCRIPT_BUGINESE, G_UNICODE_SCRIPT_BUGINESE, - G_UNICODE_SCRIPT_BUGINESE, G_UNICODE_SCRIPT_BUGINESE, G_UNICODE_SCRIPT_BUGINESE, - G_UNICODE_SCRIPT_BUGINESE, G_UNICODE_SCRIPT_BUGINESE, G_UNICODE_SCRIPT_BUGINESE, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_BUGINESE, - G_UNICODE_SCRIPT_BUGINESE, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_BALINESE, G_UNICODE_SCRIPT_BALINESE, G_UNICODE_SCRIPT_BALINESE, - G_UNICODE_SCRIPT_BALINESE, G_UNICODE_SCRIPT_BALINESE, G_UNICODE_SCRIPT_BALINESE, - G_UNICODE_SCRIPT_BALINESE, G_UNICODE_SCRIPT_BALINESE, G_UNICODE_SCRIPT_BALINESE, - G_UNICODE_SCRIPT_BALINESE, G_UNICODE_SCRIPT_BALINESE, G_UNICODE_SCRIPT_BALINESE, - G_UNICODE_SCRIPT_BALINESE, G_UNICODE_SCRIPT_BALINESE, G_UNICODE_SCRIPT_BALINESE, - G_UNICODE_SCRIPT_BALINESE, G_UNICODE_SCRIPT_BALINESE, G_UNICODE_SCRIPT_BALINESE, - G_UNICODE_SCRIPT_BALINESE, G_UNICODE_SCRIPT_BALINESE, G_UNICODE_SCRIPT_BALINESE, - G_UNICODE_SCRIPT_BALINESE, G_UNICODE_SCRIPT_BALINESE, G_UNICODE_SCRIPT_BALINESE, - G_UNICODE_SCRIPT_BALINESE, G_UNICODE_SCRIPT_BALINESE, G_UNICODE_SCRIPT_BALINESE, - G_UNICODE_SCRIPT_BALINESE, G_UNICODE_SCRIPT_BALINESE, G_UNICODE_SCRIPT_BALINESE, - G_UNICODE_SCRIPT_BALINESE, G_UNICODE_SCRIPT_BALINESE, G_UNICODE_SCRIPT_BALINESE, - G_UNICODE_SCRIPT_BALINESE, G_UNICODE_SCRIPT_BALINESE, G_UNICODE_SCRIPT_BALINESE, - G_UNICODE_SCRIPT_BALINESE, G_UNICODE_SCRIPT_BALINESE, G_UNICODE_SCRIPT_BALINESE, - G_UNICODE_SCRIPT_BALINESE, G_UNICODE_SCRIPT_BALINESE, G_UNICODE_SCRIPT_BALINESE, - G_UNICODE_SCRIPT_BALINESE, G_UNICODE_SCRIPT_BALINESE, G_UNICODE_SCRIPT_BALINESE, - G_UNICODE_SCRIPT_BALINESE, G_UNICODE_SCRIPT_BALINESE, G_UNICODE_SCRIPT_BALINESE, - G_UNICODE_SCRIPT_BALINESE, G_UNICODE_SCRIPT_BALINESE, G_UNICODE_SCRIPT_BALINESE, - G_UNICODE_SCRIPT_BALINESE, G_UNICODE_SCRIPT_BALINESE, G_UNICODE_SCRIPT_BALINESE, - G_UNICODE_SCRIPT_BALINESE, G_UNICODE_SCRIPT_BALINESE, G_UNICODE_SCRIPT_BALINESE, - G_UNICODE_SCRIPT_BALINESE, G_UNICODE_SCRIPT_BALINESE, G_UNICODE_SCRIPT_BALINESE, - G_UNICODE_SCRIPT_BALINESE, G_UNICODE_SCRIPT_BALINESE, G_UNICODE_SCRIPT_BALINESE, - G_UNICODE_SCRIPT_BALINESE, G_UNICODE_SCRIPT_BALINESE, G_UNICODE_SCRIPT_BALINESE, - G_UNICODE_SCRIPT_BALINESE, G_UNICODE_SCRIPT_BALINESE, G_UNICODE_SCRIPT_BALINESE, - G_UNICODE_SCRIPT_BALINESE, G_UNICODE_SCRIPT_BALINESE, G_UNICODE_SCRIPT_BALINESE, - G_UNICODE_SCRIPT_BALINESE, G_UNICODE_SCRIPT_BALINESE, G_UNICODE_SCRIPT_BALINESE, - G_UNICODE_SCRIPT_BALINESE, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_BALINESE, - G_UNICODE_SCRIPT_BALINESE, G_UNICODE_SCRIPT_BALINESE, G_UNICODE_SCRIPT_BALINESE, - G_UNICODE_SCRIPT_BALINESE, G_UNICODE_SCRIPT_BALINESE, G_UNICODE_SCRIPT_BALINESE, - G_UNICODE_SCRIPT_BALINESE, G_UNICODE_SCRIPT_BALINESE, G_UNICODE_SCRIPT_BALINESE, - G_UNICODE_SCRIPT_BALINESE, G_UNICODE_SCRIPT_BALINESE, G_UNICODE_SCRIPT_BALINESE, - G_UNICODE_SCRIPT_BALINESE, G_UNICODE_SCRIPT_BALINESE, G_UNICODE_SCRIPT_BALINESE, - G_UNICODE_SCRIPT_BALINESE, G_UNICODE_SCRIPT_BALINESE, G_UNICODE_SCRIPT_BALINESE, - G_UNICODE_SCRIPT_BALINESE, G_UNICODE_SCRIPT_BALINESE, G_UNICODE_SCRIPT_BALINESE, - G_UNICODE_SCRIPT_BALINESE, G_UNICODE_SCRIPT_BALINESE, G_UNICODE_SCRIPT_BALINESE, - G_UNICODE_SCRIPT_BALINESE, G_UNICODE_SCRIPT_BALINESE, G_UNICODE_SCRIPT_BALINESE, - G_UNICODE_SCRIPT_BALINESE, G_UNICODE_SCRIPT_BALINESE, G_UNICODE_SCRIPT_BALINESE, - G_UNICODE_SCRIPT_BALINESE, G_UNICODE_SCRIPT_BALINESE, G_UNICODE_SCRIPT_BALINESE, - G_UNICODE_SCRIPT_BALINESE, G_UNICODE_SCRIPT_BALINESE, G_UNICODE_SCRIPT_BALINESE, - G_UNICODE_SCRIPT_BALINESE, G_UNICODE_SCRIPT_BALINESE, G_UNICODE_SCRIPT_BALINESE, - G_UNICODE_SCRIPT_BALINESE, G_UNICODE_SCRIPT_BALINESE, G_UNICODE_SCRIPT_BALINESE, - G_UNICODE_SCRIPT_BALINESE, G_UNICODE_SCRIPT_BALINESE, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_SUNDANESE, - G_UNICODE_SCRIPT_SUNDANESE, G_UNICODE_SCRIPT_SUNDANESE, G_UNICODE_SCRIPT_SUNDANESE, - G_UNICODE_SCRIPT_SUNDANESE, G_UNICODE_SCRIPT_SUNDANESE, G_UNICODE_SCRIPT_SUNDANESE, - G_UNICODE_SCRIPT_SUNDANESE, G_UNICODE_SCRIPT_SUNDANESE, G_UNICODE_SCRIPT_SUNDANESE, - G_UNICODE_SCRIPT_SUNDANESE, G_UNICODE_SCRIPT_SUNDANESE, G_UNICODE_SCRIPT_SUNDANESE, - G_UNICODE_SCRIPT_SUNDANESE, G_UNICODE_SCRIPT_SUNDANESE, G_UNICODE_SCRIPT_SUNDANESE, - G_UNICODE_SCRIPT_SUNDANESE, G_UNICODE_SCRIPT_SUNDANESE, G_UNICODE_SCRIPT_SUNDANESE, - G_UNICODE_SCRIPT_SUNDANESE, G_UNICODE_SCRIPT_SUNDANESE, G_UNICODE_SCRIPT_SUNDANESE, - G_UNICODE_SCRIPT_SUNDANESE, G_UNICODE_SCRIPT_SUNDANESE, G_UNICODE_SCRIPT_SUNDANESE, - G_UNICODE_SCRIPT_SUNDANESE, G_UNICODE_SCRIPT_SUNDANESE, G_UNICODE_SCRIPT_SUNDANESE, - G_UNICODE_SCRIPT_SUNDANESE, G_UNICODE_SCRIPT_SUNDANESE, G_UNICODE_SCRIPT_SUNDANESE, - G_UNICODE_SCRIPT_SUNDANESE, G_UNICODE_SCRIPT_SUNDANESE, G_UNICODE_SCRIPT_SUNDANESE, - G_UNICODE_SCRIPT_SUNDANESE, G_UNICODE_SCRIPT_SUNDANESE, G_UNICODE_SCRIPT_SUNDANESE, - G_UNICODE_SCRIPT_SUNDANESE, G_UNICODE_SCRIPT_SUNDANESE, G_UNICODE_SCRIPT_SUNDANESE, - G_UNICODE_SCRIPT_SUNDANESE, G_UNICODE_SCRIPT_SUNDANESE, G_UNICODE_SCRIPT_SUNDANESE, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_SUNDANESE, G_UNICODE_SCRIPT_SUNDANESE, G_UNICODE_SCRIPT_SUNDANESE, - G_UNICODE_SCRIPT_SUNDANESE, G_UNICODE_SCRIPT_SUNDANESE, G_UNICODE_SCRIPT_SUNDANESE, - G_UNICODE_SCRIPT_SUNDANESE, G_UNICODE_SCRIPT_SUNDANESE, G_UNICODE_SCRIPT_SUNDANESE, - G_UNICODE_SCRIPT_SUNDANESE, G_UNICODE_SCRIPT_SUNDANESE, G_UNICODE_SCRIPT_SUNDANESE, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_LEPCHA, G_UNICODE_SCRIPT_LEPCHA, - G_UNICODE_SCRIPT_LEPCHA, G_UNICODE_SCRIPT_LEPCHA, G_UNICODE_SCRIPT_LEPCHA, - G_UNICODE_SCRIPT_LEPCHA, G_UNICODE_SCRIPT_LEPCHA, G_UNICODE_SCRIPT_LEPCHA, - G_UNICODE_SCRIPT_LEPCHA, G_UNICODE_SCRIPT_LEPCHA, G_UNICODE_SCRIPT_LEPCHA, - G_UNICODE_SCRIPT_LEPCHA, G_UNICODE_SCRIPT_LEPCHA, G_UNICODE_SCRIPT_LEPCHA, - G_UNICODE_SCRIPT_LEPCHA, G_UNICODE_SCRIPT_LEPCHA, G_UNICODE_SCRIPT_LEPCHA, - G_UNICODE_SCRIPT_LEPCHA, G_UNICODE_SCRIPT_LEPCHA, G_UNICODE_SCRIPT_LEPCHA, - G_UNICODE_SCRIPT_LEPCHA, G_UNICODE_SCRIPT_LEPCHA, G_UNICODE_SCRIPT_LEPCHA, - G_UNICODE_SCRIPT_LEPCHA, G_UNICODE_SCRIPT_LEPCHA, G_UNICODE_SCRIPT_LEPCHA, - G_UNICODE_SCRIPT_LEPCHA, G_UNICODE_SCRIPT_LEPCHA, G_UNICODE_SCRIPT_LEPCHA, - G_UNICODE_SCRIPT_LEPCHA, G_UNICODE_SCRIPT_LEPCHA, G_UNICODE_SCRIPT_LEPCHA, - G_UNICODE_SCRIPT_LEPCHA, G_UNICODE_SCRIPT_LEPCHA, G_UNICODE_SCRIPT_LEPCHA, - G_UNICODE_SCRIPT_LEPCHA, G_UNICODE_SCRIPT_LEPCHA, G_UNICODE_SCRIPT_LEPCHA, - G_UNICODE_SCRIPT_LEPCHA, G_UNICODE_SCRIPT_LEPCHA, G_UNICODE_SCRIPT_LEPCHA, - G_UNICODE_SCRIPT_LEPCHA, G_UNICODE_SCRIPT_LEPCHA, G_UNICODE_SCRIPT_LEPCHA, - G_UNICODE_SCRIPT_LEPCHA, G_UNICODE_SCRIPT_LEPCHA, G_UNICODE_SCRIPT_LEPCHA, - G_UNICODE_SCRIPT_LEPCHA, G_UNICODE_SCRIPT_LEPCHA, G_UNICODE_SCRIPT_LEPCHA, - G_UNICODE_SCRIPT_LEPCHA, G_UNICODE_SCRIPT_LEPCHA, G_UNICODE_SCRIPT_LEPCHA, - G_UNICODE_SCRIPT_LEPCHA, G_UNICODE_SCRIPT_LEPCHA, G_UNICODE_SCRIPT_LEPCHA, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_LEPCHA, G_UNICODE_SCRIPT_LEPCHA, G_UNICODE_SCRIPT_LEPCHA, - G_UNICODE_SCRIPT_LEPCHA, G_UNICODE_SCRIPT_LEPCHA, G_UNICODE_SCRIPT_LEPCHA, - G_UNICODE_SCRIPT_LEPCHA, G_UNICODE_SCRIPT_LEPCHA, G_UNICODE_SCRIPT_LEPCHA, - G_UNICODE_SCRIPT_LEPCHA, G_UNICODE_SCRIPT_LEPCHA, G_UNICODE_SCRIPT_LEPCHA, - G_UNICODE_SCRIPT_LEPCHA, G_UNICODE_SCRIPT_LEPCHA, G_UNICODE_SCRIPT_LEPCHA, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_LEPCHA, G_UNICODE_SCRIPT_LEPCHA, G_UNICODE_SCRIPT_LEPCHA, - G_UNICODE_SCRIPT_OL_CHIKI, G_UNICODE_SCRIPT_OL_CHIKI, G_UNICODE_SCRIPT_OL_CHIKI, - G_UNICODE_SCRIPT_OL_CHIKI, G_UNICODE_SCRIPT_OL_CHIKI, G_UNICODE_SCRIPT_OL_CHIKI, - G_UNICODE_SCRIPT_OL_CHIKI, G_UNICODE_SCRIPT_OL_CHIKI, G_UNICODE_SCRIPT_OL_CHIKI, - G_UNICODE_SCRIPT_OL_CHIKI, G_UNICODE_SCRIPT_OL_CHIKI, G_UNICODE_SCRIPT_OL_CHIKI, - G_UNICODE_SCRIPT_OL_CHIKI, G_UNICODE_SCRIPT_OL_CHIKI, G_UNICODE_SCRIPT_OL_CHIKI, - G_UNICODE_SCRIPT_OL_CHIKI, G_UNICODE_SCRIPT_OL_CHIKI, G_UNICODE_SCRIPT_OL_CHIKI, - G_UNICODE_SCRIPT_OL_CHIKI, G_UNICODE_SCRIPT_OL_CHIKI, G_UNICODE_SCRIPT_OL_CHIKI, - G_UNICODE_SCRIPT_OL_CHIKI, G_UNICODE_SCRIPT_OL_CHIKI, G_UNICODE_SCRIPT_OL_CHIKI, - G_UNICODE_SCRIPT_OL_CHIKI, G_UNICODE_SCRIPT_OL_CHIKI, G_UNICODE_SCRIPT_OL_CHIKI, - G_UNICODE_SCRIPT_OL_CHIKI, G_UNICODE_SCRIPT_OL_CHIKI, G_UNICODE_SCRIPT_OL_CHIKI, - G_UNICODE_SCRIPT_OL_CHIKI, G_UNICODE_SCRIPT_OL_CHIKI, G_UNICODE_SCRIPT_OL_CHIKI, - G_UNICODE_SCRIPT_OL_CHIKI, G_UNICODE_SCRIPT_OL_CHIKI, G_UNICODE_SCRIPT_OL_CHIKI, - G_UNICODE_SCRIPT_OL_CHIKI, G_UNICODE_SCRIPT_OL_CHIKI, G_UNICODE_SCRIPT_OL_CHIKI, - G_UNICODE_SCRIPT_OL_CHIKI, G_UNICODE_SCRIPT_OL_CHIKI, G_UNICODE_SCRIPT_OL_CHIKI, - G_UNICODE_SCRIPT_OL_CHIKI, G_UNICODE_SCRIPT_OL_CHIKI, G_UNICODE_SCRIPT_OL_CHIKI, - G_UNICODE_SCRIPT_OL_CHIKI, G_UNICODE_SCRIPT_OL_CHIKI, G_UNICODE_SCRIPT_OL_CHIKI, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, - G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, - G_UNICODE_SCRIPT_CYRILLIC, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_GREEK, - G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, - G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_GREEK, - G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, - G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_CYRILLIC, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_INHERITED, - G_UNICODE_SCRIPT_INHERITED, G_UNICODE_SCRIPT_INHERITED, G_UNICODE_SCRIPT_INHERITED, - G_UNICODE_SCRIPT_INHERITED, G_UNICODE_SCRIPT_INHERITED, G_UNICODE_SCRIPT_INHERITED, - G_UNICODE_SCRIPT_INHERITED, G_UNICODE_SCRIPT_INHERITED, G_UNICODE_SCRIPT_INHERITED, - G_UNICODE_SCRIPT_INHERITED, G_UNICODE_SCRIPT_INHERITED, G_UNICODE_SCRIPT_INHERITED, - G_UNICODE_SCRIPT_INHERITED, G_UNICODE_SCRIPT_INHERITED, G_UNICODE_SCRIPT_INHERITED, - G_UNICODE_SCRIPT_INHERITED, G_UNICODE_SCRIPT_INHERITED, G_UNICODE_SCRIPT_INHERITED, - G_UNICODE_SCRIPT_INHERITED, G_UNICODE_SCRIPT_INHERITED, G_UNICODE_SCRIPT_INHERITED, - G_UNICODE_SCRIPT_INHERITED, G_UNICODE_SCRIPT_INHERITED, G_UNICODE_SCRIPT_INHERITED, - G_UNICODE_SCRIPT_INHERITED, G_UNICODE_SCRIPT_INHERITED, G_UNICODE_SCRIPT_INHERITED, - G_UNICODE_SCRIPT_INHERITED, G_UNICODE_SCRIPT_INHERITED, G_UNICODE_SCRIPT_INHERITED, - G_UNICODE_SCRIPT_INHERITED, G_UNICODE_SCRIPT_INHERITED, G_UNICODE_SCRIPT_INHERITED, - G_UNICODE_SCRIPT_INHERITED, G_UNICODE_SCRIPT_INHERITED, G_UNICODE_SCRIPT_INHERITED, - G_UNICODE_SCRIPT_INHERITED, G_UNICODE_SCRIPT_INHERITED, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_INHERITED, G_UNICODE_SCRIPT_INHERITED, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_LATIN, - G_UNICODE_SCRIPT_LATIN, G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, - G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, - G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, - G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, - G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, - G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, - G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, - G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, - G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, - G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, - G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, - G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, - G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, - G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, - G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, - G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, - G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, - G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, - G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, - G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, - G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, - G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, - G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, - G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, - G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, - G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_GREEK, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, - G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, - G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, - G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, - G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, - G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, - G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, - G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, - G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, - G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, - G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, - G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, - G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, - G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, - G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, - G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, - G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, - G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, - G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, - G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, - G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, - G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, - G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, - G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, - G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, - G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, - G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, - G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, - G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, - G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, - G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, - G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, - G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, - G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, - G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, - G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_GREEK, - G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, - G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, - G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, - G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, - G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, - G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, - G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, - G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_UNKNOWN, - G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, - G_UNICODE_SCRIPT_UNKNOWN, G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, - G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, - G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_GREEK, - G_UNICODE_SCRIPT_GREEK, G_UNICODE_SCRIPT_UNKNOWN, -}; - -static const struct { - gunichar start; - guint16 chars; - guint16 script; -} g_script_table[] = { - { 0x2000, 12, G_UNICODE_SCRIPT_COMMON }, - { 0x200c, 2, G_UNICODE_SCRIPT_INHERITED }, - { 0x200e, 87, G_UNICODE_SCRIPT_COMMON }, - { 0x206a, 7, G_UNICODE_SCRIPT_COMMON }, - { 0x2071, 1, G_UNICODE_SCRIPT_LATIN }, - { 0x2074, 11, G_UNICODE_SCRIPT_COMMON }, - { 0x207f, 1, G_UNICODE_SCRIPT_LATIN }, - { 0x2080, 15, G_UNICODE_SCRIPT_COMMON }, - { 0x2090, 5, G_UNICODE_SCRIPT_LATIN }, - { 0x20a0, 22, G_UNICODE_SCRIPT_COMMON }, - { 0x20d0, 33, G_UNICODE_SCRIPT_INHERITED }, - { 0x2100, 38, G_UNICODE_SCRIPT_COMMON }, - { 0x2126, 1, G_UNICODE_SCRIPT_GREEK }, - { 0x2127, 3, G_UNICODE_SCRIPT_COMMON }, - { 0x212a, 2, G_UNICODE_SCRIPT_LATIN }, - { 0x212c, 6, G_UNICODE_SCRIPT_COMMON }, - { 0x2132, 1, G_UNICODE_SCRIPT_LATIN }, - { 0x2133, 27, G_UNICODE_SCRIPT_COMMON }, - { 0x214e, 1, G_UNICODE_SCRIPT_LATIN }, - { 0x214f, 1, G_UNICODE_SCRIPT_COMMON }, - { 0x2153, 13, G_UNICODE_SCRIPT_COMMON }, - { 0x2160, 41, G_UNICODE_SCRIPT_LATIN }, - { 0x2190, 600, G_UNICODE_SCRIPT_COMMON }, - { 0x2400, 39, G_UNICODE_SCRIPT_COMMON }, - { 0x2440, 11, G_UNICODE_SCRIPT_COMMON }, - { 0x2460, 574, G_UNICODE_SCRIPT_COMMON }, - { 0x26a0, 29, G_UNICODE_SCRIPT_COMMON }, - { 0x26c0, 4, G_UNICODE_SCRIPT_COMMON }, - { 0x2701, 4, G_UNICODE_SCRIPT_COMMON }, - { 0x2706, 4, G_UNICODE_SCRIPT_COMMON }, - { 0x270c, 28, G_UNICODE_SCRIPT_COMMON }, - { 0x2729, 35, G_UNICODE_SCRIPT_COMMON }, - { 0x274d, 1, G_UNICODE_SCRIPT_COMMON }, - { 0x274f, 4, G_UNICODE_SCRIPT_COMMON }, - { 0x2756, 1, G_UNICODE_SCRIPT_COMMON }, - { 0x2758, 7, G_UNICODE_SCRIPT_COMMON }, - { 0x2761, 52, G_UNICODE_SCRIPT_COMMON }, - { 0x2798, 24, G_UNICODE_SCRIPT_COMMON }, - { 0x27b1, 14, G_UNICODE_SCRIPT_COMMON }, - { 0x27c0, 11, G_UNICODE_SCRIPT_COMMON }, - { 0x27cc, 1, G_UNICODE_SCRIPT_COMMON }, - { 0x27d0, 48, G_UNICODE_SCRIPT_COMMON }, - { 0x2800, 256, G_UNICODE_SCRIPT_BRAILLE }, - { 0x2900, 589, G_UNICODE_SCRIPT_COMMON }, - { 0x2b50, 5, G_UNICODE_SCRIPT_COMMON }, - { 0x2c00, 47, G_UNICODE_SCRIPT_GLAGOLITIC }, - { 0x2c30, 47, G_UNICODE_SCRIPT_GLAGOLITIC }, - { 0x2c60, 16, G_UNICODE_SCRIPT_LATIN }, - { 0x2c71, 13, G_UNICODE_SCRIPT_LATIN }, - { 0x2c80, 107, G_UNICODE_SCRIPT_COPTIC }, - { 0x2cf9, 7, G_UNICODE_SCRIPT_COPTIC }, - { 0x2d00, 38, G_UNICODE_SCRIPT_GEORGIAN }, - { 0x2d30, 54, G_UNICODE_SCRIPT_TIFINAGH }, - { 0x2d6f, 1, G_UNICODE_SCRIPT_TIFINAGH }, - { 0x2d80, 23, G_UNICODE_SCRIPT_ETHIOPIC }, - { 0x2da0, 7, G_UNICODE_SCRIPT_ETHIOPIC }, - { 0x2da8, 7, G_UNICODE_SCRIPT_ETHIOPIC }, - { 0x2db0, 7, G_UNICODE_SCRIPT_ETHIOPIC }, - { 0x2db8, 7, G_UNICODE_SCRIPT_ETHIOPIC }, - { 0x2dc0, 7, G_UNICODE_SCRIPT_ETHIOPIC }, - { 0x2dc8, 7, G_UNICODE_SCRIPT_ETHIOPIC }, - { 0x2dd0, 7, G_UNICODE_SCRIPT_ETHIOPIC }, - { 0x2dd8, 7, G_UNICODE_SCRIPT_ETHIOPIC }, - { 0x2de0, 32, G_UNICODE_SCRIPT_CYRILLIC }, - { 0x2e00, 49, G_UNICODE_SCRIPT_COMMON }, - { 0x2e80, 26, G_UNICODE_SCRIPT_HAN }, - { 0x2e9b, 89, G_UNICODE_SCRIPT_HAN }, - { 0x2f00, 214, G_UNICODE_SCRIPT_HAN }, - { 0x2ff0, 12, G_UNICODE_SCRIPT_COMMON }, - { 0x3000, 5, G_UNICODE_SCRIPT_COMMON }, - { 0x3005, 1, G_UNICODE_SCRIPT_HAN }, - { 0x3006, 1, G_UNICODE_SCRIPT_COMMON }, - { 0x3007, 1, G_UNICODE_SCRIPT_HAN }, - { 0x3008, 25, G_UNICODE_SCRIPT_COMMON }, - { 0x3021, 9, G_UNICODE_SCRIPT_HAN }, - { 0x302a, 6, G_UNICODE_SCRIPT_INHERITED }, - { 0x3030, 8, G_UNICODE_SCRIPT_COMMON }, - { 0x3038, 4, G_UNICODE_SCRIPT_HAN }, - { 0x303c, 4, G_UNICODE_SCRIPT_COMMON }, - { 0x3041, 86, G_UNICODE_SCRIPT_HIRAGANA }, - { 0x3099, 2, G_UNICODE_SCRIPT_INHERITED }, - { 0x309b, 2, G_UNICODE_SCRIPT_COMMON }, - { 0x309d, 3, G_UNICODE_SCRIPT_HIRAGANA }, - { 0x30a0, 1, G_UNICODE_SCRIPT_COMMON }, - { 0x30a1, 90, G_UNICODE_SCRIPT_KATAKANA }, - { 0x30fb, 2, G_UNICODE_SCRIPT_COMMON }, - { 0x30fd, 3, G_UNICODE_SCRIPT_KATAKANA }, - { 0x3105, 41, G_UNICODE_SCRIPT_BOPOMOFO }, - { 0x3131, 94, G_UNICODE_SCRIPT_HANGUL }, - { 0x3190, 16, G_UNICODE_SCRIPT_COMMON }, - { 0x31a0, 24, G_UNICODE_SCRIPT_BOPOMOFO }, - { 0x31c0, 36, G_UNICODE_SCRIPT_COMMON }, - { 0x31f0, 16, G_UNICODE_SCRIPT_KATAKANA }, - { 0x3200, 31, G_UNICODE_SCRIPT_HANGUL }, - { 0x3220, 36, G_UNICODE_SCRIPT_COMMON }, - { 0x3250, 16, G_UNICODE_SCRIPT_COMMON }, - { 0x3260, 31, G_UNICODE_SCRIPT_HANGUL }, - { 0x327f, 81, G_UNICODE_SCRIPT_COMMON }, - { 0x32d0, 47, G_UNICODE_SCRIPT_KATAKANA }, - { 0x3300, 88, G_UNICODE_SCRIPT_KATAKANA }, - { 0x3358, 168, G_UNICODE_SCRIPT_COMMON }, - { 0x3400, 6582, G_UNICODE_SCRIPT_HAN }, - { 0x4dc0, 64, G_UNICODE_SCRIPT_COMMON }, - { 0x4e00, 20932, G_UNICODE_SCRIPT_HAN }, - { 0xa000, 1165, G_UNICODE_SCRIPT_YI }, - { 0xa490, 55, G_UNICODE_SCRIPT_YI }, - { 0xa500, 300, G_UNICODE_SCRIPT_VAI }, - { 0xa640, 32, G_UNICODE_SCRIPT_CYRILLIC }, - { 0xa662, 18, G_UNICODE_SCRIPT_CYRILLIC }, - { 0xa67c, 28, G_UNICODE_SCRIPT_CYRILLIC }, - { 0xa700, 34, G_UNICODE_SCRIPT_COMMON }, - { 0xa722, 102, G_UNICODE_SCRIPT_LATIN }, - { 0xa788, 3, G_UNICODE_SCRIPT_COMMON }, - { 0xa78b, 2, G_UNICODE_SCRIPT_LATIN }, - { 0xa7fb, 5, G_UNICODE_SCRIPT_LATIN }, - { 0xa800, 44, G_UNICODE_SCRIPT_SYLOTI_NAGRI }, - { 0xa840, 56, G_UNICODE_SCRIPT_PHAGS_PA }, - { 0xa880, 69, G_UNICODE_SCRIPT_SAURASHTRA }, - { 0xa8ce, 12, G_UNICODE_SCRIPT_SAURASHTRA }, - { 0xa900, 48, G_UNICODE_SCRIPT_KAYAH_LI }, - { 0xa930, 36, G_UNICODE_SCRIPT_REJANG }, - { 0xa95f, 1, G_UNICODE_SCRIPT_REJANG }, - { 0xaa00, 55, G_UNICODE_SCRIPT_CHAM }, - { 0xaa40, 14, G_UNICODE_SCRIPT_CHAM }, - { 0xaa50, 10, G_UNICODE_SCRIPT_CHAM }, - { 0xaa5c, 4, G_UNICODE_SCRIPT_CHAM }, - { 0xac00, 11172, G_UNICODE_SCRIPT_HANGUL }, - { 0xf900, 302, G_UNICODE_SCRIPT_HAN }, - { 0xfa30, 59, G_UNICODE_SCRIPT_HAN }, - { 0xfa70, 106, G_UNICODE_SCRIPT_HAN }, - { 0xfb00, 7, G_UNICODE_SCRIPT_LATIN }, - { 0xfb13, 5, G_UNICODE_SCRIPT_ARMENIAN }, - { 0xfb1d, 26, G_UNICODE_SCRIPT_HEBREW }, - { 0xfb38, 5, G_UNICODE_SCRIPT_HEBREW }, - { 0xfb3e, 1, G_UNICODE_SCRIPT_HEBREW }, - { 0xfb40, 2, G_UNICODE_SCRIPT_HEBREW }, - { 0xfb43, 2, G_UNICODE_SCRIPT_HEBREW }, - { 0xfb46, 10, G_UNICODE_SCRIPT_HEBREW }, - { 0xfb50, 98, G_UNICODE_SCRIPT_ARABIC }, - { 0xfbd3, 363, G_UNICODE_SCRIPT_ARABIC }, - { 0xfd3e, 2, G_UNICODE_SCRIPT_COMMON }, - { 0xfd50, 64, G_UNICODE_SCRIPT_ARABIC }, - { 0xfd92, 54, G_UNICODE_SCRIPT_ARABIC }, - { 0xfdf0, 13, G_UNICODE_SCRIPT_ARABIC }, - { 0xfdfd, 1, G_UNICODE_SCRIPT_COMMON }, - { 0xfe00, 16, G_UNICODE_SCRIPT_INHERITED }, - { 0xfe10, 10, G_UNICODE_SCRIPT_COMMON }, - { 0xfe20, 7, G_UNICODE_SCRIPT_INHERITED }, - { 0xfe30, 35, G_UNICODE_SCRIPT_COMMON }, - { 0xfe54, 19, G_UNICODE_SCRIPT_COMMON }, - { 0xfe68, 4, G_UNICODE_SCRIPT_COMMON }, - { 0xfe70, 5, G_UNICODE_SCRIPT_ARABIC }, - { 0xfe76, 135, G_UNICODE_SCRIPT_ARABIC }, - { 0xfeff, 1, G_UNICODE_SCRIPT_COMMON }, - { 0xff01, 32, G_UNICODE_SCRIPT_COMMON }, - { 0xff21, 26, G_UNICODE_SCRIPT_LATIN }, - { 0xff3b, 6, G_UNICODE_SCRIPT_COMMON }, - { 0xff41, 26, G_UNICODE_SCRIPT_LATIN }, - { 0xff5b, 11, G_UNICODE_SCRIPT_COMMON }, - { 0xff66, 10, G_UNICODE_SCRIPT_KATAKANA }, - { 0xff70, 1, G_UNICODE_SCRIPT_COMMON }, - { 0xff71, 45, G_UNICODE_SCRIPT_KATAKANA }, - { 0xff9e, 2, G_UNICODE_SCRIPT_COMMON }, - { 0xffa0, 31, G_UNICODE_SCRIPT_HANGUL }, - { 0xffc2, 6, G_UNICODE_SCRIPT_HANGUL }, - { 0xffca, 6, G_UNICODE_SCRIPT_HANGUL }, - { 0xffd2, 6, G_UNICODE_SCRIPT_HANGUL }, - { 0xffda, 3, G_UNICODE_SCRIPT_HANGUL }, - { 0xffe0, 7, G_UNICODE_SCRIPT_COMMON }, - { 0xffe8, 7, G_UNICODE_SCRIPT_COMMON }, - { 0xfff9, 5, G_UNICODE_SCRIPT_COMMON }, - { 0x10000, 12, G_UNICODE_SCRIPT_LINEAR_B }, - { 0x1000d, 26, G_UNICODE_SCRIPT_LINEAR_B }, - { 0x10028, 19, G_UNICODE_SCRIPT_LINEAR_B }, - { 0x1003c, 2, G_UNICODE_SCRIPT_LINEAR_B }, - { 0x1003f, 15, G_UNICODE_SCRIPT_LINEAR_B }, - { 0x10050, 14, G_UNICODE_SCRIPT_LINEAR_B }, - { 0x10080, 123, G_UNICODE_SCRIPT_LINEAR_B }, - { 0x10100, 3, G_UNICODE_SCRIPT_COMMON }, - { 0x10107, 45, G_UNICODE_SCRIPT_COMMON }, - { 0x10137, 9, G_UNICODE_SCRIPT_COMMON }, - { 0x10140, 75, G_UNICODE_SCRIPT_GREEK }, - { 0x10190, 12, G_UNICODE_SCRIPT_COMMON }, - { 0x101d0, 45, G_UNICODE_SCRIPT_COMMON }, - { 0x101fd, 1, G_UNICODE_SCRIPT_INHERITED }, - { 0x10280, 29, G_UNICODE_SCRIPT_LYCIAN }, - { 0x102a0, 49, G_UNICODE_SCRIPT_CARIAN }, - { 0x10300, 31, G_UNICODE_SCRIPT_OLD_ITALIC }, - { 0x10320, 4, G_UNICODE_SCRIPT_OLD_ITALIC }, - { 0x10330, 27, G_UNICODE_SCRIPT_GOTHIC }, - { 0x10380, 30, G_UNICODE_SCRIPT_UGARITIC }, - { 0x1039f, 1, G_UNICODE_SCRIPT_UGARITIC }, - { 0x103a0, 36, G_UNICODE_SCRIPT_OLD_PERSIAN }, - { 0x103c8, 14, G_UNICODE_SCRIPT_OLD_PERSIAN }, - { 0x10400, 80, G_UNICODE_SCRIPT_DESERET }, - { 0x10450, 48, G_UNICODE_SCRIPT_SHAVIAN }, - { 0x10480, 30, G_UNICODE_SCRIPT_OSMANYA }, - { 0x104a0, 10, G_UNICODE_SCRIPT_OSMANYA }, - { 0x10800, 6, G_UNICODE_SCRIPT_CYPRIOT }, - { 0x10808, 1, G_UNICODE_SCRIPT_CYPRIOT }, - { 0x1080a, 44, G_UNICODE_SCRIPT_CYPRIOT }, - { 0x10837, 2, G_UNICODE_SCRIPT_CYPRIOT }, - { 0x1083c, 1, G_UNICODE_SCRIPT_CYPRIOT }, - { 0x1083f, 1, G_UNICODE_SCRIPT_CYPRIOT }, - { 0x10900, 26, G_UNICODE_SCRIPT_PHOENICIAN }, - { 0x1091f, 1, G_UNICODE_SCRIPT_PHOENICIAN }, - { 0x10920, 26, G_UNICODE_SCRIPT_LYDIAN }, - { 0x1093f, 1, G_UNICODE_SCRIPT_LYDIAN }, - { 0x10a00, 4, G_UNICODE_SCRIPT_KHAROSHTHI }, - { 0x10a05, 2, G_UNICODE_SCRIPT_KHAROSHTHI }, - { 0x10a0c, 8, G_UNICODE_SCRIPT_KHAROSHTHI }, - { 0x10a15, 3, G_UNICODE_SCRIPT_KHAROSHTHI }, - { 0x10a19, 27, G_UNICODE_SCRIPT_KHAROSHTHI }, - { 0x10a38, 3, G_UNICODE_SCRIPT_KHAROSHTHI }, - { 0x10a3f, 9, G_UNICODE_SCRIPT_KHAROSHTHI }, - { 0x10a50, 9, G_UNICODE_SCRIPT_KHAROSHTHI }, - { 0x12000, 879, G_UNICODE_SCRIPT_CUNEIFORM }, - { 0x12400, 99, G_UNICODE_SCRIPT_CUNEIFORM }, - { 0x12470, 4, G_UNICODE_SCRIPT_CUNEIFORM }, - { 0x1d000, 246, G_UNICODE_SCRIPT_COMMON }, - { 0x1d100, 39, G_UNICODE_SCRIPT_COMMON }, - { 0x1d129, 62, G_UNICODE_SCRIPT_COMMON }, - { 0x1d167, 3, G_UNICODE_SCRIPT_INHERITED }, - { 0x1d16a, 17, G_UNICODE_SCRIPT_COMMON }, - { 0x1d17b, 8, G_UNICODE_SCRIPT_INHERITED }, - { 0x1d183, 2, G_UNICODE_SCRIPT_COMMON }, - { 0x1d185, 7, G_UNICODE_SCRIPT_INHERITED }, - { 0x1d18c, 30, G_UNICODE_SCRIPT_COMMON }, - { 0x1d1aa, 4, G_UNICODE_SCRIPT_INHERITED }, - { 0x1d1ae, 48, G_UNICODE_SCRIPT_COMMON }, - { 0x1d200, 70, G_UNICODE_SCRIPT_GREEK }, - { 0x1d300, 87, G_UNICODE_SCRIPT_COMMON }, - { 0x1d360, 18, G_UNICODE_SCRIPT_COMMON }, - { 0x1d400, 85, G_UNICODE_SCRIPT_COMMON }, - { 0x1d456, 71, G_UNICODE_SCRIPT_COMMON }, - { 0x1d49e, 2, G_UNICODE_SCRIPT_COMMON }, - { 0x1d4a2, 1, G_UNICODE_SCRIPT_COMMON }, - { 0x1d4a5, 2, G_UNICODE_SCRIPT_COMMON }, - { 0x1d4a9, 4, G_UNICODE_SCRIPT_COMMON }, - { 0x1d4ae, 12, G_UNICODE_SCRIPT_COMMON }, - { 0x1d4bb, 1, G_UNICODE_SCRIPT_COMMON }, - { 0x1d4bd, 7, G_UNICODE_SCRIPT_COMMON }, - { 0x1d4c5, 65, G_UNICODE_SCRIPT_COMMON }, - { 0x1d507, 4, G_UNICODE_SCRIPT_COMMON }, - { 0x1d50d, 8, G_UNICODE_SCRIPT_COMMON }, - { 0x1d516, 7, G_UNICODE_SCRIPT_COMMON }, - { 0x1d51e, 28, G_UNICODE_SCRIPT_COMMON }, - { 0x1d53b, 4, G_UNICODE_SCRIPT_COMMON }, - { 0x1d540, 5, G_UNICODE_SCRIPT_COMMON }, - { 0x1d546, 1, G_UNICODE_SCRIPT_COMMON }, - { 0x1d54a, 7, G_UNICODE_SCRIPT_COMMON }, - { 0x1d552, 340, G_UNICODE_SCRIPT_COMMON }, - { 0x1d6a8, 292, G_UNICODE_SCRIPT_COMMON }, - { 0x1d7ce, 50, G_UNICODE_SCRIPT_COMMON }, - { 0x1f000, 44, G_UNICODE_SCRIPT_COMMON }, - { 0x1f030, 100, G_UNICODE_SCRIPT_COMMON }, - { 0x20000, 42711, G_UNICODE_SCRIPT_HAN }, - { 0x2f800, 542, G_UNICODE_SCRIPT_HAN }, - { 0xe0001, 1, G_UNICODE_SCRIPT_COMMON }, - { 0xe0020, 96, G_UNICODE_SCRIPT_COMMON }, - { 0xe0100, 240, G_UNICODE_SCRIPT_INHERITED }, -}; diff --git a/lib/win32/glib-2.20.4/glib/gsequence.c b/lib/win32/glib-2.20.4/glib/gsequence.c deleted file mode 100644 index fb64658b6729d..0000000000000 --- a/lib/win32/glib-2.20.4/glib/gsequence.c +++ /dev/null @@ -1,1750 +0,0 @@ -/* GLIB - Library of useful routines for C programming - * Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007 - * Soeren Sandmann (sandmann@daimi.au.dk) - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library 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 - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ - -#include "config.h" - -#include "glib.h" -#include "galias.h" - -typedef struct _GSequenceNode GSequenceNode; - -struct _GSequence -{ - GSequenceNode * end_node; - GDestroyNotify data_destroy_notify; - gboolean access_prohibited; - - /* The 'real_sequence' is used when temporary sequences are created - * to hold nodes that are being rearranged. The 'real_sequence' of such - * a temporary sequence points to the sequence that is actually being - * manipulated. The only reason we need this is so that when the - * sort/sort_changed/search_iter() functions call out to the application - * g_sequence_iter_get_sequence() will return the correct sequence. - */ - GSequence * real_sequence; -}; - -struct _GSequenceNode -{ - gint n_nodes; - GSequenceNode * parent; - GSequenceNode * left; - GSequenceNode * right; - gpointer data; /* For the end node, this field points - * to the sequence - */ -}; - -/* - * Declaration of GSequenceNode methods - */ -static GSequenceNode *node_new (gpointer data); -static GSequenceNode *node_get_first (GSequenceNode *node); -static GSequenceNode *node_get_last (GSequenceNode *node); -static GSequenceNode *node_get_prev (GSequenceNode *node); -static GSequenceNode *node_get_next (GSequenceNode *node); -static gint node_get_pos (GSequenceNode *node); -static GSequenceNode *node_get_by_pos (GSequenceNode *node, - gint pos); -static GSequenceNode *node_find_closest (GSequenceNode *haystack, - GSequenceNode *needle, - GSequenceNode *end, - GSequenceIterCompareFunc cmp, - gpointer user_data); -static gint node_get_length (GSequenceNode *node); -static void node_free (GSequenceNode *node, - GSequence *seq); -static void node_cut (GSequenceNode *split); -static void node_insert_before (GSequenceNode *node, - GSequenceNode *new); -static void node_unlink (GSequenceNode *node); -static void node_join (GSequenceNode *left, - GSequenceNode *right); -static void node_insert_sorted (GSequenceNode *node, - GSequenceNode *new, - GSequenceNode *end, - GSequenceIterCompareFunc cmp_func, - gpointer cmp_data); - - -/* - * Various helper functions - */ -static void -check_seq_access (GSequence *seq) -{ - if (G_UNLIKELY (seq->access_prohibited)) - { - g_warning ("Accessing a sequence while it is " - "being sorted or searched is not allowed"); - } -} - -static GSequence * -get_sequence (GSequenceNode *node) -{ - return (GSequence *)node_get_last (node)->data; -} - -static void -check_iter_access (GSequenceIter *iter) -{ - check_seq_access (get_sequence (iter)); -} - -static gboolean -is_end (GSequenceIter *iter) -{ - GSequence *seq; - - if (iter->right) - return FALSE; - - if (!iter->parent) - return TRUE; - - if (iter->parent->right != iter) - return FALSE; - - seq = get_sequence (iter); - - return seq->end_node == iter; -} - -typedef struct -{ - GCompareDataFunc cmp_func; - gpointer cmp_data; - GSequenceNode *end_node; -} SortInfo; - -/* This function compares two iters using a normal compare - * function and user_data passed in in a SortInfo struct - */ -static gint -iter_compare (GSequenceIter *node1, - GSequenceIter *node2, - gpointer data) -{ - const SortInfo *info = data; - gint retval; - - if (node1 == info->end_node) - return 1; - - if (node2 == info->end_node) - return -1; - - retval = info->cmp_func (node1->data, node2->data, info->cmp_data); - - return retval; -} - -/* - * Public API - */ - -/** - * g_sequence_new: - * @data_destroy: a #GDestroyNotify function, or %NULL - * - * Creates a new GSequence. The @data_destroy function, if non-%NULL will - * be called on all items when the sequence is destroyed and on items that - * are removed from the sequence. - * - * Return value: a new #GSequence - * - * Since: 2.14 - **/ -GSequence * -g_sequence_new (GDestroyNotify data_destroy) -{ - GSequence *seq = g_new (GSequence, 1); - seq->data_destroy_notify = data_destroy; - - seq->end_node = node_new (seq); - - seq->access_prohibited = FALSE; - - seq->real_sequence = seq; - - return seq; -} - -/** - * g_sequence_free: - * @seq: a #GSequence - * - * Frees the memory allocated for @seq. If @seq has a data destroy - * function associated with it, that function is called on all items in - * @seq. - * - * Since: 2.14 - **/ -void -g_sequence_free (GSequence *seq) -{ - g_return_if_fail (seq != NULL); - - check_seq_access (seq); - - node_free (seq->end_node, seq); - - g_free (seq); -} - -/** - * g_sequence_foreach_range: - * @begin: a #GSequenceIter - * @end: a #GSequenceIter - * @func: a #GFunc - * @user_data: user data passed to @func - * - * Calls @func for each item in the range (@begin, @end) passing - * @user_data to the function. - * - * Since: 2.14 - **/ -void -g_sequence_foreach_range (GSequenceIter *begin, - GSequenceIter *end, - GFunc func, - gpointer user_data) -{ - GSequence *seq; - GSequenceIter *iter; - - g_return_if_fail (func != NULL); - g_return_if_fail (begin != NULL); - g_return_if_fail (end != NULL); - - seq = get_sequence (begin); - - seq->access_prohibited = TRUE; - - iter = begin; - while (iter != end) - { - GSequenceIter *next = node_get_next (iter); - - func (iter->data, user_data); - - iter = next; - } - - seq->access_prohibited = FALSE; -} - -/** - * g_sequence_foreach: - * @seq: a #GSequence - * @func: the function to call for each item in @seq - * @user_data: user data passed to @func - * - * Calls @func for each item in the sequence passing @user_data - * to the function. - * - * Since: 2.14 - **/ -void -g_sequence_foreach (GSequence *seq, - GFunc func, - gpointer user_data) -{ - GSequenceIter *begin, *end; - - check_seq_access (seq); - - begin = g_sequence_get_begin_iter (seq); - end = g_sequence_get_end_iter (seq); - - g_sequence_foreach_range (begin, end, func, user_data); -} - -/** - * g_sequence_range_get_midpoint: - * @begin: a #GSequenceIter - * @end: a #GSequenceIter - * - * Finds an iterator somewhere in the range (@begin, @end). This - * iterator will be close to the middle of the range, but is not - * guaranteed to be exactly in the middle. - * - * The @begin and @end iterators must both point to the same sequence and - * @begin must come before or be equal to @end in the sequence. - * - * Return value: A #GSequenceIter pointing somewhere in the - * (@begin, @end) range. - * - * Since: 2.14 - **/ -GSequenceIter * -g_sequence_range_get_midpoint (GSequenceIter *begin, - GSequenceIter *end) -{ - int begin_pos, end_pos, mid_pos; - - g_return_val_if_fail (begin != NULL, NULL); - g_return_val_if_fail (end != NULL, NULL); - g_return_val_if_fail (get_sequence (begin) == get_sequence (end), NULL); - - begin_pos = node_get_pos (begin); - end_pos = node_get_pos (end); - - g_return_val_if_fail (end_pos >= begin_pos, NULL); - - mid_pos = begin_pos + (end_pos - begin_pos) / 2; - - return node_get_by_pos (begin, mid_pos); -} - -/** - * g_sequence_iter_compare: - * @a: a #GSequenceIter - * @b: a #GSequenceIter - * - * Returns a negative number if @a comes before @b, 0 if they are equal, - * and a positive number if @a comes after @b. - * - * The @a and @b iterators must point into the same sequence. - * - * Return value: A negative number if @a comes before @b, 0 if they are - * equal, and a positive number if @a comes after @b. - * - * Since: 2.14 - **/ -gint -g_sequence_iter_compare (GSequenceIter *a, - GSequenceIter *b) -{ - gint a_pos, b_pos; - - g_return_val_if_fail (a != NULL, 0); - g_return_val_if_fail (b != NULL, 0); - g_return_val_if_fail (get_sequence (a) == get_sequence (b), 0); - - check_iter_access (a); - check_iter_access (b); - - a_pos = node_get_pos (a); - b_pos = node_get_pos (b); - - if (a_pos == b_pos) - return 0; - else if (a_pos > b_pos) - return 1; - else - return -1; -} - -/** - * g_sequence_append: - * @seq: a #GSequencePointer - * @data: the data for the new item - * - * Adds a new item to the end of @seq. - * - * Return value: an iterator pointing to the new item - * - * Since: 2.14 - **/ -GSequenceIter * -g_sequence_append (GSequence *seq, - gpointer data) -{ - GSequenceNode *node; - - g_return_val_if_fail (seq != NULL, NULL); - - check_seq_access (seq); - - node = node_new (data); - node_insert_before (seq->end_node, node); - - return node; -} - -/** - * g_sequence_prepend: - * @seq: a #GSequence - * @data: the data for the new item - * - * Adds a new item to the front of @seq - * - * Return value: an iterator pointing to the new item - * - * Since: 2.14 - **/ -GSequenceIter * -g_sequence_prepend (GSequence *seq, - gpointer data) -{ - GSequenceNode *node, *first; - - g_return_val_if_fail (seq != NULL, NULL); - - check_seq_access (seq); - - node = node_new (data); - first = node_get_first (seq->end_node); - - node_insert_before (first, node); - - return node; -} - -/** - * g_sequence_insert_before: - * @iter: a #GSequenceIter - * @data: the data for the new item - * - * Inserts a new item just before the item pointed to by @iter. - * - * Return value: an iterator pointing to the new item - * - * Since: 2.14 - **/ -GSequenceIter * -g_sequence_insert_before (GSequenceIter *iter, - gpointer data) -{ - GSequenceNode *node; - - g_return_val_if_fail (iter != NULL, NULL); - - check_iter_access (iter); - - node = node_new (data); - - node_insert_before (iter, node); - - return node; -} - -/** - * g_sequence_remove: - * @iter: a #GSequenceIter - * - * Removes the item pointed to by @iter. It is an error to pass the - * end iterator to this function. - * - * If the sequnce has a data destroy function associated with it, this - * function is called on the data for the removed item. - * - * Since: 2.14 - **/ -void -g_sequence_remove (GSequenceIter *iter) -{ - GSequence *seq; - - g_return_if_fail (iter != NULL); - g_return_if_fail (!is_end (iter)); - - check_iter_access (iter); - - seq = get_sequence (iter); - - node_unlink (iter); - node_free (iter, seq); -} - -/** - * g_sequence_remove_range: - * @begin: a #GSequenceIter - * @end: a #GSequenceIter - * - * Removes all items in the (@begin, @end) range. - * - * If the sequence has a data destroy function associated with it, this - * function is called on the data for the removed items. - * - * Since: 2.14 - **/ -void -g_sequence_remove_range (GSequenceIter *begin, - GSequenceIter *end) -{ - g_return_if_fail (get_sequence (begin) == get_sequence (end)); - - check_iter_access (begin); - check_iter_access (end); - - g_sequence_move_range (NULL, begin, end); -} - -/** - * g_sequence_move_range: - * @dest: a #GSequenceIter - * @begin: a #GSequenceIter - * @end: a #GSequenceIter - * - * Inserts the (@begin, @end) range at the destination pointed to by ptr. - * The @begin and @end iters must point into the same sequence. It is - * allowed for @dest to point to a different sequence than the one pointed - * into by @begin and @end. - * - * If @dest is NULL, the range indicated by @begin and @end is - * removed from the sequence. If @dest iter points to a place within - * the (@begin, @end) range, the range does not move. - * - * Since: 2.14 - **/ -void -g_sequence_move_range (GSequenceIter *dest, - GSequenceIter *begin, - GSequenceIter *end) -{ - GSequence *src_seq; - GSequenceNode *first; - - g_return_if_fail (begin != NULL); - g_return_if_fail (end != NULL); - - check_iter_access (begin); - check_iter_access (end); - if (dest) - check_iter_access (dest); - - src_seq = get_sequence (begin); - - g_return_if_fail (src_seq == get_sequence (end)); - - /* Dest points to begin or end? */ - if (dest == begin || dest == end) - return; - - /* begin comes after end? */ - if (g_sequence_iter_compare (begin, end) >= 0) - return; - - /* dest points somewhere in the (begin, end) range? */ - if (dest && get_sequence (dest) == src_seq && - g_sequence_iter_compare (dest, begin) > 0 && - g_sequence_iter_compare (dest, end) < 0) - { - return; - } - - src_seq = get_sequence (begin); - - first = node_get_first (begin); - - node_cut (begin); - - node_cut (end); - - if (first != begin) - node_join (first, end); - - if (dest) - { - first = node_get_first (dest); - - node_cut (dest); - - node_join (begin, dest); - - if (dest != first) - node_join (first, begin); - } - else - { - node_free (begin, src_seq); - } -} - -/** - * g_sequence_sort: - * @seq: a #GSequence - * @cmp_func: the #GCompareDataFunc used to sort @seq. This function is - * passed two items of @seq and should return 0 if they are equal, - * a negative value fi the first comes before the second, and a - * positive value if the second comes before the first. - * @cmp_data: user data passed to @cmp_func - * - * Sorts @seq using @cmp_func. - * - * Since: 2.14 - **/ -void -g_sequence_sort (GSequence *seq, - GCompareDataFunc cmp_func, - gpointer cmp_data) -{ - SortInfo info; - - info.cmp_func = cmp_func; - info.cmp_data = cmp_data; - info.end_node = seq->end_node; - - check_seq_access (seq); - - g_sequence_sort_iter (seq, iter_compare, &info); -} - -/** - * g_sequence_insert_sorted: - * @seq: a #GSequence - * @data: the data to insert - * @cmp_func: the #GCompareDataFunc used to compare items in the sequence. It - * is called with two items of the @seq and @user_data. It should - * return 0 if the items are equal, a negative value if the first - * item comes before the second, and a positive value if the second - * item comes before the first. - * @cmp_data: user data passed to @cmp_func. - * - * Inserts @data into @sequence using @func to determine the new position. - * The sequence must already be sorted according to @cmp_func; otherwise the - * new position of @data is undefined. - * - * Return value: a #GSequenceIter pointing to the new item. - * - * Since: 2.14 - **/ -GSequenceIter * -g_sequence_insert_sorted (GSequence *seq, - gpointer data, - GCompareDataFunc cmp_func, - gpointer cmp_data) -{ - SortInfo info; - - g_return_val_if_fail (seq != NULL, NULL); - g_return_val_if_fail (cmp_func != NULL, NULL); - - info.cmp_func = cmp_func; - info.cmp_data = cmp_data; - info.end_node = seq->end_node; - check_seq_access (seq); - - return g_sequence_insert_sorted_iter (seq, data, iter_compare, &info); -} - -/** - * g_sequence_sort_changed: - * @iter: A #GSequenceIter - * @cmp_func: the #GCompareDataFunc used to compare items in the sequence. It - * is called with two items of the @seq and @user_data. It should - * return 0 if the items are equal, a negative value if the first - * item comes before the second, and a positive value if the second - * item comes before the first. - * @cmp_data: user data passed to @cmp_func. - * - * Moves the data pointed to a new position as indicated by @cmp_func. This - * function should be called for items in a sequence already sorted according - * to @cmp_func whenever some aspect of an item changes so that @cmp_func - * may return different values for that item. - * - * Since: 2.14 - **/ -void -g_sequence_sort_changed (GSequenceIter *iter, - GCompareDataFunc cmp_func, - gpointer cmp_data) -{ - SortInfo info; - - g_return_if_fail (!is_end (iter)); - - info.cmp_func = cmp_func; - info.cmp_data = cmp_data; - info.end_node = get_sequence (iter)->end_node; - check_iter_access (iter); - - g_sequence_sort_changed_iter (iter, iter_compare, &info); -} - -/** - * g_sequence_search: - * @seq: a #GSequence - * @data: data for the new item - * @cmp_func: the #GCompareDataFunc used to compare items in the sequence. It - * is called with two items of the @seq and @user_data. It should - * return 0 if the items are equal, a negative value if the first - * item comes before the second, and a positive value if the second - * item comes before the first. - * @cmp_data: user data passed to @cmp_func. - * - * Returns an iterator pointing to the position where @data would - * be inserted according to @cmp_func and @cmp_data. - * - * Return value: an #GSequenceIter pointing to the position where @data - * would have been inserted according to @cmp_func and @cmp_data. - * - * Since: 2.14 - **/ -GSequenceIter * -g_sequence_search (GSequence *seq, - gpointer data, - GCompareDataFunc cmp_func, - gpointer cmp_data) -{ - SortInfo info; - - g_return_val_if_fail (seq != NULL, NULL); - - info.cmp_func = cmp_func; - info.cmp_data = cmp_data; - info.end_node = seq->end_node; - check_seq_access (seq); - - return g_sequence_search_iter (seq, data, iter_compare, &info); -} - -/** - * g_sequence_sort_iter: - * @seq: a #GSequence - * @cmp_func: the #GSequenceItercompare used to compare iterators in the - * sequence. It is called with two iterators pointing into @seq. It should - * return 0 if the iterators are equal, a negative value if the first - * iterator comes before the second, and a positive value if the second - * iterator comes before the first. - * @cmp_data: user data passed to @cmp_func - * - * Like g_sequence_sort(), but uses a #GSequenceIterCompareFunc instead - * of a GCompareDataFunc as the compare function - * - * Since: 2.14 - **/ -void -g_sequence_sort_iter (GSequence *seq, - GSequenceIterCompareFunc cmp_func, - gpointer cmp_data) -{ - GSequence *tmp; - GSequenceNode *begin, *end; - - g_return_if_fail (seq != NULL); - g_return_if_fail (cmp_func != NULL); - - check_seq_access (seq); - - begin = g_sequence_get_begin_iter (seq); - end = g_sequence_get_end_iter (seq); - - tmp = g_sequence_new (NULL); - tmp->real_sequence = seq; - - g_sequence_move_range (g_sequence_get_begin_iter (tmp), begin, end); - - seq->access_prohibited = TRUE; - tmp->access_prohibited = TRUE; - - while (g_sequence_get_length (tmp) > 0) - { - GSequenceNode *node = g_sequence_get_begin_iter (tmp); - - node_insert_sorted (seq->end_node, node, seq->end_node, - cmp_func, cmp_data); - } - - tmp->access_prohibited = FALSE; - seq->access_prohibited = FALSE; - - g_sequence_free (tmp); -} - -/** - * g_sequence_sort_changed_iter: - * @iter: a #GSequenceIter - * @iter_cmp: the #GSequenceItercompare used to compare iterators in the - * sequence. It is called with two iterators pointing into @seq. It should - * return 0 if the iterators are equal, a negative value if the first - * iterator comes before the second, and a positive value if the second - * iterator comes before the first. - * @cmp_data: user data passed to @cmp_func - * - * Like g_sequence_sort_changed(), but uses - * a #GSequenceIterCompareFunc instead of a #GCompareDataFunc as - * the compare function. - * - * Since: 2.14 - **/ -void -g_sequence_sort_changed_iter (GSequenceIter *iter, - GSequenceIterCompareFunc iter_cmp, - gpointer cmp_data) -{ - GSequence *seq, *tmp_seq; - GSequenceIter *next, *prev; - - g_return_if_fail (iter != NULL); - g_return_if_fail (!is_end (iter)); - g_return_if_fail (iter_cmp != NULL); - check_iter_access (iter); - - /* If one of the neighbours is equal to iter, then - * don't move it. This ensures that sort_changed() is - * a stable operation. - */ - - next = node_get_next (iter); - prev = node_get_prev (iter); - - if (prev != iter && iter_cmp (prev, iter, cmp_data) == 0) - return; - - if (!is_end (next) && iter_cmp (next, iter, cmp_data) == 0) - return; - - seq = get_sequence (iter); - - seq->access_prohibited = TRUE; - - tmp_seq = g_sequence_new (NULL); - tmp_seq->real_sequence = seq; - - node_unlink (iter); - node_insert_before (tmp_seq->end_node, iter); - - node_insert_sorted (seq->end_node, iter, seq->end_node, - iter_cmp, cmp_data); - - g_sequence_free (tmp_seq); - - seq->access_prohibited = FALSE; -} - -/** - * g_sequence_insert_sorted_iter: - * @seq: a #GSequence - * @data: data for the new item - * @iter_cmp: the #GSequenceItercompare used to compare iterators in the - * sequence. It is called with two iterators pointing into @seq. It should - * return 0 if the iterators are equal, a negative value if the first - * iterator comes before the second, and a positive value if the second - * iterator comes before the first. - * @cmp_data: user data passed to @cmp_func - * - * Like g_sequence_insert_sorted(), but uses - * a #GSequenceIterCompareFunc instead of a #GCompareDataFunc as - * the compare function. - * - * Return value: a #GSequenceIter pointing to the new item - * - * Since: 2.14 - **/ -GSequenceIter * -g_sequence_insert_sorted_iter (GSequence *seq, - gpointer data, - GSequenceIterCompareFunc iter_cmp, - gpointer cmp_data) -{ - GSequenceNode *new_node; - GSequence *tmp_seq; - - g_return_val_if_fail (seq != NULL, NULL); - g_return_val_if_fail (iter_cmp != NULL, NULL); - - check_seq_access (seq); - - seq->access_prohibited = TRUE; - - /* Create a new temporary sequence and put the new node into - * that. The reason for this is that the user compare function - * will be called with the new node, and if it dereferences, - * "is_end" will be called on it. But that will crash if the - * node is not actually in a sequence. - * - * node_insert_sorted() makes sure the node is unlinked before - * it is inserted. - * - * The reason we need the "iter" versions at all is that that - * is the only kind of compare functions GtkTreeView can use. - */ - tmp_seq = g_sequence_new (NULL); - tmp_seq->real_sequence = seq; - - new_node = g_sequence_append (tmp_seq, data); - - node_insert_sorted (seq->end_node, new_node, - seq->end_node, iter_cmp, cmp_data); - - g_sequence_free (tmp_seq); - - seq->access_prohibited = FALSE; - - return new_node; -} - -/** - * g_sequence_search_iter: - * @seq: a #GSequence - * @data: data for the new item - * @iter_cmp: the #GSequenceIterCompare function used to compare iterators - * in the sequence. It is called with two iterators pointing into @seq. - * It should return 0 if the iterators are equal, a negative value if the - * first iterator comes before the second, and a positive value if the - * second iterator comes before the first. - * @cmp_data: user data passed to @iter_cmp - * - * Like g_sequence_search(), but uses - * a #GSequenceIterCompareFunc instead of a #GCompareDataFunc as - * the compare function. - * - * Return value: a #GSequenceIter pointing to the position in @seq - * where @data would have been inserted according to @iter_cmp and @cmp_data. - * - * Since: 2.14 - **/ -GSequenceIter * -g_sequence_search_iter (GSequence *seq, - gpointer data, - GSequenceIterCompareFunc iter_cmp, - gpointer cmp_data) -{ - GSequenceNode *node; - GSequenceNode *dummy; - GSequence *tmp_seq; - - g_return_val_if_fail (seq != NULL, NULL); - - check_seq_access (seq); - - seq->access_prohibited = TRUE; - - tmp_seq = g_sequence_new (NULL); - tmp_seq->real_sequence = seq; - - dummy = g_sequence_append (tmp_seq, data); - - node = node_find_closest (seq->end_node, dummy, - seq->end_node, iter_cmp, cmp_data); - - g_sequence_free (tmp_seq); - - seq->access_prohibited = FALSE; - - return node; -} - -/** - * g_sequence_iter_get_sequence: - * @iter: a #GSequenceIter - * - * Returns the #GSequence that @iter points into. - * - * Return value: the #GSequence that @iter points into. - * - * Since: 2.14 - **/ -GSequence * -g_sequence_iter_get_sequence (GSequenceIter *iter) -{ - GSequence *seq; - - g_return_val_if_fail (iter != NULL, NULL); - - seq = get_sequence (iter); - - /* For temporary sequences, this points to the sequence that - * is actually being manipulated - */ - return seq->real_sequence; -} - -/** - * g_sequence_get: - * @iter: a #GSequenceIter - * - * Returns the data that @iter points to. - * - * Return value: the data that @iter points to - * - * Since: 2.14 - **/ -gpointer -g_sequence_get (GSequenceIter *iter) -{ - g_return_val_if_fail (iter != NULL, NULL); - g_return_val_if_fail (!is_end (iter), NULL); - - return iter->data; -} - -/** - * g_sequence_set: - * @iter: a #GSequenceIter - * @data: new data for the item - * - * Changes the data for the item pointed to by @iter to be @data. If - * the sequence has a data destroy function associated with it, that - * function is called on the existing data that @iter pointed to. - * - * Since: 2.14 - **/ -void -g_sequence_set (GSequenceIter *iter, - gpointer data) -{ - GSequence *seq; - - g_return_if_fail (iter != NULL); - g_return_if_fail (!is_end (iter)); - - seq = get_sequence (iter); - - /* If @data is identical to iter->data, it is destroyed - * here. This will work right in case of ref-counted objects. Also - * it is similar to what ghashtables do. - * - * For non-refcounted data it's a little less convenient, but - * code relying on self-setting not destroying would be - * pretty dubious anyway ... - */ - - if (seq->data_destroy_notify) - seq->data_destroy_notify (iter->data); - - iter->data = data; -} - -/** - * g_sequence_get_length: - * @seq: a #GSequence - * - * Returns the length of @seq - * - * Return value: the length of @seq - * - * Since: 2.14 - **/ -gint -g_sequence_get_length (GSequence *seq) -{ - return node_get_length (seq->end_node) - 1; -} - -/** - * g_sequence_get_end_iter: - * @seq: a #GSequence - * - * Returns the end iterator for @seg - * - * Return value: the end iterator for @seq - * - * Since: 2.14 - **/ -GSequenceIter * -g_sequence_get_end_iter (GSequence *seq) -{ - g_return_val_if_fail (seq != NULL, NULL); - - return seq->end_node; -} - -/** - * g_sequence_get_begin_iter: - * @seq: a #GSequence - * - * Returns the begin iterator for @seq. - * - * Return value: the begin iterator for @seq. - * - * Since: 2.14 - **/ -GSequenceIter * -g_sequence_get_begin_iter (GSequence *seq) -{ - g_return_val_if_fail (seq != NULL, NULL); - - return node_get_first (seq->end_node); -} - -static int -clamp_position (GSequence *seq, - int pos) -{ - gint len = g_sequence_get_length (seq); - - if (pos > len || pos < 0) - pos = len; - - return pos; -} - -/* - * if pos > number of items or -1, will return end pointer - */ -/** - * g_sequence_get_iter_at_pos: - * @seq: a #GSequence - * @pos: a position in @seq, or -1 for the end. - * - * Returns the iterator at position @pos. If @pos is negative or larger - * than the number of items in @seq, the end iterator is returned. - * - * Return value: The #GSequenceIter at position @pos - * - * Since: 2.14 - **/ -GSequenceIter * -g_sequence_get_iter_at_pos (GSequence *seq, - gint pos) -{ - g_return_val_if_fail (seq != NULL, NULL); - - pos = clamp_position (seq, pos); - - return node_get_by_pos (seq->end_node, pos); -} - -/** - * g_sequence_move: - * @src: a #GSequenceIter pointing to the item to move - * @dest: a #GSequenceIter pointing to the position to which - * the item is moved. - * - * Moves the item pointed to by @src to the position indicated by @dest. - * After calling this function @dest will point to the position immediately - * after @src. It is allowed for @src and @dest to point into different - * sequences. - * - * Since: 2.14 - **/ -void -g_sequence_move (GSequenceIter *src, - GSequenceIter *dest) -{ - g_return_if_fail (src != NULL); - g_return_if_fail (dest != NULL); - g_return_if_fail (!is_end (src)); - - if (src == dest) - return; - - node_unlink (src); - node_insert_before (dest, src); -} - -/* GSequenceIter */ - -/** - * g_sequence_iter_is_end: - * @iter: a #GSequenceIter - * - * Returns whether @iter is the end iterator - * - * Return value: Whether @iter is the end iterator. - * - * Since: 2.14 - **/ -gboolean -g_sequence_iter_is_end (GSequenceIter *iter) -{ - g_return_val_if_fail (iter != NULL, FALSE); - - return is_end (iter); -} - -/** - * g_sequence_iter_is_begin: - * @iter: a #GSequenceIter - * - * Returns whether @iter is the begin iterator - * - * Return value: whether @iter is the begin iterator - * - * Since: 2.14 - **/ -gboolean -g_sequence_iter_is_begin (GSequenceIter *iter) -{ - g_return_val_if_fail (iter != NULL, FALSE); - - return (node_get_prev (iter) == iter); -} - -/** - * g_sequence_iter_get_position: - * @iter: a #GSequenceIter - * - * Returns the position of @iter - * - * Return value: the position of @iter - * - * Since: 2.14 - **/ -gint -g_sequence_iter_get_position (GSequenceIter *iter) -{ - g_return_val_if_fail (iter != NULL, -1); - - return node_get_pos (iter); -} - -/** - * g_sequence_iter_next: - * @iter: a #GSequenceIter - * - * Returns an iterator pointing to the next position after @iter. If - * @iter is the end iterator, the end iterator is returned. - * - * Return value: a #GSequenceIter pointing to the next position after @iter. - * - * Since: 2.14 - **/ -GSequenceIter * -g_sequence_iter_next (GSequenceIter *iter) -{ - g_return_val_if_fail (iter != NULL, NULL); - - return node_get_next (iter); -} - -/** - * g_sequence_iter_prev: - * @iter: a #GSequenceIter - * - * Returns an iterator pointing to the previous position before @iter. If - * @iter is the begin iterator, the begin iterator is returned. - * - * Return value: a #GSequenceIter pointing to the previous position before - * @iter. - * - * Since: 2.14 - **/ -GSequenceIter * -g_sequence_iter_prev (GSequenceIter *iter) -{ - g_return_val_if_fail (iter != NULL, NULL); - - return node_get_prev (iter); -} - -/** - * g_sequence_iter_move: - * @iter: a #GSequenceIter - * @delta: A positive or negative number indicating how many positions away - * from @iter the returned #GSequenceIter will be. - * - * Returns the #GSequenceIter which is @delta positions away from @iter. - * If @iter is closer than -@delta positions to the beginning of the sequence, - * the begin iterator is returned. If @iter is closer than @delta positions - * to the end of the sequence, the end iterator is returned. - * - * Return value: a #GSequenceIter which is @delta positions away from @iter. - * - * Since: 2.14 - **/ -GSequenceIter * -g_sequence_iter_move (GSequenceIter *iter, - gint delta) -{ - gint new_pos; - - g_return_val_if_fail (iter != NULL, NULL); - - new_pos = node_get_pos (iter) + delta; - - new_pos = clamp_position (get_sequence (iter), new_pos); - - return node_get_by_pos (iter, new_pos); -} - -/** - * g_sequence_swap: - * @a: a #GSequenceIter - * @b: a #GSequenceIter - * - * Swaps the items pointed to by @a and @b. It is allowed for @a and @b - * to point into difference sequences. - * - * Since: 2.14 - **/ -void -g_sequence_swap (GSequenceIter *a, - GSequenceIter *b) -{ - GSequenceNode *leftmost, *rightmost, *rightmost_next; - int a_pos, b_pos; - - g_return_if_fail (!g_sequence_iter_is_end (a)); - g_return_if_fail (!g_sequence_iter_is_end (b)); - - if (a == b) - return; - - a_pos = g_sequence_iter_get_position (a); - b_pos = g_sequence_iter_get_position (b); - - if (a_pos > b_pos) - { - leftmost = b; - rightmost = a; - } - else - { - leftmost = a; - rightmost = b; - } - - rightmost_next = node_get_next (rightmost); - - /* The situation is now like this: - * - * ..., leftmost, ......., rightmost, rightmost_next, ... - * - */ - g_sequence_move (rightmost, leftmost); - g_sequence_move (leftmost, rightmost_next); -} - -/* - * Implementation of a treap - * - * - */ -static guint -get_priority (GSequenceNode *node) -{ - guint key = GPOINTER_TO_UINT (node); - - /* This hash function is based on one found on Thomas Wang's - * web page at - * - * http://www.concentric.net/~Ttwang/tech/inthash.htm - * - */ - key = (key << 15) - key - 1; - key = key ^ (key >> 12); - key = key + (key << 2); - key = key ^ (key >> 4); - key = key + (key << 3) + (key << 11); - key = key ^ (key >> 16); - - /* We rely on 0 being less than all other priorities */ - return key? key : 1; -} - -static GSequenceNode * -find_root (GSequenceNode *node) -{ - while (node->parent) - node = node->parent; - - return node; -} - -static GSequenceNode * -node_new (gpointer data) -{ - GSequenceNode *node = g_slice_new0 (GSequenceNode); - - node->n_nodes = 1; - node->data = data; - node->left = NULL; - node->right = NULL; - node->parent = NULL; - - return node; -} - -static GSequenceNode * -node_get_first (GSequenceNode *node) -{ - node = find_root (node); - - while (node->left) - node = node->left; - - return node; -} - -static GSequenceNode * -node_get_last (GSequenceNode *node) -{ - node = find_root (node); - - while (node->right) - node = node->right; - - return node; -} - -#define NODE_LEFT_CHILD(n) (((n)->parent) && ((n)->parent->left) == (n)) -#define NODE_RIGHT_CHILD(n) (((n)->parent) && ((n)->parent->right) == (n)) - -static GSequenceNode * -node_get_next (GSequenceNode *node) -{ - GSequenceNode *n = node; - - if (n->right) - { - n = n->right; - while (n->left) - n = n->left; - } - else - { - while (NODE_RIGHT_CHILD (n)) - n = n->parent; - - if (n->parent) - n = n->parent; - else - n = node; - } - - return n; -} - -static GSequenceNode * -node_get_prev (GSequenceNode *node) -{ - GSequenceNode *n = node; - - if (n->left) - { - n = n->left; - while (n->right) - n = n->right; - } - else - { - while (NODE_LEFT_CHILD (n)) - n = n->parent; - - if (n->parent) - n = n->parent; - else - n = node; - } - - return n; -} - -#define N_NODES(n) ((n)? (n)->n_nodes : 0) - -static gint -node_get_pos (GSequenceNode *node) -{ - int n_smaller = 0; - - if (node->left) - n_smaller = node->left->n_nodes; - - while (node) - { - if (NODE_RIGHT_CHILD (node)) - n_smaller += N_NODES (node->parent->left) + 1; - - node = node->parent; - } - - return n_smaller; -} - -static GSequenceNode * -node_get_by_pos (GSequenceNode *node, - gint pos) -{ - int i; - - node = find_root (node); - - while ((i = N_NODES (node->left)) != pos) - { - if (i < pos) - { - node = node->right; - pos -= (i + 1); - } - else - { - node = node->left; - } - } - - return node; -} - -static GSequenceNode * -node_find_closest (GSequenceNode *haystack, - GSequenceNode *needle, - GSequenceNode *end, - GSequenceIterCompareFunc iter_cmp, - gpointer cmp_data) -{ - GSequenceNode *best; - gint c; - - haystack = find_root (haystack); - - do - { - best = haystack; - - /* iter_cmp can't be passed the end node, since the function may - * be user-supplied - */ - if (haystack == end) - c = 1; - else - c = iter_cmp (haystack, needle, cmp_data); - - /* In the following we don't break even if c == 0. Instaed we go on - * searching along the 'bigger' nodes, so that we find the last one - * that is equal to the needle. - */ - if (c > 0) - haystack = haystack->left; - else - haystack = haystack->right; - } - while (haystack != NULL); - - /* If the best node is smaller or equal to the data, then move one step - * to the right to make sure the best one is strictly bigger than the data - */ - if (best != end && c <= 0) - best = node_get_next (best); - - return best; -} - -static gint -node_get_length (GSequenceNode *node) -{ - node = find_root (node); - - return node->n_nodes; -} - -static void -real_node_free (GSequenceNode *node, - GSequence *seq) -{ - if (node) - { - real_node_free (node->left, seq); - real_node_free (node->right, seq); - - if (seq && seq->data_destroy_notify && node != seq->end_node) - seq->data_destroy_notify (node->data); - - g_slice_free (GSequenceNode, node); - } -} - -static void -node_free (GSequenceNode *node, - GSequence *seq) -{ - node = find_root (node); - - real_node_free (node, seq); -} - -static void -node_update_fields (GSequenceNode *node) -{ - int n_nodes = 1; - - n_nodes += N_NODES (node->left); - n_nodes += N_NODES (node->right); - - node->n_nodes = n_nodes; -} - -static void -node_rotate (GSequenceNode *node) -{ - GSequenceNode *tmp, *old; - - g_assert (node->parent); - g_assert (node->parent != node); - - if (NODE_LEFT_CHILD (node)) - { - /* rotate right */ - tmp = node->right; - - node->right = node->parent; - node->parent = node->parent->parent; - if (node->parent) - { - if (node->parent->left == node->right) - node->parent->left = node; - else - node->parent->right = node; - } - - g_assert (node->right); - - node->right->parent = node; - node->right->left = tmp; - - if (node->right->left) - node->right->left->parent = node->right; - - old = node->right; - } - else - { - /* rotate left */ - tmp = node->left; - - node->left = node->parent; - node->parent = node->parent->parent; - if (node->parent) - { - if (node->parent->right == node->left) - node->parent->right = node; - else - node->parent->left = node; - } - - g_assert (node->left); - - node->left->parent = node; - node->left->right = tmp; - - if (node->left->right) - node->left->right->parent = node->left; - - old = node->left; - } - - node_update_fields (old); - node_update_fields (node); -} - -static void -node_update_fields_deep (GSequenceNode *node) -{ - if (node) - { - node_update_fields (node); - - node_update_fields_deep (node->parent); - } -} - -static void -rotate_down (GSequenceNode *node, - guint priority) -{ - guint left, right; - - left = node->left ? get_priority (node->left) : 0; - right = node->right ? get_priority (node->right) : 0; - - while (priority < left || priority < right) - { - if (left > right) - node_rotate (node->left); - else - node_rotate (node->right); - - left = node->left ? get_priority (node->left) : 0; - right = node->right ? get_priority (node->right) : 0; - } -} - -static void -node_cut (GSequenceNode *node) -{ - while (node->parent) - node_rotate (node); - - if (node->left) - node->left->parent = NULL; - - node->left = NULL; - node_update_fields (node); - - rotate_down (node, get_priority (node)); -} - -static void -node_join (GSequenceNode *left, - GSequenceNode *right) -{ - GSequenceNode *fake = node_new (NULL); - - fake->left = find_root (left); - fake->right = find_root (right); - fake->left->parent = fake; - fake->right->parent = fake; - - node_update_fields (fake); - - node_unlink (fake); - - node_free (fake, NULL); -} - -static void -node_insert_before (GSequenceNode *node, - GSequenceNode *new) -{ - new->left = node->left; - if (new->left) - new->left->parent = new; - - new->parent = node; - node->left = new; - - node_update_fields_deep (new); - - while (new->parent && get_priority (new) > get_priority (new->parent)) - node_rotate (new); - - rotate_down (new, get_priority (new)); -} - -static void -node_unlink (GSequenceNode *node) -{ - rotate_down (node, 0); - - if (NODE_RIGHT_CHILD (node)) - node->parent->right = NULL; - else if (NODE_LEFT_CHILD (node)) - node->parent->left = NULL; - - if (node->parent) - node_update_fields_deep (node->parent); - - node->parent = NULL; -} - -static void -node_insert_sorted (GSequenceNode *node, - GSequenceNode *new, - GSequenceNode *end, - GSequenceIterCompareFunc iter_cmp, - gpointer cmp_data) -{ - GSequenceNode *closest; - - closest = node_find_closest (node, new, end, iter_cmp, cmp_data); - - node_unlink (new); - - node_insert_before (closest, new); -} - - -#define __G_SEQUENCE_C__ -#include "galiasdef.c" diff --git a/lib/win32/glib-2.20.4/glib/gsequence.h b/lib/win32/glib-2.20.4/glib/gsequence.h deleted file mode 100644 index fa79066e06002..0000000000000 --- a/lib/win32/glib-2.20.4/glib/gsequence.h +++ /dev/null @@ -1,128 +0,0 @@ -/* GLIB - Library of useful routines for C programming - * Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007 - * Soeren Sandmann (sandmann@daimi.au.dk) - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library 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 - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ - -#if defined(G_DISABLE_SINGLE_INCLUDES) && !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION) -#error "Only can be included directly." -#endif - -#ifndef __G_SEQUENCE_H__ -#define __G_SEQUENCE_H__ - -#include - -G_BEGIN_DECLS - -typedef struct _GSequence GSequence; -typedef struct _GSequenceNode GSequenceIter; - -typedef gint (* GSequenceIterCompareFunc) (GSequenceIter *a, - GSequenceIter *b, - gpointer data); - - -/* GSequence */ -GSequence * g_sequence_new (GDestroyNotify data_destroy); -void g_sequence_free (GSequence *seq); -gint g_sequence_get_length (GSequence *seq); -void g_sequence_foreach (GSequence *seq, - GFunc func, - gpointer user_data); -void g_sequence_foreach_range (GSequenceIter *begin, - GSequenceIter *end, - GFunc func, - gpointer user_data); -void g_sequence_sort (GSequence *seq, - GCompareDataFunc cmp_func, - gpointer cmp_data); -void g_sequence_sort_iter (GSequence *seq, - GSequenceIterCompareFunc cmp_func, - gpointer cmp_data); - - -/* Getting iters */ -GSequenceIter *g_sequence_get_begin_iter (GSequence *seq); -GSequenceIter *g_sequence_get_end_iter (GSequence *seq); -GSequenceIter *g_sequence_get_iter_at_pos (GSequence *seq, - gint pos); -GSequenceIter *g_sequence_append (GSequence *seq, - gpointer data); -GSequenceIter *g_sequence_prepend (GSequence *seq, - gpointer data); -GSequenceIter *g_sequence_insert_before (GSequenceIter *iter, - gpointer data); -void g_sequence_move (GSequenceIter *src, - GSequenceIter *dest); -void g_sequence_swap (GSequenceIter *a, - GSequenceIter *b); -GSequenceIter *g_sequence_insert_sorted (GSequence *seq, - gpointer data, - GCompareDataFunc cmp_func, - gpointer cmp_data); -GSequenceIter *g_sequence_insert_sorted_iter (GSequence *seq, - gpointer data, - GSequenceIterCompareFunc iter_cmp, - gpointer cmp_data); -void g_sequence_sort_changed (GSequenceIter *iter, - GCompareDataFunc cmp_func, - gpointer cmp_data); -void g_sequence_sort_changed_iter (GSequenceIter *iter, - GSequenceIterCompareFunc iter_cmp, - gpointer cmp_data); -void g_sequence_remove (GSequenceIter *iter); -void g_sequence_remove_range (GSequenceIter *begin, - GSequenceIter *end); -void g_sequence_move_range (GSequenceIter *dest, - GSequenceIter *begin, - GSequenceIter *end); -GSequenceIter *g_sequence_search (GSequence *seq, - gpointer data, - GCompareDataFunc cmp_func, - gpointer cmp_data); -GSequenceIter *g_sequence_search_iter (GSequence *seq, - gpointer data, - GSequenceIterCompareFunc iter_cmp, - gpointer cmp_data); - - -/* Dereferencing */ -gpointer g_sequence_get (GSequenceIter *iter); -void g_sequence_set (GSequenceIter *iter, - gpointer data); - -/* Operations on GSequenceIter * */ -gboolean g_sequence_iter_is_begin (GSequenceIter *iter); -gboolean g_sequence_iter_is_end (GSequenceIter *iter); -GSequenceIter *g_sequence_iter_next (GSequenceIter *iter); -GSequenceIter *g_sequence_iter_prev (GSequenceIter *iter); -gint g_sequence_iter_get_position (GSequenceIter *iter); -GSequenceIter *g_sequence_iter_move (GSequenceIter *iter, - gint delta); -GSequence * g_sequence_iter_get_sequence (GSequenceIter *iter); - - -/* Search */ -gint g_sequence_iter_compare (GSequenceIter *a, - GSequenceIter *b); -GSequenceIter *g_sequence_range_get_midpoint (GSequenceIter *begin, - GSequenceIter *end); - -G_END_DECLS - -#endif /* __G_SEQUENCE_H__ */ diff --git a/lib/win32/glib-2.20.4/glib/gshell.c b/lib/win32/glib-2.20.4/glib/gshell.c deleted file mode 100644 index 711cdee092243..0000000000000 --- a/lib/win32/glib-2.20.4/glib/gshell.c +++ /dev/null @@ -1,673 +0,0 @@ -/* gshell.c - Shell-related utilities - * - * Copyright 2000 Red Hat, Inc. - * g_execvpe implementation based on GNU libc execvp: - * Copyright 1991, 92, 95, 96, 97, 98, 99 Free Software Foundation, Inc. - * - * GLib is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or (at your option) any later version. - * - * GLib 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 - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with GLib; see the file COPYING.LIB. If not, write - * to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ - -#include "config.h" - -#include - -#include "glib.h" - -#ifdef _ -#warning "FIXME remove gettext hack" -#endif - -#include "glibintl.h" -#include "galias.h" - -GQuark -g_shell_error_quark (void) -{ - return g_quark_from_static_string ("g-shell-error-quark"); -} - -/* Single quotes preserve the literal string exactly. escape - * sequences are not allowed; not even \' - if you want a ' - * in the quoted text, you have to do something like 'foo'\''bar' - * - * Double quotes allow $ ` " \ and newline to be escaped with backslash. - * Otherwise double quotes preserve things literally. - */ - -static gboolean -unquote_string_inplace (gchar* str, gchar** end, GError** err) -{ - gchar* dest; - gchar* s; - gchar quote_char; - - g_return_val_if_fail(end != NULL, FALSE); - g_return_val_if_fail(err == NULL || *err == NULL, FALSE); - g_return_val_if_fail(str != NULL, FALSE); - - dest = s = str; - - quote_char = *s; - - if (!(*s == '"' || *s == '\'')) - { - g_set_error_literal (err, - G_SHELL_ERROR, - G_SHELL_ERROR_BAD_QUOTING, - _("Quoted text doesn't begin with a quotation mark")); - *end = str; - return FALSE; - } - - /* Skip the initial quote mark */ - ++s; - - if (quote_char == '"') - { - while (*s) - { - g_assert(s > dest); /* loop invariant */ - - switch (*s) - { - case '"': - /* End of the string, return now */ - *dest = '\0'; - ++s; - *end = s; - return TRUE; - break; - - case '\\': - /* Possible escaped quote or \ */ - ++s; - switch (*s) - { - case '"': - case '\\': - case '`': - case '$': - case '\n': - *dest = *s; - ++s; - ++dest; - break; - - default: - /* not an escaped char */ - *dest = '\\'; - ++dest; - /* ++s already done. */ - break; - } - break; - - default: - *dest = *s; - ++dest; - ++s; - break; - } - - g_assert(s > dest); /* loop invariant */ - } - } - else - { - while (*s) - { - g_assert(s > dest); /* loop invariant */ - - if (*s == '\'') - { - /* End of the string, return now */ - *dest = '\0'; - ++s; - *end = s; - return TRUE; - } - else - { - *dest = *s; - ++dest; - ++s; - } - - g_assert(s > dest); /* loop invariant */ - } - } - - /* If we reach here this means the close quote was never encountered */ - - *dest = '\0'; - - g_set_error_literal (err, - G_SHELL_ERROR, - G_SHELL_ERROR_BAD_QUOTING, - _("Unmatched quotation mark in command line or other shell-quoted text")); - *end = s; - return FALSE; -} - -/** - * g_shell_quote: - * @unquoted_string: a literal string - * - * Quotes a string so that the shell (/bin/sh) will interpret the - * quoted string to mean @unquoted_string. If you pass a filename to - * the shell, for example, you should first quote it with this - * function. The return value must be freed with g_free(). The - * quoting style used is undefined (single or double quotes may be - * used). - * - * Return value: quoted string - **/ -gchar* -g_shell_quote (const gchar *unquoted_string) -{ - /* We always use single quotes, because the algorithm is cheesier. - * We could use double if we felt like it, that might be more - * human-readable. - */ - - const gchar *p; - GString *dest; - - g_return_val_if_fail (unquoted_string != NULL, NULL); - - dest = g_string_new ("'"); - - p = unquoted_string; - - /* could speed this up a lot by appending chunks of text at a - * time. - */ - while (*p) - { - /* Replace literal ' with a close ', a \', and a open ' */ - if (*p == '\'') - g_string_append (dest, "'\\''"); - else - g_string_append_c (dest, *p); - - ++p; - } - - /* close the quote */ - g_string_append_c (dest, '\''); - - return g_string_free (dest, FALSE); -} - -/** - * g_shell_unquote: - * @quoted_string: shell-quoted string - * @error: error return location or NULL - * - * Unquotes a string as the shell (/bin/sh) would. Only handles - * quotes; if a string contains file globs, arithmetic operators, - * variables, backticks, redirections, or other special-to-the-shell - * features, the result will be different from the result a real shell - * would produce (the variables, backticks, etc. will be passed - * through literally instead of being expanded). This function is - * guaranteed to succeed if applied to the result of - * g_shell_quote(). If it fails, it returns %NULL and sets the - * error. The @quoted_string need not actually contain quoted or - * escaped text; g_shell_unquote() simply goes through the string and - * unquotes/unescapes anything that the shell would. Both single and - * double quotes are handled, as are escapes including escaped - * newlines. The return value must be freed with g_free(). Possible - * errors are in the #G_SHELL_ERROR domain. - * - * Shell quoting rules are a bit strange. Single quotes preserve the - * literal string exactly. escape sequences are not allowed; not even - * \' - if you want a ' in the quoted text, you have to do something - * like 'foo'\''bar'. Double quotes allow $, `, ", \, and newline to - * be escaped with backslash. Otherwise double quotes preserve things - * literally. - * - * Return value: an unquoted string - **/ -gchar* -g_shell_unquote (const gchar *quoted_string, - GError **error) -{ - gchar *unquoted; - gchar *end; - gchar *start; - GString *retval; - - g_return_val_if_fail (quoted_string != NULL, NULL); - - unquoted = g_strdup (quoted_string); - - start = unquoted; - end = unquoted; - retval = g_string_new (NULL); - - /* The loop allows cases such as - * "foo"blah blah'bar'woo foo"baz"la la la\'\''foo' - */ - while (*start) - { - /* Append all non-quoted chars, honoring backslash escape - */ - - while (*start && !(*start == '"' || *start == '\'')) - { - if (*start == '\\') - { - /* all characters can get escaped by backslash, - * except newline, which is removed if it follows - * a backslash outside of quotes - */ - - ++start; - if (*start) - { - if (*start != '\n') - g_string_append_c (retval, *start); - ++start; - } - } - else - { - g_string_append_c (retval, *start); - ++start; - } - } - - if (*start) - { - if (!unquote_string_inplace (start, &end, error)) - { - goto error; - } - else - { - g_string_append (retval, start); - start = end; - } - } - } - - g_free (unquoted); - return g_string_free (retval, FALSE); - - error: - g_assert (error == NULL || *error != NULL); - - g_free (unquoted); - g_string_free (retval, TRUE); - return NULL; -} - -/* g_parse_argv() does a semi-arbitrary weird subset of the way - * the shell parses a command line. We don't do variable expansion, - * don't understand that operators are tokens, don't do tilde expansion, - * don't do command substitution, no arithmetic expansion, IFS gets ignored, - * don't do filename globs, don't remove redirection stuff, etc. - * - * READ THE UNIX98 SPEC on "Shell Command Language" before changing - * the behavior of this code. - * - * Steps to parsing the argv string: - * - * - tokenize the string (but since we ignore operators, - * our tokenization may diverge from what the shell would do) - * note that tokenization ignores the internals of a quoted - * word and it always splits on spaces, not on IFS even - * if we used IFS. We also ignore "end of input indicator" - * (I guess this is control-D?) - * - * Tokenization steps, from UNIX98 with operator stuff removed, - * are: - * - * 1) "If the current character is backslash, single-quote or - * double-quote (\, ' or ") and it is not quoted, it will affect - * quoting for subsequent characters up to the end of the quoted - * text. The rules for quoting are as described in Quoting - * . During token recognition no substitutions will be actually - * performed, and the result token will contain exactly the - * characters that appear in the input (except for newline - * character joining), unmodified, including any embedded or - * enclosing quotes or substitution operators, between the quote - * mark and the end of the quoted text. The token will not be - * delimited by the end of the quoted field." - * - * 2) "If the current character is an unquoted newline character, - * the current token will be delimited." - * - * 3) "If the current character is an unquoted blank character, any - * token containing the previous character is delimited and the - * current character will be discarded." - * - * 4) "If the previous character was part of a word, the current - * character will be appended to that word." - * - * 5) "If the current character is a "#", it and all subsequent - * characters up to, but excluding, the next newline character - * will be discarded as a comment. The newline character that - * ends the line is not considered part of the comment. The - * "#" starts a comment only when it is at the beginning of a - * token. Since the search for the end-of-comment does not - * consider an escaped newline character specially, a comment - * cannot be continued to the next line." - * - * 6) "The current character will be used as the start of a new word." - * - * - * - for each token (word), perform portions of word expansion, namely - * field splitting (using default whitespace IFS) and quote - * removal. Field splitting may increase the number of words. - * Quote removal does not increase the number of words. - * - * "If the complete expansion appropriate for a word results in an - * empty field, that empty field will be deleted from the list of - * fields that form the completely expanded command, unless the - * original word contained single-quote or double-quote characters." - * - UNIX98 spec - * - * - */ - -static inline void -ensure_token (GString **token) -{ - if (*token == NULL) - *token = g_string_new (NULL); -} - -static void -delimit_token (GString **token, - GSList **retval) -{ - if (*token == NULL) - return; - - *retval = g_slist_prepend (*retval, g_string_free (*token, FALSE)); - - *token = NULL; -} - -static GSList* -tokenize_command_line (const gchar *command_line, - GError **error) -{ - gchar current_quote; - const gchar *p; - GString *current_token = NULL; - GSList *retval = NULL; - gboolean quoted;; - - current_quote = '\0'; - quoted = FALSE; - p = command_line; - - while (*p) - { - if (current_quote == '\\') - { - if (*p == '\n') - { - /* we append nothing; backslash-newline become nothing */ - } - else - { - /* we append the backslash and the current char, - * to be interpreted later after tokenization - */ - ensure_token (¤t_token); - g_string_append_c (current_token, '\\'); - g_string_append_c (current_token, *p); - } - - current_quote = '\0'; - } - else if (current_quote == '#') - { - /* Discard up to and including next newline */ - while (*p && *p != '\n') - ++p; - - current_quote = '\0'; - - if (*p == '\0') - break; - } - else if (current_quote) - { - if (*p == current_quote && - /* check that it isn't an escaped double quote */ - !(current_quote == '"' && quoted)) - { - /* close the quote */ - current_quote = '\0'; - } - - /* Everything inside quotes, and the close quote, - * gets appended literally. - */ - - ensure_token (¤t_token); - g_string_append_c (current_token, *p); - } - else - { - switch (*p) - { - case '\n': - delimit_token (¤t_token, &retval); - break; - - case ' ': - case '\t': - /* If the current token contains the previous char, delimit - * the current token. A nonzero length - * token should always contain the previous char. - */ - if (current_token && - current_token->len > 0) - { - delimit_token (¤t_token, &retval); - } - - /* discard all unquoted blanks (don't add them to a token) */ - break; - - - /* single/double quotes are appended to the token, - * escapes are maybe appended next time through the loop, - * comment chars are never appended. - */ - - case '\'': - case '"': - ensure_token (¤t_token); - g_string_append_c (current_token, *p); - - /* FALL THRU */ - - case '#': - case '\\': - current_quote = *p; - break; - - default: - /* Combines rules 4) and 6) - if we have a token, append to it, - * otherwise create a new token. - */ - ensure_token (¤t_token); - g_string_append_c (current_token, *p); - break; - } - } - - /* We need to count consecutive backslashes mod 2, - * to detect escaped doublequotes. - */ - if (*p != '\\') - quoted = FALSE; - else - quoted = !quoted; - - ++p; - } - - delimit_token (¤t_token, &retval); - - if (current_quote) - { - if (current_quote == '\\') - g_set_error (error, - G_SHELL_ERROR, - G_SHELL_ERROR_BAD_QUOTING, - _("Text ended just after a '\\' character." - " (The text was '%s')"), - command_line); - else - g_set_error (error, - G_SHELL_ERROR, - G_SHELL_ERROR_BAD_QUOTING, - _("Text ended before matching quote was found for %c." - " (The text was '%s')"), - current_quote, command_line); - - goto error; - } - - if (retval == NULL) - { - g_set_error_literal (error, - G_SHELL_ERROR, - G_SHELL_ERROR_EMPTY_STRING, - _("Text was empty (or contained only whitespace)")); - - goto error; - } - - /* we appended backward */ - retval = g_slist_reverse (retval); - - return retval; - - error: - g_assert (error == NULL || *error != NULL); - - if (retval) - { - g_slist_foreach (retval, (GFunc)g_free, NULL); - g_slist_free (retval); - } - - return NULL; -} - -/** - * g_shell_parse_argv: - * @command_line: command line to parse - * @argcp: return location for number of args - * @argvp: return location for array of args - * @error: return location for error - * - * Parses a command line into an argument vector, in much the same way - * the shell would, but without many of the expansions the shell would - * perform (variable expansion, globs, operators, filename expansion, - * etc. are not supported). The results are defined to be the same as - * those you would get from a UNIX98 /bin/sh, as long as the input - * contains none of the unsupported shell expansions. If the input - * does contain such expansions, they are passed through - * literally. Possible errors are those from the #G_SHELL_ERROR - * domain. Free the returned vector with g_strfreev(). - * - * Return value: %TRUE on success, %FALSE if error set - **/ -gboolean -g_shell_parse_argv (const gchar *command_line, - gint *argcp, - gchar ***argvp, - GError **error) -{ - /* Code based on poptParseArgvString() from libpopt */ - gint argc = 0; - gchar **argv = NULL; - GSList *tokens = NULL; - gint i; - GSList *tmp_list; - - g_return_val_if_fail (command_line != NULL, FALSE); - - tokens = tokenize_command_line (command_line, error); - if (tokens == NULL) - return FALSE; - - /* Because we can't have introduced any new blank space into the - * tokens (we didn't do any new expansions), we don't need to - * perform field splitting. If we were going to honor IFS or do any - * expansions, we would have to do field splitting on each word - * here. Also, if we were going to do any expansion we would need to - * remove any zero-length words that didn't contain quotes - * originally; but since there's no expansion we know all words have - * nonzero length, unless they contain quotes. - * - * So, we simply remove quotes, and don't do any field splitting or - * empty word removal, since we know there was no way to introduce - * such things. - */ - - argc = g_slist_length (tokens); - argv = g_new0 (gchar*, argc + 1); - i = 0; - tmp_list = tokens; - while (tmp_list) - { - argv[i] = g_shell_unquote (tmp_list->data, error); - - /* Since we already checked that quotes matched up in the - * tokenizer, this shouldn't be possible to reach I guess. - */ - if (argv[i] == NULL) - goto failed; - - tmp_list = g_slist_next (tmp_list); - ++i; - } - - g_slist_foreach (tokens, (GFunc)g_free, NULL); - g_slist_free (tokens); - - if (argcp) - *argcp = argc; - - if (argvp) - *argvp = argv; - else - g_strfreev (argv); - - return TRUE; - - failed: - - g_assert (error == NULL || *error != NULL); - g_strfreev (argv); - g_slist_foreach (tokens, (GFunc) g_free, NULL); - g_slist_free (tokens); - - return FALSE; -} - -#define __G_SHELL_C__ -#include "galiasdef.c" diff --git a/lib/win32/glib-2.20.4/glib/gshell.h b/lib/win32/glib-2.20.4/glib/gshell.h deleted file mode 100644 index 130f1008c8809..0000000000000 --- a/lib/win32/glib-2.20.4/glib/gshell.h +++ /dev/null @@ -1,55 +0,0 @@ -/* gshell.h - Shell-related utilities - * - * Copyright 2000 Red Hat, Inc. - * - * GLib is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or (at your option) any later version. - * - * GLib 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 - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with GLib; see the file COPYING.LIB. If not, write - * to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ - -#if defined(G_DISABLE_SINGLE_INCLUDES) && !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION) -#error "Only can be included directly." -#endif - -#ifndef __G_SHELL_H__ -#define __G_SHELL_H__ - -#include - -G_BEGIN_DECLS - -#define G_SHELL_ERROR g_shell_error_quark () - -typedef enum -{ - /* mismatched or otherwise mangled quoting */ - G_SHELL_ERROR_BAD_QUOTING, - /* string to be parsed was empty */ - G_SHELL_ERROR_EMPTY_STRING, - G_SHELL_ERROR_FAILED -} GShellError; - -GQuark g_shell_error_quark (void); - -gchar* g_shell_quote (const gchar *unquoted_string); -gchar* g_shell_unquote (const gchar *quoted_string, - GError **error); -gboolean g_shell_parse_argv (const gchar *command_line, - gint *argcp, - gchar ***argvp, - GError **error); - -G_END_DECLS - -#endif /* __G_SHELL_H__ */ diff --git a/lib/win32/glib-2.20.4/glib/gslice.c b/lib/win32/glib-2.20.4/glib/gslice.c deleted file mode 100644 index 70f9efa6841be..0000000000000 --- a/lib/win32/glib-2.20.4/glib/gslice.c +++ /dev/null @@ -1,1476 +0,0 @@ -/* GLIB sliced memory - fast concurrent memory chunk allocator - * Copyright (C) 2005 Tim Janik - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library 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 - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ -/* MT safe */ - -#include "config.h" - -#if defined HAVE_POSIX_MEMALIGN && defined POSIX_MEMALIGN_WITH_COMPLIANT_ALLOCS -# define HAVE_COMPLIANT_POSIX_MEMALIGN 1 -#endif - -#ifdef HAVE_COMPLIANT_POSIX_MEMALIGN -#define _XOPEN_SOURCE 600 /* posix_memalign() */ -#endif -#include /* posix_memalign() */ -#include -#include -#include "gmem.h" /* gslice.h */ -#include "gthreadprivate.h" -#include "glib.h" -#include "galias.h" -#ifdef HAVE_UNISTD_H -#include /* sysconf() */ -#endif -#ifdef G_OS_WIN32 -#include -#include -#endif - -#include /* fputs/fprintf */ - - -/* the GSlice allocator is split up into 4 layers, roughly modelled after the slab - * allocator and magazine extensions as outlined in: - * + [Bonwick94] Jeff Bonwick, The slab allocator: An object-caching kernel - * memory allocator. USENIX 1994, http://citeseer.ist.psu.edu/bonwick94slab.html - * + [Bonwick01] Bonwick and Jonathan Adams, Magazines and vmem: Extending the - * slab allocator to many cpu's and arbitrary resources. - * USENIX 2001, http://citeseer.ist.psu.edu/bonwick01magazines.html - * the layers are: - * - the thread magazines. for each (aligned) chunk size, a magazine (a list) - * of recently freed and soon to be allocated chunks is maintained per thread. - * this way, most alloc/free requests can be quickly satisfied from per-thread - * free lists which only require one g_private_get() call to retrive the - * thread handle. - * - the magazine cache. allocating and freeing chunks to/from threads only - * occours at magazine sizes from a global depot of magazines. the depot - * maintaines a 15 second working set of allocated magazines, so full - * magazines are not allocated and released too often. - * the chunk size dependent magazine sizes automatically adapt (within limits, - * see [3]) to lock contention to properly scale performance across a variety - * of SMP systems. - * - the slab allocator. this allocator allocates slabs (blocks of memory) close - * to the system page size or multiples thereof which have to be page aligned. - * the blocks are divided into smaller chunks which are used to satisfy - * allocations from the upper layers. the space provided by the reminder of - * the chunk size division is used for cache colorization (random distribution - * of chunk addresses) to improve processor cache utilization. multiple slabs - * with the same chunk size are kept in a partially sorted ring to allow O(1) - * freeing and allocation of chunks (as long as the allocation of an entirely - * new slab can be avoided). - * - the page allocator. on most modern systems, posix_memalign(3) or - * memalign(3) should be available, so this is used to allocate blocks with - * system page size based alignments and sizes or multiples thereof. - * if no memalign variant is provided, valloc() is used instead and - * block sizes are limited to the system page size (no multiples thereof). - * as a fallback, on system without even valloc(), a malloc(3)-based page - * allocator with alloc-only behaviour is used. - * - * NOTES: - * [1] some systems memalign(3) implementations may rely on boundary tagging for - * the handed out memory chunks. to avoid excessive page-wise fragmentation, - * we reserve 2 * sizeof (void*) per block size for the systems memalign(3), - * specified in NATIVE_MALLOC_PADDING. - * [2] using the slab allocator alone already provides for a fast and efficient - * allocator, it doesn't properly scale beyond single-threaded uses though. - * also, the slab allocator implements eager free(3)-ing, i.e. does not - * provide any form of caching or working set maintenance. so if used alone, - * it's vulnerable to trashing for sequences of balanced (alloc, free) pairs - * at certain thresholds. - * [3] magazine sizes are bound by an implementation specific minimum size and - * a chunk size specific maximum to limit magazine storage sizes to roughly - * 16KB. - * [4] allocating ca. 8 chunks per block/page keeps a good balance between - * external and internal fragmentation (<= 12.5%). [Bonwick94] - */ - -/* --- macros and constants --- */ -#define LARGEALIGNMENT (256) -#define P2ALIGNMENT (2 * sizeof (gsize)) /* fits 2 pointers (assumed to be 2 * GLIB_SIZEOF_SIZE_T below) */ -#define ALIGN(size, base) ((base) * (gsize) (((size) + (base) - 1) / (base))) -#define NATIVE_MALLOC_PADDING P2ALIGNMENT /* per-page padding left for native malloc(3) see [1] */ -#define SLAB_INFO_SIZE P2ALIGN (sizeof (SlabInfo) + NATIVE_MALLOC_PADDING) -#define MAX_MAGAZINE_SIZE (256) /* see [3] and allocator_get_magazine_threshold() for this */ -#define MIN_MAGAZINE_SIZE (4) -#define MAX_STAMP_COUNTER (7) /* distributes the load of gettimeofday() */ -#define MAX_SLAB_CHUNK_SIZE(al) (((al)->max_page_size - SLAB_INFO_SIZE) / 8) /* we want at last 8 chunks per page, see [4] */ -#define MAX_SLAB_INDEX(al) (SLAB_INDEX (al, MAX_SLAB_CHUNK_SIZE (al)) + 1) -#define SLAB_INDEX(al, asize) ((asize) / P2ALIGNMENT - 1) /* asize must be P2ALIGNMENT aligned */ -#define SLAB_CHUNK_SIZE(al, ix) (((ix) + 1) * P2ALIGNMENT) -#define SLAB_BPAGE_SIZE(al,csz) (8 * (csz) + SLAB_INFO_SIZE) - -/* optimized version of ALIGN (size, P2ALIGNMENT) */ -#if GLIB_SIZEOF_SIZE_T * 2 == 8 /* P2ALIGNMENT */ -#define P2ALIGN(size) (((size) + 0x7) & ~(gsize) 0x7) -#elif GLIB_SIZEOF_SIZE_T * 2 == 16 /* P2ALIGNMENT */ -#define P2ALIGN(size) (((size) + 0xf) & ~(gsize) 0xf) -#else -#define P2ALIGN(size) ALIGN (size, P2ALIGNMENT) -#endif - -/* special helpers to avoid gmessage.c dependency */ -static void mem_error (const char *format, ...) G_GNUC_PRINTF (1,2); -#define mem_assert(cond) do { if (G_LIKELY (cond)) ; else mem_error ("assertion failed: %s", #cond); } while (0) - -/* --- structures --- */ -typedef struct _ChunkLink ChunkLink; -typedef struct _SlabInfo SlabInfo; -typedef struct _CachedMagazine CachedMagazine; -struct _ChunkLink { - ChunkLink *next; - ChunkLink *data; -}; -struct _SlabInfo { - ChunkLink *chunks; - guint n_allocated; - SlabInfo *next, *prev; -}; -typedef struct { - ChunkLink *chunks; - gsize count; /* approximative chunks list length */ -} Magazine; -typedef struct { - Magazine *magazine1; /* array of MAX_SLAB_INDEX (allocator) */ - Magazine *magazine2; /* array of MAX_SLAB_INDEX (allocator) */ -} ThreadMemory; -typedef struct { - gboolean always_malloc; - gboolean bypass_magazines; - gboolean debug_blocks; - gsize working_set_msecs; - guint color_increment; -} SliceConfig; -typedef struct { - /* const after initialization */ - gsize min_page_size, max_page_size; - SliceConfig config; - gsize max_slab_chunk_size_for_magazine_cache; - /* magazine cache */ - GMutex *magazine_mutex; - ChunkLink **magazines; /* array of MAX_SLAB_INDEX (allocator) */ - guint *contention_counters; /* array of MAX_SLAB_INDEX (allocator) */ - gint mutex_counter; - guint stamp_counter; - guint last_stamp; - /* slab allocator */ - GMutex *slab_mutex; - SlabInfo **slab_stack; /* array of MAX_SLAB_INDEX (allocator) */ - guint color_accu; -} Allocator; - -/* --- g-slice prototypes --- */ -static gpointer slab_allocator_alloc_chunk (gsize chunk_size); -static void slab_allocator_free_chunk (gsize chunk_size, - gpointer mem); -static void private_thread_memory_cleanup (gpointer data); -static gpointer allocator_memalign (gsize alignment, - gsize memsize); -static void allocator_memfree (gsize memsize, - gpointer mem); -static inline void magazine_cache_update_stamp (void); -static inline gsize allocator_get_magazine_threshold (Allocator *allocator, - guint ix); - -/* --- g-slice memory checker --- */ -static void smc_notify_alloc (void *pointer, - size_t size); -static int smc_notify_free (void *pointer, - size_t size); - -/* --- variables --- */ -static GPrivate *private_thread_memory = NULL; -static gsize sys_page_size = 0; -static Allocator allocator[1] = { { 0, }, }; -static SliceConfig slice_config = { - FALSE, /* always_malloc */ - FALSE, /* bypass_magazines */ - FALSE, /* debug_blocks */ - 15 * 1000, /* working_set_msecs */ - 1, /* color increment, alt: 0x7fffffff */ -}; -static GMutex *smc_tree_mutex = NULL; /* mutex for G_SLICE=debug-blocks */ - -/* --- auxillary funcitons --- */ -void -g_slice_set_config (GSliceConfig ckey, - gint64 value) -{ - g_return_if_fail (sys_page_size == 0); - switch (ckey) - { - case G_SLICE_CONFIG_ALWAYS_MALLOC: - slice_config.always_malloc = value != 0; - break; - case G_SLICE_CONFIG_BYPASS_MAGAZINES: - slice_config.bypass_magazines = value != 0; - break; - case G_SLICE_CONFIG_WORKING_SET_MSECS: - slice_config.working_set_msecs = value; - break; - case G_SLICE_CONFIG_COLOR_INCREMENT: - slice_config.color_increment = value; - default: ; - } -} - -gint64 -g_slice_get_config (GSliceConfig ckey) -{ - switch (ckey) - { - case G_SLICE_CONFIG_ALWAYS_MALLOC: - return slice_config.always_malloc; - case G_SLICE_CONFIG_BYPASS_MAGAZINES: - return slice_config.bypass_magazines; - case G_SLICE_CONFIG_WORKING_SET_MSECS: - return slice_config.working_set_msecs; - case G_SLICE_CONFIG_CHUNK_SIZES: - return MAX_SLAB_INDEX (allocator); - case G_SLICE_CONFIG_COLOR_INCREMENT: - return slice_config.color_increment; - default: - return 0; - } -} - -gint64* -g_slice_get_config_state (GSliceConfig ckey, - gint64 address, - guint *n_values) -{ - guint i = 0; - g_return_val_if_fail (n_values != NULL, NULL); - *n_values = 0; - switch (ckey) - { - gint64 array[64]; - case G_SLICE_CONFIG_CONTENTION_COUNTER: - array[i++] = SLAB_CHUNK_SIZE (allocator, address); - array[i++] = allocator->contention_counters[address]; - array[i++] = allocator_get_magazine_threshold (allocator, address); - *n_values = i; - return g_memdup (array, sizeof (array[0]) * *n_values); - default: - return NULL; - } -} - -static void -slice_config_init (SliceConfig *config) -{ - /* don't use g_malloc/g_message here */ - gchar buffer[1024]; - const gchar *val = _g_getenv_nomalloc ("G_SLICE", buffer); - const GDebugKey keys[] = { - { "always-malloc", 1 << 0 }, - { "debug-blocks", 1 << 1 }, - }; - gint flags = !val ? 0 : g_parse_debug_string (val, keys, G_N_ELEMENTS (keys)); - *config = slice_config; - if (flags & (1 << 0)) /* always-malloc */ - config->always_malloc = TRUE; - if (flags & (1 << 1)) /* debug-blocks */ - config->debug_blocks = TRUE; -} - -static void -g_slice_init_nomessage (void) -{ - /* we may not use g_error() or friends here */ - mem_assert (sys_page_size == 0); - mem_assert (MIN_MAGAZINE_SIZE >= 4); - -#ifdef G_OS_WIN32 - { - SYSTEM_INFO system_info; - GetSystemInfo (&system_info); - sys_page_size = system_info.dwPageSize; - } -#else - sys_page_size = sysconf (_SC_PAGESIZE); /* = sysconf (_SC_PAGE_SIZE); = getpagesize(); */ -#endif - mem_assert (sys_page_size >= 2 * LARGEALIGNMENT); - mem_assert ((sys_page_size & (sys_page_size - 1)) == 0); - slice_config_init (&allocator->config); - allocator->min_page_size = sys_page_size; -#if HAVE_COMPLIANT_POSIX_MEMALIGN || HAVE_MEMALIGN - /* allow allocation of pages up to 8KB (with 8KB alignment). - * this is useful because many medium to large sized structures - * fit less than 8 times (see [4]) into 4KB pages. - * we allow very small page sizes here, to reduce wastage in - * threads if only small allocations are required (this does - * bear the risk of incresing allocation times and fragmentation - * though). - */ - allocator->min_page_size = MAX (allocator->min_page_size, 4096); - allocator->max_page_size = MAX (allocator->min_page_size, 8192); - allocator->min_page_size = MIN (allocator->min_page_size, 128); -#else - /* we can only align to system page size */ - allocator->max_page_size = sys_page_size; -#endif - allocator->magazine_mutex = NULL; /* _g_slice_thread_init_nomessage() */ - allocator->magazines = g_new0 (ChunkLink*, MAX_SLAB_INDEX (allocator)); - allocator->contention_counters = g_new0 (guint, MAX_SLAB_INDEX (allocator)); - allocator->mutex_counter = 0; - allocator->stamp_counter = MAX_STAMP_COUNTER; /* force initial update */ - allocator->last_stamp = 0; - allocator->slab_mutex = NULL; /* _g_slice_thread_init_nomessage() */ - allocator->slab_stack = g_new0 (SlabInfo*, MAX_SLAB_INDEX (allocator)); - allocator->color_accu = 0; - magazine_cache_update_stamp(); - /* values cached for performance reasons */ - allocator->max_slab_chunk_size_for_magazine_cache = MAX_SLAB_CHUNK_SIZE (allocator); - if (allocator->config.always_malloc || allocator->config.bypass_magazines) - allocator->max_slab_chunk_size_for_magazine_cache = 0; /* non-optimized cases */ - /* at this point, g_mem_gc_friendly() should be initialized, this - * should have been accomplished by the above g_malloc/g_new calls - */ -} - -static inline guint -allocator_categorize (gsize aligned_chunk_size) -{ - /* speed up the likely path */ - if (G_LIKELY (aligned_chunk_size && aligned_chunk_size <= allocator->max_slab_chunk_size_for_magazine_cache)) - return 1; /* use magazine cache */ - - /* the above will fail (max_slab_chunk_size_for_magazine_cache == 0) if the - * allocator is still uninitialized, or if we are not configured to use the - * magazine cache. - */ - if (!sys_page_size) - g_slice_init_nomessage (); - if (!allocator->config.always_malloc && - aligned_chunk_size && - aligned_chunk_size <= MAX_SLAB_CHUNK_SIZE (allocator)) - { - if (allocator->config.bypass_magazines) - return 2; /* use slab allocator, see [2] */ - return 1; /* use magazine cache */ - } - return 0; /* use malloc() */ -} - -void -_g_slice_thread_init_nomessage (void) -{ - /* we may not use g_error() or friends here */ - if (!sys_page_size) - g_slice_init_nomessage(); - else - { - /* g_slice_init_nomessage() has been called already, probably due - * to a g_slice_alloc1() before g_thread_init(). - */ - } - private_thread_memory = g_private_new (private_thread_memory_cleanup); - allocator->magazine_mutex = g_mutex_new(); - allocator->slab_mutex = g_mutex_new(); - if (allocator->config.debug_blocks) - smc_tree_mutex = g_mutex_new(); -} - -static inline void -g_mutex_lock_a (GMutex *mutex, - guint *contention_counter) -{ - gboolean contention = FALSE; - if (!g_mutex_trylock (mutex)) - { - g_mutex_lock (mutex); - contention = TRUE; - } - if (contention) - { - allocator->mutex_counter++; - if (allocator->mutex_counter >= 1) /* quickly adapt to contention */ - { - allocator->mutex_counter = 0; - *contention_counter = MIN (*contention_counter + 1, MAX_MAGAZINE_SIZE); - } - } - else /* !contention */ - { - allocator->mutex_counter--; - if (allocator->mutex_counter < -11) /* moderately recover magazine sizes */ - { - allocator->mutex_counter = 0; - *contention_counter = MAX (*contention_counter, 1) - 1; - } - } -} - -static inline ThreadMemory* -thread_memory_from_self (void) -{ - ThreadMemory *tmem = g_private_get (private_thread_memory); - if (G_UNLIKELY (!tmem)) - { - static ThreadMemory *single_thread_memory = NULL; /* remember single-thread info for multi-threaded case */ - if (single_thread_memory && g_thread_supported ()) - { - g_mutex_lock (allocator->slab_mutex); - if (single_thread_memory) - { - /* GSlice has been used before g_thread_init(), and now - * we are running threaded. to cope with it, use the saved - * thread memory structure from when we weren't threaded. - */ - tmem = single_thread_memory; - single_thread_memory = NULL; /* slab_mutex protected when multi-threaded */ - } - g_mutex_unlock (allocator->slab_mutex); - } - if (!tmem) - { - const guint n_magazines = MAX_SLAB_INDEX (allocator); - tmem = g_malloc0 (sizeof (ThreadMemory) + sizeof (Magazine) * 2 * n_magazines); - tmem->magazine1 = (Magazine*) (tmem + 1); - tmem->magazine2 = &tmem->magazine1[n_magazines]; - } - /* g_private_get/g_private_set works in the single-threaded xor the multi- - * threaded case. but not *across* g_thread_init(), after multi-thread - * initialization it returns NULL for previously set single-thread data. - */ - g_private_set (private_thread_memory, tmem); - /* save single-thread thread memory structure, in case we need to - * pick it up again after multi-thread initialization happened. - */ - if (!single_thread_memory && !g_thread_supported ()) - single_thread_memory = tmem; /* no slab_mutex created yet */ - } - return tmem; -} - -static inline ChunkLink* -magazine_chain_pop_head (ChunkLink **magazine_chunks) -{ - /* magazine chains are linked via ChunkLink->next. - * each ChunkLink->data of the toplevel chain may point to a subchain, - * linked via ChunkLink->next. ChunkLink->data of the subchains just - * contains uninitialized junk. - */ - ChunkLink *chunk = (*magazine_chunks)->data; - if (G_UNLIKELY (chunk)) - { - /* allocating from freed list */ - (*magazine_chunks)->data = chunk->next; - } - else - { - chunk = *magazine_chunks; - *magazine_chunks = chunk->next; - } - return chunk; -} - -#if 0 /* useful for debugging */ -static guint -magazine_count (ChunkLink *head) -{ - guint count = 0; - if (!head) - return 0; - while (head) - { - ChunkLink *child = head->data; - count += 1; - for (child = head->data; child; child = child->next) - count += 1; - head = head->next; - } - return count; -} -#endif - -static inline gsize -allocator_get_magazine_threshold (Allocator *allocator, - guint ix) -{ - /* the magazine size calculated here has a lower bound of MIN_MAGAZINE_SIZE, - * which is required by the implementation. also, for moderately sized chunks - * (say >= 64 bytes), magazine sizes shouldn't be much smaller then the number - * of chunks available per page/2 to avoid excessive traffic in the magazine - * cache for small to medium sized structures. - * the upper bound of the magazine size is effectively provided by - * MAX_MAGAZINE_SIZE. for larger chunks, this number is scaled down so that - * the content of a single magazine doesn't exceed ca. 16KB. - */ - gsize chunk_size = SLAB_CHUNK_SIZE (allocator, ix); - guint threshold = MAX (MIN_MAGAZINE_SIZE, allocator->max_page_size / MAX (5 * chunk_size, 5 * 32)); - guint contention_counter = allocator->contention_counters[ix]; - if (G_UNLIKELY (contention_counter)) /* single CPU bias */ - { - /* adapt contention counter thresholds to chunk sizes */ - contention_counter = contention_counter * 64 / chunk_size; - threshold = MAX (threshold, contention_counter); - } - return threshold; -} - -/* --- magazine cache --- */ -static inline void -magazine_cache_update_stamp (void) -{ - if (allocator->stamp_counter >= MAX_STAMP_COUNTER) - { - GTimeVal tv; - g_get_current_time (&tv); - allocator->last_stamp = tv.tv_sec * 1000 + tv.tv_usec / 1000; /* milli seconds */ - allocator->stamp_counter = 0; - } - else - allocator->stamp_counter++; -} - -static inline ChunkLink* -magazine_chain_prepare_fields (ChunkLink *magazine_chunks) -{ - ChunkLink *chunk1; - ChunkLink *chunk2; - ChunkLink *chunk3; - ChunkLink *chunk4; - /* checked upon initialization: mem_assert (MIN_MAGAZINE_SIZE >= 4); */ - /* ensure a magazine with at least 4 unused data pointers */ - chunk1 = magazine_chain_pop_head (&magazine_chunks); - chunk2 = magazine_chain_pop_head (&magazine_chunks); - chunk3 = magazine_chain_pop_head (&magazine_chunks); - chunk4 = magazine_chain_pop_head (&magazine_chunks); - chunk4->next = magazine_chunks; - chunk3->next = chunk4; - chunk2->next = chunk3; - chunk1->next = chunk2; - return chunk1; -} - -/* access the first 3 fields of a specially prepared magazine chain */ -#define magazine_chain_prev(mc) ((mc)->data) -#define magazine_chain_stamp(mc) ((mc)->next->data) -#define magazine_chain_uint_stamp(mc) GPOINTER_TO_UINT ((mc)->next->data) -#define magazine_chain_next(mc) ((mc)->next->next->data) -#define magazine_chain_count(mc) ((mc)->next->next->next->data) - -static void -magazine_cache_trim (Allocator *allocator, - guint ix, - guint stamp) -{ - /* g_mutex_lock (allocator->mutex); done by caller */ - /* trim magazine cache from tail */ - ChunkLink *current = magazine_chain_prev (allocator->magazines[ix]); - ChunkLink *trash = NULL; - while (ABS (stamp - magazine_chain_uint_stamp (current)) >= allocator->config.working_set_msecs) - { - /* unlink */ - ChunkLink *prev = magazine_chain_prev (current); - ChunkLink *next = magazine_chain_next (current); - magazine_chain_next (prev) = next; - magazine_chain_prev (next) = prev; - /* clear special fields, put on trash stack */ - magazine_chain_next (current) = NULL; - magazine_chain_count (current) = NULL; - magazine_chain_stamp (current) = NULL; - magazine_chain_prev (current) = trash; - trash = current; - /* fixup list head if required */ - if (current == allocator->magazines[ix]) - { - allocator->magazines[ix] = NULL; - break; - } - current = prev; - } - g_mutex_unlock (allocator->magazine_mutex); - /* free trash */ - if (trash) - { - const gsize chunk_size = SLAB_CHUNK_SIZE (allocator, ix); - g_mutex_lock (allocator->slab_mutex); - while (trash) - { - current = trash; - trash = magazine_chain_prev (current); - magazine_chain_prev (current) = NULL; /* clear special field */ - while (current) - { - ChunkLink *chunk = magazine_chain_pop_head (¤t); - slab_allocator_free_chunk (chunk_size, chunk); - } - } - g_mutex_unlock (allocator->slab_mutex); - } -} - -static void -magazine_cache_push_magazine (guint ix, - ChunkLink *magazine_chunks, - gsize count) /* must be >= MIN_MAGAZINE_SIZE */ -{ - ChunkLink *current = magazine_chain_prepare_fields (magazine_chunks); - ChunkLink *next, *prev; - g_mutex_lock (allocator->magazine_mutex); - /* add magazine at head */ - next = allocator->magazines[ix]; - if (next) - prev = magazine_chain_prev (next); - else - next = prev = current; - magazine_chain_next (prev) = current; - magazine_chain_prev (next) = current; - magazine_chain_prev (current) = prev; - magazine_chain_next (current) = next; - magazine_chain_count (current) = (gpointer) count; - /* stamp magazine */ - magazine_cache_update_stamp(); - magazine_chain_stamp (current) = GUINT_TO_POINTER (allocator->last_stamp); - allocator->magazines[ix] = current; - /* free old magazines beyond a certain threshold */ - magazine_cache_trim (allocator, ix, allocator->last_stamp); - /* g_mutex_unlock (allocator->mutex); was done by magazine_cache_trim() */ -} - -static ChunkLink* -magazine_cache_pop_magazine (guint ix, - gsize *countp) -{ - g_mutex_lock_a (allocator->magazine_mutex, &allocator->contention_counters[ix]); - if (!allocator->magazines[ix]) - { - guint magazine_threshold = allocator_get_magazine_threshold (allocator, ix); - gsize i, chunk_size = SLAB_CHUNK_SIZE (allocator, ix); - ChunkLink *chunk, *head; - g_mutex_unlock (allocator->magazine_mutex); - g_mutex_lock (allocator->slab_mutex); - head = slab_allocator_alloc_chunk (chunk_size); - head->data = NULL; - chunk = head; - for (i = 1; i < magazine_threshold; i++) - { - chunk->next = slab_allocator_alloc_chunk (chunk_size); - chunk = chunk->next; - chunk->data = NULL; - } - chunk->next = NULL; - g_mutex_unlock (allocator->slab_mutex); - *countp = i; - return head; - } - else - { - ChunkLink *current = allocator->magazines[ix]; - ChunkLink *prev = magazine_chain_prev (current); - ChunkLink *next = magazine_chain_next (current); - /* unlink */ - magazine_chain_next (prev) = next; - magazine_chain_prev (next) = prev; - allocator->magazines[ix] = next == current ? NULL : next; - g_mutex_unlock (allocator->magazine_mutex); - /* clear special fields and hand out */ - *countp = (gsize) magazine_chain_count (current); - magazine_chain_prev (current) = NULL; - magazine_chain_next (current) = NULL; - magazine_chain_count (current) = NULL; - magazine_chain_stamp (current) = NULL; - return current; - } -} - -/* --- thread magazines --- */ -static void -private_thread_memory_cleanup (gpointer data) -{ - ThreadMemory *tmem = data; - const guint n_magazines = MAX_SLAB_INDEX (allocator); - guint ix; - for (ix = 0; ix < n_magazines; ix++) - { - Magazine *mags[2]; - guint j; - mags[0] = &tmem->magazine1[ix]; - mags[1] = &tmem->magazine2[ix]; - for (j = 0; j < 2; j++) - { - Magazine *mag = mags[j]; - if (mag->count >= MIN_MAGAZINE_SIZE) - magazine_cache_push_magazine (ix, mag->chunks, mag->count); - else - { - const gsize chunk_size = SLAB_CHUNK_SIZE (allocator, ix); - g_mutex_lock (allocator->slab_mutex); - while (mag->chunks) - { - ChunkLink *chunk = magazine_chain_pop_head (&mag->chunks); - slab_allocator_free_chunk (chunk_size, chunk); - } - g_mutex_unlock (allocator->slab_mutex); - } - } - } - g_free (tmem); -} - -static void -thread_memory_magazine1_reload (ThreadMemory *tmem, - guint ix) -{ - Magazine *mag = &tmem->magazine1[ix]; - mem_assert (mag->chunks == NULL); /* ensure that we may reset mag->count */ - mag->count = 0; - mag->chunks = magazine_cache_pop_magazine (ix, &mag->count); -} - -static void -thread_memory_magazine2_unload (ThreadMemory *tmem, - guint ix) -{ - Magazine *mag = &tmem->magazine2[ix]; - magazine_cache_push_magazine (ix, mag->chunks, mag->count); - mag->chunks = NULL; - mag->count = 0; -} - -static inline void -thread_memory_swap_magazines (ThreadMemory *tmem, - guint ix) -{ - Magazine xmag = tmem->magazine1[ix]; - tmem->magazine1[ix] = tmem->magazine2[ix]; - tmem->magazine2[ix] = xmag; -} - -static inline gboolean -thread_memory_magazine1_is_empty (ThreadMemory *tmem, - guint ix) -{ - return tmem->magazine1[ix].chunks == NULL; -} - -static inline gboolean -thread_memory_magazine2_is_full (ThreadMemory *tmem, - guint ix) -{ - return tmem->magazine2[ix].count >= allocator_get_magazine_threshold (allocator, ix); -} - -static inline gpointer -thread_memory_magazine1_alloc (ThreadMemory *tmem, - guint ix) -{ - Magazine *mag = &tmem->magazine1[ix]; - ChunkLink *chunk = magazine_chain_pop_head (&mag->chunks); - if (G_LIKELY (mag->count > 0)) - mag->count--; - return chunk; -} - -static inline void -thread_memory_magazine2_free (ThreadMemory *tmem, - guint ix, - gpointer mem) -{ - Magazine *mag = &tmem->magazine2[ix]; - ChunkLink *chunk = mem; - chunk->data = NULL; - chunk->next = mag->chunks; - mag->chunks = chunk; - mag->count++; -} - -/* --- API functions --- */ -gpointer -g_slice_alloc (gsize mem_size) -{ - gsize chunk_size; - gpointer mem; - guint acat; - chunk_size = P2ALIGN (mem_size); - acat = allocator_categorize (chunk_size); - if (G_LIKELY (acat == 1)) /* allocate through magazine layer */ - { - ThreadMemory *tmem = thread_memory_from_self(); - guint ix = SLAB_INDEX (allocator, chunk_size); - if (G_UNLIKELY (thread_memory_magazine1_is_empty (tmem, ix))) - { - thread_memory_swap_magazines (tmem, ix); - if (G_UNLIKELY (thread_memory_magazine1_is_empty (tmem, ix))) - thread_memory_magazine1_reload (tmem, ix); - } - mem = thread_memory_magazine1_alloc (tmem, ix); - } - else if (acat == 2) /* allocate through slab allocator */ - { - g_mutex_lock (allocator->slab_mutex); - mem = slab_allocator_alloc_chunk (chunk_size); - g_mutex_unlock (allocator->slab_mutex); - } - else /* delegate to system malloc */ - mem = g_malloc (mem_size); - if (G_UNLIKELY (allocator->config.debug_blocks)) - smc_notify_alloc (mem, mem_size); - return mem; -} - -gpointer -g_slice_alloc0 (gsize mem_size) -{ - gpointer mem = g_slice_alloc (mem_size); - if (mem) - memset (mem, 0, mem_size); - return mem; -} - -gpointer -g_slice_copy (gsize mem_size, - gconstpointer mem_block) -{ - gpointer mem = g_slice_alloc (mem_size); - if (mem) - memcpy (mem, mem_block, mem_size); - return mem; -} - -void -g_slice_free1 (gsize mem_size, - gpointer mem_block) -{ - gsize chunk_size = P2ALIGN (mem_size); - guint acat = allocator_categorize (chunk_size); - if (G_UNLIKELY (!mem_block)) - return; - if (G_UNLIKELY (allocator->config.debug_blocks) && - !smc_notify_free (mem_block, mem_size)) - abort(); - if (G_LIKELY (acat == 1)) /* allocate through magazine layer */ - { - ThreadMemory *tmem = thread_memory_from_self(); - guint ix = SLAB_INDEX (allocator, chunk_size); - if (G_UNLIKELY (thread_memory_magazine2_is_full (tmem, ix))) - { - thread_memory_swap_magazines (tmem, ix); - if (G_UNLIKELY (thread_memory_magazine2_is_full (tmem, ix))) - thread_memory_magazine2_unload (tmem, ix); - } - if (G_UNLIKELY (g_mem_gc_friendly)) - memset (mem_block, 0, chunk_size); - thread_memory_magazine2_free (tmem, ix, mem_block); - } - else if (acat == 2) /* allocate through slab allocator */ - { - if (G_UNLIKELY (g_mem_gc_friendly)) - memset (mem_block, 0, chunk_size); - g_mutex_lock (allocator->slab_mutex); - slab_allocator_free_chunk (chunk_size, mem_block); - g_mutex_unlock (allocator->slab_mutex); - } - else /* delegate to system malloc */ - { - if (G_UNLIKELY (g_mem_gc_friendly)) - memset (mem_block, 0, mem_size); - g_free (mem_block); - } -} - -void -g_slice_free_chain_with_offset (gsize mem_size, - gpointer mem_chain, - gsize next_offset) -{ - gpointer slice = mem_chain; - /* while the thread magazines and the magazine cache are implemented so that - * they can easily be extended to allow for free lists containing more free - * lists for the first level nodes, which would allow O(1) freeing in this - * function, the benefit of such an extension is questionable, because: - * - the magazine size counts will become mere lower bounds which confuses - * the code adapting to lock contention; - * - freeing a single node to the thread magazines is very fast, so this - * O(list_length) operation is multiplied by a fairly small factor; - * - memory usage histograms on larger applications seem to indicate that - * the amount of released multi node lists is negligible in comparison - * to single node releases. - * - the major performance bottle neck, namely g_private_get() or - * g_mutex_lock()/g_mutex_unlock() has already been moved out of the - * inner loop for freeing chained slices. - */ - gsize chunk_size = P2ALIGN (mem_size); - guint acat = allocator_categorize (chunk_size); - if (G_LIKELY (acat == 1)) /* allocate through magazine layer */ - { - ThreadMemory *tmem = thread_memory_from_self(); - guint ix = SLAB_INDEX (allocator, chunk_size); - while (slice) - { - guint8 *current = slice; - slice = *(gpointer*) (current + next_offset); - if (G_UNLIKELY (allocator->config.debug_blocks) && - !smc_notify_free (current, mem_size)) - abort(); - if (G_UNLIKELY (thread_memory_magazine2_is_full (tmem, ix))) - { - thread_memory_swap_magazines (tmem, ix); - if (G_UNLIKELY (thread_memory_magazine2_is_full (tmem, ix))) - thread_memory_magazine2_unload (tmem, ix); - } - if (G_UNLIKELY (g_mem_gc_friendly)) - memset (current, 0, chunk_size); - thread_memory_magazine2_free (tmem, ix, current); - } - } - else if (acat == 2) /* allocate through slab allocator */ - { - g_mutex_lock (allocator->slab_mutex); - while (slice) - { - guint8 *current = slice; - slice = *(gpointer*) (current + next_offset); - if (G_UNLIKELY (allocator->config.debug_blocks) && - !smc_notify_free (current, mem_size)) - abort(); - if (G_UNLIKELY (g_mem_gc_friendly)) - memset (current, 0, chunk_size); - slab_allocator_free_chunk (chunk_size, current); - } - g_mutex_unlock (allocator->slab_mutex); - } - else /* delegate to system malloc */ - while (slice) - { - guint8 *current = slice; - slice = *(gpointer*) (current + next_offset); - if (G_UNLIKELY (allocator->config.debug_blocks) && - !smc_notify_free (current, mem_size)) - abort(); - if (G_UNLIKELY (g_mem_gc_friendly)) - memset (current, 0, mem_size); - g_free (current); - } -} - -/* --- single page allocator --- */ -static void -allocator_slab_stack_push (Allocator *allocator, - guint ix, - SlabInfo *sinfo) -{ - /* insert slab at slab ring head */ - if (!allocator->slab_stack[ix]) - { - sinfo->next = sinfo; - sinfo->prev = sinfo; - } - else - { - SlabInfo *next = allocator->slab_stack[ix], *prev = next->prev; - next->prev = sinfo; - prev->next = sinfo; - sinfo->next = next; - sinfo->prev = prev; - } - allocator->slab_stack[ix] = sinfo; -} - -static gsize -allocator_aligned_page_size (Allocator *allocator, - gsize n_bytes) -{ - gsize val = 1 << g_bit_storage (n_bytes - 1); - val = MAX (val, allocator->min_page_size); - return val; -} - -static void -allocator_add_slab (Allocator *allocator, - guint ix, - gsize chunk_size) -{ - ChunkLink *chunk; - SlabInfo *sinfo; - gsize addr, padding, n_chunks, color = 0; - gsize page_size = allocator_aligned_page_size (allocator, SLAB_BPAGE_SIZE (allocator, chunk_size)); - /* allocate 1 page for the chunks and the slab */ - gpointer aligned_memory = allocator_memalign (page_size, page_size - NATIVE_MALLOC_PADDING); - guint8 *mem = aligned_memory; - guint i; - if (!mem) - { - const gchar *syserr = "unknown error"; -#if HAVE_STRERROR - syserr = strerror (errno); -#endif - mem_error ("failed to allocate %u bytes (alignment: %u): %s\n", - (guint) (page_size - NATIVE_MALLOC_PADDING), (guint) page_size, syserr); - } - /* mask page adress */ - addr = ((gsize) mem / page_size) * page_size; - /* assert alignment */ - mem_assert (aligned_memory == (gpointer) addr); - /* basic slab info setup */ - sinfo = (SlabInfo*) (mem + page_size - SLAB_INFO_SIZE); - sinfo->n_allocated = 0; - sinfo->chunks = NULL; - /* figure cache colorization */ - n_chunks = ((guint8*) sinfo - mem) / chunk_size; - padding = ((guint8*) sinfo - mem) - n_chunks * chunk_size; - if (padding) - { - color = (allocator->color_accu * P2ALIGNMENT) % padding; - allocator->color_accu += allocator->config.color_increment; - } - /* add chunks to free list */ - chunk = (ChunkLink*) (mem + color); - sinfo->chunks = chunk; - for (i = 0; i < n_chunks - 1; i++) - { - chunk->next = (ChunkLink*) ((guint8*) chunk + chunk_size); - chunk = chunk->next; - } - chunk->next = NULL; /* last chunk */ - /* add slab to slab ring */ - allocator_slab_stack_push (allocator, ix, sinfo); -} - -static gpointer -slab_allocator_alloc_chunk (gsize chunk_size) -{ - ChunkLink *chunk; - guint ix = SLAB_INDEX (allocator, chunk_size); - /* ensure non-empty slab */ - if (!allocator->slab_stack[ix] || !allocator->slab_stack[ix]->chunks) - allocator_add_slab (allocator, ix, chunk_size); - /* allocate chunk */ - chunk = allocator->slab_stack[ix]->chunks; - allocator->slab_stack[ix]->chunks = chunk->next; - allocator->slab_stack[ix]->n_allocated++; - /* rotate empty slabs */ - if (!allocator->slab_stack[ix]->chunks) - allocator->slab_stack[ix] = allocator->slab_stack[ix]->next; - return chunk; -} - -static void -slab_allocator_free_chunk (gsize chunk_size, - gpointer mem) -{ - ChunkLink *chunk; - gboolean was_empty; - guint ix = SLAB_INDEX (allocator, chunk_size); - gsize page_size = allocator_aligned_page_size (allocator, SLAB_BPAGE_SIZE (allocator, chunk_size)); - gsize addr = ((gsize) mem / page_size) * page_size; - /* mask page adress */ - guint8 *page = (guint8*) addr; - SlabInfo *sinfo = (SlabInfo*) (page + page_size - SLAB_INFO_SIZE); - /* assert valid chunk count */ - mem_assert (sinfo->n_allocated > 0); - /* add chunk to free list */ - was_empty = sinfo->chunks == NULL; - chunk = (ChunkLink*) mem; - chunk->next = sinfo->chunks; - sinfo->chunks = chunk; - sinfo->n_allocated--; - /* keep slab ring partially sorted, empty slabs at end */ - if (was_empty) - { - /* unlink slab */ - SlabInfo *next = sinfo->next, *prev = sinfo->prev; - next->prev = prev; - prev->next = next; - if (allocator->slab_stack[ix] == sinfo) - allocator->slab_stack[ix] = next == sinfo ? NULL : next; - /* insert slab at head */ - allocator_slab_stack_push (allocator, ix, sinfo); - } - /* eagerly free complete unused slabs */ - if (!sinfo->n_allocated) - { - /* unlink slab */ - SlabInfo *next = sinfo->next, *prev = sinfo->prev; - next->prev = prev; - prev->next = next; - if (allocator->slab_stack[ix] == sinfo) - allocator->slab_stack[ix] = next == sinfo ? NULL : next; - /* free slab */ - allocator_memfree (page_size, page); - } -} - -/* --- memalign implementation --- */ -#ifdef HAVE_MALLOC_H -#include /* memalign() */ -#endif - -/* from config.h: - * define HAVE_POSIX_MEMALIGN 1 // if free(posix_memalign(3)) works, - * define HAVE_COMPLIANT_POSIX_MEMALIGN 1 // if free(posix_memalign(3)) works for sizes != 2^n, - * define HAVE_MEMALIGN 1 // if free(memalign(3)) works, - * define HAVE_VALLOC 1 // if free(valloc(3)) works, or - * if none is provided, we implement malloc(3)-based alloc-only page alignment - */ - -#if !(HAVE_COMPLIANT_POSIX_MEMALIGN || HAVE_MEMALIGN || HAVE_VALLOC) -static GTrashStack *compat_valloc_trash = NULL; -#endif - -static gpointer -allocator_memalign (gsize alignment, - gsize memsize) -{ - gpointer aligned_memory = NULL; - gint err = ENOMEM; -#if HAVE_COMPLIANT_POSIX_MEMALIGN - err = posix_memalign (&aligned_memory, alignment, memsize); -#elif HAVE_MEMALIGN - errno = 0; - aligned_memory = memalign (alignment, memsize); - err = errno; -#elif HAVE_VALLOC - errno = 0; - aligned_memory = valloc (memsize); - err = errno; -#else - /* simplistic non-freeing page allocator */ - mem_assert (alignment == sys_page_size); - mem_assert (memsize <= sys_page_size); - if (!compat_valloc_trash) - { - const guint n_pages = 16; - guint8 *mem = malloc (n_pages * sys_page_size); - err = errno; - if (mem) - { - gint i = n_pages; - guint8 *amem = (guint8*) ALIGN ((gsize) mem, sys_page_size); - if (amem != mem) - i--; /* mem wasn't page aligned */ - while (--i >= 0) - g_trash_stack_push (&compat_valloc_trash, amem + i * sys_page_size); - } - } - aligned_memory = g_trash_stack_pop (&compat_valloc_trash); -#endif - if (!aligned_memory) - errno = err; - return aligned_memory; -} - -static void -allocator_memfree (gsize memsize, - gpointer mem) -{ -#if HAVE_COMPLIANT_POSIX_MEMALIGN || HAVE_MEMALIGN || HAVE_VALLOC - free (mem); -#else - mem_assert (memsize <= sys_page_size); - g_trash_stack_push (&compat_valloc_trash, mem); -#endif -} - -static void -mem_error (const char *format, - ...) -{ - const char *pname; - va_list args; - /* at least, put out "MEMORY-ERROR", in case we segfault during the rest of the function */ - fputs ("\n***MEMORY-ERROR***: ", stderr); - pname = g_get_prgname(); - fprintf (stderr, "%s[%ld]: GSlice: ", pname ? pname : "", (long)getpid()); - va_start (args, format); - vfprintf (stderr, format, args); - va_end (args); - fputs ("\n", stderr); - abort(); - _exit (1); -} - -/* --- g-slice memory checker tree --- */ -typedef size_t SmcKType; /* key type */ -typedef size_t SmcVType; /* value type */ -typedef struct { - SmcKType key; - SmcVType value; -} SmcEntry; -static void smc_tree_insert (SmcKType key, - SmcVType value); -static gboolean smc_tree_lookup (SmcKType key, - SmcVType *value_p); -static gboolean smc_tree_remove (SmcKType key); - - -/* --- g-slice memory checker implementation --- */ -static void -smc_notify_alloc (void *pointer, - size_t size) -{ - size_t adress = (size_t) pointer; - if (pointer) - smc_tree_insert (adress, size); -} - -#if 0 -static void -smc_notify_ignore (void *pointer) -{ - size_t adress = (size_t) pointer; - if (pointer) - smc_tree_remove (adress); -} -#endif - -static int -smc_notify_free (void *pointer, - size_t size) -{ - size_t adress = (size_t) pointer; - SmcVType real_size; - gboolean found_one; - - if (!pointer) - return 1; /* ignore */ - found_one = smc_tree_lookup (adress, &real_size); - if (!found_one) - { - fprintf (stderr, "GSlice: MemChecker: attempt to release non-allocated block: %p size=%" G_GSIZE_FORMAT "\n", pointer, size); - return 0; - } - if (real_size != size && (real_size || size)) - { - fprintf (stderr, "GSlice: MemChecker: attempt to release block with invalid size: %p size=%" G_GSIZE_FORMAT " invalid-size=%" G_GSIZE_FORMAT "\n", pointer, real_size, size); - return 0; - } - if (!smc_tree_remove (adress)) - { - fprintf (stderr, "GSlice: MemChecker: attempt to release non-allocated block: %p size=%" G_GSIZE_FORMAT "\n", pointer, size); - return 0; - } - return 1; /* all fine */ -} - -/* --- g-slice memory checker tree implementation --- */ -#define SMC_TRUNK_COUNT (4093 /* 16381 */) /* prime, to distribute trunk collisions (big, allocated just once) */ -#define SMC_BRANCH_COUNT (511) /* prime, to distribute branch collisions */ -#define SMC_TRUNK_EXTENT (SMC_BRANCH_COUNT * 2039) /* key adress space per trunk, should distribute uniformly across BRANCH_COUNT */ -#define SMC_TRUNK_HASH(k) ((k / SMC_TRUNK_EXTENT) % SMC_TRUNK_COUNT) /* generate new trunk hash per megabyte (roughly) */ -#define SMC_BRANCH_HASH(k) (k % SMC_BRANCH_COUNT) - -typedef struct { - SmcEntry *entries; - unsigned int n_entries; -} SmcBranch; - -static SmcBranch **smc_tree_root = NULL; - -static void -smc_tree_abort (int errval) -{ - const char *syserr = "unknown error"; -#if HAVE_STRERROR - syserr = strerror (errval); -#endif - mem_error ("MemChecker: failure in debugging tree: %s", syserr); -} - -static inline SmcEntry* -smc_tree_branch_grow_L (SmcBranch *branch, - unsigned int index) -{ - unsigned int old_size = branch->n_entries * sizeof (branch->entries[0]); - unsigned int new_size = old_size + sizeof (branch->entries[0]); - SmcEntry *entry; - mem_assert (index <= branch->n_entries); - branch->entries = (SmcEntry*) realloc (branch->entries, new_size); - if (!branch->entries) - smc_tree_abort (errno); - entry = branch->entries + index; - g_memmove (entry + 1, entry, (branch->n_entries - index) * sizeof (entry[0])); - branch->n_entries += 1; - return entry; -} - -static inline SmcEntry* -smc_tree_branch_lookup_nearest_L (SmcBranch *branch, - SmcKType key) -{ - unsigned int n_nodes = branch->n_entries, offs = 0; - SmcEntry *check = branch->entries; - int cmp = 0; - while (offs < n_nodes) - { - unsigned int i = (offs + n_nodes) >> 1; - check = branch->entries + i; - cmp = key < check->key ? -1 : key != check->key; - if (cmp == 0) - return check; /* return exact match */ - else if (cmp < 0) - n_nodes = i; - else /* (cmp > 0) */ - offs = i + 1; - } - /* check points at last mismatch, cmp > 0 indicates greater key */ - return cmp > 0 ? check + 1 : check; /* return insertion position for inexact match */ -} - -static void -smc_tree_insert (SmcKType key, - SmcVType value) -{ - unsigned int ix0, ix1; - SmcEntry *entry; - - g_mutex_lock (smc_tree_mutex); - ix0 = SMC_TRUNK_HASH (key); - ix1 = SMC_BRANCH_HASH (key); - if (!smc_tree_root) - { - smc_tree_root = calloc (SMC_TRUNK_COUNT, sizeof (smc_tree_root[0])); - if (!smc_tree_root) - smc_tree_abort (errno); - } - if (!smc_tree_root[ix0]) - { - smc_tree_root[ix0] = calloc (SMC_BRANCH_COUNT, sizeof (smc_tree_root[0][0])); - if (!smc_tree_root[ix0]) - smc_tree_abort (errno); - } - entry = smc_tree_branch_lookup_nearest_L (&smc_tree_root[ix0][ix1], key); - if (!entry || /* need create */ - entry >= smc_tree_root[ix0][ix1].entries + smc_tree_root[ix0][ix1].n_entries || /* need append */ - entry->key != key) /* need insert */ - entry = smc_tree_branch_grow_L (&smc_tree_root[ix0][ix1], entry - smc_tree_root[ix0][ix1].entries); - entry->key = key; - entry->value = value; - g_mutex_unlock (smc_tree_mutex); -} - -static gboolean -smc_tree_lookup (SmcKType key, - SmcVType *value_p) -{ - SmcEntry *entry = NULL; - unsigned int ix0 = SMC_TRUNK_HASH (key), ix1 = SMC_BRANCH_HASH (key); - gboolean found_one = FALSE; - *value_p = 0; - g_mutex_lock (smc_tree_mutex); - if (smc_tree_root && smc_tree_root[ix0]) - { - entry = smc_tree_branch_lookup_nearest_L (&smc_tree_root[ix0][ix1], key); - if (entry && - entry < smc_tree_root[ix0][ix1].entries + smc_tree_root[ix0][ix1].n_entries && - entry->key == key) - { - found_one = TRUE; - *value_p = entry->value; - } - } - g_mutex_unlock (smc_tree_mutex); - return found_one; -} - -static gboolean -smc_tree_remove (SmcKType key) -{ - unsigned int ix0 = SMC_TRUNK_HASH (key), ix1 = SMC_BRANCH_HASH (key); - gboolean found_one = FALSE; - g_mutex_lock (smc_tree_mutex); - if (smc_tree_root && smc_tree_root[ix0]) - { - SmcEntry *entry = smc_tree_branch_lookup_nearest_L (&smc_tree_root[ix0][ix1], key); - if (entry && - entry < smc_tree_root[ix0][ix1].entries + smc_tree_root[ix0][ix1].n_entries && - entry->key == key) - { - unsigned int i = entry - smc_tree_root[ix0][ix1].entries; - smc_tree_root[ix0][ix1].n_entries -= 1; - g_memmove (entry, entry + 1, (smc_tree_root[ix0][ix1].n_entries - i) * sizeof (entry[0])); - if (!smc_tree_root[ix0][ix1].n_entries) - { - /* avoid useless pressure on the memory system */ - free (smc_tree_root[ix0][ix1].entries); - smc_tree_root[ix0][ix1].entries = NULL; - } - found_one = TRUE; - } - } - g_mutex_unlock (smc_tree_mutex); - return found_one; -} - -#ifdef G_ENABLE_DEBUG -void -g_slice_debug_tree_statistics (void) -{ - g_mutex_lock (smc_tree_mutex); - if (smc_tree_root) - { - unsigned int i, j, t = 0, o = 0, b = 0, su = 0, ex = 0, en = 4294967295u; - double tf, bf; - for (i = 0; i < SMC_TRUNK_COUNT; i++) - if (smc_tree_root[i]) - { - t++; - for (j = 0; j < SMC_BRANCH_COUNT; j++) - if (smc_tree_root[i][j].n_entries) - { - b++; - su += smc_tree_root[i][j].n_entries; - en = MIN (en, smc_tree_root[i][j].n_entries); - ex = MAX (ex, smc_tree_root[i][j].n_entries); - } - else if (smc_tree_root[i][j].entries) - o++; /* formerly used, now empty */ - } - en = b ? en : 0; - tf = MAX (t, 1.0); /* max(1) to be a valid divisor */ - bf = MAX (b, 1.0); /* max(1) to be a valid divisor */ - fprintf (stderr, "GSlice: MemChecker: %u trunks, %u branches, %u old branches\n", t, b, o); - fprintf (stderr, "GSlice: MemChecker: %f branches per trunk, %.2f%% utilization\n", - b / tf, - 100.0 - (SMC_BRANCH_COUNT - b / tf) / (0.01 * SMC_BRANCH_COUNT)); - fprintf (stderr, "GSlice: MemChecker: %f entries per branch, %u minimum, %u maximum\n", - su / bf, en, ex); - } - else - fprintf (stderr, "GSlice: MemChecker: root=NULL\n"); - g_mutex_unlock (smc_tree_mutex); - - /* sample statistics (beast + GSLice + 24h scripted core & GUI activity): - * PID %CPU %MEM VSZ RSS COMMAND - * 8887 30.3 45.8 456068 414856 beast-0.7.1 empty.bse - * $ cat /proc/8887/statm # total-program-size resident-set-size shared-pages text/code data/stack library dirty-pages - * 114017 103714 2354 344 0 108676 0 - * $ cat /proc/8887/status - * Name: beast-0.7.1 - * VmSize: 456068 kB - * VmLck: 0 kB - * VmRSS: 414856 kB - * VmData: 434620 kB - * VmStk: 84 kB - * VmExe: 1376 kB - * VmLib: 13036 kB - * VmPTE: 456 kB - * Threads: 3 - * (gdb) print g_slice_debug_tree_statistics () - * GSlice: MemChecker: 422 trunks, 213068 branches, 0 old branches - * GSlice: MemChecker: 504.900474 branches per trunk, 98.81% utilization - * GSlice: MemChecker: 4.965039 entries per branch, 1 minimum, 37 maximum - */ -} -#endif /* G_ENABLE_DEBUG */ - -#define __G_SLICE_C__ -#include "galiasdef.c" diff --git a/lib/win32/glib-2.20.4/glib/gslice.h b/lib/win32/glib-2.20.4/glib/gslice.h deleted file mode 100644 index f9cc644267f1c..0000000000000 --- a/lib/win32/glib-2.20.4/glib/gslice.h +++ /dev/null @@ -1,90 +0,0 @@ -/* GLIB sliced memory - fast threaded memory chunk allocator - * Copyright (C) 2005 Tim Janik - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library 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 - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ - -#if defined(G_DISABLE_SINGLE_INCLUDES) && !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION) -#error "Only can be included directly." -#endif - -#ifndef __G_SLICE_H__ -#define __G_SLICE_H__ - -#ifndef __G_MEM_H__ -#error Include instead of -#endif - -#include - -G_BEGIN_DECLS - -/* slices - fast allocation/release of small memory blocks - */ -gpointer g_slice_alloc (gsize block_size) G_GNUC_MALLOC G_GNUC_ALLOC_SIZE(1); -gpointer g_slice_alloc0 (gsize block_size) G_GNUC_MALLOC G_GNUC_ALLOC_SIZE(1); -gpointer g_slice_copy (gsize block_size, - gconstpointer mem_block) G_GNUC_MALLOC G_GNUC_ALLOC_SIZE(1); -void g_slice_free1 (gsize block_size, - gpointer mem_block); -void g_slice_free_chain_with_offset (gsize block_size, - gpointer mem_chain, - gsize next_offset); -#define g_slice_new(type) ((type*) g_slice_alloc (sizeof (type))) -#define g_slice_new0(type) ((type*) g_slice_alloc0 (sizeof (type))) -/* MemoryBlockType * - * g_slice_dup (MemoryBlockType, - * MemoryBlockType *mem_block); - * g_slice_free (MemoryBlockType, - * MemoryBlockType *mem_block); - * g_slice_free_chain (MemoryBlockType, - * MemoryBlockType *first_chain_block, - * memory_block_next_field); - * pseudo prototypes for the macro - * definitions following below. - */ - -/* we go through extra hoops to ensure type safety */ -#define g_slice_dup(type, mem) \ - (1 ? (type*) g_slice_copy (sizeof (type), (mem)) \ - : ((void) ((type*) 0 == (mem)), (type*) 0)) -#define g_slice_free(type, mem) do { \ - if (1) g_slice_free1 (sizeof (type), (mem)); \ - else (void) ((type*) 0 == (mem)); \ -} while (0) -#define g_slice_free_chain(type, mem_chain, next) do { \ - if (1) g_slice_free_chain_with_offset (sizeof (type), \ - (mem_chain), G_STRUCT_OFFSET (type, next)); \ - else (void) ((type*) 0 == (mem_chain)); \ -} while (0) - - -/* --- internal debugging API --- */ -typedef enum { - G_SLICE_CONFIG_ALWAYS_MALLOC = 1, - G_SLICE_CONFIG_BYPASS_MAGAZINES, - G_SLICE_CONFIG_WORKING_SET_MSECS, - G_SLICE_CONFIG_COLOR_INCREMENT, - G_SLICE_CONFIG_CHUNK_SIZES, - G_SLICE_CONFIG_CONTENTION_COUNTER -} GSliceConfig; -void g_slice_set_config (GSliceConfig ckey, gint64 value); -gint64 g_slice_get_config (GSliceConfig ckey); -gint64* g_slice_get_config_state (GSliceConfig ckey, gint64 address, guint *n_values); - -G_END_DECLS - -#endif /* __G_SLICE_H__ */ diff --git a/lib/win32/glib-2.20.4/glib/gslist.c b/lib/win32/glib-2.20.4/glib/gslist.c deleted file mode 100644 index 47c50416aa205..0000000000000 --- a/lib/win32/glib-2.20.4/glib/gslist.c +++ /dev/null @@ -1,948 +0,0 @@ -/* GLIB - Library of useful routines for C programming - * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library 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 - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ - -/* - * Modified by the GLib Team and others 1997-2000. See the AUTHORS - * file for a list of people on the GLib Team. See the ChangeLog - * files for a list of changes. These files are distributed with - * GLib at ftp://ftp.gtk.org/pub/gtk/. - */ - -/* - * MT safe - */ - -#include "config.h" - -#include "glib.h" -#include "galias.h" - - -void g_slist_push_allocator (gpointer dummy) { /* present for binary compat only */ } -void g_slist_pop_allocator (void) { /* present for binary compat only */ } - -#define _g_slist_alloc0() g_slice_new0 (GSList) -#define _g_slist_alloc() g_slice_new (GSList) -#define _g_slist_free1(slist) g_slice_free (GSList, slist) - -GSList* -g_slist_alloc (void) -{ - return _g_slist_alloc0 (); -} - -/** - * g_slist_free: - * @list: a #GSList - * - * Frees all of the memory used by a #GSList. - * The freed elements are returned to the slice allocator. - */ -void -g_slist_free (GSList *list) -{ - g_slice_free_chain (GSList, list, next); -} - -/** - * g_slist_free_1: - * @list: a #GSList element - * - * Frees one #GSList element. - * It is usually used after g_slist_remove_link(). - */ -void -g_slist_free_1 (GSList *list) -{ - _g_slist_free1 (list); -} - -/** - * g_slist_append: - * @list: a #GSList - * @data: the data for the new element - * - * Adds a new element on to the end of the list. - * - * - * The return value is the new start of the list, which may - * have changed, so make sure you store the new value. - * - * - * - * Note that g_slist_append() has to traverse the entire list - * to find the end, which is inefficient when adding multiple - * elements. A common idiom to avoid the inefficiency is to prepend - * the elements and reverse the list when all elements have been added. - * - * - * |[ - * /* Notice that these are initialized to the empty list. */ - * GSList *list = NULL, *number_list = NULL; - * - * /* This is a list of strings. */ - * list = g_slist_append (list, "first"); - * list = g_slist_append (list, "second"); - * - * /* This is a list of integers. */ - * number_list = g_slist_append (number_list, GINT_TO_POINTER (27)); - * number_list = g_slist_append (number_list, GINT_TO_POINTER (14)); - * ]| - * - * Returns: the new start of the #GSList - */ -GSList* -g_slist_append (GSList *list, - gpointer data) -{ - GSList *new_list; - GSList *last; - - new_list = _g_slist_alloc (); - new_list->data = data; - new_list->next = NULL; - - if (list) - { - last = g_slist_last (list); - /* g_assert (last != NULL); */ - last->next = new_list; - - return list; - } - else - return new_list; -} - -/** - * g_slist_prepend: - * @list: a #GSList - * @data: the data for the new element - * - * Adds a new element on to the start of the list. - * - * - * The return value is the new start of the list, which - * may have changed, so make sure you store the new value. - * - * - * |[ - * /* Notice that it is initialized to the empty list. */ - * GSList *list = NULL; - * list = g_slist_prepend (list, "last"); - * list = g_slist_prepend (list, "first"); - * ]| - * - * Returns: the new start of the #GSList - */ -GSList* -g_slist_prepend (GSList *list, - gpointer data) -{ - GSList *new_list; - - new_list = _g_slist_alloc (); - new_list->data = data; - new_list->next = list; - - return new_list; -} - -/** - * g_slist_insert: - * @list: a #GSList - * @data: the data for the new element - * @position: the position to insert the element. - * If this is negative, or is larger than the number - * of elements in the list, the new element is added on - * to the end of the list. - * - * Inserts a new element into the list at the given position. - * - * Returns: the new start of the #GSList - */ -GSList* -g_slist_insert (GSList *list, - gpointer data, - gint position) -{ - GSList *prev_list; - GSList *tmp_list; - GSList *new_list; - - if (position < 0) - return g_slist_append (list, data); - else if (position == 0) - return g_slist_prepend (list, data); - - new_list = _g_slist_alloc (); - new_list->data = data; - - if (!list) - { - new_list->next = NULL; - return new_list; - } - - prev_list = NULL; - tmp_list = list; - - while ((position-- > 0) && tmp_list) - { - prev_list = tmp_list; - tmp_list = tmp_list->next; - } - - if (prev_list) - { - new_list->next = prev_list->next; - prev_list->next = new_list; - } - else - { - new_list->next = list; - list = new_list; - } - - return list; -} - -/** - * g_slist_insert_before: - * @slist: a #GSList - * @sibling: node to insert @data before - * @data: data to put in the newly-inserted node - * - * Inserts a node before @sibling containing @data. - * - * Returns: the new head of the list. - */ -GSList* -g_slist_insert_before (GSList *slist, - GSList *sibling, - gpointer data) -{ - if (!slist) - { - slist = _g_slist_alloc (); - slist->data = data; - slist->next = NULL; - g_return_val_if_fail (sibling == NULL, slist); - return slist; - } - else - { - GSList *node, *last = NULL; - - for (node = slist; node; last = node, node = last->next) - if (node == sibling) - break; - if (!last) - { - node = _g_slist_alloc (); - node->data = data; - node->next = slist; - - return node; - } - else - { - node = _g_slist_alloc (); - node->data = data; - node->next = last->next; - last->next = node; - - return slist; - } - } -} - -/** - * g_slist_concat: - * @list1: a #GSList - * @list2: the #GSList to add to the end of the first #GSList - * - * Adds the second #GSList onto the end of the first #GSList. - * Note that the elements of the second #GSList are not copied. - * They are used directly. - * - * Returns: the start of the new #GSList - */ -GSList * -g_slist_concat (GSList *list1, GSList *list2) -{ - if (list2) - { - if (list1) - g_slist_last (list1)->next = list2; - else - list1 = list2; - } - - return list1; -} - -/** - * g_slist_remove: - * @list: a #GSList - * @data: the data of the element to remove - * - * Removes an element from a #GSList. - * If two elements contain the same data, only the first is removed. - * If none of the elements contain the data, the #GSList is unchanged. - * - * Returns: the new start of the #GSList - */ -GSList* -g_slist_remove (GSList *list, - gconstpointer data) -{ - GSList *tmp, *prev = NULL; - - tmp = list; - while (tmp) - { - if (tmp->data == data) - { - if (prev) - prev->next = tmp->next; - else - list = tmp->next; - - g_slist_free_1 (tmp); - break; - } - prev = tmp; - tmp = prev->next; - } - - return list; -} - -/** - * g_slist_remove_all: - * @list: a #GSList - * @data: data to remove - * - * Removes all list nodes with data equal to @data. - * Returns the new head of the list. Contrast with - * g_slist_remove() which removes only the first node - * matching the given data. - * - * Returns: new head of @list - */ -GSList* -g_slist_remove_all (GSList *list, - gconstpointer data) -{ - GSList *tmp, *prev = NULL; - - tmp = list; - while (tmp) - { - if (tmp->data == data) - { - GSList *next = tmp->next; - - if (prev) - prev->next = next; - else - list = next; - - g_slist_free_1 (tmp); - tmp = next; - } - else - { - prev = tmp; - tmp = prev->next; - } - } - - return list; -} - -static inline GSList* -_g_slist_remove_link (GSList *list, - GSList *link) -{ - GSList *tmp; - GSList *prev; - - prev = NULL; - tmp = list; - - while (tmp) - { - if (tmp == link) - { - if (prev) - prev->next = tmp->next; - if (list == tmp) - list = list->next; - - tmp->next = NULL; - break; - } - - prev = tmp; - tmp = tmp->next; - } - - return list; -} - -/** - * g_slist_remove_link: - * @list: a #GSList - * @link_: an element in the #GSList - * - * Removes an element from a #GSList, without - * freeing the element. The removed element's next - * link is set to %NULL, so that it becomes a - * self-contained list with one element. - * - * Returns: the new start of the #GSList, without the element - */ -GSList* -g_slist_remove_link (GSList *list, - GSList *link_) -{ - return _g_slist_remove_link (list, link_); -} - -/** - * g_slist_delete_link: - * @list: a #GSList - * @link_: node to delete - * - * Removes the node link_ from the list and frees it. - * Compare this to g_slist_remove_link() which removes the node - * without freeing it. - * - * Returns: the new head of @list - */ -GSList* -g_slist_delete_link (GSList *list, - GSList *link_) -{ - list = _g_slist_remove_link (list, link_); - _g_slist_free1 (link_); - - return list; -} - -/** - * g_slist_copy: - * @list: a #GSList - * - * Copies a #GSList. - * - * - * Note that this is a "shallow" copy. If the list elements - * consist of pointers to data, the pointers are copied but - * the actual data isn't. - * - * - * Returns: a copy of @list - */ -GSList* -g_slist_copy (GSList *list) -{ - GSList *new_list = NULL; - - if (list) - { - GSList *last; - - new_list = _g_slist_alloc (); - new_list->data = list->data; - last = new_list; - list = list->next; - while (list) - { - last->next = _g_slist_alloc (); - last = last->next; - last->data = list->data; - list = list->next; - } - last->next = NULL; - } - - return new_list; -} - -/** - * g_slist_reverse: - * @list: a #GSList - * - * Reverses a #GSList. - * - * Returns: the start of the reversed #GSList - */ -GSList* -g_slist_reverse (GSList *list) -{ - GSList *prev = NULL; - - while (list) - { - GSList *next = list->next; - - list->next = prev; - - prev = list; - list = next; - } - - return prev; -} - -/** - * g_slist_nth: - * @list: a #GSList - * @n: the position of the element, counting from 0 - * - * Gets the element at the given position in a #GSList. - * - * Returns: the element, or %NULL if the position is off - * the end of the #GSList - */ -GSList* -g_slist_nth (GSList *list, - guint n) -{ - while (n-- > 0 && list) - list = list->next; - - return list; -} - -/** - * g_slist_nth_data: - * @list: a #GSList - * @n: the position of the element - * - * Gets the data of the element at the given position. - * - * Returns: the element's data, or %NULL if the position - * is off the end of the #GSList - */ -gpointer -g_slist_nth_data (GSList *list, - guint n) -{ - while (n-- > 0 && list) - list = list->next; - - return list ? list->data : NULL; -} - -/** - * g_slist_find: - * @list: a #GSList - * @data: the element data to find - * - * Finds the element in a #GSList which - * contains the given data. - * - * Returns: the found #GSList element, - * or %NULL if it is not found - */ -GSList* -g_slist_find (GSList *list, - gconstpointer data) -{ - while (list) - { - if (list->data == data) - break; - list = list->next; - } - - return list; -} - - -/** - * g_slist_find_custom: - * @list: a #GSList - * @data: user data passed to the function - * @func: the function to call for each element. - * It should return 0 when the desired element is found - * - * Finds an element in a #GSList, using a supplied function to - * find the desired element. It iterates over the list, calling - * the given function which should return 0 when the desired - * element is found. The function takes two #gconstpointer arguments, - * the #GSList element's data as the first argument and the - * given user data. - * - * Returns: the found #GSList element, or %NULL if it is not found - */ -GSList* -g_slist_find_custom (GSList *list, - gconstpointer data, - GCompareFunc func) -{ - g_return_val_if_fail (func != NULL, list); - - while (list) - { - if (! func (list->data, data)) - return list; - list = list->next; - } - - return NULL; -} - -/** - * g_slist_position: - * @list: a #GSList - * @llink: an element in the #GSList - * - * Gets the position of the given element - * in the #GSList (starting from 0). - * - * Returns: the position of the element in the #GSList, - * or -1 if the element is not found - */ -gint -g_slist_position (GSList *list, - GSList *llink) -{ - gint i; - - i = 0; - while (list) - { - if (list == llink) - return i; - i++; - list = list->next; - } - - return -1; -} - -/** - * g_slist_index: - * @list: a #GSList - * @data: the data to find - * - * Gets the position of the element containing - * the given data (starting from 0). - * - * Returns: the index of the element containing the data, - * or -1 if the data is not found - */ -gint -g_slist_index (GSList *list, - gconstpointer data) -{ - gint i; - - i = 0; - while (list) - { - if (list->data == data) - return i; - i++; - list = list->next; - } - - return -1; -} - -/** - * g_slist_last: - * @list: a #GSList - * - * Gets the last element in a #GSList. - * - * - * This function iterates over the whole list. - * - * - * Returns: the last element in the #GSList, - * or %NULL if the #GSList has no elements - */ -GSList* -g_slist_last (GSList *list) -{ - if (list) - { - while (list->next) - list = list->next; - } - - return list; -} - -/** - * g_slist_length: - * @list: a #GSList - * - * Gets the number of elements in a #GSList. - * - * - * This function iterates over the whole list to - * count its elements. - * - * - * Returns: the number of elements in the #GSList - */ -guint -g_slist_length (GSList *list) -{ - guint length; - - length = 0; - while (list) - { - length++; - list = list->next; - } - - return length; -} - -/** - * g_slist_foreach: - * @list: a #GSList - * @func: the function to call with each element's data - * @user_data: user data to pass to the function - * - * Calls a function for each element of a #GSList. - */ -void -g_slist_foreach (GSList *list, - GFunc func, - gpointer user_data) -{ - while (list) - { - GSList *next = list->next; - (*func) (list->data, user_data); - list = next; - } -} - -static GSList* -g_slist_insert_sorted_real (GSList *list, - gpointer data, - GFunc func, - gpointer user_data) -{ - GSList *tmp_list = list; - GSList *prev_list = NULL; - GSList *new_list; - gint cmp; - - g_return_val_if_fail (func != NULL, list); - - if (!list) - { - new_list = _g_slist_alloc (); - new_list->data = data; - new_list->next = NULL; - return new_list; - } - - cmp = ((GCompareDataFunc) func) (data, tmp_list->data, user_data); - - while ((tmp_list->next) && (cmp > 0)) - { - prev_list = tmp_list; - tmp_list = tmp_list->next; - - cmp = ((GCompareDataFunc) func) (data, tmp_list->data, user_data); - } - - new_list = _g_slist_alloc (); - new_list->data = data; - - if ((!tmp_list->next) && (cmp > 0)) - { - tmp_list->next = new_list; - new_list->next = NULL; - return list; - } - - if (prev_list) - { - prev_list->next = new_list; - new_list->next = tmp_list; - return list; - } - else - { - new_list->next = list; - return new_list; - } -} - -/** - * g_slist_insert_sorted: - * @list: a #GSList - * @data: the data for the new element - * @func: the function to compare elements in the list. - * It should return a number > 0 if the first parameter - * comes after the second parameter in the sort order. - * - * Inserts a new element into the list, using the given - * comparison function to determine its position. - * - * Returns: the new start of the #GSList - */ -GSList* -g_slist_insert_sorted (GSList *list, - gpointer data, - GCompareFunc func) -{ - return g_slist_insert_sorted_real (list, data, (GFunc) func, NULL); -} - -/** - * g_slist_insert_sorted_with_data: - * @list: a #GSList - * @data: the data for the new element - * @func: the function to compare elements in the list. - * It should return a number > 0 if the first parameter - * comes after the second parameter in the sort order. - * @user_data: data to pass to comparison function - * - * Inserts a new element into the list, using the given - * comparison function to determine its position. - * - * Returns: the new start of the #GSList - * - * Since: 2.10 - */ -GSList* -g_slist_insert_sorted_with_data (GSList *list, - gpointer data, - GCompareDataFunc func, - gpointer user_data) -{ - return g_slist_insert_sorted_real (list, data, (GFunc) func, user_data); -} - -static GSList * -g_slist_sort_merge (GSList *l1, - GSList *l2, - GFunc compare_func, - gpointer user_data) -{ - GSList list, *l; - gint cmp; - - l=&list; - - while (l1 && l2) - { - cmp = ((GCompareDataFunc) compare_func) (l1->data, l2->data, user_data); - - if (cmp <= 0) - { - l=l->next=l1; - l1=l1->next; - } - else - { - l=l->next=l2; - l2=l2->next; - } - } - l->next= l1 ? l1 : l2; - - return list.next; -} - -static GSList * -g_slist_sort_real (GSList *list, - GFunc compare_func, - gpointer user_data) -{ - GSList *l1, *l2; - - if (!list) - return NULL; - if (!list->next) - return list; - - l1 = list; - l2 = list->next; - - while ((l2 = l2->next) != NULL) - { - if ((l2 = l2->next) == NULL) - break; - l1=l1->next; - } - l2 = l1->next; - l1->next = NULL; - - return g_slist_sort_merge (g_slist_sort_real (list, compare_func, user_data), - g_slist_sort_real (l2, compare_func, user_data), - compare_func, - user_data); -} - -/** - * g_slist_sort: - * @list: a #GSList - * @compare_func: the comparison function used to sort the #GSList. - * This function is passed the data from 2 elements of the #GSList - * and should return 0 if they are equal, a negative value if the - * first element comes before the second, or a positive value if - * the first element comes after the second. - * - * Sorts a #GSList using the given comparison function. - * - * Returns: the start of the sorted #GSList - */ -GSList * -g_slist_sort (GSList *list, - GCompareFunc compare_func) -{ - return g_slist_sort_real (list, (GFunc) compare_func, NULL); -} - -/** - * g_slist_sort_with_data: - * @list: a #GSList - * @compare_func: comparison function - * @user_data: data to pass to comparison function - * - * Like g_slist_sort(), but the sort function accepts a user data argument. - * - * Returns: new head of the list - */ -GSList * -g_slist_sort_with_data (GSList *list, - GCompareDataFunc compare_func, - gpointer user_data) -{ - return g_slist_sort_real (list, (GFunc) compare_func, user_data); -} - -#define __G_SLIST_C__ -#include "galiasdef.c" diff --git a/lib/win32/glib-2.20.4/glib/gslist.h b/lib/win32/glib-2.20.4/glib/gslist.h deleted file mode 100644 index 8b01faf5cd468..0000000000000 --- a/lib/win32/glib-2.20.4/glib/gslist.h +++ /dev/null @@ -1,114 +0,0 @@ -/* GLIB - Library of useful routines for C programming - * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library 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 - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ - -/* - * Modified by the GLib Team and others 1997-2000. See the AUTHORS - * file for a list of people on the GLib Team. See the ChangeLog - * files for a list of changes. These files are distributed with - * GLib at ftp://ftp.gtk.org/pub/gtk/. - */ - -#if defined(G_DISABLE_SINGLE_INCLUDES) && !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION) -#error "Only can be included directly." -#endif - -#ifndef __G_SLIST_H__ -#define __G_SLIST_H__ - -#include - -G_BEGIN_DECLS - -typedef struct _GSList GSList; - -struct _GSList -{ - gpointer data; - GSList *next; -}; - -/* Singly linked lists - */ -GSList* g_slist_alloc (void) G_GNUC_WARN_UNUSED_RESULT; -void g_slist_free (GSList *list); -void g_slist_free_1 (GSList *list); -#define g_slist_free1 g_slist_free_1 -GSList* g_slist_append (GSList *list, - gpointer data) G_GNUC_WARN_UNUSED_RESULT; -GSList* g_slist_prepend (GSList *list, - gpointer data) G_GNUC_WARN_UNUSED_RESULT; -GSList* g_slist_insert (GSList *list, - gpointer data, - gint position) G_GNUC_WARN_UNUSED_RESULT; -GSList* g_slist_insert_sorted (GSList *list, - gpointer data, - GCompareFunc func) G_GNUC_WARN_UNUSED_RESULT; -GSList* g_slist_insert_sorted_with_data (GSList *list, - gpointer data, - GCompareDataFunc func, - gpointer user_data) G_GNUC_WARN_UNUSED_RESULT; -GSList* g_slist_insert_before (GSList *slist, - GSList *sibling, - gpointer data) G_GNUC_WARN_UNUSED_RESULT; -GSList* g_slist_concat (GSList *list1, - GSList *list2) G_GNUC_WARN_UNUSED_RESULT; -GSList* g_slist_remove (GSList *list, - gconstpointer data) G_GNUC_WARN_UNUSED_RESULT; -GSList* g_slist_remove_all (GSList *list, - gconstpointer data) G_GNUC_WARN_UNUSED_RESULT; -GSList* g_slist_remove_link (GSList *list, - GSList *link_) G_GNUC_WARN_UNUSED_RESULT; -GSList* g_slist_delete_link (GSList *list, - GSList *link_) G_GNUC_WARN_UNUSED_RESULT; -GSList* g_slist_reverse (GSList *list) G_GNUC_WARN_UNUSED_RESULT; -GSList* g_slist_copy (GSList *list) G_GNUC_WARN_UNUSED_RESULT; -GSList* g_slist_nth (GSList *list, - guint n); -GSList* g_slist_find (GSList *list, - gconstpointer data); -GSList* g_slist_find_custom (GSList *list, - gconstpointer data, - GCompareFunc func); -gint g_slist_position (GSList *list, - GSList *llink); -gint g_slist_index (GSList *list, - gconstpointer data); -GSList* g_slist_last (GSList *list); -guint g_slist_length (GSList *list); -void g_slist_foreach (GSList *list, - GFunc func, - gpointer user_data); -GSList* g_slist_sort (GSList *list, - GCompareFunc compare_func) G_GNUC_WARN_UNUSED_RESULT; -GSList* g_slist_sort_with_data (GSList *list, - GCompareDataFunc compare_func, - gpointer user_data) G_GNUC_WARN_UNUSED_RESULT; -gpointer g_slist_nth_data (GSList *list, - guint n); - -#define g_slist_next(slist) ((slist) ? (((GSList *)(slist))->next) : NULL) - -#ifndef G_DISABLE_DEPRECATED -void g_slist_push_allocator (gpointer dummy); -void g_slist_pop_allocator (void); -#endif - -G_END_DECLS - -#endif /* __G_SLIST_H__ */ diff --git a/lib/win32/glib-2.20.4/glib/gspawn-win32-helper-console.c b/lib/win32/glib-2.20.4/glib/gspawn-win32-helper-console.c deleted file mode 100644 index dca4499fb6b5a..0000000000000 --- a/lib/win32/glib-2.20.4/glib/gspawn-win32-helper-console.c +++ /dev/null @@ -1,2 +0,0 @@ -#define HELPER_CONSOLE -#include "gspawn-win32-helper.c" diff --git a/lib/win32/glib-2.20.4/glib/gspawn-win32-helper.c b/lib/win32/glib-2.20.4/glib/gspawn-win32-helper.c deleted file mode 100644 index 40108bb67aaa8..0000000000000 --- a/lib/win32/glib-2.20.4/glib/gspawn-win32-helper.c +++ /dev/null @@ -1,333 +0,0 @@ -/* gspawn-win32-helper.c - Helper program for process launching on Win32. - * - * Copyright 2000 Red Hat, Inc. - * Copyright 2000 Tor Lillqvist - * - * GLib is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or (at your option) any later version. - * - * GLib 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 - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with GLib; see the file COPYING.LIB. If not, write - * to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ - -#include "config.h" - -#include - -#undef G_LOG_DOMAIN -#include "glib.h" -#define GSPAWN_HELPER -#include "gspawn-win32.c" /* For shared definitions */ - - -static void -write_err_and_exit (gint fd, - gintptr msg) -{ - gintptr en = errno; - - write (fd, &msg, sizeof(gintptr)); - write (fd, &en, sizeof(gintptr)); - - _exit (1); -} - -#ifdef __GNUC__ -# ifndef _stdcall -# define _stdcall __attribute__((stdcall)) -# endif -#endif - -/* We build gspawn-win32-helper.exe as a Windows GUI application - * to avoid any temporarily flashing console windows in case - * the gspawn function is invoked by a GUI program. Thus, no main() - * but a WinMain(). We do, however, still use argc and argv tucked - * away in the global __argc and __argv by the C runtime startup code. - */ - -/* Info peeked from mingw runtime's source code. __wgetmainargs() is a - * function to get the program's argv in wide char format. - */ - -typedef struct { - int newmode; -} _startupinfo; - -extern void __wgetmainargs(int *argc, - wchar_t ***wargv, - wchar_t ***wenviron, - int expand_wildcards, - _startupinfo *startupinfo); - -/* Copy of protect_argv that handles wchar_t strings */ - -static gint -protect_wargv (wchar_t **wargv, - wchar_t ***new_wargv) -{ - gint i; - gint argc = 0; - - while (wargv[argc]) - ++argc; - *new_wargv = g_new (wchar_t *, argc+1); - - /* Quote each argv element if necessary, so that it will get - * reconstructed correctly in the C runtime startup code. Note that - * the unquoting algorithm in the C runtime is really weird, and - * rather different than what Unix shells do. See stdargv.c in the C - * runtime sources (in the Platform SDK, in src/crt). - * - * Note that an new_wargv[0] constructed by this function should - * *not* be passed as the filename argument to a _wspawn* or _wexec* - * family function. That argument should be the real file name - * without any quoting. - */ - for (i = 0; i < argc; i++) - { - wchar_t *p = wargv[i]; - wchar_t *q; - gint len = 0; - gboolean need_dblquotes = FALSE; - while (*p) - { - if (*p == ' ' || *p == '\t') - need_dblquotes = TRUE; - else if (*p == '"') - len++; - else if (*p == '\\') - { - wchar_t *pp = p; - while (*pp && *pp == '\\') - pp++; - if (*pp == '"') - len++; - } - len++; - p++; - } - - q = (*new_wargv)[i] = g_new (wchar_t, len + need_dblquotes*2 + 1); - p = wargv[i]; - - if (need_dblquotes) - *q++ = '"'; - - while (*p) - { - if (*p == '"') - *q++ = '\\'; - else if (*p == '\\') - { - wchar_t *pp = p; - while (*pp && *pp == '\\') - pp++; - if (*pp == '"') - *q++ = '\\'; - } - *q++ = *p; - p++; - } - - if (need_dblquotes) - *q++ = '"'; - *q++ = '\0'; - } - (*new_wargv)[argc] = NULL; - - return argc; -} - -#ifndef HELPER_CONSOLE -int _stdcall -WinMain (struct HINSTANCE__ *hInstance, - struct HINSTANCE__ *hPrevInstance, - char *lpszCmdLine, - int nCmdShow) -#else -int -main (int ignored_argc, char **ignored_argv) -#endif -{ - int child_err_report_fd = -1; - int helper_sync_fd = -1; - int i; - int fd; - int mode; - gintptr handle; - int saved_errno; - gintptr no_error = CHILD_NO_ERROR; - gint argv_zero_offset = ARG_PROGRAM; - wchar_t **new_wargv; - int argc; - wchar_t **wargv, **wenvp; - _startupinfo si = { 0 }; - char c; - - g_assert (__argc >= ARG_COUNT); - - /* Fetch the wide-char argument vector */ - __wgetmainargs (&argc, &wargv, &wenvp, 0, &si); - - /* We still have the system codepage args in __argv. We can look - * at the first args in which gspawn-win32.c passes us flags and - * fd numbers in __argv, as we know those are just ASCII anyway. - */ - g_assert (argc == __argc); - - /* argv[ARG_CHILD_ERR_REPORT] is the file descriptor number onto - * which write error messages. - */ - child_err_report_fd = atoi (__argv[ARG_CHILD_ERR_REPORT]); - - /* Hack to implement G_SPAWN_FILE_AND_ARGV_ZERO. If - * argv[ARG_CHILD_ERR_REPORT] is suffixed with a '#' it means we get - * the program to run and its argv[0] separately. - */ - if (__argv[ARG_CHILD_ERR_REPORT][strlen (__argv[ARG_CHILD_ERR_REPORT]) - 1] == '#') - argv_zero_offset++; - - /* argv[ARG_HELPER_SYNC] is the file descriptor number we read a - * byte that tells us it is OK to exit. We have to wait until the - * parent allows us to exit, so that the parent has had time to - * duplicate the process handle we sent it. Duplicating a handle - * from another process works only if that other process exists. - */ - helper_sync_fd = atoi (__argv[ARG_HELPER_SYNC]); - - /* argv[ARG_STDIN..ARG_STDERR] are the file descriptor numbers that - * should be dup2'd to 0, 1 and 2. '-' if the corresponding fd - * should be left alone, and 'z' if it should be connected to the - * bit bucket NUL:. - */ - if (__argv[ARG_STDIN][0] == '-') - ; /* Nothing */ - else if (__argv[ARG_STDIN][0] == 'z') - { - fd = open ("NUL:", O_RDONLY); - if (fd != 0) - { - dup2 (fd, 0); - close (fd); - } - } - else - { - fd = atoi (__argv[ARG_STDIN]); - if (fd != 0) - { - dup2 (fd, 0); - close (fd); - } - } - - if (__argv[ARG_STDOUT][0] == '-') - ; /* Nothing */ - else if (__argv[ARG_STDOUT][0] == 'z') - { - fd = open ("NUL:", O_WRONLY); - if (fd != 1) - { - dup2 (fd, 1); - close (fd); - } - } - else - { - fd = atoi (__argv[ARG_STDOUT]); - if (fd != 1) - { - dup2 (fd, 1); - close (fd); - } - } - - if (__argv[ARG_STDERR][0] == '-') - ; /* Nothing */ - else if (__argv[ARG_STDERR][0] == 'z') - { - fd = open ("NUL:", O_WRONLY); - if (fd != 2) - { - dup2 (fd, 2); - close (fd); - } - } - else - { - fd = atoi (__argv[ARG_STDERR]); - if (fd != 2) - { - dup2 (fd, 2); - close (fd); - } - } - - /* __argv[ARG_WORKING_DIRECTORY] is the directory in which to run the - * process. If "-", don't change directory. - */ - if (__argv[ARG_WORKING_DIRECTORY][0] == '-' && - __argv[ARG_WORKING_DIRECTORY][1] == 0) - ; /* Nothing */ - else if (_wchdir (wargv[ARG_WORKING_DIRECTORY]) < 0) - write_err_and_exit (child_err_report_fd, CHILD_CHDIR_FAILED); - - /* __argv[ARG_CLOSE_DESCRIPTORS] is "y" if file descriptors from 3 - * upwards should be closed - */ - if (__argv[ARG_CLOSE_DESCRIPTORS][0] == 'y') - for (i = 3; i < 1000; i++) /* FIXME real limit? */ - if (i != child_err_report_fd && i != helper_sync_fd) - close (i); - - /* We don't want our child to inherit the error report and - * helper sync fds. - */ - child_err_report_fd = dup_noninherited (child_err_report_fd, _O_WRONLY); - helper_sync_fd = dup_noninherited (helper_sync_fd, _O_RDONLY); - - /* __argv[ARG_WAIT] is "w" to wait for the program to exit */ - if (__argv[ARG_WAIT][0] == 'w') - mode = P_WAIT; - else - mode = P_NOWAIT; - - /* __argv[ARG_USE_PATH] is "y" to use PATH, otherwise not */ - - /* __argv[ARG_PROGRAM] is executable file to run, - * __argv[argv_zero_offset]... is its argv. argv_zero_offset equals - * ARG_PROGRAM unless G_SPAWN_FILE_AND_ARGV_ZERO was used, in which - * case we have a separate executable name and argv[0]. - */ - - /* For the program name passed to spawnv(), don't use the quoted - * version. - */ - protect_wargv (wargv + argv_zero_offset, &new_wargv); - - if (__argv[ARG_USE_PATH][0] == 'y') - handle = _wspawnvp (mode, wargv[ARG_PROGRAM], (const wchar_t **) new_wargv); - else - handle = _wspawnv (mode, wargv[ARG_PROGRAM], (const wchar_t **) new_wargv); - - saved_errno = errno; - - if (handle == -1 && saved_errno != 0) - write_err_and_exit (child_err_report_fd, CHILD_SPAWN_FAILED); - - write (child_err_report_fd, &no_error, sizeof (no_error)); - write (child_err_report_fd, &handle, sizeof (handle)); - - read (helper_sync_fd, &c, 1); - - return 0; -} diff --git a/lib/win32/glib-2.20.4/glib/gspawn-win32.c b/lib/win32/glib-2.20.4/glib/gspawn-win32.c deleted file mode 100644 index ba7970bb1faf1..0000000000000 --- a/lib/win32/glib-2.20.4/glib/gspawn-win32.c +++ /dev/null @@ -1,1494 +0,0 @@ -/* gspawn-win32.c - Process launching on Win32 - * - * Copyright 2000 Red Hat, Inc. - * Copyright 2003 Tor Lillqvist - * - * GLib is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or (at your option) any later version. - * - * GLib 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 - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with GLib; see the file COPYING.LIB. If not, write - * to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ - -/* - * Implementation details on Win32. - * - * - There is no way to set the no-inherit flag for - * a "file descriptor" in the MS C runtime. The flag is there, - * and the dospawn() function uses it, but unfortunately - * this flag can only be set when opening the file. - * - As there is no fork(), we cannot reliably change directory - * before starting the child process. (There might be several threads - * running, and the current directory is common for all threads.) - * - * Thus, we must in many cases use a helper program to handle closing - * of (inherited) file descriptors and changing of directory. The - * helper process is also needed if the standard input, standard - * output, or standard error of the process to be run are supposed to - * be redirected somewhere. - * - * The structure of the source code in this file is a mess, I know. - */ - -/* Define this to get some logging all the time */ -/* #define G_SPAWN_WIN32_DEBUG */ - -#include "config.h" - -#include "glib.h" -#include "gprintfint.h" -#include "glibintl.h" -#include "galias.h" - -#include -#include -#include - -#include -#include -#include -#include -#include -#include -#include - -#ifdef G_SPAWN_WIN32_DEBUG - static int debug = 1; - #define SETUP_DEBUG() /* empty */ -#else - static int debug = -1; - #define SETUP_DEBUG() \ - G_STMT_START \ - { \ - if (debug == -1) \ - { \ - if (getenv ("G_SPAWN_WIN32_DEBUG") != NULL) \ - debug = 1; \ - else \ - debug = 0; \ - } \ - } \ - G_STMT_END -#endif - -enum -{ - CHILD_NO_ERROR, - CHILD_CHDIR_FAILED, - CHILD_SPAWN_FAILED, -}; - -enum { - ARG_CHILD_ERR_REPORT = 1, - ARG_HELPER_SYNC, - ARG_STDIN, - ARG_STDOUT, - ARG_STDERR, - ARG_WORKING_DIRECTORY, - ARG_CLOSE_DESCRIPTORS, - ARG_USE_PATH, - ARG_WAIT, - ARG_PROGRAM, - ARG_COUNT = ARG_PROGRAM -}; - -static int -dup_noninherited (int fd, - int mode) -{ - HANDLE filehandle; - - DuplicateHandle (GetCurrentProcess (), (LPHANDLE) _get_osfhandle (fd), - GetCurrentProcess (), &filehandle, - 0, FALSE, DUPLICATE_SAME_ACCESS); - close (fd); - return _open_osfhandle ((gintptr) filehandle, mode | _O_NOINHERIT); -} - -#ifndef GSPAWN_HELPER - -#ifdef _WIN64 -#define HELPER_PROCESS "gspawn-win64-helper" -#else -#define HELPER_PROCESS "gspawn-win32-helper" -#endif - -static gchar * -protect_argv_string (const gchar *string) -{ - const gchar *p = string; - gchar *retval, *q; - gint len = 0; - gboolean need_dblquotes = FALSE; - while (*p) - { - if (*p == ' ' || *p == '\t') - need_dblquotes = TRUE; - else if (*p == '"') - len++; - else if (*p == '\\') - { - const gchar *pp = p; - while (*pp && *pp == '\\') - pp++; - if (*pp == '"') - len++; - } - len++; - p++; - } - - q = retval = g_malloc (len + need_dblquotes*2 + 1); - p = string; - - if (need_dblquotes) - *q++ = '"'; - - while (*p) - { - if (*p == '"') - *q++ = '\\'; - else if (*p == '\\') - { - const gchar *pp = p; - while (*pp && *pp == '\\') - pp++; - if (*pp == '"') - *q++ = '\\'; - } - *q++ = *p; - p++; - } - - if (need_dblquotes) - *q++ = '"'; - *q++ = '\0'; - - return retval; -} - -static gint -protect_argv (gchar **argv, - gchar ***new_argv) -{ - gint i; - gint argc = 0; - - while (argv[argc]) - ++argc; - *new_argv = g_new (gchar *, argc+1); - - /* Quote each argv element if necessary, so that it will get - * reconstructed correctly in the C runtime startup code. Note that - * the unquoting algorithm in the C runtime is really weird, and - * rather different than what Unix shells do. See stdargv.c in the C - * runtime sources (in the Platform SDK, in src/crt). - * - * Note that an new_argv[0] constructed by this function should - * *not* be passed as the filename argument to a spawn* or exec* - * family function. That argument should be the real file name - * without any quoting. - */ - for (i = 0; i < argc; i++) - (*new_argv)[i] = protect_argv_string (argv[i]); - - (*new_argv)[argc] = NULL; - - return argc; -} - -GQuark -g_spawn_error_quark (void) -{ - return g_quark_from_static_string ("g-exec-error-quark"); -} - -gboolean -g_spawn_async_utf8 (const gchar *working_directory, - gchar **argv, - gchar **envp, - GSpawnFlags flags, - GSpawnChildSetupFunc child_setup, - gpointer user_data, - GPid *child_handle, - GError **error) -{ - g_return_val_if_fail (argv != NULL, FALSE); - - return g_spawn_async_with_pipes_utf8 (working_directory, - argv, envp, - flags, - child_setup, - user_data, - child_handle, - NULL, NULL, NULL, - error); -} - -/* Avoids a danger in threaded situations (calling close() - * on a file descriptor twice, and another thread has - * re-opened it since the first close) - */ -static void -close_and_invalidate (gint *fd) -{ - if (*fd < 0) - return; - - close (*fd); - *fd = -1; -} - -typedef enum -{ - READ_FAILED = 0, /* FALSE */ - READ_OK, - READ_EOF -} ReadResult; - -static ReadResult -read_data (GString *str, - GIOChannel *iochannel, - GError **error) -{ - GIOStatus giostatus; - gsize bytes; - gchar buf[4096]; - - again: - - giostatus = g_io_channel_read_chars (iochannel, buf, sizeof (buf), &bytes, NULL); - - if (bytes == 0) - return READ_EOF; - else if (bytes > 0) - { - g_string_append_len (str, buf, bytes); - return READ_OK; - } - else if (giostatus == G_IO_STATUS_AGAIN) - goto again; - else if (giostatus == G_IO_STATUS_ERROR) - { - g_set_error_literal (error, G_SPAWN_ERROR, G_SPAWN_ERROR_READ, - _("Failed to read data from child process")); - - return READ_FAILED; - } - else - return READ_OK; -} - -static gboolean -make_pipe (gint p[2], - GError **error) -{ - if (_pipe (p, 4096, _O_BINARY) < 0) - { - g_set_error (error, G_SPAWN_ERROR, G_SPAWN_ERROR_FAILED, - _("Failed to create pipe for communicating with child process (%s)"), - g_strerror (errno)); - return FALSE; - } - else - return TRUE; -} - -/* The helper process writes a status report back to us, through a - * pipe, consisting of two ints. - */ -static gboolean -read_helper_report (int fd, - gintptr report[2], - GError **error) -{ - gint bytes = 0; - - while (bytes < sizeof(gintptr)*2) - { - gint chunk; - - if (debug) - g_print ("%s:read_helper_report: read %" G_GSIZE_FORMAT "...\n", - __FILE__, - sizeof(gintptr)*2 - bytes); - - chunk = read (fd, ((gchar*)report) + bytes, - sizeof(gintptr)*2 - bytes); - - if (debug) - g_print ("...got %d bytes\n", chunk); - - if (chunk < 0) - { - /* Some weird shit happened, bail out */ - - g_set_error (error, G_SPAWN_ERROR, G_SPAWN_ERROR_FAILED, - _("Failed to read from child pipe (%s)"), - g_strerror (errno)); - - return FALSE; - } - else if (chunk == 0) - { - g_set_error (error, G_SPAWN_ERROR, G_SPAWN_ERROR_FAILED, - _("Failed to read from child pipe (%s)"), - "EOF"); - break; /* EOF */ - } - else - bytes += chunk; - } - - if (bytes < sizeof(gintptr)*2) - return FALSE; - - return TRUE; -} - -static void -set_child_error (gintptr report[2], - const gchar *working_directory, - GError **error) -{ - switch (report[0]) - { - case CHILD_CHDIR_FAILED: - g_set_error (error, G_SPAWN_ERROR, G_SPAWN_ERROR_CHDIR, - _("Failed to change to directory '%s' (%s)"), - working_directory, - g_strerror (report[1])); - break; - case CHILD_SPAWN_FAILED: - g_set_error (error, G_SPAWN_ERROR, G_SPAWN_ERROR_FAILED, - _("Failed to execute child process (%s)"), - g_strerror (report[1])); - break; - default: - g_assert_not_reached (); - } -} - -static gboolean -utf8_charv_to_wcharv (char **utf8_charv, - wchar_t ***wcharv, - int *error_index, - GError **error) -{ - wchar_t **retval = NULL; - - *wcharv = NULL; - if (utf8_charv != NULL) - { - int n = 0, i; - - while (utf8_charv[n]) - n++; - retval = g_new (wchar_t *, n + 1); - - for (i = 0; i < n; i++) - { - retval[i] = g_utf8_to_utf16 (utf8_charv[i], -1, NULL, NULL, error); - if (retval[i] == NULL) - { - if (error_index) - *error_index = i; - while (i) - g_free (retval[--i]); - g_free (retval); - return FALSE; - } - } - - retval[n] = NULL; - } - *wcharv = retval; - return TRUE; -} - -static gboolean -do_spawn_directly (gint *exit_status, - gboolean do_return_handle, - GSpawnFlags flags, - gchar **argv, - char **envp, - char **protected_argv, - GPid *child_handle, - GError **error) -{ - const int mode = (exit_status == NULL) ? P_NOWAIT : P_WAIT; - char **new_argv; - gintptr rc = -1; - int saved_errno; - GError *conv_error = NULL; - gint conv_error_index; - wchar_t *wargv0, **wargv, **wenvp; - - new_argv = (flags & G_SPAWN_FILE_AND_ARGV_ZERO) ? protected_argv + 1 : protected_argv; - - wargv0 = g_utf8_to_utf16 (argv[0], -1, NULL, NULL, &conv_error); - if (wargv0 == NULL) - { - g_set_error (error, G_SPAWN_ERROR, G_SPAWN_ERROR_FAILED, - _("Invalid program name: %s"), - conv_error->message); - g_error_free (conv_error); - - return FALSE; - } - - if (!utf8_charv_to_wcharv (new_argv, &wargv, &conv_error_index, &conv_error)) - { - g_set_error (error, G_SPAWN_ERROR, G_SPAWN_ERROR_FAILED, - _("Invalid string in argument vector at %d: %s"), - conv_error_index, conv_error->message); - g_error_free (conv_error); - g_free (wargv0); - - return FALSE; - } - - if (!utf8_charv_to_wcharv (envp, &wenvp, NULL, &conv_error)) - { - g_set_error (error, G_SPAWN_ERROR, G_SPAWN_ERROR_FAILED, - _("Invalid string in environment: %s"), - conv_error->message); - g_error_free (conv_error); - g_free (wargv0); - g_strfreev ((gchar **) wargv); - - return FALSE; - } - - if (flags & G_SPAWN_SEARCH_PATH) - if (wenvp != NULL) - rc = _wspawnvpe (mode, wargv0, (const wchar_t **) wargv, (const wchar_t **) wenvp); - else - rc = _wspawnvp (mode, wargv0, (const wchar_t **) wargv); - else - if (wenvp != NULL) - rc = _wspawnve (mode, wargv0, (const wchar_t **) wargv, (const wchar_t **) wenvp); - else - rc = _wspawnv (mode, wargv0, (const wchar_t **) wargv); - - g_free (wargv0); - g_strfreev ((gchar **) wargv); - g_strfreev ((gchar **) wenvp); - - saved_errno = errno; - - if (rc == -1 && saved_errno != 0) - { - g_set_error (error, G_SPAWN_ERROR, G_SPAWN_ERROR_FAILED, - _("Failed to execute child process (%s)"), - g_strerror (saved_errno)); - return FALSE; - } - - if (exit_status == NULL) - { - if (child_handle && do_return_handle) - *child_handle = (GPid) rc; - else - { - CloseHandle ((HANDLE) rc); - if (child_handle) - *child_handle = 0; - } - } - else - *exit_status = rc; - - return TRUE; -} - -static gboolean -do_spawn_with_pipes (gint *exit_status, - gboolean do_return_handle, - const gchar *working_directory, - gchar **argv, - char **envp, - GSpawnFlags flags, - GSpawnChildSetupFunc child_setup, - GPid *child_handle, - gint *standard_input, - gint *standard_output, - gint *standard_error, - gint *err_report, - GError **error) -{ - char **protected_argv; - char args[ARG_COUNT][10]; - char **new_argv; - int i; - gintptr rc = -1; - int saved_errno; - int argc; - int stdin_pipe[2] = { -1, -1 }; - int stdout_pipe[2] = { -1, -1 }; - int stderr_pipe[2] = { -1, -1 }; - int child_err_report_pipe[2] = { -1, -1 }; - int helper_sync_pipe[2] = { -1, -1 }; - gintptr helper_report[2]; - static gboolean warned_about_child_setup = FALSE; - GError *conv_error = NULL; - gint conv_error_index; - gchar *helper_process; - CONSOLE_CURSOR_INFO cursor_info; - wchar_t *whelper, **wargv, **wenvp; - extern gchar *_glib_get_dll_directory (void); - gchar *glib_dll_directory; - - if (child_setup && !warned_about_child_setup) - { - warned_about_child_setup = TRUE; - g_warning ("passing a child setup function to the g_spawn functions is pointless on Windows and it is ignored"); - } - - argc = protect_argv (argv, &protected_argv); - - if (!standard_input && !standard_output && !standard_error && - (flags & G_SPAWN_CHILD_INHERITS_STDIN) && - !(flags & G_SPAWN_STDOUT_TO_DEV_NULL) && - !(flags & G_SPAWN_STDERR_TO_DEV_NULL) && - (working_directory == NULL || !*working_directory) && - (flags & G_SPAWN_LEAVE_DESCRIPTORS_OPEN)) - { - /* We can do without the helper process */ - gboolean retval = - do_spawn_directly (exit_status, do_return_handle, flags, - argv, envp, protected_argv, - child_handle, error); - g_strfreev (protected_argv); - return retval; - } - - if (standard_input && !make_pipe (stdin_pipe, error)) - goto cleanup_and_fail; - - if (standard_output && !make_pipe (stdout_pipe, error)) - goto cleanup_and_fail; - - if (standard_error && !make_pipe (stderr_pipe, error)) - goto cleanup_and_fail; - - if (!make_pipe (child_err_report_pipe, error)) - goto cleanup_and_fail; - - if (!make_pipe (helper_sync_pipe, error)) - goto cleanup_and_fail; - - new_argv = g_new (char *, argc + 1 + ARG_COUNT); - if (GetConsoleCursorInfo (GetStdHandle (STD_OUTPUT_HANDLE), &cursor_info)) - helper_process = HELPER_PROCESS "-console.exe"; - else - helper_process = HELPER_PROCESS ".exe"; - - glib_dll_directory = _glib_get_dll_directory (); - if (glib_dll_directory != NULL) - { - helper_process = g_build_filename (glib_dll_directory, helper_process, NULL); - g_free (glib_dll_directory); - } - else - helper_process = g_strdup (helper_process); - - new_argv[0] = protect_argv_string (helper_process); - - _g_sprintf (args[ARG_CHILD_ERR_REPORT], "%d", child_err_report_pipe[1]); - new_argv[ARG_CHILD_ERR_REPORT] = args[ARG_CHILD_ERR_REPORT]; - - /* Make the read end of the child error report pipe - * noninherited. Otherwise it will needlessly be inherited by the - * helper process, and the started actual user process. As such that - * shouldn't harm, but it is unnecessary. - */ - child_err_report_pipe[0] = dup_noninherited (child_err_report_pipe[0], _O_RDONLY); - - if (flags & G_SPAWN_FILE_AND_ARGV_ZERO) - { - /* Overload ARG_CHILD_ERR_REPORT to also encode the - * G_SPAWN_FILE_AND_ARGV_ZERO functionality. - */ - strcat (args[ARG_CHILD_ERR_REPORT], "#"); - } - - _g_sprintf (args[ARG_HELPER_SYNC], "%d", helper_sync_pipe[0]); - new_argv[ARG_HELPER_SYNC] = args[ARG_HELPER_SYNC]; - - /* Make the write end of the sync pipe noninherited. Otherwise the - * helper process will inherit it, and thus if this process happens - * to crash before writing the sync byte to the pipe, the helper - * process won't read but won't get any EOF either, as it has the - * write end open itself. - */ - helper_sync_pipe[1] = dup_noninherited (helper_sync_pipe[1], _O_WRONLY); - - if (standard_input) - { - _g_sprintf (args[ARG_STDIN], "%d", stdin_pipe[0]); - new_argv[ARG_STDIN] = args[ARG_STDIN]; - } - else if (flags & G_SPAWN_CHILD_INHERITS_STDIN) - { - /* Let stdin be alone */ - new_argv[ARG_STDIN] = "-"; - } - else - { - /* Keep process from blocking on a read of stdin */ - new_argv[ARG_STDIN] = "z"; - } - - if (standard_output) - { - _g_sprintf (args[ARG_STDOUT], "%d", stdout_pipe[1]); - new_argv[ARG_STDOUT] = args[ARG_STDOUT]; - } - else if (flags & G_SPAWN_STDOUT_TO_DEV_NULL) - { - new_argv[ARG_STDOUT] = "z"; - } - else - { - new_argv[ARG_STDOUT] = "-"; - } - - if (standard_error) - { - _g_sprintf (args[ARG_STDERR], "%d", stderr_pipe[1]); - new_argv[ARG_STDERR] = args[ARG_STDERR]; - } - else if (flags & G_SPAWN_STDERR_TO_DEV_NULL) - { - new_argv[ARG_STDERR] = "z"; - } - else - { - new_argv[ARG_STDERR] = "-"; - } - - if (working_directory && *working_directory) - new_argv[ARG_WORKING_DIRECTORY] = protect_argv_string (working_directory); - else - new_argv[ARG_WORKING_DIRECTORY] = g_strdup ("-"); - - if (!(flags & G_SPAWN_LEAVE_DESCRIPTORS_OPEN)) - new_argv[ARG_CLOSE_DESCRIPTORS] = "y"; - else - new_argv[ARG_CLOSE_DESCRIPTORS] = "-"; - - if (flags & G_SPAWN_SEARCH_PATH) - new_argv[ARG_USE_PATH] = "y"; - else - new_argv[ARG_USE_PATH] = "-"; - - if (exit_status == NULL) - new_argv[ARG_WAIT] = "-"; - else - new_argv[ARG_WAIT] = "w"; - - for (i = 0; i <= argc; i++) - new_argv[ARG_PROGRAM + i] = protected_argv[i]; - - SETUP_DEBUG(); - - if (debug) - { - g_print ("calling %s with argv:\n", helper_process); - for (i = 0; i < argc + 1 + ARG_COUNT; i++) - g_print ("argv[%d]: %s\n", i, (new_argv[i] ? new_argv[i] : "NULL")); - } - - if (!utf8_charv_to_wcharv (new_argv, &wargv, &conv_error_index, &conv_error)) - { - if (conv_error_index == ARG_WORKING_DIRECTORY) - g_set_error (error, G_SPAWN_ERROR, G_SPAWN_ERROR_CHDIR, - _("Invalid working directory: %s"), - conv_error->message); - else - g_set_error (error, G_SPAWN_ERROR, G_SPAWN_ERROR_FAILED, - _("Invalid string in argument vector at %d: %s"), - conv_error_index - ARG_PROGRAM, conv_error->message); - g_error_free (conv_error); - g_strfreev (protected_argv); - g_free (new_argv[0]); - g_free (new_argv[ARG_WORKING_DIRECTORY]); - g_free (new_argv); - g_free (helper_process); - - goto cleanup_and_fail; - } - - if (!utf8_charv_to_wcharv (envp, &wenvp, NULL, &conv_error)) - { - g_set_error (error, G_SPAWN_ERROR, G_SPAWN_ERROR_FAILED, - _("Invalid string in environment: %s"), - conv_error->message); - g_error_free (conv_error); - g_strfreev (protected_argv); - g_free (new_argv[0]); - g_free (new_argv[ARG_WORKING_DIRECTORY]); - g_free (new_argv); - g_free (helper_process); - g_strfreev ((gchar **) wargv); - - goto cleanup_and_fail; - } - - whelper = g_utf8_to_utf16 (helper_process, -1, NULL, NULL, NULL); - g_free (helper_process); - - if (wenvp != NULL) - rc = _wspawnvpe (P_NOWAIT, whelper, (const wchar_t **) wargv, (const wchar_t **) wenvp); - else - rc = _wspawnvp (P_NOWAIT, whelper, (const wchar_t **) wargv); - - saved_errno = errno; - - g_free (whelper); - g_strfreev ((gchar **) wargv); - g_strfreev ((gchar **) wenvp); - - /* Close the other process's ends of the pipes in this process, - * otherwise the reader will never get EOF. - */ - close_and_invalidate (&child_err_report_pipe[1]); - close_and_invalidate (&helper_sync_pipe[0]); - close_and_invalidate (&stdin_pipe[0]); - close_and_invalidate (&stdout_pipe[1]); - close_and_invalidate (&stderr_pipe[1]); - - g_strfreev (protected_argv); - - g_free (new_argv[0]); - g_free (new_argv[ARG_WORKING_DIRECTORY]); - g_free (new_argv); - - /* Check if gspawn-win32-helper couldn't be run */ - if (rc == -1 && saved_errno != 0) - { - g_set_error (error, G_SPAWN_ERROR, G_SPAWN_ERROR_FAILED, - _("Failed to execute helper program (%s)"), - g_strerror (saved_errno)); - goto cleanup_and_fail; - } - - if (exit_status != NULL) - { - /* Synchronous case. Pass helper's report pipe back to caller, - * which takes care of reading it after the grandchild has - * finished. - */ - g_assert (err_report != NULL); - *err_report = child_err_report_pipe[0]; - write (helper_sync_pipe[1], " ", 1); - close_and_invalidate (&helper_sync_pipe[1]); - } - else - { - /* Asynchronous case. We read the helper's report right away. */ - if (!read_helper_report (child_err_report_pipe[0], helper_report, error)) - goto cleanup_and_fail; - - close_and_invalidate (&child_err_report_pipe[0]); - - switch (helper_report[0]) - { - case CHILD_NO_ERROR: - if (child_handle && do_return_handle) - { - /* rc is our HANDLE for gspawn-win32-helper. It has - * told us the HANDLE of its child. Duplicate that into - * a HANDLE valid in this process. - */ - if (!DuplicateHandle ((HANDLE) rc, (HANDLE) helper_report[1], - GetCurrentProcess (), (LPHANDLE) child_handle, - 0, TRUE, DUPLICATE_SAME_ACCESS)) - { - char *emsg = g_win32_error_message (GetLastError ()); - g_print("%s\n", emsg); - *child_handle = 0; - } - } - else if (child_handle) - *child_handle = 0; - write (helper_sync_pipe[1], " ", 1); - close_and_invalidate (&helper_sync_pipe[1]); - break; - - default: - write (helper_sync_pipe[1], " ", 1); - close_and_invalidate (&helper_sync_pipe[1]); - set_child_error (helper_report, working_directory, error); - goto cleanup_and_fail; - } - } - - /* Success against all odds! return the information */ - - if (standard_input) - *standard_input = stdin_pipe[1]; - if (standard_output) - *standard_output = stdout_pipe[0]; - if (standard_error) - *standard_error = stderr_pipe[0]; - if (rc != -1) - CloseHandle ((HANDLE) rc); - - return TRUE; - - cleanup_and_fail: - - if (rc != -1) - CloseHandle ((HANDLE) rc); - if (child_err_report_pipe[0] != -1) - close (child_err_report_pipe[0]); - if (child_err_report_pipe[1] != -1) - close (child_err_report_pipe[1]); - if (helper_sync_pipe[0] != -1) - close (helper_sync_pipe[0]); - if (helper_sync_pipe[1] != -1) - close (helper_sync_pipe[1]); - if (stdin_pipe[0] != -1) - close (stdin_pipe[0]); - if (stdin_pipe[1] != -1) - close (stdin_pipe[1]); - if (stdout_pipe[0] != -1) - close (stdout_pipe[0]); - if (stdout_pipe[1] != -1) - close (stdout_pipe[1]); - if (stderr_pipe[0] != -1) - close (stderr_pipe[0]); - if (stderr_pipe[1] != -1) - close (stderr_pipe[1]); - - return FALSE; -} - -gboolean -g_spawn_sync_utf8 (const gchar *working_directory, - gchar **argv, - gchar **envp, - GSpawnFlags flags, - GSpawnChildSetupFunc child_setup, - gpointer user_data, - gchar **standard_output, - gchar **standard_error, - gint *exit_status, - GError **error) -{ - gint outpipe = -1; - gint errpipe = -1; - gint reportpipe = -1; - GIOChannel *outchannel = NULL; - GIOChannel *errchannel = NULL; - GPollFD outfd, errfd; - GPollFD fds[2]; - gint nfds; - gint outindex = -1; - gint errindex = -1; - gint ret; - GString *outstr = NULL; - GString *errstr = NULL; - gboolean failed; - gint status; - - g_return_val_if_fail (argv != NULL, FALSE); - g_return_val_if_fail (!(flags & G_SPAWN_DO_NOT_REAP_CHILD), FALSE); - g_return_val_if_fail (standard_output == NULL || - !(flags & G_SPAWN_STDOUT_TO_DEV_NULL), FALSE); - g_return_val_if_fail (standard_error == NULL || - !(flags & G_SPAWN_STDERR_TO_DEV_NULL), FALSE); - - /* Just to ensure segfaults if callers try to use - * these when an error is reported. - */ - if (standard_output) - *standard_output = NULL; - - if (standard_error) - *standard_error = NULL; - - if (!do_spawn_with_pipes (&status, - FALSE, - working_directory, - argv, - envp, - flags, - child_setup, - NULL, - NULL, - standard_output ? &outpipe : NULL, - standard_error ? &errpipe : NULL, - &reportpipe, - error)) - return FALSE; - - /* Read data from child. */ - - failed = FALSE; - - if (outpipe >= 0) - { - outstr = g_string_new (NULL); - outchannel = g_io_channel_win32_new_fd (outpipe); - g_io_channel_set_encoding (outchannel, NULL, NULL); - g_io_channel_set_buffered (outchannel, FALSE); - g_io_channel_win32_make_pollfd (outchannel, - G_IO_IN | G_IO_ERR | G_IO_HUP, - &outfd); - if (debug) - g_print ("outfd=%p\n", (HANDLE) outfd.fd); - } - - if (errpipe >= 0) - { - errstr = g_string_new (NULL); - errchannel = g_io_channel_win32_new_fd (errpipe); - g_io_channel_set_encoding (errchannel, NULL, NULL); - g_io_channel_set_buffered (errchannel, FALSE); - g_io_channel_win32_make_pollfd (errchannel, - G_IO_IN | G_IO_ERR | G_IO_HUP, - &errfd); - if (debug) - g_print ("errfd=%p\n", (HANDLE) errfd.fd); - } - - /* Read data until we get EOF on all pipes. */ - while (!failed && (outpipe >= 0 || errpipe >= 0)) - { - nfds = 0; - if (outpipe >= 0) - { - fds[nfds] = outfd; - outindex = nfds; - nfds++; - } - if (errpipe >= 0) - { - fds[nfds] = errfd; - errindex = nfds; - nfds++; - } - - if (debug) - g_print ("g_spawn_sync: calling g_io_channel_win32_poll, nfds=%d\n", - nfds); - - ret = g_io_channel_win32_poll (fds, nfds, -1); - - if (ret < 0) - { - failed = TRUE; - - g_set_error_literal (error, G_SPAWN_ERROR, G_SPAWN_ERROR_READ, - _("Unexpected error in g_io_channel_win32_poll() reading data from a child process")); - - break; - } - - if (outpipe >= 0 && (fds[outindex].revents & G_IO_IN)) - { - switch (read_data (outstr, outchannel, error)) - { - case READ_FAILED: - if (debug) - g_print ("g_spawn_sync: outchannel: READ_FAILED\n"); - failed = TRUE; - break; - case READ_EOF: - if (debug) - g_print ("g_spawn_sync: outchannel: READ_EOF\n"); - g_io_channel_unref (outchannel); - outchannel = NULL; - close_and_invalidate (&outpipe); - break; - default: - if (debug) - g_print ("g_spawn_sync: outchannel: OK\n"); - break; - } - - if (failed) - break; - } - - if (errpipe >= 0 && (fds[errindex].revents & G_IO_IN)) - { - switch (read_data (errstr, errchannel, error)) - { - case READ_FAILED: - if (debug) - g_print ("g_spawn_sync: errchannel: READ_FAILED\n"); - failed = TRUE; - break; - case READ_EOF: - if (debug) - g_print ("g_spawn_sync: errchannel: READ_EOF\n"); - g_io_channel_unref (errchannel); - errchannel = NULL; - close_and_invalidate (&errpipe); - break; - default: - if (debug) - g_print ("g_spawn_sync: errchannel: OK\n"); - break; - } - - if (failed) - break; - } - } - - if (reportpipe == -1) - { - /* No helper process, exit status of actual spawned process - * already available. - */ - if (exit_status) - *exit_status = status; - } - else - { - /* Helper process was involved. Read its report now after the - * grandchild has finished. - */ - gintptr helper_report[2]; - - if (!read_helper_report (reportpipe, helper_report, error)) - failed = TRUE; - else - { - switch (helper_report[0]) - { - case CHILD_NO_ERROR: - if (exit_status) - *exit_status = helper_report[1]; - break; - default: - set_child_error (helper_report, working_directory, error); - failed = TRUE; - break; - } - } - close_and_invalidate (&reportpipe); - } - - - /* These should only be open still if we had an error. */ - - if (outchannel != NULL) - g_io_channel_unref (outchannel); - if (errchannel != NULL) - g_io_channel_unref (errchannel); - if (outpipe >= 0) - close_and_invalidate (&outpipe); - if (errpipe >= 0) - close_and_invalidate (&errpipe); - - if (failed) - { - if (outstr) - g_string_free (outstr, TRUE); - if (errstr) - g_string_free (errstr, TRUE); - - return FALSE; - } - else - { - if (standard_output) - *standard_output = g_string_free (outstr, FALSE); - - if (standard_error) - *standard_error = g_string_free (errstr, FALSE); - - return TRUE; - } -} - -gboolean -g_spawn_async_with_pipes_utf8 (const gchar *working_directory, - gchar **argv, - gchar **envp, - GSpawnFlags flags, - GSpawnChildSetupFunc child_setup, - gpointer user_data, - GPid *child_handle, - gint *standard_input, - gint *standard_output, - gint *standard_error, - GError **error) -{ - g_return_val_if_fail (argv != NULL, FALSE); - g_return_val_if_fail (standard_output == NULL || - !(flags & G_SPAWN_STDOUT_TO_DEV_NULL), FALSE); - g_return_val_if_fail (standard_error == NULL || - !(flags & G_SPAWN_STDERR_TO_DEV_NULL), FALSE); - /* can't inherit stdin if we have an input pipe. */ - g_return_val_if_fail (standard_input == NULL || - !(flags & G_SPAWN_CHILD_INHERITS_STDIN), FALSE); - - return do_spawn_with_pipes (NULL, - (flags & G_SPAWN_DO_NOT_REAP_CHILD), - working_directory, - argv, - envp, - flags, - child_setup, - child_handle, - standard_input, - standard_output, - standard_error, - NULL, - error); -} - -gboolean -g_spawn_command_line_sync_utf8 (const gchar *command_line, - gchar **standard_output, - gchar **standard_error, - gint *exit_status, - GError **error) -{ - gboolean retval; - gchar **argv = 0; - - g_return_val_if_fail (command_line != NULL, FALSE); - - if (!g_shell_parse_argv (command_line, - NULL, &argv, - error)) - return FALSE; - - retval = g_spawn_sync_utf8 (NULL, - argv, - NULL, - G_SPAWN_SEARCH_PATH, - NULL, - NULL, - standard_output, - standard_error, - exit_status, - error); - g_strfreev (argv); - - return retval; -} - -gboolean -g_spawn_command_line_async_utf8 (const gchar *command_line, - GError **error) -{ - gboolean retval; - gchar **argv = 0; - - g_return_val_if_fail (command_line != NULL, FALSE); - - if (!g_shell_parse_argv (command_line, - NULL, &argv, - error)) - return FALSE; - - retval = g_spawn_async_utf8 (NULL, - argv, - NULL, - G_SPAWN_SEARCH_PATH, - NULL, - NULL, - NULL, - error); - g_strfreev (argv); - - return retval; -} - -void -g_spawn_close_pid (GPid pid) -{ - CloseHandle (pid); -} - -#if !defined (_WIN64) - -/* Binary compatibility versions that take system codepage pathnames, - * argument vectors and environments. These get used only by code - * built against 2.8.1 or earlier. Code built against 2.8.2 or later - * will use the _utf8 versions above (see the #defines in gspawn.h). - */ - -#undef g_spawn_async -#undef g_spawn_async_with_pipes -#undef g_spawn_sync -#undef g_spawn_command_line_sync -#undef g_spawn_command_line_async - -static gboolean -setup_utf8_copies (const gchar *working_directory, - gchar **utf8_working_directory, - gchar **argv, - gchar ***utf8_argv, - gchar **envp, - gchar ***utf8_envp, - GError **error) -{ - gint i, argc, envc; - - if (working_directory == NULL) - *utf8_working_directory = NULL; - else - { - GError *conv_error = NULL; - - *utf8_working_directory = g_locale_to_utf8 (working_directory, -1, NULL, NULL, &conv_error); - if (*utf8_working_directory == NULL) - { - g_set_error (error, G_SPAWN_ERROR, G_SPAWN_ERROR_CHDIR, - _("Invalid working directory: %s"), - conv_error->message); - g_error_free (conv_error); - return FALSE; - } - } - - argc = 0; - while (argv[argc]) - ++argc; - *utf8_argv = g_new (gchar *, argc + 1); - for (i = 0; i < argc; i++) - { - GError *conv_error = NULL; - - (*utf8_argv)[i] = g_locale_to_utf8 (argv[i], -1, NULL, NULL, &conv_error); - if ((*utf8_argv)[i] == NULL) - { - g_set_error (error, G_SPAWN_ERROR, G_SPAWN_ERROR_FAILED, - _("Invalid string in argument vector at %d: %s"), - i, conv_error->message); - g_error_free (conv_error); - - g_strfreev (*utf8_argv); - *utf8_argv = NULL; - - g_free (*utf8_working_directory); - *utf8_working_directory = NULL; - - return FALSE; - } - } - (*utf8_argv)[argc] = NULL; - - if (envp == NULL) - { - *utf8_envp = NULL; - } - else - { - envc = 0; - while (envp[envc]) - ++envc; - *utf8_envp = g_new (gchar *, envc + 1); - for (i = 0; i < envc; i++) - { - GError *conv_error = NULL; - - (*utf8_envp)[i] = g_locale_to_utf8 (envp[i], -1, NULL, NULL, &conv_error); - if ((*utf8_envp)[i] == NULL) - { - g_set_error (error, G_SPAWN_ERROR, G_SPAWN_ERROR_FAILED, - _("Invalid string in environment: %s"), - conv_error->message); - g_error_free (conv_error); - - g_strfreev (*utf8_envp); - *utf8_envp = NULL; - - g_strfreev (*utf8_argv); - *utf8_argv = NULL; - - g_free (*utf8_working_directory); - *utf8_working_directory = NULL; - - return FALSE; - } - } - (*utf8_envp)[envc] = NULL; - } - return TRUE; -} - -static void -free_utf8_copies (gchar *utf8_working_directory, - gchar **utf8_argv, - gchar **utf8_envp) -{ - g_free (utf8_working_directory); - g_strfreev (utf8_argv); - g_strfreev (utf8_envp); -} - -gboolean -g_spawn_async_with_pipes (const gchar *working_directory, - gchar **argv, - gchar **envp, - GSpawnFlags flags, - GSpawnChildSetupFunc child_setup, - gpointer user_data, - GPid *child_handle, - gint *standard_input, - gint *standard_output, - gint *standard_error, - GError **error) -{ - gchar *utf8_working_directory; - gchar **utf8_argv; - gchar **utf8_envp; - gboolean retval; - - if (!setup_utf8_copies (working_directory, &utf8_working_directory, - argv, &utf8_argv, - envp, &utf8_envp, - error)) - return FALSE; - - retval = g_spawn_async_with_pipes_utf8 (utf8_working_directory, - utf8_argv, utf8_envp, - flags, child_setup, user_data, - child_handle, - standard_input, standard_output, standard_error, - error); - - free_utf8_copies (utf8_working_directory, utf8_argv, utf8_envp); - - return retval; -} - -gboolean -g_spawn_async (const gchar *working_directory, - gchar **argv, - gchar **envp, - GSpawnFlags flags, - GSpawnChildSetupFunc child_setup, - gpointer user_data, - GPid *child_handle, - GError **error) -{ - return g_spawn_async_with_pipes (working_directory, - argv, envp, - flags, - child_setup, - user_data, - child_handle, - NULL, NULL, NULL, - error); -} - -gboolean -g_spawn_sync (const gchar *working_directory, - gchar **argv, - gchar **envp, - GSpawnFlags flags, - GSpawnChildSetupFunc child_setup, - gpointer user_data, - gchar **standard_output, - gchar **standard_error, - gint *exit_status, - GError **error) -{ - gchar *utf8_working_directory; - gchar **utf8_argv; - gchar **utf8_envp; - gboolean retval; - - if (!setup_utf8_copies (working_directory, &utf8_working_directory, - argv, &utf8_argv, - envp, &utf8_envp, - error)) - return FALSE; - - retval = g_spawn_sync_utf8 (utf8_working_directory, - utf8_argv, utf8_envp, - flags, child_setup, user_data, - standard_output, standard_error, exit_status, - error); - - free_utf8_copies (utf8_working_directory, utf8_argv, utf8_envp); - - return retval; -} - -gboolean -g_spawn_command_line_sync (const gchar *command_line, - gchar **standard_output, - gchar **standard_error, - gint *exit_status, - GError **error) -{ - gboolean retval; - gchar **argv = 0; - - g_return_val_if_fail (command_line != NULL, FALSE); - - if (!g_shell_parse_argv (command_line, - NULL, &argv, - error)) - return FALSE; - - retval = g_spawn_sync (NULL, - argv, - NULL, - G_SPAWN_SEARCH_PATH, - NULL, - NULL, - standard_output, - standard_error, - exit_status, - error); - g_strfreev (argv); - - return retval; -} - -gboolean -g_spawn_command_line_async (const gchar *command_line, - GError **error) -{ - gboolean retval; - gchar **argv = 0; - - g_return_val_if_fail (command_line != NULL, FALSE); - - if (!g_shell_parse_argv (command_line, - NULL, &argv, - error)) - return FALSE; - - retval = g_spawn_async (NULL, - argv, - NULL, - G_SPAWN_SEARCH_PATH, - NULL, - NULL, - NULL, - error); - g_strfreev (argv); - - return retval; -} - -#endif /* !_WIN64 */ - -#endif /* !GSPAWN_HELPER */ - -#define __G_SPAWN_C__ -#include "galiasdef.c" diff --git a/lib/win32/glib-2.20.4/glib/gspawn-win64-helper-console.c b/lib/win32/glib-2.20.4/glib/gspawn-win64-helper-console.c deleted file mode 100644 index dca4499fb6b5a..0000000000000 --- a/lib/win32/glib-2.20.4/glib/gspawn-win64-helper-console.c +++ /dev/null @@ -1,2 +0,0 @@ -#define HELPER_CONSOLE -#include "gspawn-win32-helper.c" diff --git a/lib/win32/glib-2.20.4/glib/gspawn-win64-helper.c b/lib/win32/glib-2.20.4/glib/gspawn-win64-helper.c deleted file mode 100644 index d8641ffd0f404..0000000000000 --- a/lib/win32/glib-2.20.4/glib/gspawn-win64-helper.c +++ /dev/null @@ -1 +0,0 @@ -#include "gspawn-win32-helper.c" diff --git a/lib/win32/glib-2.20.4/glib/gspawn.c b/lib/win32/glib-2.20.4/glib/gspawn.c deleted file mode 100644 index 406ef2b4be0ea..0000000000000 --- a/lib/win32/glib-2.20.4/glib/gspawn.c +++ /dev/null @@ -1,1671 +0,0 @@ -/* gspawn.c - Process launching - * - * Copyright 2000 Red Hat, Inc. - * g_execvpe implementation based on GNU libc execvp: - * Copyright 1991, 92, 95, 96, 97, 98, 99 Free Software Foundation, Inc. - * - * GLib is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or (at your option) any later version. - * - * GLib 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 - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with GLib; see the file COPYING.LIB. If not, write - * to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ - -#include "config.h" - -#include -#include -#include -#include -#include -#include -#include -#include -#include /* for fdwalk */ -#include - -#ifdef HAVE_SYS_SELECT_H -#include -#endif /* HAVE_SYS_SELECT_H */ - -#ifdef HAVE_SYS_RESOURCE_H -#include -#endif /* HAVE_SYS_RESOURCE_H */ - -#include "glib.h" -#include "glibintl.h" -#include "galias.h" - -static gint g_execute (const gchar *file, - gchar **argv, - gchar **envp, - gboolean search_path); - -static gboolean make_pipe (gint p[2], - GError **error); -static gboolean fork_exec_with_pipes (gboolean intermediate_child, - const gchar *working_directory, - gchar **argv, - gchar **envp, - gboolean close_descriptors, - gboolean search_path, - gboolean stdout_to_null, - gboolean stderr_to_null, - gboolean child_inherits_stdin, - gboolean file_and_argv_zero, - GSpawnChildSetupFunc child_setup, - gpointer user_data, - GPid *child_pid, - gint *standard_input, - gint *standard_output, - gint *standard_error, - GError **error); - -GQuark -g_spawn_error_quark (void) -{ - return g_quark_from_static_string ("g-exec-error-quark"); -} - -/** - * g_spawn_async: - * @working_directory: child's current working directory, or %NULL to inherit parent's - * @argv: child's argument vector - * @envp: child's environment, or %NULL to inherit parent's - * @flags: flags from #GSpawnFlags - * @child_setup: function to run in the child just before exec() - * @user_data: user data for @child_setup - * @child_pid: return location for child process reference, or %NULL - * @error: return location for error - * - * See g_spawn_async_with_pipes() for a full description; this function - * simply calls the g_spawn_async_with_pipes() without any pipes. - * - * You should call g_spawn_close_pid() on the returned child process - * reference when you don't need it any more. - * - * - * If you are writing a GTK+ application, and the program you - * are spawning is a graphical application, too, then you may - * want to use gdk_spawn_on_screen() instead to ensure that - * the spawned program opens its windows on the right screen. - * - * - * Note that the returned @child_pid on Windows is a - * handle to the child process and not its identifier. Process handles - * and process identifiers are different concepts on Windows. - * - * - * Return value: %TRUE on success, %FALSE if error is set - **/ -gboolean -g_spawn_async (const gchar *working_directory, - gchar **argv, - gchar **envp, - GSpawnFlags flags, - GSpawnChildSetupFunc child_setup, - gpointer user_data, - GPid *child_pid, - GError **error) -{ - g_return_val_if_fail (argv != NULL, FALSE); - - return g_spawn_async_with_pipes (working_directory, - argv, envp, - flags, - child_setup, - user_data, - child_pid, - NULL, NULL, NULL, - error); -} - -/* Avoids a danger in threaded situations (calling close() - * on a file descriptor twice, and another thread has - * re-opened it since the first close) - */ -static gint -close_and_invalidate (gint *fd) -{ - gint ret; - - if (*fd < 0) - return -1; - else - { - ret = close (*fd); - *fd = -1; - } - - return ret; -} - -/* Some versions of OS X define READ_OK in public headers */ -#undef READ_OK - -typedef enum -{ - READ_FAILED = 0, /* FALSE */ - READ_OK, - READ_EOF -} ReadResult; - -static ReadResult -read_data (GString *str, - gint fd, - GError **error) -{ - gssize bytes; - gchar buf[4096]; - - again: - - bytes = read (fd, buf, 4096); - - if (bytes == 0) - return READ_EOF; - else if (bytes > 0) - { - g_string_append_len (str, buf, bytes); - return READ_OK; - } - else if (bytes < 0 && errno == EINTR) - goto again; - else if (bytes < 0) - { - g_set_error (error, - G_SPAWN_ERROR, - G_SPAWN_ERROR_READ, - _("Failed to read data from child process (%s)"), - g_strerror (errno)); - - return READ_FAILED; - } - else - return READ_OK; -} - -/** - * g_spawn_sync: - * @working_directory: child's current working directory, or %NULL to inherit parent's - * @argv: child's argument vector - * @envp: child's environment, or %NULL to inherit parent's - * @flags: flags from #GSpawnFlags - * @child_setup: function to run in the child just before exec() - * @user_data: user data for @child_setup - * @standard_output: return location for child output, or %NULL - * @standard_error: return location for child error messages, or %NULL - * @exit_status: return location for child exit status, as returned by waitpid(), or %NULL - * @error: return location for error, or %NULL - * - * Executes a child synchronously (waits for the child to exit before returning). - * All output from the child is stored in @standard_output and @standard_error, - * if those parameters are non-%NULL. Note that you must set the - * %G_SPAWN_STDOUT_TO_DEV_NULL and %G_SPAWN_STDERR_TO_DEV_NULL flags when - * passing %NULL for @standard_output and @standard_error. - * If @exit_status is non-%NULL, the exit status of the child is stored - * there as it would be returned by waitpid(); standard UNIX macros such - * as WIFEXITED() and WEXITSTATUS() must be used to evaluate the exit status. - * Note that this function call waitpid() even if @exit_status is %NULL, and - * does not accept the %G_SPAWN_DO_NOT_REAP_CHILD flag. - * If an error occurs, no data is returned in @standard_output, - * @standard_error, or @exit_status. - * - * This function calls g_spawn_async_with_pipes() internally; see that - * function for full details on the other parameters and details on - * how these functions work on Windows. - * - * Return value: %TRUE on success, %FALSE if an error was set. - **/ -gboolean -g_spawn_sync (const gchar *working_directory, - gchar **argv, - gchar **envp, - GSpawnFlags flags, - GSpawnChildSetupFunc child_setup, - gpointer user_data, - gchar **standard_output, - gchar **standard_error, - gint *exit_status, - GError **error) -{ - gint outpipe = -1; - gint errpipe = -1; - GPid pid; - fd_set fds; - gint ret; - GString *outstr = NULL; - GString *errstr = NULL; - gboolean failed; - gint status; - - g_return_val_if_fail (argv != NULL, FALSE); - g_return_val_if_fail (!(flags & G_SPAWN_DO_NOT_REAP_CHILD), FALSE); - g_return_val_if_fail (standard_output == NULL || - !(flags & G_SPAWN_STDOUT_TO_DEV_NULL), FALSE); - g_return_val_if_fail (standard_error == NULL || - !(flags & G_SPAWN_STDERR_TO_DEV_NULL), FALSE); - - /* Just to ensure segfaults if callers try to use - * these when an error is reported. - */ - if (standard_output) - *standard_output = NULL; - - if (standard_error) - *standard_error = NULL; - - if (!fork_exec_with_pipes (FALSE, - working_directory, - argv, - envp, - !(flags & G_SPAWN_LEAVE_DESCRIPTORS_OPEN), - (flags & G_SPAWN_SEARCH_PATH) != 0, - (flags & G_SPAWN_STDOUT_TO_DEV_NULL) != 0, - (flags & G_SPAWN_STDERR_TO_DEV_NULL) != 0, - (flags & G_SPAWN_CHILD_INHERITS_STDIN) != 0, - (flags & G_SPAWN_FILE_AND_ARGV_ZERO) != 0, - child_setup, - user_data, - &pid, - NULL, - standard_output ? &outpipe : NULL, - standard_error ? &errpipe : NULL, - error)) - return FALSE; - - /* Read data from child. */ - - failed = FALSE; - - if (outpipe >= 0) - { - outstr = g_string_new (NULL); - } - - if (errpipe >= 0) - { - errstr = g_string_new (NULL); - } - - /* Read data until we get EOF on both pipes. */ - while (!failed && - (outpipe >= 0 || - errpipe >= 0)) - { - ret = 0; - - FD_ZERO (&fds); - if (outpipe >= 0) - FD_SET (outpipe, &fds); - if (errpipe >= 0) - FD_SET (errpipe, &fds); - - ret = select (MAX (outpipe, errpipe) + 1, - &fds, - NULL, NULL, - NULL /* no timeout */); - - if (ret < 0 && errno != EINTR) - { - failed = TRUE; - - g_set_error (error, - G_SPAWN_ERROR, - G_SPAWN_ERROR_READ, - _("Unexpected error in select() reading data from a child process (%s)"), - g_strerror (errno)); - - break; - } - - if (outpipe >= 0 && FD_ISSET (outpipe, &fds)) - { - switch (read_data (outstr, outpipe, error)) - { - case READ_FAILED: - failed = TRUE; - break; - case READ_EOF: - close_and_invalidate (&outpipe); - outpipe = -1; - break; - default: - break; - } - - if (failed) - break; - } - - if (errpipe >= 0 && FD_ISSET (errpipe, &fds)) - { - switch (read_data (errstr, errpipe, error)) - { - case READ_FAILED: - failed = TRUE; - break; - case READ_EOF: - close_and_invalidate (&errpipe); - errpipe = -1; - break; - default: - break; - } - - if (failed) - break; - } - } - - /* These should only be open still if we had an error. */ - - if (outpipe >= 0) - close_and_invalidate (&outpipe); - if (errpipe >= 0) - close_and_invalidate (&errpipe); - - /* Wait for child to exit, even if we have - * an error pending. - */ - again: - - ret = waitpid (pid, &status, 0); - - if (ret < 0) - { - if (errno == EINTR) - goto again; - else if (errno == ECHILD) - { - if (exit_status) - { - g_warning ("In call to g_spawn_sync(), exit status of a child process was requested but SIGCHLD action was set to SIG_IGN and ECHILD was received by waitpid(), so exit status can't be returned. This is a bug in the program calling g_spawn_sync(); either don't request the exit status, or don't set the SIGCHLD action."); - } - else - { - /* We don't need the exit status. */ - } - } - else - { - if (!failed) /* avoid error pileups */ - { - failed = TRUE; - - g_set_error (error, - G_SPAWN_ERROR, - G_SPAWN_ERROR_READ, - _("Unexpected error in waitpid() (%s)"), - g_strerror (errno)); - } - } - } - - if (failed) - { - if (outstr) - g_string_free (outstr, TRUE); - if (errstr) - g_string_free (errstr, TRUE); - - return FALSE; - } - else - { - if (exit_status) - *exit_status = status; - - if (standard_output) - *standard_output = g_string_free (outstr, FALSE); - - if (standard_error) - *standard_error = g_string_free (errstr, FALSE); - - return TRUE; - } -} - -/** - * g_spawn_async_with_pipes: - * @working_directory: child's current working directory, or %NULL to inherit parent's, in the GLib file name encoding - * @argv: child's argument vector, in the GLib file name encoding - * @envp: child's environment, or %NULL to inherit parent's, in the GLib file name encoding - * @flags: flags from #GSpawnFlags - * @child_setup: function to run in the child just before exec() - * @user_data: user data for @child_setup - * @child_pid: return location for child process ID, or %NULL - * @standard_input: return location for file descriptor to write to child's stdin, or %NULL - * @standard_output: return location for file descriptor to read child's stdout, or %NULL - * @standard_error: return location for file descriptor to read child's stderr, or %NULL - * @error: return location for error - * - * Executes a child program asynchronously (your program will not - * block waiting for the child to exit). The child program is - * specified by the only argument that must be provided, @argv. @argv - * should be a %NULL-terminated array of strings, to be passed as the - * argument vector for the child. The first string in @argv is of - * course the name of the program to execute. By default, the name of - * the program must be a full path; the PATH shell variable - * will only be searched if you pass the %G_SPAWN_SEARCH_PATH flag. - * - * On Windows, note that all the string or string vector arguments to - * this function and the other g_spawn*() functions are in UTF-8, the - * GLib file name encoding. Unicode characters that are not part of - * the system codepage passed in these arguments will be correctly - * available in the spawned program only if it uses wide character API - * to retrieve its command line. For C programs built with Microsoft's - * tools it is enough to make the program have a wmain() instead of - * main(). wmain() has a wide character argument vector as parameter. - * - * At least currently, mingw doesn't support wmain(), so if you use - * mingw to develop the spawned program, it will have to call the - * undocumented function __wgetmainargs() to get the wide character - * argument vector and environment. See gspawn-win32-helper.c in the - * GLib sources or init.c in the mingw runtime sources for a prototype - * for that function. Alternatively, you can retrieve the Win32 system - * level wide character command line passed to the spawned program - * using the GetCommandLineW() function. - * - * On Windows the low-level child process creation API - * CreateProcess() doesn't use argument vectors, - * but a command line. The C runtime library's - * spawn*() family of functions (which - * g_spawn_async_with_pipes() eventually calls) paste the argument - * vector elements together into a command line, and the C runtime startup code - * does a corresponding reconstruction of an argument vector from the - * command line, to be passed to main(). Complications arise when you have - * argument vector elements that contain spaces of double quotes. The - * spawn*() functions don't do any quoting or - * escaping, but on the other hand the startup code does do unquoting - * and unescaping in order to enable receiving arguments with embedded - * spaces or double quotes. To work around this asymmetry, - * g_spawn_async_with_pipes() will do quoting and escaping on argument - * vector elements that need it before calling the C runtime - * spawn() function. - * - * The returned @child_pid on Windows is a handle to the child - * process, not its identifier. Process handles and process - * identifiers are different concepts on Windows. - * - * @envp is a %NULL-terminated array of strings, where each string - * has the form KEY=VALUE. This will become - * the child's environment. If @envp is %NULL, the child inherits its - * parent's environment. - * - * @flags should be the bitwise OR of any flags you want to affect the - * function's behaviour. The %G_SPAWN_DO_NOT_REAP_CHILD means that - * the child will not automatically be reaped; you must use a - * #GChildWatch source to be notified about the death of the child - * process. Eventually you must call g_spawn_close_pid() on the - * @child_pid, in order to free resources which may be associated - * with the child process. (On Unix, using a #GChildWatch source is - * equivalent to calling waitpid() or handling the %SIGCHLD signal - * manually. On Windows, calling g_spawn_close_pid() is equivalent - * to calling CloseHandle() on the process handle returned in - * @child_pid). - * - * %G_SPAWN_LEAVE_DESCRIPTORS_OPEN means that the parent's open file - * descriptors will be inherited by the child; otherwise all - * descriptors except stdin/stdout/stderr will be closed before - * calling exec() in the child. %G_SPAWN_SEARCH_PATH - * means that argv[0] need not be an absolute path, it - * will be looked for in the user's PATH. - * %G_SPAWN_STDOUT_TO_DEV_NULL means that the child's standard output will - * be discarded, instead of going to the same location as the parent's - * standard output. If you use this flag, @standard_output must be %NULL. - * %G_SPAWN_STDERR_TO_DEV_NULL means that the child's standard error - * will be discarded, instead of going to the same location as the parent's - * standard error. If you use this flag, @standard_error must be %NULL. - * %G_SPAWN_CHILD_INHERITS_STDIN means that the child will inherit the parent's - * standard input (by default, the child's standard input is attached to - * /dev/null). If you use this flag, @standard_input must be %NULL. - * %G_SPAWN_FILE_AND_ARGV_ZERO means that the first element of @argv is - * the file to execute, while the remaining elements are the - * actual argument vector to pass to the file. Normally - * g_spawn_async_with_pipes() uses @argv[0] as the file to execute, and - * passes all of @argv to the child. - * - * @child_setup and @user_data are a function and user data. On POSIX - * platforms, the function is called in the child after GLib has - * performed all the setup it plans to perform (including creating - * pipes, closing file descriptors, etc.) but before calling - * exec(). That is, @child_setup is called just - * before calling exec() in the child. Obviously - * actions taken in this function will only affect the child, not the - * parent. - * - * On Windows, there is no separate fork() and exec() - * functionality. Child processes are created and run with a single - * API call, CreateProcess(). There is no sensible thing @child_setup - * could be used for on Windows so it is ignored and not called. - * - * If non-%NULL, @child_pid will on Unix be filled with the child's - * process ID. You can use the process ID to send signals to the - * child, or to use g_child_watch_add() (or waitpid()) if you specified the - * %G_SPAWN_DO_NOT_REAP_CHILD flag. On Windows, @child_pid will be - * filled with a handle to the child process only if you specified the - * %G_SPAWN_DO_NOT_REAP_CHILD flag. You can then access the child - * process using the Win32 API, for example wait for its termination - * with the WaitFor*() functions, or examine its - * exit code with GetExitCodeProcess(). You should close the handle - * with CloseHandle() or g_spawn_close_pid() when you no longer need it. - * - * If non-%NULL, the @standard_input, @standard_output, @standard_error - * locations will be filled with file descriptors for writing to the child's - * standard input or reading from its standard output or standard error. - * The caller of g_spawn_async_with_pipes() must close these file descriptors - * when they are no longer in use. If these parameters are %NULL, the corresponding - * pipe won't be created. - * - * If @standard_input is NULL, the child's standard input is attached to - * /dev/null unless %G_SPAWN_CHILD_INHERITS_STDIN is set. - * - * If @standard_error is NULL, the child's standard error goes to the same - * location as the parent's standard error unless %G_SPAWN_STDERR_TO_DEV_NULL - * is set. - * - * If @standard_output is NULL, the child's standard output goes to the same - * location as the parent's standard output unless %G_SPAWN_STDOUT_TO_DEV_NULL - * is set. - * - * @error can be %NULL to ignore errors, or non-%NULL to report errors. - * If an error is set, the function returns %FALSE. Errors - * are reported even if they occur in the child (for example if the - * executable in argv[0] is not found). Typically - * the message field of returned errors should be displayed - * to users. Possible errors are those from the #G_SPAWN_ERROR domain. - * - * If an error occurs, @child_pid, @standard_input, @standard_output, - * and @standard_error will not be filled with valid values. - * - * If @child_pid is not %NULL and an error does not occur then the returned - * process reference must be closed using g_spawn_close_pid(). - * - * - * If you are writing a GTK+ application, and the program you - * are spawning is a graphical application, too, then you may - * want to use gdk_spawn_on_screen_with_pipes() instead to ensure that - * the spawned program opens its windows on the right screen. - * - * - * Return value: %TRUE on success, %FALSE if an error was set - **/ -gboolean -g_spawn_async_with_pipes (const gchar *working_directory, - gchar **argv, - gchar **envp, - GSpawnFlags flags, - GSpawnChildSetupFunc child_setup, - gpointer user_data, - GPid *child_pid, - gint *standard_input, - gint *standard_output, - gint *standard_error, - GError **error) -{ - g_return_val_if_fail (argv != NULL, FALSE); - g_return_val_if_fail (standard_output == NULL || - !(flags & G_SPAWN_STDOUT_TO_DEV_NULL), FALSE); - g_return_val_if_fail (standard_error == NULL || - !(flags & G_SPAWN_STDERR_TO_DEV_NULL), FALSE); - /* can't inherit stdin if we have an input pipe. */ - g_return_val_if_fail (standard_input == NULL || - !(flags & G_SPAWN_CHILD_INHERITS_STDIN), FALSE); - - return fork_exec_with_pipes (!(flags & G_SPAWN_DO_NOT_REAP_CHILD), - working_directory, - argv, - envp, - !(flags & G_SPAWN_LEAVE_DESCRIPTORS_OPEN), - (flags & G_SPAWN_SEARCH_PATH) != 0, - (flags & G_SPAWN_STDOUT_TO_DEV_NULL) != 0, - (flags & G_SPAWN_STDERR_TO_DEV_NULL) != 0, - (flags & G_SPAWN_CHILD_INHERITS_STDIN) != 0, - (flags & G_SPAWN_FILE_AND_ARGV_ZERO) != 0, - child_setup, - user_data, - child_pid, - standard_input, - standard_output, - standard_error, - error); -} - -/** - * g_spawn_command_line_sync: - * @command_line: a command line - * @standard_output: return location for child output - * @standard_error: return location for child errors - * @exit_status: return location for child exit status, as returned by waitpid() - * @error: return location for errors - * - * A simple version of g_spawn_sync() with little-used parameters - * removed, taking a command line instead of an argument vector. See - * g_spawn_sync() for full details. @command_line will be parsed by - * g_shell_parse_argv(). Unlike g_spawn_sync(), the %G_SPAWN_SEARCH_PATH flag - * is enabled. Note that %G_SPAWN_SEARCH_PATH can have security - * implications, so consider using g_spawn_sync() directly if - * appropriate. Possible errors are those from g_spawn_sync() and those - * from g_shell_parse_argv(). - * - * If @exit_status is non-%NULL, the exit status of the child is stored there as - * it would be returned by waitpid(); standard UNIX macros such as WIFEXITED() - * and WEXITSTATUS() must be used to evaluate the exit status. - * - * On Windows, please note the implications of g_shell_parse_argv() - * parsing @command_line. Parsing is done according to Unix shell rules, not - * Windows command interpreter rules. - * Space is a separator, and backslashes are - * special. Thus you cannot simply pass a @command_line containing - * canonical Windows paths, like "c:\\program files\\app\\app.exe", as - * the backslashes will be eaten, and the space will act as a - * separator. You need to enclose such paths with single quotes, like - * "'c:\\program files\\app\\app.exe' 'e:\\folder\\argument.txt'". - * - * Return value: %TRUE on success, %FALSE if an error was set - **/ -gboolean -g_spawn_command_line_sync (const gchar *command_line, - gchar **standard_output, - gchar **standard_error, - gint *exit_status, - GError **error) -{ - gboolean retval; - gchar **argv = NULL; - - g_return_val_if_fail (command_line != NULL, FALSE); - - if (!g_shell_parse_argv (command_line, - NULL, &argv, - error)) - return FALSE; - - retval = g_spawn_sync (NULL, - argv, - NULL, - G_SPAWN_SEARCH_PATH, - NULL, - NULL, - standard_output, - standard_error, - exit_status, - error); - g_strfreev (argv); - - return retval; -} - -/** - * g_spawn_command_line_async: - * @command_line: a command line - * @error: return location for errors - * - * A simple version of g_spawn_async() that parses a command line with - * g_shell_parse_argv() and passes it to g_spawn_async(). Runs a - * command line in the background. Unlike g_spawn_async(), the - * %G_SPAWN_SEARCH_PATH flag is enabled, other flags are not. Note - * that %G_SPAWN_SEARCH_PATH can have security implications, so - * consider using g_spawn_async() directly if appropriate. Possible - * errors are those from g_shell_parse_argv() and g_spawn_async(). - * - * The same concerns on Windows apply as for g_spawn_command_line_sync(). - * - * Return value: %TRUE on success, %FALSE if error is set. - **/ -gboolean -g_spawn_command_line_async (const gchar *command_line, - GError **error) -{ - gboolean retval; - gchar **argv = NULL; - - g_return_val_if_fail (command_line != NULL, FALSE); - - if (!g_shell_parse_argv (command_line, - NULL, &argv, - error)) - return FALSE; - - retval = g_spawn_async (NULL, - argv, - NULL, - G_SPAWN_SEARCH_PATH, - NULL, - NULL, - NULL, - error); - g_strfreev (argv); - - return retval; -} - -static gint -exec_err_to_g_error (gint en) -{ - switch (en) - { -#ifdef EACCES - case EACCES: - return G_SPAWN_ERROR_ACCES; - break; -#endif - -#ifdef EPERM - case EPERM: - return G_SPAWN_ERROR_PERM; - break; -#endif - -#ifdef E2BIG - case E2BIG: - return G_SPAWN_ERROR_2BIG; - break; -#endif - -#ifdef ENOEXEC - case ENOEXEC: - return G_SPAWN_ERROR_NOEXEC; - break; -#endif - -#ifdef ENAMETOOLONG - case ENAMETOOLONG: - return G_SPAWN_ERROR_NAMETOOLONG; - break; -#endif - -#ifdef ENOENT - case ENOENT: - return G_SPAWN_ERROR_NOENT; - break; -#endif - -#ifdef ENOMEM - case ENOMEM: - return G_SPAWN_ERROR_NOMEM; - break; -#endif - -#ifdef ENOTDIR - case ENOTDIR: - return G_SPAWN_ERROR_NOTDIR; - break; -#endif - -#ifdef ELOOP - case ELOOP: - return G_SPAWN_ERROR_LOOP; - break; -#endif - -#ifdef ETXTBUSY - case ETXTBUSY: - return G_SPAWN_ERROR_TXTBUSY; - break; -#endif - -#ifdef EIO - case EIO: - return G_SPAWN_ERROR_IO; - break; -#endif - -#ifdef ENFILE - case ENFILE: - return G_SPAWN_ERROR_NFILE; - break; -#endif - -#ifdef EMFILE - case EMFILE: - return G_SPAWN_ERROR_MFILE; - break; -#endif - -#ifdef EINVAL - case EINVAL: - return G_SPAWN_ERROR_INVAL; - break; -#endif - -#ifdef EISDIR - case EISDIR: - return G_SPAWN_ERROR_ISDIR; - break; -#endif - -#ifdef ELIBBAD - case ELIBBAD: - return G_SPAWN_ERROR_LIBBAD; - break; -#endif - - default: - return G_SPAWN_ERROR_FAILED; - break; - } -} - -static gssize -write_all (gint fd, gconstpointer vbuf, gsize to_write) -{ - gchar *buf = (gchar *) vbuf; - - while (to_write > 0) - { - gssize count = write (fd, buf, to_write); - if (count < 0) - { - if (errno != EINTR) - return FALSE; - } - else - { - to_write -= count; - buf += count; - } - } - - return TRUE; -} - -G_GNUC_NORETURN -static void -write_err_and_exit (gint fd, gint msg) -{ - gint en = errno; - - write_all (fd, &msg, sizeof(msg)); - write_all (fd, &en, sizeof(en)); - - _exit (1); -} - -static int -set_cloexec (void *data, gint fd) -{ - if (fd >= GPOINTER_TO_INT (data)) - fcntl (fd, F_SETFD, FD_CLOEXEC); - - return 0; -} - -#ifndef HAVE_FDWALK -static int -fdwalk (int (*cb)(void *data, int fd), void *data) -{ - gint open_max; - gint fd; - gint res = 0; - -#ifdef HAVE_SYS_RESOURCE_H - struct rlimit rl; -#endif - -#ifdef __linux__ - DIR *d; - - if ((d = opendir("/proc/self/fd"))) { - struct dirent *de; - - while ((de = readdir(d))) { - glong l; - gchar *e = NULL; - - if (de->d_name[0] == '.') - continue; - - errno = 0; - l = strtol(de->d_name, &e, 10); - if (errno != 0 || !e || *e) - continue; - - fd = (gint) l; - - if ((glong) fd != l) - continue; - - if (fd == dirfd(d)) - continue; - - if ((res = cb (data, fd)) != 0) - break; - } - - closedir(d); - return res; - } - - /* If /proc is not mounted or not accessible we fall back to the old - * rlimit trick */ - -#endif - -#ifdef HAVE_SYS_RESOURCE_H - - if (getrlimit(RLIMIT_NOFILE, &rl) == 0 && rl.rlim_max != RLIM_INFINITY) - open_max = rl.rlim_max; - else -#endif - open_max = sysconf (_SC_OPEN_MAX); - - for (fd = 0; fd < open_max; fd++) - if ((res = cb (data, fd)) != 0) - break; - - return res; -} -#endif - -static gint -sane_dup2 (gint fd1, gint fd2) -{ - gint ret; - - retry: - ret = dup2 (fd1, fd2); - if (ret < 0 && errno == EINTR) - goto retry; - - return ret; -} - -enum -{ - CHILD_CHDIR_FAILED, - CHILD_EXEC_FAILED, - CHILD_DUP2_FAILED, - CHILD_FORK_FAILED -}; - -static void -do_exec (gint child_err_report_fd, - gint stdin_fd, - gint stdout_fd, - gint stderr_fd, - const gchar *working_directory, - gchar **argv, - gchar **envp, - gboolean close_descriptors, - gboolean search_path, - gboolean stdout_to_null, - gboolean stderr_to_null, - gboolean child_inherits_stdin, - gboolean file_and_argv_zero, - GSpawnChildSetupFunc child_setup, - gpointer user_data) -{ - if (working_directory && chdir (working_directory) < 0) - write_err_and_exit (child_err_report_fd, - CHILD_CHDIR_FAILED); - - /* Close all file descriptors but stdin stdout and stderr as - * soon as we exec. Note that this includes - * child_err_report_fd, which keeps the parent from blocking - * forever on the other end of that pipe. - */ - if (close_descriptors) - { - fdwalk (set_cloexec, GINT_TO_POINTER(3)); - } - else - { - /* We need to do child_err_report_fd anyway */ - set_cloexec (GINT_TO_POINTER(0), child_err_report_fd); - } - - /* Redirect pipes as required */ - - if (stdin_fd >= 0) - { - /* dup2 can't actually fail here I don't think */ - - if (sane_dup2 (stdin_fd, 0) < 0) - write_err_and_exit (child_err_report_fd, - CHILD_DUP2_FAILED); - - /* ignore this if it doesn't work */ - close_and_invalidate (&stdin_fd); - } - else if (!child_inherits_stdin) - { - /* Keep process from blocking on a read of stdin */ - gint read_null = open ("/dev/null", O_RDONLY); - sane_dup2 (read_null, 0); - close_and_invalidate (&read_null); - } - - if (stdout_fd >= 0) - { - /* dup2 can't actually fail here I don't think */ - - if (sane_dup2 (stdout_fd, 1) < 0) - write_err_and_exit (child_err_report_fd, - CHILD_DUP2_FAILED); - - /* ignore this if it doesn't work */ - close_and_invalidate (&stdout_fd); - } - else if (stdout_to_null) - { - gint write_null = open ("/dev/null", O_WRONLY); - sane_dup2 (write_null, 1); - close_and_invalidate (&write_null); - } - - if (stderr_fd >= 0) - { - /* dup2 can't actually fail here I don't think */ - - if (sane_dup2 (stderr_fd, 2) < 0) - write_err_and_exit (child_err_report_fd, - CHILD_DUP2_FAILED); - - /* ignore this if it doesn't work */ - close_and_invalidate (&stderr_fd); - } - else if (stderr_to_null) - { - gint write_null = open ("/dev/null", O_WRONLY); - sane_dup2 (write_null, 2); - close_and_invalidate (&write_null); - } - - /* Call user function just before we exec */ - if (child_setup) - { - (* child_setup) (user_data); - } - - g_execute (argv[0], - file_and_argv_zero ? argv + 1 : argv, - envp, search_path); - - /* Exec failed */ - write_err_and_exit (child_err_report_fd, - CHILD_EXEC_FAILED); -} - -static gboolean -read_ints (int fd, - gint* buf, - gint n_ints_in_buf, - gint *n_ints_read, - GError **error) -{ - gsize bytes = 0; - - while (TRUE) - { - gssize chunk; - - if (bytes >= sizeof(gint)*2) - break; /* give up, who knows what happened, should not be - * possible. - */ - - again: - chunk = read (fd, - ((gchar*)buf) + bytes, - sizeof(gint) * n_ints_in_buf - bytes); - if (chunk < 0 && errno == EINTR) - goto again; - - if (chunk < 0) - { - /* Some weird shit happened, bail out */ - - g_set_error (error, - G_SPAWN_ERROR, - G_SPAWN_ERROR_FAILED, - _("Failed to read from child pipe (%s)"), - g_strerror (errno)); - - return FALSE; - } - else if (chunk == 0) - break; /* EOF */ - else /* chunk > 0 */ - bytes += chunk; - } - - *n_ints_read = (gint)(bytes / sizeof(gint)); - - return TRUE; -} - -static gboolean -fork_exec_with_pipes (gboolean intermediate_child, - const gchar *working_directory, - gchar **argv, - gchar **envp, - gboolean close_descriptors, - gboolean search_path, - gboolean stdout_to_null, - gboolean stderr_to_null, - gboolean child_inherits_stdin, - gboolean file_and_argv_zero, - GSpawnChildSetupFunc child_setup, - gpointer user_data, - GPid *child_pid, - gint *standard_input, - gint *standard_output, - gint *standard_error, - GError **error) -{ - GPid pid = -1; - gint stdin_pipe[2] = { -1, -1 }; - gint stdout_pipe[2] = { -1, -1 }; - gint stderr_pipe[2] = { -1, -1 }; - gint child_err_report_pipe[2] = { -1, -1 }; - gint child_pid_report_pipe[2] = { -1, -1 }; - gint status; - - if (!make_pipe (child_err_report_pipe, error)) - return FALSE; - - if (intermediate_child && !make_pipe (child_pid_report_pipe, error)) - goto cleanup_and_fail; - - if (standard_input && !make_pipe (stdin_pipe, error)) - goto cleanup_and_fail; - - if (standard_output && !make_pipe (stdout_pipe, error)) - goto cleanup_and_fail; - - if (standard_error && !make_pipe (stderr_pipe, error)) - goto cleanup_and_fail; - - pid = fork (); - - if (pid < 0) - { - g_set_error (error, - G_SPAWN_ERROR, - G_SPAWN_ERROR_FORK, - _("Failed to fork (%s)"), - g_strerror (errno)); - - goto cleanup_and_fail; - } - else if (pid == 0) - { - /* Immediate child. This may or may not be the child that - * actually execs the new process. - */ - - /* Be sure we crash if the parent exits - * and we write to the err_report_pipe - */ - signal (SIGPIPE, SIG_DFL); - - /* Close the parent's end of the pipes; - * not needed in the close_descriptors case, - * though - */ - close_and_invalidate (&child_err_report_pipe[0]); - close_and_invalidate (&child_pid_report_pipe[0]); - close_and_invalidate (&stdin_pipe[1]); - close_and_invalidate (&stdout_pipe[0]); - close_and_invalidate (&stderr_pipe[0]); - - if (intermediate_child) - { - /* We need to fork an intermediate child that launches the - * final child. The purpose of the intermediate child - * is to exit, so we can waitpid() it immediately. - * Then the grandchild will not become a zombie. - */ - GPid grandchild_pid; - - grandchild_pid = fork (); - - if (grandchild_pid < 0) - { - /* report -1 as child PID */ - write_all (child_pid_report_pipe[1], &grandchild_pid, - sizeof(grandchild_pid)); - - write_err_and_exit (child_err_report_pipe[1], - CHILD_FORK_FAILED); - } - else if (grandchild_pid == 0) - { - do_exec (child_err_report_pipe[1], - stdin_pipe[0], - stdout_pipe[1], - stderr_pipe[1], - working_directory, - argv, - envp, - close_descriptors, - search_path, - stdout_to_null, - stderr_to_null, - child_inherits_stdin, - file_and_argv_zero, - child_setup, - user_data); - } - else - { - write_all (child_pid_report_pipe[1], &grandchild_pid, sizeof(grandchild_pid)); - close_and_invalidate (&child_pid_report_pipe[1]); - - _exit (0); - } - } - else - { - /* Just run the child. - */ - - do_exec (child_err_report_pipe[1], - stdin_pipe[0], - stdout_pipe[1], - stderr_pipe[1], - working_directory, - argv, - envp, - close_descriptors, - search_path, - stdout_to_null, - stderr_to_null, - child_inherits_stdin, - file_and_argv_zero, - child_setup, - user_data); - } - } - else - { - /* Parent */ - - gint buf[2]; - gint n_ints = 0; - - /* Close the uncared-about ends of the pipes */ - close_and_invalidate (&child_err_report_pipe[1]); - close_and_invalidate (&child_pid_report_pipe[1]); - close_and_invalidate (&stdin_pipe[0]); - close_and_invalidate (&stdout_pipe[1]); - close_and_invalidate (&stderr_pipe[1]); - - /* If we had an intermediate child, reap it */ - if (intermediate_child) - { - wait_again: - if (waitpid (pid, &status, 0) < 0) - { - if (errno == EINTR) - goto wait_again; - else if (errno == ECHILD) - ; /* do nothing, child already reaped */ - else - g_warning ("waitpid() should not fail in " - "'fork_exec_with_pipes'"); - } - } - - - if (!read_ints (child_err_report_pipe[0], - buf, 2, &n_ints, - error)) - goto cleanup_and_fail; - - if (n_ints >= 2) - { - /* Error from the child. */ - - switch (buf[0]) - { - case CHILD_CHDIR_FAILED: - g_set_error (error, - G_SPAWN_ERROR, - G_SPAWN_ERROR_CHDIR, - _("Failed to change to directory '%s' (%s)"), - working_directory, - g_strerror (buf[1])); - - break; - - case CHILD_EXEC_FAILED: - g_set_error (error, - G_SPAWN_ERROR, - exec_err_to_g_error (buf[1]), - _("Failed to execute child process \"%s\" (%s)"), - argv[0], - g_strerror (buf[1])); - - break; - - case CHILD_DUP2_FAILED: - g_set_error (error, - G_SPAWN_ERROR, - G_SPAWN_ERROR_FAILED, - _("Failed to redirect output or input of child process (%s)"), - g_strerror (buf[1])); - - break; - - case CHILD_FORK_FAILED: - g_set_error (error, - G_SPAWN_ERROR, - G_SPAWN_ERROR_FORK, - _("Failed to fork child process (%s)"), - g_strerror (buf[1])); - break; - - default: - g_set_error (error, - G_SPAWN_ERROR, - G_SPAWN_ERROR_FAILED, - _("Unknown error executing child process \"%s\""), - argv[0]); - break; - } - - goto cleanup_and_fail; - } - - /* Get child pid from intermediate child pipe. */ - if (intermediate_child) - { - n_ints = 0; - - if (!read_ints (child_pid_report_pipe[0], - buf, 1, &n_ints, error)) - goto cleanup_and_fail; - - if (n_ints < 1) - { - g_set_error (error, - G_SPAWN_ERROR, - G_SPAWN_ERROR_FAILED, - _("Failed to read enough data from child pid pipe (%s)"), - g_strerror (errno)); - goto cleanup_and_fail; - } - else - { - /* we have the child pid */ - pid = buf[0]; - } - } - - /* Success against all odds! return the information */ - close_and_invalidate (&child_err_report_pipe[0]); - close_and_invalidate (&child_pid_report_pipe[0]); - - if (child_pid) - *child_pid = pid; - - if (standard_input) - *standard_input = stdin_pipe[1]; - if (standard_output) - *standard_output = stdout_pipe[0]; - if (standard_error) - *standard_error = stderr_pipe[0]; - - return TRUE; - } - - cleanup_and_fail: - - /* There was an error from the Child, reap the child to avoid it being - a zombie. - */ - - if (pid > 0) - { - wait_failed: - if (waitpid (pid, NULL, 0) < 0) - { - if (errno == EINTR) - goto wait_failed; - else if (errno == ECHILD) - ; /* do nothing, child already reaped */ - else - g_warning ("waitpid() should not fail in " - "'fork_exec_with_pipes'"); - } - } - - close_and_invalidate (&child_err_report_pipe[0]); - close_and_invalidate (&child_err_report_pipe[1]); - close_and_invalidate (&child_pid_report_pipe[0]); - close_and_invalidate (&child_pid_report_pipe[1]); - close_and_invalidate (&stdin_pipe[0]); - close_and_invalidate (&stdin_pipe[1]); - close_and_invalidate (&stdout_pipe[0]); - close_and_invalidate (&stdout_pipe[1]); - close_and_invalidate (&stderr_pipe[0]); - close_and_invalidate (&stderr_pipe[1]); - - return FALSE; -} - -static gboolean -make_pipe (gint p[2], - GError **error) -{ - if (pipe (p) < 0) - { - gint errsv = errno; - g_set_error (error, - G_SPAWN_ERROR, - G_SPAWN_ERROR_FAILED, - _("Failed to create pipe for communicating with child process (%s)"), - g_strerror (errsv)); - return FALSE; - } - else - return TRUE; -} - -/* Based on execvp from GNU C Library */ - -static void -script_execute (const gchar *file, - gchar **argv, - gchar **envp, - gboolean search_path) -{ - /* Count the arguments. */ - int argc = 0; - while (argv[argc]) - ++argc; - - /* Construct an argument list for the shell. */ - { - gchar **new_argv; - - new_argv = g_new0 (gchar*, argc + 2); /* /bin/sh and NULL */ - - new_argv[0] = (char *) "/bin/sh"; - new_argv[1] = (char *) file; - while (argc > 0) - { - new_argv[argc + 1] = argv[argc]; - --argc; - } - - /* Execute the shell. */ - if (envp) - execve (new_argv[0], new_argv, envp); - else - execv (new_argv[0], new_argv); - - g_free (new_argv); - } -} - -static gchar* -my_strchrnul (const gchar *str, gchar c) -{ - gchar *p = (gchar*) str; - while (*p && (*p != c)) - ++p; - - return p; -} - -static gint -g_execute (const gchar *file, - gchar **argv, - gchar **envp, - gboolean search_path) -{ - if (*file == '\0') - { - /* We check the simple case first. */ - errno = ENOENT; - return -1; - } - - if (!search_path || strchr (file, '/') != NULL) - { - /* Don't search when it contains a slash. */ - if (envp) - execve (file, argv, envp); - else - execv (file, argv); - - if (errno == ENOEXEC) - script_execute (file, argv, envp, FALSE); - } - else - { - gboolean got_eacces = 0; - const gchar *path, *p; - gchar *name, *freeme; - gsize len; - gsize pathlen; - - path = g_getenv ("PATH"); - if (path == NULL) - { - /* There is no `PATH' in the environment. The default - * search path in libc is the current directory followed by - * the path `confstr' returns for `_CS_PATH'. - */ - - /* In GLib we put . last, for security, and don't use the - * unportable confstr(); UNIX98 does not actually specify - * what to search if PATH is unset. POSIX may, dunno. - */ - - path = "/bin:/usr/bin:."; - } - - len = strlen (file) + 1; - pathlen = strlen (path); - freeme = name = g_malloc (pathlen + len + 1); - - /* Copy the file name at the top, including '\0' */ - memcpy (name + pathlen + 1, file, len); - name = name + pathlen; - /* And add the slash before the filename */ - *name = '/'; - - p = path; - do - { - char *startp; - - path = p; - p = my_strchrnul (path, ':'); - - if (p == path) - /* Two adjacent colons, or a colon at the beginning or the end - * of `PATH' means to search the current directory. - */ - startp = name + 1; - else - startp = memcpy (name - (p - path), path, p - path); - - /* Try to execute this name. If it works, execv will not return. */ - if (envp) - execve (startp, argv, envp); - else - execv (startp, argv); - - if (errno == ENOEXEC) - script_execute (startp, argv, envp, search_path); - - switch (errno) - { - case EACCES: - /* Record the we got a `Permission denied' error. If we end - * up finding no executable we can use, we want to diagnose - * that we did find one but were denied access. - */ - got_eacces = TRUE; - - /* FALL THRU */ - - case ENOENT: -#ifdef ESTALE - case ESTALE: -#endif -#ifdef ENOTDIR - case ENOTDIR: -#endif - /* Those errors indicate the file is missing or not executable - * by us, in which case we want to just try the next path - * directory. - */ - break; - - default: - /* Some other error means we found an executable file, but - * something went wrong executing it; return the error to our - * caller. - */ - g_free (freeme); - return -1; - } - } - while (*p++ != '\0'); - - /* We tried every element and none of them worked. */ - if (got_eacces) - /* At least one failure was due to permissions, so report that - * error. - */ - errno = EACCES; - - g_free (freeme); - } - - /* Return the error from the last attempt (probably ENOENT). */ - return -1; -} - -/** - * g_spawn_close_pid: - * @pid: The process reference to close - * - * On some platforms, notably Windows, the #GPid type represents a resource - * which must be closed to prevent resource leaking. g_spawn_close_pid() - * is provided for this purpose. It should be used on all platforms, even - * though it doesn't do anything under UNIX. - **/ -void -g_spawn_close_pid (GPid pid) -{ -} - -#define __G_SPAWN_C__ -#include "galiasdef.c" diff --git a/lib/win32/glib-2.20.4/glib/gspawn.h b/lib/win32/glib-2.20.4/glib/gspawn.h deleted file mode 100644 index 9836b34242a6e..0000000000000 --- a/lib/win32/glib-2.20.4/glib/gspawn.h +++ /dev/null @@ -1,139 +0,0 @@ -/* gspawn.h - Process launching - * - * Copyright 2000 Red Hat, Inc. - * - * GLib is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or (at your option) any later version. - * - * GLib 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 - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with GLib; see the file COPYING.LIB. If not, write - * to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ - -#if defined(G_DISABLE_SINGLE_INCLUDES) && !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION) -#error "Only can be included directly." -#endif - -#ifndef __G_SPAWN_H__ -#define __G_SPAWN_H__ - -#include - -G_BEGIN_DECLS - -/* I'm not sure I remember our proposed naming convention here. */ -#define G_SPAWN_ERROR g_spawn_error_quark () - -typedef enum -{ - G_SPAWN_ERROR_FORK, /* fork failed due to lack of memory */ - G_SPAWN_ERROR_READ, /* read or select on pipes failed */ - G_SPAWN_ERROR_CHDIR, /* changing to working dir failed */ - G_SPAWN_ERROR_ACCES, /* execv() returned EACCES */ - G_SPAWN_ERROR_PERM, /* execv() returned EPERM */ - G_SPAWN_ERROR_2BIG, /* execv() returned E2BIG */ - G_SPAWN_ERROR_NOEXEC, /* execv() returned ENOEXEC */ - G_SPAWN_ERROR_NAMETOOLONG, /* "" "" ENAMETOOLONG */ - G_SPAWN_ERROR_NOENT, /* "" "" ENOENT */ - G_SPAWN_ERROR_NOMEM, /* "" "" ENOMEM */ - G_SPAWN_ERROR_NOTDIR, /* "" "" ENOTDIR */ - G_SPAWN_ERROR_LOOP, /* "" "" ELOOP */ - G_SPAWN_ERROR_TXTBUSY, /* "" "" ETXTBUSY */ - G_SPAWN_ERROR_IO, /* "" "" EIO */ - G_SPAWN_ERROR_NFILE, /* "" "" ENFILE */ - G_SPAWN_ERROR_MFILE, /* "" "" EMFLE */ - G_SPAWN_ERROR_INVAL, /* "" "" EINVAL */ - G_SPAWN_ERROR_ISDIR, /* "" "" EISDIR */ - G_SPAWN_ERROR_LIBBAD, /* "" "" ELIBBAD */ - G_SPAWN_ERROR_FAILED /* other fatal failure, error->message - * should explain - */ -} GSpawnError; - -typedef void (* GSpawnChildSetupFunc) (gpointer user_data); - -typedef enum -{ - G_SPAWN_LEAVE_DESCRIPTORS_OPEN = 1 << 0, - G_SPAWN_DO_NOT_REAP_CHILD = 1 << 1, - /* look for argv[0] in the path i.e. use execvp() */ - G_SPAWN_SEARCH_PATH = 1 << 2, - /* Dump output to /dev/null */ - G_SPAWN_STDOUT_TO_DEV_NULL = 1 << 3, - G_SPAWN_STDERR_TO_DEV_NULL = 1 << 4, - G_SPAWN_CHILD_INHERITS_STDIN = 1 << 5, - G_SPAWN_FILE_AND_ARGV_ZERO = 1 << 6 -} GSpawnFlags; - -GQuark g_spawn_error_quark (void); - -#ifdef G_OS_WIN32 -#define g_spawn_async g_spawn_async_utf8 -#define g_spawn_async_with_pipes g_spawn_async_with_pipes_utf8 -#define g_spawn_sync g_spawn_sync_utf8 -#define g_spawn_command_line_sync g_spawn_command_line_sync_utf8 -#define g_spawn_command_line_async g_spawn_command_line_async_utf8 -#endif - -gboolean g_spawn_async (const gchar *working_directory, - gchar **argv, - gchar **envp, - GSpawnFlags flags, - GSpawnChildSetupFunc child_setup, - gpointer user_data, - GPid *child_pid, - GError **error); - - -/* Opens pipes for non-NULL standard_output, standard_input, standard_error, - * and returns the parent's end of the pipes. - */ -gboolean g_spawn_async_with_pipes (const gchar *working_directory, - gchar **argv, - gchar **envp, - GSpawnFlags flags, - GSpawnChildSetupFunc child_setup, - gpointer user_data, - GPid *child_pid, - gint *standard_input, - gint *standard_output, - gint *standard_error, - GError **error); - - -/* If standard_output or standard_error are non-NULL, the full - * standard output or error of the command will be placed there. - */ - -gboolean g_spawn_sync (const gchar *working_directory, - gchar **argv, - gchar **envp, - GSpawnFlags flags, - GSpawnChildSetupFunc child_setup, - gpointer user_data, - gchar **standard_output, - gchar **standard_error, - gint *exit_status, - GError **error); - -gboolean g_spawn_command_line_sync (const gchar *command_line, - gchar **standard_output, - gchar **standard_error, - gint *exit_status, - GError **error); -gboolean g_spawn_command_line_async (const gchar *command_line, - GError **error); - -void g_spawn_close_pid (GPid pid); - -G_END_DECLS - -#endif /* __G_SPAWN_H__ */ diff --git a/lib/win32/glib-2.20.4/glib/gstdio.c b/lib/win32/glib-2.20.4/glib/gstdio.c deleted file mode 100644 index 4971d9becdae4..0000000000000 --- a/lib/win32/glib-2.20.4/glib/gstdio.c +++ /dev/null @@ -1,811 +0,0 @@ -/* gstdio.c - wrappers for C library functions - * - * Copyright 2004 Tor Lillqvist - * - * GLib is free software; you can redistribute it and/or modify it - * under the terms of the GNU Lesser General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or (at your option) any later version. - * - * GLib 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 - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with GLib; see the file COPYING.LIB. If not, - * write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ - -#include "config.h" - -#define G_STDIO_NO_WRAP_ON_UNIX - -#include "glib.h" - -#include -#include -#include - -#ifdef HAVE_UNISTD_H -#include -#endif - -#ifdef G_OS_WIN32 -#include -#include -#include -#include -#include -#include -#else -#include -#endif - -#include "gstdio.h" - -#include "galias.h" - -#if !defined (G_OS_UNIX) && !defined (G_OS_WIN32) && !defined (G_OS_BEOS) -#error Please port this to your operating system -#endif - - -/** - * g_access: - * @filename: a pathname in the GLib file name encoding (UTF-8 on Windows) - * @mode: as in access() - * - * A wrapper for the POSIX access() function. This function is used to - * test a pathname for one or several of read, write or execute - * permissions, or just existence. - * - * On Windows, the file protection mechanism is not at all POSIX-like, - * and the underlying function in the C library only checks the - * FAT-style READONLY attribute, and does not look at the ACL of a - * file at all. This function is this in practise almost useless on - * Windows. Software that needs to handle file permissions on Windows - * more exactly should use the Win32 API. - * - * See your C library manual for more details about access(). - * - * Returns: zero if the pathname refers to an existing file system - * object that has all the tested permissions, or -1 otherwise or on - * error. - * - * Since: 2.8 - */ -int -g_access (const gchar *filename, - int mode) -{ -#ifdef G_OS_WIN32 - wchar_t *wfilename = g_utf8_to_utf16 (filename, -1, NULL, NULL, NULL); - int retval; - int save_errno; - - if (wfilename == NULL) - { - errno = EINVAL; - return -1; - } - -#ifndef X_OK -#define X_OK 1 -#endif - - retval = _waccess (wfilename, mode & ~X_OK); - save_errno = errno; - - g_free (wfilename); - - errno = save_errno; - return retval; -#else - return access (filename, mode); -#endif -} - -/** - * g_chmod: - * @filename: a pathname in the GLib file name encoding (UTF-8 on Windows) - * @mode: as in chmod() - * - * A wrapper for the POSIX chmod() function. The chmod() function is - * used to set the permissions of a file system object. - * - * On Windows the file protection mechanism is not at all POSIX-like, - * and the underlying chmod() function in the C library just sets or - * clears the FAT-style READONLY attribute. It does not touch any - * ACL. Software that needs to manage file permissions on Windows - * exactly should use the Win32 API. - * - * See your C library manual for more details about chmod(). - * - * Returns: zero if the operation succeeded, -1 on error. - * - * Since: 2.8 - */ -int -g_chmod (const gchar *filename, - int mode) -{ -#ifdef G_OS_WIN32 - wchar_t *wfilename = g_utf8_to_utf16 (filename, -1, NULL, NULL, NULL); - int retval; - int save_errno; - - if (wfilename == NULL) - { - errno = EINVAL; - return -1; - } - - retval = _wchmod (wfilename, mode); - save_errno = errno; - - g_free (wfilename); - - errno = save_errno; - return retval; -#else - return chmod (filename, mode); -#endif -} -/** - * g_open: - * @filename: a pathname in the GLib file name encoding (UTF-8 on Windows) - * @flags: as in open() - * @mode: as in open() - * - * A wrapper for the POSIX open() function. The open() function is - * used to convert a pathname into a file descriptor. - * - * On POSIX systems file descriptors are implemented by the operating - * system. On Windows, it's the C library that implements open() and - * file descriptors. The actual Win32 API for opening files is quite - * different, see MSDN documentation for CreateFile(). The Win32 API - * uses file handles, which are more randomish integers, not small - * integers like file descriptors. - * - * Because file descriptors are specific to the C library on Windows, - * the file descriptor returned by this function makes sense only to - * functions in the same C library. Thus if the GLib-using code uses a - * different C library than GLib does, the file descriptor returned by - * this function cannot be passed to C library functions like write() - * or read(). - * - * See your C library manual for more details about open(). - * - * Returns: a new file descriptor, or -1 if an error occurred. The - * return value can be used exactly like the return value from open(). - * - * Since: 2.6 - */ -int -g_open (const gchar *filename, - int flags, - int mode) -{ -#ifdef G_OS_WIN32 - wchar_t *wfilename = g_utf8_to_utf16 (filename, -1, NULL, NULL, NULL); - int retval; - int save_errno; - - if (wfilename == NULL) - { - errno = EINVAL; - return -1; - } - - retval = _wopen (wfilename, flags, mode); - save_errno = errno; - - g_free (wfilename); - - errno = save_errno; - return retval; -#else - return open (filename, flags, mode); -#endif -} - -/** - * g_creat: - * @filename: a pathname in the GLib file name encoding (UTF-8 on Windows) - * @mode: as in creat() - * - * A wrapper for the POSIX creat() function. The creat() function is - * used to convert a pathname into a file descriptor, creating a file - * if necessary. - - * On POSIX systems file descriptors are implemented by the operating - * system. On Windows, it's the C library that implements creat() and - * file descriptors. The actual Windows API for opening files is - * different, see MSDN documentation for CreateFile(). The Win32 API - * uses file handles, which are more randomish integers, not small - * integers like file descriptors. - * - * Because file descriptors are specific to the C library on Windows, - * the file descriptor returned by this function makes sense only to - * functions in the same C library. Thus if the GLib-using code uses a - * different C library than GLib does, the file descriptor returned by - * this function cannot be passed to C library functions like write() - * or read(). - * - * See your C library manual for more details about creat(). - * - * Returns: a new file descriptor, or -1 if an error occurred. The - * return value can be used exactly like the return value from creat(). - * - * Since: 2.8 - */ -int -g_creat (const gchar *filename, - int mode) -{ -#ifdef G_OS_WIN32 - wchar_t *wfilename = g_utf8_to_utf16 (filename, -1, NULL, NULL, NULL); - int retval; - int save_errno; - - if (wfilename == NULL) - { - errno = EINVAL; - return -1; - } - - retval = _wcreat (wfilename, mode); - save_errno = errno; - - g_free (wfilename); - - errno = save_errno; - return retval; -#else - return creat (filename, mode); -#endif -} - -/** - * g_rename: - * @oldfilename: a pathname in the GLib file name encoding (UTF-8 on Windows) - * @newfilename: a pathname in the GLib file name encoding - * - * A wrapper for the POSIX rename() function. The rename() function - * renames a file, moving it between directories if required. - * - * See your C library manual for more details about how rename() works - * on your system. It is not possible in general on Windows to rename - * a file that is open to some process. - * - * Returns: 0 if the renaming succeeded, -1 if an error occurred - * - * Since: 2.6 - */ -int -g_rename (const gchar *oldfilename, - const gchar *newfilename) -{ -#ifdef G_OS_WIN32 - wchar_t *woldfilename = g_utf8_to_utf16 (oldfilename, -1, NULL, NULL, NULL); - wchar_t *wnewfilename; - int retval; - int save_errno = 0; - - if (woldfilename == NULL) - { - errno = EINVAL; - return -1; - } - - wnewfilename = g_utf8_to_utf16 (newfilename, -1, NULL, NULL, NULL); - - if (wnewfilename == NULL) - { - g_free (woldfilename); - errno = EINVAL; - return -1; - } - - if (MoveFileExW (woldfilename, wnewfilename, MOVEFILE_REPLACE_EXISTING)) - retval = 0; - else - { - retval = -1; - switch (GetLastError ()) - { -#define CASE(a,b) case ERROR_##a: save_errno = b; break - CASE (FILE_NOT_FOUND, ENOENT); - CASE (PATH_NOT_FOUND, ENOENT); - CASE (ACCESS_DENIED, EACCES); - CASE (NOT_SAME_DEVICE, EXDEV); - CASE (LOCK_VIOLATION, EACCES); - CASE (SHARING_VIOLATION, EACCES); - CASE (FILE_EXISTS, EEXIST); - CASE (ALREADY_EXISTS, EEXIST); -#undef CASE - default: save_errno = EIO; - } - } - - g_free (woldfilename); - g_free (wnewfilename); - - errno = save_errno; - return retval; -#else - return rename (oldfilename, newfilename); -#endif -} - -/** - * g_mkdir: - * @filename: a pathname in the GLib file name encoding (UTF-8 on Windows) - * @mode: permissions to use for the newly created directory - * - * A wrapper for the POSIX mkdir() function. The mkdir() function - * attempts to create a directory with the given name and permissions. - * The mode argument is ignored on Windows. - * - * See your C library manual for more details about mkdir(). - * - * Returns: 0 if the directory was successfully created, -1 if an error - * occurred - * - * Since: 2.6 - */ -int -g_mkdir (const gchar *filename, - int mode) -{ -#ifdef G_OS_WIN32 - wchar_t *wfilename = g_utf8_to_utf16 (filename, -1, NULL, NULL, NULL); - int retval; - int save_errno; - - if (wfilename == NULL) - { - errno = EINVAL; - return -1; - } - - retval = _wmkdir (wfilename); - save_errno = errno; - - g_free (wfilename); - - errno = save_errno; - return retval; -#else - return mkdir (filename, mode); -#endif -} - -/** - * g_chdir: - * @path: a pathname in the GLib file name encoding (UTF-8 on Windows) - * - * A wrapper for the POSIX chdir() function. The function changes the - * current directory of the process to @path. - * - * See your C library manual for more details about chdir(). - * - * Returns: 0 on success, -1 if an error occurred. - * - * Since: 2.8 - */ -int -g_chdir (const gchar *path) -{ -#ifdef G_OS_WIN32 - wchar_t *wpath = g_utf8_to_utf16 (path, -1, NULL, NULL, NULL); - int retval; - int save_errno; - - if (wpath == NULL) - { - errno = EINVAL; - return -1; - } - - retval = _wchdir (wpath); - save_errno = errno; - - g_free (wpath); - - errno = save_errno; - return retval; -#else - return chdir (path); -#endif -} - -/** - * g_stat: - * @filename: a pathname in the GLib file name encoding (UTF-8 on Windows) - * @buf: a pointer to a stat struct, which - * will be filled with the file information - * - * A wrapper for the POSIX stat() function. The stat() function - * returns information about a file. On Windows the stat() function in - * the C library checks only the FAT-style READONLY attribute and does - * not look at the ACL at all. Thus on Windows the protection bits in - * the st_mode field are a fabrication of little use. - * - * See your C library manual for more details about stat(). - * - * Returns: 0 if the information was successfully retrieved, -1 if an error - * occurred - * - * Since: 2.6 - */ -int -g_stat (const gchar *filename, - struct stat *buf) -{ -#ifdef G_OS_WIN32 - wchar_t *wfilename = g_utf8_to_utf16 (filename, -1, NULL, NULL, NULL); - int retval; - int save_errno; - int len; - - if (wfilename == NULL) - { - errno = EINVAL; - return -1; - } - - len = wcslen (wfilename); - while (len > 0 && G_IS_DIR_SEPARATOR (wfilename[len-1])) - len--; - if (len > 0 && - (!g_path_is_absolute (filename) || len > g_path_skip_root (filename) - filename)) - wfilename[len] = '\0'; - - retval = _wstat (wfilename, (struct _stat *) buf); - save_errno = errno; - - g_free (wfilename); - - errno = save_errno; - return retval; -#else - return stat (filename, buf); -#endif -} - -/** - * g_lstat: - * @filename: a pathname in the GLib file name encoding (UTF-8 on Windows) - * @buf: a pointer to a stat struct, which - * will be filled with the file information - * - * A wrapper for the POSIX lstat() function. The lstat() function is - * like stat() except that in the case of symbolic links, it returns - * information about the symbolic link itself and not the file that it - * refers to. If the system does not support symbolic links g_lstat() - * is identical to g_stat(). - * - * See your C library manual for more details about lstat(). - * - * Returns: 0 if the information was successfully retrieved, -1 if an error - * occurred - * - * Since: 2.6 - */ -int -g_lstat (const gchar *filename, - struct stat *buf) -{ -#ifdef HAVE_LSTAT - /* This can't be Win32, so don't do the widechar dance. */ - return lstat (filename, buf); -#else - return g_stat (filename, buf); -#endif -} - -/** - * g_unlink: - * @filename: a pathname in the GLib file name encoding (UTF-8 on Windows) - * - * A wrapper for the POSIX unlink() function. The unlink() function - * deletes a name from the filesystem. If this was the last link to the - * file and no processes have it opened, the diskspace occupied by the - * file is freed. - * - * See your C library manual for more details about unlink(). Note - * that on Windows, it is in general not possible to delete files that - * are open to some process, or mapped into memory. - * - * Returns: 0 if the name was successfully deleted, -1 if an error - * occurred - * - * Since: 2.6 - */ -int -g_unlink (const gchar *filename) -{ -#ifdef G_OS_WIN32 - wchar_t *wfilename = g_utf8_to_utf16 (filename, -1, NULL, NULL, NULL); - int retval; - int save_errno; - - if (wfilename == NULL) - { - errno = EINVAL; - return -1; - } - - retval = _wunlink (wfilename); - save_errno = errno; - - g_free (wfilename); - - errno = save_errno; - return retval; -#else - return unlink (filename); -#endif -} - -/** - * g_remove: - * @filename: a pathname in the GLib file name encoding (UTF-8 on Windows) - * - * A wrapper for the POSIX remove() function. The remove() function - * deletes a name from the filesystem. - * - * See your C library manual for more details about how remove() works - * on your system. On Unix, remove() removes also directories, as it - * calls unlink() for files and rmdir() for directories. On Windows, - * although remove() in the C library only works for files, this - * function tries first remove() and then if that fails rmdir(), and - * thus works for both files and directories. Note however, that on - * Windows, it is in general not possible to remove a file that is - * open to some process, or mapped into memory. - * - * If this function fails on Windows you can't infer too much from the - * errno value. rmdir() is tried regardless of what caused remove() to - * fail. Any errno value set by remove() will be overwritten by that - * set by rmdir(). - * - * Returns: 0 if the file was successfully removed, -1 if an error - * occurred - * - * Since: 2.6 - */ -int -g_remove (const gchar *filename) -{ -#ifdef G_OS_WIN32 - wchar_t *wfilename = g_utf8_to_utf16 (filename, -1, NULL, NULL, NULL); - int retval; - int save_errno; - - if (wfilename == NULL) - { - errno = EINVAL; - return -1; - } - - retval = _wremove (wfilename); - if (retval == -1) - retval = _wrmdir (wfilename); - save_errno = errno; - - g_free (wfilename); - - errno = save_errno; - return retval; -#else - return remove (filename); -#endif -} - -/** - * g_rmdir: - * @filename: a pathname in the GLib file name encoding (UTF-8 on Windows) - * - * A wrapper for the POSIX rmdir() function. The rmdir() function - * deletes a directory from the filesystem. - * - * See your C library manual for more details about how rmdir() works - * on your system. - * - * Returns: 0 if the directory was successfully removed, -1 if an error - * occurred - * - * Since: 2.6 - */ -int -g_rmdir (const gchar *filename) -{ -#ifdef G_OS_WIN32 - wchar_t *wfilename = g_utf8_to_utf16 (filename, -1, NULL, NULL, NULL); - int retval; - int save_errno; - - if (wfilename == NULL) - { - errno = EINVAL; - return -1; - } - - retval = _wrmdir (wfilename); - save_errno = errno; - - g_free (wfilename); - - errno = save_errno; - return retval; -#else - return rmdir (filename); -#endif -} - -/** - * g_fopen: - * @filename: a pathname in the GLib file name encoding (UTF-8 on Windows) - * @mode: a string describing the mode in which the file should be - * opened - * - * A wrapper for the stdio fopen() function. The fopen() function - * opens a file and associates a new stream with it. - * - * Because file descriptors are specific to the C library on Windows, - * and a file descriptor is partof the FILE struct, the - * FILE pointer returned by this function makes sense - * only to functions in the same C library. Thus if the GLib-using - * code uses a different C library than GLib does, the - * FILE pointer returned by this function cannot be - * passed to C library functions like fprintf() or fread(). - * - * See your C library manual for more details about fopen(). - * - * Returns: A FILE pointer if the file was successfully - * opened, or %NULL if an error occurred - * - * Since: 2.6 - */ -FILE * -g_fopen (const gchar *filename, - const gchar *mode) -{ -#ifdef G_OS_WIN32 - wchar_t *wfilename = g_utf8_to_utf16 (filename, -1, NULL, NULL, NULL); - wchar_t *wmode; - FILE *retval; - int save_errno; - - if (wfilename == NULL) - { - errno = EINVAL; - return NULL; - } - - wmode = g_utf8_to_utf16 (mode, -1, NULL, NULL, NULL); - - if (wmode == NULL) - { - g_free (wfilename); - errno = EINVAL; - return NULL; - } - - retval = _wfopen (wfilename, wmode); - save_errno = errno; - - g_free (wfilename); - g_free (wmode); - - errno = save_errno; - return retval; -#else - return fopen (filename, mode); -#endif -} - -/** - * g_freopen: - * @filename: a pathname in the GLib file name encoding (UTF-8 on Windows) - * @mode: a string describing the mode in which the file should be - * opened - * @stream: an existing stream which will be reused, or %NULL - * - * A wrapper for the POSIX freopen() function. The freopen() function - * opens a file and associates it with an existing stream. - * - * See your C library manual for more details about freopen(). - * - * Returns: A FILE pointer if the file was successfully - * opened, or %NULL if an error occurred. - * - * Since: 2.6 - */ -FILE * -g_freopen (const gchar *filename, - const gchar *mode, - FILE *stream) -{ -#ifdef G_OS_WIN32 - wchar_t *wfilename = g_utf8_to_utf16 (filename, -1, NULL, NULL, NULL); - wchar_t *wmode; - FILE *retval; - int save_errno; - - if (wfilename == NULL) - { - errno = EINVAL; - return NULL; - } - - wmode = g_utf8_to_utf16 (mode, -1, NULL, NULL, NULL); - - if (wmode == NULL) - { - g_free (wfilename); - errno = EINVAL; - return NULL; - } - - retval = _wfreopen (wfilename, wmode, stream); - save_errno = errno; - - g_free (wfilename); - g_free (wmode); - - errno = save_errno; - return retval; -#else - return freopen (filename, mode, stream); -#endif -} - -/** - * g_utime: - * @filename: a pathname in the GLib file name encoding (UTF-8 on Windows) - * @utb: a pointer to a struct utimbuf. - * - * A wrapper for the POSIX utime() function. The utime() function - * sets the access and modification timestamps of a file. - * - * See your C library manual for more details about how utime() works - * on your system. - * - * Returns: 0 if the operation was successful, -1 if an error - * occurred - * - * Since: 2.18 - */ -int -g_utime (const gchar *filename, - struct utimbuf *utb) -{ -#ifdef G_OS_WIN32 - wchar_t *wfilename = g_utf8_to_utf16 (filename, -1, NULL, NULL, NULL); - int retval; - int save_errno; - - if (wfilename == NULL) - { - errno = EINVAL; - return -1; - } - - retval = _wutime (wfilename, (struct _utimbuf*) utb); - save_errno = errno; - - g_free (wfilename); - - errno = save_errno; - return retval; -#else - return utime (filename, utb); -#endif -} - -#define __G_STDIO_C__ -#include "galiasdef.c" diff --git a/lib/win32/glib-2.20.4/glib/gstdio.h b/lib/win32/glib-2.20.4/glib/gstdio.h deleted file mode 100644 index f71a4e3cd3b9a..0000000000000 --- a/lib/win32/glib-2.20.4/glib/gstdio.h +++ /dev/null @@ -1,122 +0,0 @@ -/* gstdio.h - GFilename wrappers for C library functions - * - * Copyright 2004 Tor Lillqvist - * - * GLib is free software; you can redistribute it and/or modify it - * under the terms of the GNU Lesser General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or (at your option) any later version. - * - * GLib 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 - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with GLib; see the file COPYING.LIB. If not, - * write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ - -#ifndef __G_STDIO_H__ -#define __G_STDIO_H__ - -#include - -#include - -G_BEGIN_DECLS - -#if defined(G_OS_UNIX) && !defined(G_STDIO_NO_WRAP_ON_UNIX) - -/* Just pass on to the system functions, so there's no potential for data - * format mismatches, especially with large file interfaces. - * A few functions can't be handled in this way, since they are not defined - * in a portable system header that we could include here. - */ - -#define g_chmod chmod -#define g_open open -#define g_creat creat -#define g_rename rename -#define g_mkdir mkdir -#define g_stat stat -#define g_lstat lstat -#define g_remove remove -#define g_fopen fopen -#define g_freopen freopen -#define g_utime utime - -int g_access (const gchar *filename, - int mode); - -int g_chdir (const gchar *path); - -int g_unlink (const gchar *filename); - -int g_rmdir (const gchar *filename); - -#else /* ! G_OS_UNIX */ - -/* Wrappers for C library functions that take pathname arguments. On - * Unix, the pathname is a file name as it literally is in the file - * system. On well-maintained systems with consistent users who know - * what they are doing and no exchange of files with others this would - * be a well-defined encoding, preferrably UTF-8. On Windows, the - * pathname is always in UTF-8, even if that is not the on-disk - * encoding, and not the encoding accepted by the C library or Win32 - * API. - */ - -int g_access (const gchar *filename, - int mode); - -int g_chmod (const gchar *filename, - int mode); - -int g_open (const gchar *filename, - int flags, - int mode); - -int g_creat (const gchar *filename, - int mode); - -int g_rename (const gchar *oldfilename, - const gchar *newfilename); - -int g_mkdir (const gchar *filename, - int mode); - -int g_chdir (const gchar *path); - -int g_stat (const gchar *filename, - struct stat *buf); - -int g_lstat (const gchar *filename, - struct stat *buf); - -int g_unlink (const gchar *filename); - -int g_remove (const gchar *filename); - -int g_rmdir (const gchar *filename); - -FILE *g_fopen (const gchar *filename, - const gchar *mode); - -FILE *g_freopen (const gchar *filename, - const gchar *mode, - FILE *stream); - -struct utimbuf; /* Don't need the real definition of struct utimbuf when just - * including this header. - */ - -int g_utime (const gchar *filename, - struct utimbuf *utb); - -#endif /* G_OS_UNIX */ - -G_END_DECLS - -#endif /* __G_STDIO_H__ */ diff --git a/lib/win32/glib-2.20.4/glib/gstrfuncs.c b/lib/win32/glib-2.20.4/glib/gstrfuncs.c deleted file mode 100644 index 3aed62c9cae09..0000000000000 --- a/lib/win32/glib-2.20.4/glib/gstrfuncs.c +++ /dev/null @@ -1,3249 +0,0 @@ -/* GLIB - Library of useful routines for C programming - * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library 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 - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ - -/* - * Modified by the GLib Team and others 1997-2000. See the AUTHORS - * file for a list of people on the GLib Team. See the ChangeLog - * files for a list of changes. These files are distributed with - * GLib at ftp://ftp.gtk.org/pub/gtk/. - */ - -/* - * MT safe - */ - -#include "config.h" - -#define _GNU_SOURCE /* For stpcpy */ - -#include -#include -#include -#include -#include -#include -#include /* For tolower() */ -#if !defined (HAVE_STRSIGNAL) || !defined(NO_SYS_SIGLIST_DECL) -#include -#endif - -#include "glib.h" -#include "gprintf.h" -#include "gprintfint.h" -#include "glibintl.h" - -#include "galias.h" - -#ifdef G_OS_WIN32 -#include -#endif - -/* do not include in this place since it - * interferes with g_strsignal() on some OSes - */ - -static const guint16 ascii_table_data[256] = { - 0x004, 0x004, 0x004, 0x004, 0x004, 0x004, 0x004, 0x004, - 0x004, 0x104, 0x104, 0x004, 0x104, 0x104, 0x004, 0x004, - 0x004, 0x004, 0x004, 0x004, 0x004, 0x004, 0x004, 0x004, - 0x004, 0x004, 0x004, 0x004, 0x004, 0x004, 0x004, 0x004, - 0x140, 0x0d0, 0x0d0, 0x0d0, 0x0d0, 0x0d0, 0x0d0, 0x0d0, - 0x0d0, 0x0d0, 0x0d0, 0x0d0, 0x0d0, 0x0d0, 0x0d0, 0x0d0, - 0x459, 0x459, 0x459, 0x459, 0x459, 0x459, 0x459, 0x459, - 0x459, 0x459, 0x0d0, 0x0d0, 0x0d0, 0x0d0, 0x0d0, 0x0d0, - 0x0d0, 0x653, 0x653, 0x653, 0x653, 0x653, 0x653, 0x253, - 0x253, 0x253, 0x253, 0x253, 0x253, 0x253, 0x253, 0x253, - 0x253, 0x253, 0x253, 0x253, 0x253, 0x253, 0x253, 0x253, - 0x253, 0x253, 0x253, 0x0d0, 0x0d0, 0x0d0, 0x0d0, 0x0d0, - 0x0d0, 0x473, 0x473, 0x473, 0x473, 0x473, 0x473, 0x073, - 0x073, 0x073, 0x073, 0x073, 0x073, 0x073, 0x073, 0x073, - 0x073, 0x073, 0x073, 0x073, 0x073, 0x073, 0x073, 0x073, - 0x073, 0x073, 0x073, 0x0d0, 0x0d0, 0x0d0, 0x0d0, 0x004 - /* the upper 128 are all zeroes */ -}; - -const guint16 * const g_ascii_table = ascii_table_data; - -/** - * g_strdup: - * @str: the string to duplicate - * - * Duplicates a string. If @str is %NULL it returns %NULL. - * The returned string should be freed with g_free() - * when no longer needed. - * - * Returns: a newly-allocated copy of @str - */ -gchar* -g_strdup (const gchar *str) -{ - gchar *new_str; - gsize length; - - if (str) - { - length = strlen (str) + 1; - new_str = g_new (char, length); - memcpy (new_str, str, length); - } - else - new_str = NULL; - - return new_str; -} - -gpointer -g_memdup (gconstpointer mem, - guint byte_size) -{ - gpointer new_mem; - - if (mem) - { - new_mem = g_malloc (byte_size); - memcpy (new_mem, mem, byte_size); - } - else - new_mem = NULL; - - return new_mem; -} - -/** - * g_strndup: - * @str: the string to duplicate - * @n: the maximum number of bytes to copy from @str - * - * Duplicates the first @n bytes of a string, returning a newly-allocated - * buffer @n + 1 bytes long which will always be nul-terminated. - * If @str is less than @n bytes long the buffer is padded with nuls. - * If @str is %NULL it returns %NULL. - * The returned value should be freed when no longer needed. - * - * - * To copy a number of characters from a UTF-8 encoded string, use - * g_utf8_strncpy() instead. - * - * - * Returns: a newly-allocated buffer containing the first @n bytes - * of @str, nul-terminated - */ -gchar* -g_strndup (const gchar *str, - gsize n) -{ - gchar *new_str; - - if (str) - { - new_str = g_new (gchar, n + 1); - strncpy (new_str, str, n); - new_str[n] = '\0'; - } - else - new_str = NULL; - - return new_str; -} - -/** - * g_strnfill: - * @length: the length of the new string - * @fill_char: the byte to fill the string with - * - * Creates a new string @length bytes long filled with @fill_char. - * The returned string should be freed when no longer needed. - * - * Returns: a newly-allocated string filled the @fill_char - */ -gchar* -g_strnfill (gsize length, - gchar fill_char) -{ - gchar *str; - - str = g_new (gchar, length + 1); - memset (str, (guchar)fill_char, length); - str[length] = '\0'; - - return str; -} - -/** - * g_stpcpy: - * @dest: destination buffer. - * @src: source string. - * - * Copies a nul-terminated string into the dest buffer, include the - * trailing nul, and return a pointer to the trailing nul byte. - * This is useful for concatenating multiple strings together - * without having to repeatedly scan for the end. - * - * Return value: a pointer to trailing nul byte. - **/ -gchar * -g_stpcpy (gchar *dest, - const gchar *src) -{ -#ifdef HAVE_STPCPY - g_return_val_if_fail (dest != NULL, NULL); - g_return_val_if_fail (src != NULL, NULL); - return stpcpy (dest, src); -#else - register gchar *d = dest; - register const gchar *s = src; - - g_return_val_if_fail (dest != NULL, NULL); - g_return_val_if_fail (src != NULL, NULL); - do - *d++ = *s; - while (*s++ != '\0'); - - return d - 1; -#endif -} - -/** - * g_strdup_vprintf: - * @format: a standard printf() format string, but notice - * string precision pitfalls - * @args: the list of parameters to insert into the format string - * - * Similar to the standard C vsprintf() function but safer, since it - * calculates the maximum space required and allocates memory to hold - * the result. The returned string should be freed with g_free() when - * no longer needed. - * - * See also g_vasprintf(), which offers the same functionality, but - * additionally returns the length of the allocated string. - * - * Returns: a newly-allocated string holding the result - */ -gchar* -g_strdup_vprintf (const gchar *format, - va_list args) -{ - gchar *string = NULL; - - g_vasprintf (&string, format, args); - - return string; -} - -/** - * g_strdup_printf: - * @format: a standard printf() format string, but notice - * string precision pitfalls - * @Varargs: the parameters to insert into the format string - * - * Similar to the standard C sprintf() function but safer, since it - * calculates the maximum space required and allocates memory to hold - * the result. The returned string should be freed with g_free() when no - * longer needed. - * - * Returns: a newly-allocated string holding the result - */ -gchar* -g_strdup_printf (const gchar *format, - ...) -{ - gchar *buffer; - va_list args; - - va_start (args, format); - buffer = g_strdup_vprintf (format, args); - va_end (args); - - return buffer; -} - -/** - * g_strconcat: - * @string1: the first string to add, which must not be %NULL - * @Varargs: a %NULL-terminated list of strings to append to the string - * - * Concatenates all of the given strings into one long string. - * The returned string should be freed with g_free() when no longer needed. - * - * - * The variable argument list must end - * with %NULL. If you forget the %NULL, g_strconcat() will start appending - * random memory junk to your string. - * - * Returns: a newly-allocated string containing all the string arguments - */ -gchar* -g_strconcat (const gchar *string1, ...) -{ - gsize l; - va_list args; - gchar *s; - gchar *concat; - gchar *ptr; - - if (!string1) - return NULL; - - l = 1 + strlen (string1); - va_start (args, string1); - s = va_arg (args, gchar*); - while (s) - { - l += strlen (s); - s = va_arg (args, gchar*); - } - va_end (args); - - concat = g_new (gchar, l); - ptr = concat; - - ptr = g_stpcpy (ptr, string1); - va_start (args, string1); - s = va_arg (args, gchar*); - while (s) - { - ptr = g_stpcpy (ptr, s); - s = va_arg (args, gchar*); - } - va_end (args); - - return concat; -} - -/** - * g_strtod: - * @nptr: the string to convert to a numeric value. - * @endptr: if non-%NULL, it returns the character after - * the last character used in the conversion. - * - * Converts a string to a #gdouble value. - * It calls the standard strtod() function to handle the conversion, but - * if the string is not completely converted it attempts the conversion - * again with g_ascii_strtod(), and returns the best match. - * - * This function should seldomly be used. The normal situation when reading - * numbers not for human consumption is to use g_ascii_strtod(). Only when - * you know that you must expect both locale formatted and C formatted numbers - * should you use this. Make sure that you don't pass strings such as comma - * separated lists of values, since the commas may be interpreted as a decimal - * point in some locales, causing unexpected results. - * - * Return value: the #gdouble value. - **/ -gdouble -g_strtod (const gchar *nptr, - gchar **endptr) -{ - gchar *fail_pos_1; - gchar *fail_pos_2; - gdouble val_1; - gdouble val_2 = 0; - - g_return_val_if_fail (nptr != NULL, 0); - - fail_pos_1 = NULL; - fail_pos_2 = NULL; - - val_1 = strtod (nptr, &fail_pos_1); - - if (fail_pos_1 && fail_pos_1[0] != 0) - val_2 = g_ascii_strtod (nptr, &fail_pos_2); - - if (!fail_pos_1 || fail_pos_1[0] == 0 || fail_pos_1 >= fail_pos_2) - { - if (endptr) - *endptr = fail_pos_1; - return val_1; - } - else - { - if (endptr) - *endptr = fail_pos_2; - return val_2; - } -} - -/** - * g_ascii_strtod: - * @nptr: the string to convert to a numeric value. - * @endptr: if non-%NULL, it returns the character after - * the last character used in the conversion. - * - * Converts a string to a #gdouble value. - * - * This function behaves like the standard strtod() function - * does in the C locale. It does this without actually changing - * the current locale, since that would not be thread-safe. - * A limitation of the implementation is that this function - * will still accept localized versions of infinities and NANs. - * - * This function is typically used when reading configuration - * files or other non-user input that should be locale independent. - * To handle input from the user you should normally use the - * locale-sensitive system strtod() function. - * - * To convert from a #gdouble to a string in a locale-insensitive - * way, use g_ascii_dtostr(). - * - * If the correct value would cause overflow, plus or minus %HUGE_VAL - * is returned (according to the sign of the value), and %ERANGE is - * stored in %errno. If the correct value would cause underflow, - * zero is returned and %ERANGE is stored in %errno. - * - * This function resets %errno before calling strtod() so that - * you can reliably detect overflow and underflow. - * - * Return value: the #gdouble value. - **/ -gdouble -g_ascii_strtod (const gchar *nptr, - gchar **endptr) -{ - gchar *fail_pos; - gdouble val; - struct lconv *locale_data; - const char *decimal_point; - int decimal_point_len; - const char *p, *decimal_point_pos; - const char *end = NULL; /* Silence gcc */ - int strtod_errno; - - g_return_val_if_fail (nptr != NULL, 0); - - fail_pos = NULL; - - locale_data = localeconv (); - decimal_point = locale_data->decimal_point; - decimal_point_len = strlen (decimal_point); - - g_assert (decimal_point_len != 0); - - decimal_point_pos = NULL; - end = NULL; - - if (decimal_point[0] != '.' || - decimal_point[1] != 0) - { - p = nptr; - /* Skip leading space */ - while (g_ascii_isspace (*p)) - p++; - - /* Skip leading optional sign */ - if (*p == '+' || *p == '-') - p++; - - if (p[0] == '0' && - (p[1] == 'x' || p[1] == 'X')) - { - p += 2; - /* HEX - find the (optional) decimal point */ - - while (g_ascii_isxdigit (*p)) - p++; - - if (*p == '.') - decimal_point_pos = p++; - - while (g_ascii_isxdigit (*p)) - p++; - - if (*p == 'p' || *p == 'P') - p++; - if (*p == '+' || *p == '-') - p++; - while (g_ascii_isdigit (*p)) - p++; - - end = p; - } - else if (g_ascii_isdigit (*p) || *p == '.') - { - while (g_ascii_isdigit (*p)) - p++; - - if (*p == '.') - decimal_point_pos = p++; - - while (g_ascii_isdigit (*p)) - p++; - - if (*p == 'e' || *p == 'E') - p++; - if (*p == '+' || *p == '-') - p++; - while (g_ascii_isdigit (*p)) - p++; - - end = p; - } - /* For the other cases, we need not convert the decimal point */ - } - - if (decimal_point_pos) - { - char *copy, *c; - - /* We need to convert the '.' to the locale specific decimal point */ - copy = g_malloc (end - nptr + 1 + decimal_point_len); - - c = copy; - memcpy (c, nptr, decimal_point_pos - nptr); - c += decimal_point_pos - nptr; - memcpy (c, decimal_point, decimal_point_len); - c += decimal_point_len; - memcpy (c, decimal_point_pos + 1, end - (decimal_point_pos + 1)); - c += end - (decimal_point_pos + 1); - *c = 0; - - errno = 0; - val = strtod (copy, &fail_pos); - strtod_errno = errno; - - if (fail_pos) - { - if (fail_pos - copy > decimal_point_pos - nptr) - fail_pos = (char *)nptr + (fail_pos - copy) - (decimal_point_len - 1); - else - fail_pos = (char *)nptr + (fail_pos - copy); - } - - g_free (copy); - - } - else if (end) - { - char *copy; - - copy = g_malloc (end - (char *)nptr + 1); - memcpy (copy, nptr, end - nptr); - *(copy + (end - (char *)nptr)) = 0; - - errno = 0; - val = strtod (copy, &fail_pos); - strtod_errno = errno; - - if (fail_pos) - { - fail_pos = (char *)nptr + (fail_pos - copy); - } - - g_free (copy); - } - else - { - errno = 0; - val = strtod (nptr, &fail_pos); - strtod_errno = errno; - } - - if (endptr) - *endptr = fail_pos; - - errno = strtod_errno; - - return val; -} - - -/** - * g_ascii_dtostr: - * @buffer: A buffer to place the resulting string in - * @buf_len: The length of the buffer. - * @d: The #gdouble to convert - * - * Converts a #gdouble to a string, using the '.' as - * decimal point. - * - * This functions generates enough precision that converting - * the string back using g_ascii_strtod() gives the same machine-number - * (on machines with IEEE compatible 64bit doubles). It is - * guaranteed that the size of the resulting string will never - * be larger than @G_ASCII_DTOSTR_BUF_SIZE bytes. - * - * Return value: The pointer to the buffer with the converted string. - **/ -gchar * -g_ascii_dtostr (gchar *buffer, - gint buf_len, - gdouble d) -{ - return g_ascii_formatd (buffer, buf_len, "%.17g", d); -} - -/** - * g_ascii_formatd: - * @buffer: A buffer to place the resulting string in - * @buf_len: The length of the buffer. - * @format: The printf()-style format to use for the - * code to use for converting. - * @d: The #gdouble to convert - * - * Converts a #gdouble to a string, using the '.' as - * decimal point. To format the number you pass in - * a printf()-style format string. Allowed conversion - * specifiers are 'e', 'E', 'f', 'F', 'g' and 'G'. - * - * If you just want to want to serialize the value into a - * string, use g_ascii_dtostr(). - * - * Return value: The pointer to the buffer with the converted string. - */ -gchar * -g_ascii_formatd (gchar *buffer, - gint buf_len, - const gchar *format, - gdouble d) -{ - struct lconv *locale_data; - const char *decimal_point; - int decimal_point_len; - gchar *p; - int rest_len; - gchar format_char; - - g_return_val_if_fail (buffer != NULL, NULL); - g_return_val_if_fail (format[0] == '%', NULL); - g_return_val_if_fail (strpbrk (format + 1, "'l%") == NULL, NULL); - - format_char = format[strlen (format) - 1]; - - g_return_val_if_fail (format_char == 'e' || format_char == 'E' || - format_char == 'f' || format_char == 'F' || - format_char == 'g' || format_char == 'G', - NULL); - - if (format[0] != '%') - return NULL; - - if (strpbrk (format + 1, "'l%")) - return NULL; - - if (!(format_char == 'e' || format_char == 'E' || - format_char == 'f' || format_char == 'F' || - format_char == 'g' || format_char == 'G')) - return NULL; - - - _g_snprintf (buffer, buf_len, format, d); - - locale_data = localeconv (); - decimal_point = locale_data->decimal_point; - decimal_point_len = strlen (decimal_point); - - g_assert (decimal_point_len != 0); - - if (decimal_point[0] != '.' || - decimal_point[1] != 0) - { - p = buffer; - - while (g_ascii_isspace (*p)) - p++; - - if (*p == '+' || *p == '-') - p++; - - while (isdigit ((guchar)*p)) - p++; - - if (strncmp (p, decimal_point, decimal_point_len) == 0) - { - *p = '.'; - p++; - if (decimal_point_len > 1) - { - rest_len = strlen (p + (decimal_point_len-1)); - memmove (p, p + (decimal_point_len-1), rest_len); - p[rest_len] = 0; - } - } - } - - return buffer; -} - -static guint64 -g_parse_long_long (const gchar *nptr, - const gchar **endptr, - guint base, - gboolean *negative) -{ - /* this code is based on on the strtol(3) code from GNU libc released under - * the GNU Lesser General Public License. - * - * Copyright (C) 1991,92,94,95,96,97,98,99,2000,01,02 - * Free Software Foundation, Inc. - */ -#define ISSPACE(c) ((c) == ' ' || (c) == '\f' || (c) == '\n' || \ - (c) == '\r' || (c) == '\t' || (c) == '\v') -#define ISUPPER(c) ((c) >= 'A' && (c) <= 'Z') -#define ISLOWER(c) ((c) >= 'a' && (c) <= 'z') -#define ISALPHA(c) (ISUPPER (c) || ISLOWER (c)) -#define TOUPPER(c) (ISLOWER (c) ? (c) - 'a' + 'A' : (c)) -#define TOLOWER(c) (ISUPPER (c) ? (c) - 'A' + 'a' : (c)) - gboolean overflow; - guint64 cutoff; - guint64 cutlim; - guint64 ui64; - const gchar *s, *save; - guchar c; - - g_return_val_if_fail (nptr != NULL, 0); - - *negative = FALSE; - if (base == 1 || base > 36) - { - errno = EINVAL; - if (endptr) - *endptr = nptr; - return 0; - } - - save = s = nptr; - - /* Skip white space. */ - while (ISSPACE (*s)) - ++s; - - if (G_UNLIKELY (!*s)) - goto noconv; - - /* Check for a sign. */ - if (*s == '-') - { - *negative = TRUE; - ++s; - } - else if (*s == '+') - ++s; - - /* Recognize number prefix and if BASE is zero, figure it out ourselves. */ - if (*s == '0') - { - if ((base == 0 || base == 16) && TOUPPER (s[1]) == 'X') - { - s += 2; - base = 16; - } - else if (base == 0) - base = 8; - } - else if (base == 0) - base = 10; - - /* Save the pointer so we can check later if anything happened. */ - save = s; - cutoff = G_MAXUINT64 / base; - cutlim = G_MAXUINT64 % base; - - overflow = FALSE; - ui64 = 0; - c = *s; - for (; c; c = *++s) - { - if (c >= '0' && c <= '9') - c -= '0'; - else if (ISALPHA (c)) - c = TOUPPER (c) - 'A' + 10; - else - break; - if (c >= base) - break; - /* Check for overflow. */ - if (ui64 > cutoff || (ui64 == cutoff && c > cutlim)) - overflow = TRUE; - else - { - ui64 *= base; - ui64 += c; - } - } - - /* Check if anything actually happened. */ - if (s == save) - goto noconv; - - /* Store in ENDPTR the address of one character - past the last character we converted. */ - if (endptr) - *endptr = s; - - if (G_UNLIKELY (overflow)) - { - errno = ERANGE; - return G_MAXUINT64; - } - - return ui64; - - noconv: - /* We must handle a special case here: the base is 0 or 16 and the - first two characters are '0' and 'x', but the rest are no - hexadecimal digits. This is no error case. We return 0 and - ENDPTR points to the `x`. */ - if (endptr) - { - if (save - nptr >= 2 && TOUPPER (save[-1]) == 'X' - && save[-2] == '0') - *endptr = &save[-1]; - else - /* There was no number to convert. */ - *endptr = nptr; - } - return 0; -} - -/** - * g_ascii_strtoull: - * @nptr: the string to convert to a numeric value. - * @endptr: if non-%NULL, it returns the character after - * the last character used in the conversion. - * @base: to be used for the conversion, 2..36 or 0 - * - * Converts a string to a #guint64 value. - * This function behaves like the standard strtoull() function - * does in the C locale. It does this without actually - * changing the current locale, since that would not be - * thread-safe. - * - * This function is typically used when reading configuration - * files or other non-user input that should be locale independent. - * To handle input from the user you should normally use the - * locale-sensitive system strtoull() function. - * - * If the correct value would cause overflow, %G_MAXUINT64 - * is returned, and %ERANGE is stored in %errno. If the base is - * outside the valid range, zero is returned, and %EINVAL is stored - * in %errno. If the string conversion fails, zero is returned, and - * @endptr returns @nptr (if @endptr is non-%NULL). - * - * Return value: the #guint64 value or zero on error. - * - * Since: 2.2 - */ -guint64 -g_ascii_strtoull (const gchar *nptr, - gchar **endptr, - guint base) -{ - gboolean negative; - guint64 result; - - result = g_parse_long_long (nptr, (const gchar **) endptr, base, &negative); - - /* Return the result of the appropriate sign. */ - return negative ? -result : result; -} - -/** - * g_ascii_strtoll: - * @nptr: the string to convert to a numeric value. - * @endptr: if non-%NULL, it returns the character after - * the last character used in the conversion. - * @base: to be used for the conversion, 2..36 or 0 - * - * Converts a string to a #gint64 value. - * This function behaves like the standard strtoll() function - * does in the C locale. It does this without actually - * changing the current locale, since that would not be - * thread-safe. - * - * This function is typically used when reading configuration - * files or other non-user input that should be locale independent. - * To handle input from the user you should normally use the - * locale-sensitive system strtoll() function. - * - * If the correct value would cause overflow, %G_MAXINT64 or %G_MININT64 - * is returned, and %ERANGE is stored in %errno. If the base is - * outside the valid range, zero is returned, and %EINVAL is stored - * in %errno. If the string conversion fails, zero is returned, and - * @endptr returns @nptr (if @endptr is non-%NULL). - * - * Return value: the #gint64 value or zero on error. - * - * Since: 2.12 - */ -gint64 -g_ascii_strtoll (const gchar *nptr, - gchar **endptr, - guint base) -{ - gboolean negative; - guint64 result; - - result = g_parse_long_long (nptr, (const gchar **) endptr, base, &negative); - - if (negative && result > (guint64) G_MININT64) - { - errno = ERANGE; - return G_MININT64; - } - else if (!negative && result > (guint64) G_MAXINT64) - { - errno = ERANGE; - return G_MAXINT64; - } - else if (negative) - return - (gint64) result; - else - return (gint64) result; -} - -/** - * g_strerror: - * @errnum: the system error number. See the standard C %errno - * documentation - * - * Returns a string corresponding to the given error code, e.g. - * "no such process". You should use this function in preference to - * strerror(), because it returns a string in UTF-8 encoding, and since - * not all platforms support the strerror() function. - * - * Returns: a UTF-8 string describing the error code. If the error code - * is unknown, it returns "unknown error (<code>)". The string - * can only be used until the next call to g_strerror() - */ -G_CONST_RETURN gchar* -g_strerror (gint errnum) -{ - static GStaticPrivate msg_private = G_STATIC_PRIVATE_INIT; - char *msg; - int saved_errno = errno; - -#ifdef HAVE_STRERROR - const char *msg_locale; - - msg_locale = strerror (errnum); - if (g_get_charset (NULL)) - { - errno = saved_errno; - return msg_locale; - } - else - { - gchar *msg_utf8 = g_locale_to_utf8 (msg_locale, -1, NULL, NULL, NULL); - if (msg_utf8) - { - /* Stick in the quark table so that we can return a static result - */ - GQuark msg_quark = g_quark_from_string (msg_utf8); - g_free (msg_utf8); - - msg_utf8 = (gchar *) g_quark_to_string (msg_quark); - errno = saved_errno; - return msg_utf8; - } - } -#elif NO_SYS_ERRLIST - switch (errnum) - { -#ifdef E2BIG - case E2BIG: return "argument list too long"; -#endif -#ifdef EACCES - case EACCES: return "permission denied"; -#endif -#ifdef EADDRINUSE - case EADDRINUSE: return "address already in use"; -#endif -#ifdef EADDRNOTAVAIL - case EADDRNOTAVAIL: return "can't assign requested address"; -#endif -#ifdef EADV - case EADV: return "advertise error"; -#endif -#ifdef EAFNOSUPPORT - case EAFNOSUPPORT: return "address family not supported by protocol family"; -#endif -#ifdef EAGAIN - case EAGAIN: return "try again"; -#endif -#ifdef EALIGN - case EALIGN: return "EALIGN"; -#endif -#ifdef EALREADY - case EALREADY: return "operation already in progress"; -#endif -#ifdef EBADE - case EBADE: return "bad exchange descriptor"; -#endif -#ifdef EBADF - case EBADF: return "bad file number"; -#endif -#ifdef EBADFD - case EBADFD: return "file descriptor in bad state"; -#endif -#ifdef EBADMSG - case EBADMSG: return "not a data message"; -#endif -#ifdef EBADR - case EBADR: return "bad request descriptor"; -#endif -#ifdef EBADRPC - case EBADRPC: return "RPC structure is bad"; -#endif -#ifdef EBADRQC - case EBADRQC: return "bad request code"; -#endif -#ifdef EBADSLT - case EBADSLT: return "invalid slot"; -#endif -#ifdef EBFONT - case EBFONT: return "bad font file format"; -#endif -#ifdef EBUSY - case EBUSY: return "mount device busy"; -#endif -#ifdef ECHILD - case ECHILD: return "no children"; -#endif -#ifdef ECHRNG - case ECHRNG: return "channel number out of range"; -#endif -#ifdef ECOMM - case ECOMM: return "communication error on send"; -#endif -#ifdef ECONNABORTED - case ECONNABORTED: return "software caused connection abort"; -#endif -#ifdef ECONNREFUSED - case ECONNREFUSED: return "connection refused"; -#endif -#ifdef ECONNRESET - case ECONNRESET: return "connection reset by peer"; -#endif -#if defined(EDEADLK) && (!defined(EWOULDBLOCK) || (EDEADLK != EWOULDBLOCK)) - case EDEADLK: return "resource deadlock avoided"; -#endif -#ifdef EDEADLOCK - case EDEADLOCK: return "resource deadlock avoided"; -#endif -#ifdef EDESTADDRREQ - case EDESTADDRREQ: return "destination address required"; -#endif -#ifdef EDIRTY - case EDIRTY: return "mounting a dirty fs w/o force"; -#endif -#ifdef EDOM - case EDOM: return "math argument out of range"; -#endif -#ifdef EDOTDOT - case EDOTDOT: return "cross mount point"; -#endif -#ifdef EDQUOT - case EDQUOT: return "disk quota exceeded"; -#endif -#ifdef EDUPPKG - case EDUPPKG: return "duplicate package name"; -#endif -#ifdef EEXIST - case EEXIST: return "file already exists"; -#endif -#ifdef EFAULT - case EFAULT: return "bad address in system call argument"; -#endif -#ifdef EFBIG - case EFBIG: return "file too large"; -#endif -#ifdef EHOSTDOWN - case EHOSTDOWN: return "host is down"; -#endif -#ifdef EHOSTUNREACH - case EHOSTUNREACH: return "host is unreachable"; -#endif -#ifdef EIDRM - case EIDRM: return "identifier removed"; -#endif -#ifdef EINIT - case EINIT: return "initialization error"; -#endif -#ifdef EINPROGRESS - case EINPROGRESS: return "operation now in progress"; -#endif -#ifdef EINTR - case EINTR: return "interrupted system call"; -#endif -#ifdef EINVAL - case EINVAL: return "invalid argument"; -#endif -#ifdef EIO - case EIO: return "I/O error"; -#endif -#ifdef EISCONN - case EISCONN: return "socket is already connected"; -#endif -#ifdef EISDIR - case EISDIR: return "is a directory"; -#endif -#ifdef EISNAME - case EISNAM: return "is a name file"; -#endif -#ifdef ELBIN - case ELBIN: return "ELBIN"; -#endif -#ifdef EL2HLT - case EL2HLT: return "level 2 halted"; -#endif -#ifdef EL2NSYNC - case EL2NSYNC: return "level 2 not synchronized"; -#endif -#ifdef EL3HLT - case EL3HLT: return "level 3 halted"; -#endif -#ifdef EL3RST - case EL3RST: return "level 3 reset"; -#endif -#ifdef ELIBACC - case ELIBACC: return "can not access a needed shared library"; -#endif -#ifdef ELIBBAD - case ELIBBAD: return "accessing a corrupted shared library"; -#endif -#ifdef ELIBEXEC - case ELIBEXEC: return "can not exec a shared library directly"; -#endif -#ifdef ELIBMAX - case ELIBMAX: return "attempting to link in more shared libraries than system limit"; -#endif -#ifdef ELIBSCN - case ELIBSCN: return ".lib section in a.out corrupted"; -#endif -#ifdef ELNRNG - case ELNRNG: return "link number out of range"; -#endif -#ifdef ELOOP - case ELOOP: return "too many levels of symbolic links"; -#endif -#ifdef EMFILE - case EMFILE: return "too many open files"; -#endif -#ifdef EMLINK - case EMLINK: return "too many links"; -#endif -#ifdef EMSGSIZE - case EMSGSIZE: return "message too long"; -#endif -#ifdef EMULTIHOP - case EMULTIHOP: return "multihop attempted"; -#endif -#ifdef ENAMETOOLONG - case ENAMETOOLONG: return "file name too long"; -#endif -#ifdef ENAVAIL - case ENAVAIL: return "not available"; -#endif -#ifdef ENET - case ENET: return "ENET"; -#endif -#ifdef ENETDOWN - case ENETDOWN: return "network is down"; -#endif -#ifdef ENETRESET - case ENETRESET: return "network dropped connection on reset"; -#endif -#ifdef ENETUNREACH - case ENETUNREACH: return "network is unreachable"; -#endif -#ifdef ENFILE - case ENFILE: return "file table overflow"; -#endif -#ifdef ENOANO - case ENOANO: return "anode table overflow"; -#endif -#if defined(ENOBUFS) && (!defined(ENOSR) || (ENOBUFS != ENOSR)) - case ENOBUFS: return "no buffer space available"; -#endif -#ifdef ENOCSI - case ENOCSI: return "no CSI structure available"; -#endif -#ifdef ENODATA - case ENODATA: return "no data available"; -#endif -#ifdef ENODEV - case ENODEV: return "no such device"; -#endif -#ifdef ENOENT - case ENOENT: return "no such file or directory"; -#endif -#ifdef ENOEXEC - case ENOEXEC: return "exec format error"; -#endif -#ifdef ENOLCK - case ENOLCK: return "no locks available"; -#endif -#ifdef ENOLINK - case ENOLINK: return "link has be severed"; -#endif -#ifdef ENOMEM - case ENOMEM: return "not enough memory"; -#endif -#ifdef ENOMSG - case ENOMSG: return "no message of desired type"; -#endif -#ifdef ENONET - case ENONET: return "machine is not on the network"; -#endif -#ifdef ENOPKG - case ENOPKG: return "package not installed"; -#endif -#ifdef ENOPROTOOPT - case ENOPROTOOPT: return "bad proocol option"; -#endif -#ifdef ENOSPC - case ENOSPC: return "no space left on device"; -#endif -#ifdef ENOSR - case ENOSR: return "out of stream resources"; -#endif -#ifdef ENOSTR - case ENOSTR: return "not a stream device"; -#endif -#ifdef ENOSYM - case ENOSYM: return "unresolved symbol name"; -#endif -#ifdef ENOSYS - case ENOSYS: return "function not implemented"; -#endif -#ifdef ENOTBLK - case ENOTBLK: return "block device required"; -#endif -#ifdef ENOTCONN - case ENOTCONN: return "socket is not connected"; -#endif -#ifdef ENOTDIR - case ENOTDIR: return "not a directory"; -#endif -#ifdef ENOTEMPTY - case ENOTEMPTY: return "directory not empty"; -#endif -#ifdef ENOTNAM - case ENOTNAM: return "not a name file"; -#endif -#ifdef ENOTSOCK - case ENOTSOCK: return "socket operation on non-socket"; -#endif -#ifdef ENOTTY - case ENOTTY: return "inappropriate device for ioctl"; -#endif -#ifdef ENOTUNIQ - case ENOTUNIQ: return "name not unique on network"; -#endif -#ifdef ENXIO - case ENXIO: return "no such device or address"; -#endif -#ifdef EOPNOTSUPP - case EOPNOTSUPP: return "operation not supported on socket"; -#endif -#ifdef EPERM - case EPERM: return "not owner"; -#endif -#ifdef EPFNOSUPPORT - case EPFNOSUPPORT: return "protocol family not supported"; -#endif -#ifdef EPIPE - case EPIPE: return "broken pipe"; -#endif -#ifdef EPROCLIM - case EPROCLIM: return "too many processes"; -#endif -#ifdef EPROCUNAVAIL - case EPROCUNAVAIL: return "bad procedure for program"; -#endif -#ifdef EPROGMISMATCH - case EPROGMISMATCH: return "program version wrong"; -#endif -#ifdef EPROGUNAVAIL - case EPROGUNAVAIL: return "RPC program not available"; -#endif -#ifdef EPROTO - case EPROTO: return "protocol error"; -#endif -#ifdef EPROTONOSUPPORT - case EPROTONOSUPPORT: return "protocol not suppored"; -#endif -#ifdef EPROTOTYPE - case EPROTOTYPE: return "protocol wrong type for socket"; -#endif -#ifdef ERANGE - case ERANGE: return "math result unrepresentable"; -#endif -#if defined(EREFUSED) && (!defined(ECONNREFUSED) || (EREFUSED != ECONNREFUSED)) - case EREFUSED: return "EREFUSED"; -#endif -#ifdef EREMCHG - case EREMCHG: return "remote address changed"; -#endif -#ifdef EREMDEV - case EREMDEV: return "remote device"; -#endif -#ifdef EREMOTE - case EREMOTE: return "pathname hit remote file system"; -#endif -#ifdef EREMOTEIO - case EREMOTEIO: return "remote i/o error"; -#endif -#ifdef EREMOTERELEASE - case EREMOTERELEASE: return "EREMOTERELEASE"; -#endif -#ifdef EROFS - case EROFS: return "read-only file system"; -#endif -#ifdef ERPCMISMATCH - case ERPCMISMATCH: return "RPC version is wrong"; -#endif -#ifdef ERREMOTE - case ERREMOTE: return "object is remote"; -#endif -#ifdef ESHUTDOWN - case ESHUTDOWN: return "can't send afer socket shutdown"; -#endif -#ifdef ESOCKTNOSUPPORT - case ESOCKTNOSUPPORT: return "socket type not supported"; -#endif -#ifdef ESPIPE - case ESPIPE: return "invalid seek"; -#endif -#ifdef ESRCH - case ESRCH: return "no such process"; -#endif -#ifdef ESRMNT - case ESRMNT: return "srmount error"; -#endif -#ifdef ESTALE - case ESTALE: return "stale remote file handle"; -#endif -#ifdef ESUCCESS - case ESUCCESS: return "Error 0"; -#endif -#ifdef ETIME - case ETIME: return "timer expired"; -#endif -#ifdef ETIMEDOUT - case ETIMEDOUT: return "connection timed out"; -#endif -#ifdef ETOOMANYREFS - case ETOOMANYREFS: return "too many references: can't splice"; -#endif -#ifdef ETXTBSY - case ETXTBSY: return "text file or pseudo-device busy"; -#endif -#ifdef EUCLEAN - case EUCLEAN: return "structure needs cleaning"; -#endif -#ifdef EUNATCH - case EUNATCH: return "protocol driver not attached"; -#endif -#ifdef EUSERS - case EUSERS: return "too many users"; -#endif -#ifdef EVERSION - case EVERSION: return "version mismatch"; -#endif -#if defined(EWOULDBLOCK) && (!defined(EAGAIN) || (EWOULDBLOCK != EAGAIN)) - case EWOULDBLOCK: return "operation would block"; -#endif -#ifdef EXDEV - case EXDEV: return "cross-domain link"; -#endif -#ifdef EXFULL - case EXFULL: return "message tables full"; -#endif - } -#else /* NO_SYS_ERRLIST */ - extern int sys_nerr; - extern char *sys_errlist[]; - - if ((errnum > 0) && (errnum <= sys_nerr)) - return sys_errlist [errnum]; -#endif /* NO_SYS_ERRLIST */ - - msg = g_static_private_get (&msg_private); - if (!msg) - { - msg = g_new (gchar, 64); - g_static_private_set (&msg_private, msg, g_free); - } - - _g_sprintf (msg, "unknown error (%d)", errnum); - - errno = saved_errno; - return msg; -} - -/** - * g_strsignal: - * @signum: the signal number. See the signal - * documentation - * - * Returns a string describing the given signal, e.g. "Segmentation fault". - * You should use this function in preference to strsignal(), because it - * returns a string in UTF-8 encoding, and since not all platforms support - * the strsignal() function. - * - * Returns: a UTF-8 string describing the signal. If the signal is unknown, - * it returns "unknown signal (<signum>)". The string can only be - * used until the next call to g_strsignal() - */ -G_CONST_RETURN gchar* -g_strsignal (gint signum) -{ - static GStaticPrivate msg_private = G_STATIC_PRIVATE_INIT; - char *msg; - -#ifdef HAVE_STRSIGNAL - const char *msg_locale; - -#if defined(G_OS_BEOS) || defined(G_WITH_CYGWIN) -extern const char *strsignal(int); -#else - /* this is declared differently (const) in string.h on BeOS */ - extern char *strsignal (int sig); -#endif /* !G_OS_BEOS && !G_WITH_CYGWIN */ - msg_locale = strsignal (signum); - if (g_get_charset (NULL)) - return msg_locale; - else - { - gchar *msg_utf8 = g_locale_to_utf8 (msg_locale, -1, NULL, NULL, NULL); - if (msg_utf8) - { - /* Stick in the quark table so that we can return a static result - */ - GQuark msg_quark = g_quark_from_string (msg_utf8); - g_free (msg_utf8); - - return g_quark_to_string (msg_quark); - } - } -#elif NO_SYS_SIGLIST - switch (signum) - { -#ifdef SIGHUP - case SIGHUP: return "Hangup"; -#endif -#ifdef SIGINT - case SIGINT: return "Interrupt"; -#endif -#ifdef SIGQUIT - case SIGQUIT: return "Quit"; -#endif -#ifdef SIGILL - case SIGILL: return "Illegal instruction"; -#endif -#ifdef SIGTRAP - case SIGTRAP: return "Trace/breakpoint trap"; -#endif -#ifdef SIGABRT - case SIGABRT: return "IOT trap/Abort"; -#endif -#ifdef SIGBUS - case SIGBUS: return "Bus error"; -#endif -#ifdef SIGFPE - case SIGFPE: return "Floating point exception"; -#endif -#ifdef SIGKILL - case SIGKILL: return "Killed"; -#endif -#ifdef SIGUSR1 - case SIGUSR1: return "User defined signal 1"; -#endif -#ifdef SIGSEGV - case SIGSEGV: return "Segmentation fault"; -#endif -#ifdef SIGUSR2 - case SIGUSR2: return "User defined signal 2"; -#endif -#ifdef SIGPIPE - case SIGPIPE: return "Broken pipe"; -#endif -#ifdef SIGALRM - case SIGALRM: return "Alarm clock"; -#endif -#ifdef SIGTERM - case SIGTERM: return "Terminated"; -#endif -#ifdef SIGSTKFLT - case SIGSTKFLT: return "Stack fault"; -#endif -#ifdef SIGCHLD - case SIGCHLD: return "Child exited"; -#endif -#ifdef SIGCONT - case SIGCONT: return "Continued"; -#endif -#ifdef SIGSTOP - case SIGSTOP: return "Stopped (signal)"; -#endif -#ifdef SIGTSTP - case SIGTSTP: return "Stopped"; -#endif -#ifdef SIGTTIN - case SIGTTIN: return "Stopped (tty input)"; -#endif -#ifdef SIGTTOU - case SIGTTOU: return "Stopped (tty output)"; -#endif -#ifdef SIGURG - case SIGURG: return "Urgent condition"; -#endif -#ifdef SIGXCPU - case SIGXCPU: return "CPU time limit exceeded"; -#endif -#ifdef SIGXFSZ - case SIGXFSZ: return "File size limit exceeded"; -#endif -#ifdef SIGVTALRM - case SIGVTALRM: return "Virtual time alarm"; -#endif -#ifdef SIGPROF - case SIGPROF: return "Profile signal"; -#endif -#ifdef SIGWINCH - case SIGWINCH: return "Window size changed"; -#endif -#ifdef SIGIO - case SIGIO: return "Possible I/O"; -#endif -#ifdef SIGPWR - case SIGPWR: return "Power failure"; -#endif -#ifdef SIGUNUSED - case SIGUNUSED: return "Unused signal"; -#endif - } -#else /* NO_SYS_SIGLIST */ - -#ifdef NO_SYS_SIGLIST_DECL - extern char *sys_siglist[]; /*(see Tue Jan 19 00:44:24 1999 in changelog)*/ -#endif - - return (char*) /* this function should return const --josh */ sys_siglist [signum]; -#endif /* NO_SYS_SIGLIST */ - - msg = g_static_private_get (&msg_private); - if (!msg) - { - msg = g_new (gchar, 64); - g_static_private_set (&msg_private, msg, g_free); - } - - _g_sprintf (msg, "unknown signal (%d)", signum); - - return msg; -} - -/* Functions g_strlcpy and g_strlcat were originally developed by - * Todd C. Miller to simplify writing secure code. - * See ftp://ftp.openbsd.org/pub/OpenBSD/src/lib/libc/string/strlcpy.3 - * for more information. - */ - -#ifdef HAVE_STRLCPY -/* Use the native ones, if available; they might be implemented in assembly */ -gsize -g_strlcpy (gchar *dest, - const gchar *src, - gsize dest_size) -{ - g_return_val_if_fail (dest != NULL, 0); - g_return_val_if_fail (src != NULL, 0); - - return strlcpy (dest, src, dest_size); -} - -gsize -g_strlcat (gchar *dest, - const gchar *src, - gsize dest_size) -{ - g_return_val_if_fail (dest != NULL, 0); - g_return_val_if_fail (src != NULL, 0); - - return strlcat (dest, src, dest_size); -} - -#else /* ! HAVE_STRLCPY */ -/** - * g_strlcpy: - * @dest: destination buffer - * @src: source buffer - * @dest_size: length of @dest in bytes - * - * Portability wrapper that calls strlcpy() on systems which have it, - * and emulates strlcpy() otherwise. Copies @src to @dest; @dest is - * guaranteed to be nul-terminated; @src must be nul-terminated; - * @dest_size is the buffer size, not the number of chars to copy. - * - * At most dest_size - 1 characters will be copied. Always nul-terminates - * (unless dest_size == 0). This function does not - * allocate memory. Unlike strncpy(), this function doesn't pad dest (so - * it's often faster). It returns the size of the attempted result, - * strlen (src), so if @retval >= @dest_size, truncation occurred. - * - * Caveat: strlcpy() is supposedly more secure than - * strcpy() or strncpy(), but if you really want to avoid screwups, - * g_strdup() is an even better idea. - * - * Returns: length of @src - */ -gsize -g_strlcpy (gchar *dest, - const gchar *src, - gsize dest_size) -{ - register gchar *d = dest; - register const gchar *s = src; - register gsize n = dest_size; - - g_return_val_if_fail (dest != NULL, 0); - g_return_val_if_fail (src != NULL, 0); - - /* Copy as many bytes as will fit */ - if (n != 0 && --n != 0) - do - { - register gchar c = *s++; - - *d++ = c; - if (c == 0) - break; - } - while (--n != 0); - - /* If not enough room in dest, add NUL and traverse rest of src */ - if (n == 0) - { - if (dest_size != 0) - *d = 0; - while (*s++) - ; - } - - return s - src - 1; /* count does not include NUL */ -} - -/** - * g_strlcat: - * @dest: destination buffer, already containing one nul-terminated string - * @src: source buffer - * @dest_size: length of @dest buffer in bytes (not length of existing string - * inside @dest) - * - * Portability wrapper that calls strlcat() on systems which have it, - * and emulates it otherwise. Appends nul-terminated @src string to @dest, - * guaranteeing nul-termination for @dest. The total size of @dest won't - * exceed @dest_size. - * - * At most dest_size - 1 characters will be copied. - * Unlike strncat, dest_size is the full size of dest, not the space left over. - * This function does NOT allocate memory. - * This always NUL terminates (unless siz == 0 or there were no NUL characters - * in the dest_size characters of dest to start with). - * Returns size of attempted result, which is - * MIN (dest_size, strlen (original dest)) + strlen (src), - * so if retval >= dest_size, truncation occurred. - * - * Caveat: this is supposedly a more secure alternative to - * strcat() or strncat(), but for real security g_strconcat() is harder - * to mess up. - * - */ -gsize -g_strlcat (gchar *dest, - const gchar *src, - gsize dest_size) -{ - register gchar *d = dest; - register const gchar *s = src; - register gsize bytes_left = dest_size; - gsize dlength; /* Logically, MIN (strlen (d), dest_size) */ - - g_return_val_if_fail (dest != NULL, 0); - g_return_val_if_fail (src != NULL, 0); - - /* Find the end of dst and adjust bytes left but don't go past end */ - while (*d != 0 && bytes_left-- != 0) - d++; - dlength = d - dest; - bytes_left = dest_size - dlength; - - if (bytes_left == 0) - return dlength + strlen (s); - - while (*s != 0) - { - if (bytes_left != 1) - { - *d++ = *s; - bytes_left--; - } - s++; - } - *d = 0; - - return dlength + (s - src); /* count does not include NUL */ -} -#endif /* ! HAVE_STRLCPY */ - -/** - * g_ascii_strdown: - * @str: a string. - * @len: length of @str in bytes, or -1 if @str is nul-terminated. - * - * Converts all upper case ASCII letters to lower case ASCII letters. - * - * Return value: a newly-allocated string, with all the upper case - * characters in @str converted to lower case, with - * semantics that exactly match g_ascii_tolower(). (Note - * that this is unlike the old g_strdown(), which modified - * the string in place.) - **/ -gchar* -g_ascii_strdown (const gchar *str, - gssize len) -{ - gchar *result, *s; - - g_return_val_if_fail (str != NULL, NULL); - - if (len < 0) - len = strlen (str); - - result = g_strndup (str, len); - for (s = result; *s; s++) - *s = g_ascii_tolower (*s); - - return result; -} - -/** - * g_ascii_strup: - * @str: a string. - * @len: length of @str in bytes, or -1 if @str is nul-terminated. - * - * Converts all lower case ASCII letters to upper case ASCII letters. - * - * Return value: a newly allocated string, with all the lower case - * characters in @str converted to upper case, with - * semantics that exactly match g_ascii_toupper(). (Note - * that this is unlike the old g_strup(), which modified - * the string in place.) - **/ -gchar* -g_ascii_strup (const gchar *str, - gssize len) -{ - gchar *result, *s; - - g_return_val_if_fail (str != NULL, NULL); - - if (len < 0) - len = strlen (str); - - result = g_strndup (str, len); - for (s = result; *s; s++) - *s = g_ascii_toupper (*s); - - return result; -} - -/** - * g_strdown: - * @string: the string to convert. - * - * Converts a string to lower case. - * - * Return value: the string - * - * Deprecated:2.2: This function is totally broken for the reasons discussed - * in the g_strncasecmp() docs - use g_ascii_strdown() or g_utf8_strdown() - * instead. - **/ -gchar* -g_strdown (gchar *string) -{ - register guchar *s; - - g_return_val_if_fail (string != NULL, NULL); - - s = (guchar *) string; - - while (*s) - { - if (isupper (*s)) - *s = tolower (*s); - s++; - } - - return (gchar *) string; -} - -/** - * g_strup: - * @string: the string to convert. - * - * Converts a string to upper case. - * - * Return value: the string - * - * Deprecated:2.2: This function is totally broken for the reasons discussed - * in the g_strncasecmp() docs - use g_ascii_strup() or g_utf8_strup() instead. - **/ -gchar* -g_strup (gchar *string) -{ - register guchar *s; - - g_return_val_if_fail (string != NULL, NULL); - - s = (guchar *) string; - - while (*s) - { - if (islower (*s)) - *s = toupper (*s); - s++; - } - - return (gchar *) string; -} - -/** - * g_strreverse: - * @string: the string to reverse - * - * Reverses all of the bytes in a string. For example, - * g_strreverse ("abcdef") will result - * in "fedcba". - * - * Note that g_strreverse() doesn't work on UTF-8 strings - * containing multibyte characters. For that purpose, use - * g_utf8_strreverse(). - * - * Returns: the same pointer passed in as @string - */ -gchar* -g_strreverse (gchar *string) -{ - g_return_val_if_fail (string != NULL, NULL); - - if (*string) - { - register gchar *h, *t; - - h = string; - t = string + strlen (string) - 1; - - while (h < t) - { - register gchar c; - - c = *h; - *h = *t; - h++; - *t = c; - t--; - } - } - - return string; -} - -/** - * g_ascii_tolower: - * @c: any character. - * - * Convert a character to ASCII lower case. - * - * Unlike the standard C library tolower() function, this only - * recognizes standard ASCII letters and ignores the locale, returning - * all non-ASCII characters unchanged, even if they are lower case - * letters in a particular character set. Also unlike the standard - * library function, this takes and returns a char, not an int, so - * don't call it on %EOF but no need to worry about casting to #guchar - * before passing a possibly non-ASCII character in. - * - * Return value: the result of converting @c to lower case. - * If @c is not an ASCII upper case letter, - * @c is returned unchanged. - **/ -gchar -g_ascii_tolower (gchar c) -{ - return g_ascii_isupper (c) ? c - 'A' + 'a' : c; -} - -/** - * g_ascii_toupper: - * @c: any character. - * - * Convert a character to ASCII upper case. - * - * Unlike the standard C library toupper() function, this only - * recognizes standard ASCII letters and ignores the locale, returning - * all non-ASCII characters unchanged, even if they are upper case - * letters in a particular character set. Also unlike the standard - * library function, this takes and returns a char, not an int, so - * don't call it on %EOF but no need to worry about casting to #guchar - * before passing a possibly non-ASCII character in. - * - * Return value: the result of converting @c to upper case. - * If @c is not an ASCII lower case letter, - * @c is returned unchanged. - **/ -gchar -g_ascii_toupper (gchar c) -{ - return g_ascii_islower (c) ? c - 'a' + 'A' : c; -} - -/** - * g_ascii_digit_value: - * @c: an ASCII character. - * - * Determines the numeric value of a character as a decimal - * digit. Differs from g_unichar_digit_value() because it takes - * a char, so there's no worry about sign extension if characters - * are signed. - * - * Return value: If @c is a decimal digit (according to - * g_ascii_isdigit()), its numeric value. Otherwise, -1. - **/ -int -g_ascii_digit_value (gchar c) -{ - if (g_ascii_isdigit (c)) - return c - '0'; - return -1; -} - -/** - * g_ascii_xdigit_value: - * @c: an ASCII character. - * - * Determines the numeric value of a character as a hexidecimal - * digit. Differs from g_unichar_xdigit_value() because it takes - * a char, so there's no worry about sign extension if characters - * are signed. - * - * Return value: If @c is a hex digit (according to - * g_ascii_isxdigit()), its numeric value. Otherwise, -1. - **/ -int -g_ascii_xdigit_value (gchar c) -{ - if (c >= 'A' && c <= 'F') - return c - 'A' + 10; - if (c >= 'a' && c <= 'f') - return c - 'a' + 10; - return g_ascii_digit_value (c); -} - -/** - * g_ascii_strcasecmp: - * @s1: string to compare with @s2. - * @s2: string to compare with @s1. - * - * Compare two strings, ignoring the case of ASCII characters. - * - * Unlike the BSD strcasecmp() function, this only recognizes standard - * ASCII letters and ignores the locale, treating all non-ASCII - * bytes as if they are not letters. - * - * This function should be used only on strings that are known to be - * in encodings where the bytes corresponding to ASCII letters always - * represent themselves. This includes UTF-8 and the ISO-8859-* - * charsets, but not for instance double-byte encodings like the - * Windows Codepage 932, where the trailing bytes of double-byte - * characters include all ASCII letters. If you compare two CP932 - * strings using this function, you will get false matches. - * - * Return value: 0 if the strings match, a negative value if @s1 < @s2, - * or a positive value if @s1 > @s2. - **/ -gint -g_ascii_strcasecmp (const gchar *s1, - const gchar *s2) -{ - gint c1, c2; - - g_return_val_if_fail (s1 != NULL, 0); - g_return_val_if_fail (s2 != NULL, 0); - - while (*s1 && *s2) - { - c1 = (gint)(guchar) TOLOWER (*s1); - c2 = (gint)(guchar) TOLOWER (*s2); - if (c1 != c2) - return (c1 - c2); - s1++; s2++; - } - - return (((gint)(guchar) *s1) - ((gint)(guchar) *s2)); -} - -/** - * g_ascii_strncasecmp: - * @s1: string to compare with @s2. - * @s2: string to compare with @s1. - * @n: number of characters to compare. - * - * Compare @s1 and @s2, ignoring the case of ASCII characters and any - * characters after the first @n in each string. - * - * Unlike the BSD strcasecmp() function, this only recognizes standard - * ASCII letters and ignores the locale, treating all non-ASCII - * characters as if they are not letters. - * - * The same warning as in g_ascii_strcasecmp() applies: Use this - * function only on strings known to be in encodings where bytes - * corresponding to ASCII letters always represent themselves. - * - * Return value: 0 if the strings match, a negative value if @s1 < @s2, - * or a positive value if @s1 > @s2. - **/ -gint -g_ascii_strncasecmp (const gchar *s1, - const gchar *s2, - gsize n) -{ - gint c1, c2; - - g_return_val_if_fail (s1 != NULL, 0); - g_return_val_if_fail (s2 != NULL, 0); - - while (n && *s1 && *s2) - { - n -= 1; - c1 = (gint)(guchar) TOLOWER (*s1); - c2 = (gint)(guchar) TOLOWER (*s2); - if (c1 != c2) - return (c1 - c2); - s1++; s2++; - } - - if (n) - return (((gint) (guchar) *s1) - ((gint) (guchar) *s2)); - else - return 0; -} - -/** - * g_strcasecmp: - * @s1: a string. - * @s2: a string to compare with @s1. - * - * A case-insensitive string comparison, corresponding to the standard - * strcasecmp() function on platforms which support it. - * - * Return value: 0 if the strings match, a negative value if @s1 < @s2, - * or a positive value if @s1 > @s2. - * - * Deprecated:2.2: See g_strncasecmp() for a discussion of why this function - * is deprecated and how to replace it. - **/ -gint -g_strcasecmp (const gchar *s1, - const gchar *s2) -{ -#ifdef HAVE_STRCASECMP - g_return_val_if_fail (s1 != NULL, 0); - g_return_val_if_fail (s2 != NULL, 0); - - return strcasecmp (s1, s2); -#else - gint c1, c2; - - g_return_val_if_fail (s1 != NULL, 0); - g_return_val_if_fail (s2 != NULL, 0); - - while (*s1 && *s2) - { - /* According to A. Cox, some platforms have islower's that - * don't work right on non-uppercase - */ - c1 = isupper ((guchar)*s1) ? tolower ((guchar)*s1) : *s1; - c2 = isupper ((guchar)*s2) ? tolower ((guchar)*s2) : *s2; - if (c1 != c2) - return (c1 - c2); - s1++; s2++; - } - - return (((gint)(guchar) *s1) - ((gint)(guchar) *s2)); -#endif -} - -/** - * g_strncasecmp: - * @s1: a string. - * @s2: a string to compare with @s1. - * @n: the maximum number of characters to compare. - * - * A case-insensitive string comparison, corresponding to the standard - * strncasecmp() function on platforms which support it. - * It is similar to g_strcasecmp() except it only compares the first @n - * characters of the strings. - * - * Return value: 0 if the strings match, a negative value if @s1 < @s2, - * or a positive value if @s1 > @s2. - * - * Deprecated:2.2: The problem with g_strncasecmp() is that it does the - * comparison by calling toupper()/tolower(). These functions are - * locale-specific and operate on single bytes. However, it is impossible - * to handle things correctly from an I18N standpoint by operating on - * bytes, since characters may be multibyte. Thus g_strncasecmp() is - * broken if your string is guaranteed to be ASCII, since it's - * locale-sensitive, and it's broken if your string is localized, since - * it doesn't work on many encodings at all, including UTF-8, EUC-JP, - * etc. - * - * There are therefore two replacement functions: g_ascii_strncasecmp(), - * which only works on ASCII and is not locale-sensitive, and - * g_utf8_casefold(), which is good for case-insensitive sorting of UTF-8. - **/ -gint -g_strncasecmp (const gchar *s1, - const gchar *s2, - guint n) -{ -#ifdef HAVE_STRNCASECMP - return strncasecmp (s1, s2, n); -#else - gint c1, c2; - - g_return_val_if_fail (s1 != NULL, 0); - g_return_val_if_fail (s2 != NULL, 0); - - while (n && *s1 && *s2) - { - n -= 1; - /* According to A. Cox, some platforms have islower's that - * don't work right on non-uppercase - */ - c1 = isupper ((guchar)*s1) ? tolower ((guchar)*s1) : *s1; - c2 = isupper ((guchar)*s2) ? tolower ((guchar)*s2) : *s2; - if (c1 != c2) - return (c1 - c2); - s1++; s2++; - } - - if (n) - return (((gint) (guchar) *s1) - ((gint) (guchar) *s2)); - else - return 0; -#endif -} - -gchar* -g_strdelimit (gchar *string, - const gchar *delimiters, - gchar new_delim) -{ - register gchar *c; - - g_return_val_if_fail (string != NULL, NULL); - - if (!delimiters) - delimiters = G_STR_DELIMITERS; - - for (c = string; *c; c++) - { - if (strchr (delimiters, *c)) - *c = new_delim; - } - - return string; -} - -gchar* -g_strcanon (gchar *string, - const gchar *valid_chars, - gchar substitutor) -{ - register gchar *c; - - g_return_val_if_fail (string != NULL, NULL); - g_return_val_if_fail (valid_chars != NULL, NULL); - - for (c = string; *c; c++) - { - if (!strchr (valid_chars, *c)) - *c = substitutor; - } - - return string; -} - -gchar* -g_strcompress (const gchar *source) -{ - const gchar *p = source, *octal; - gchar *dest = g_malloc (strlen (source) + 1); - gchar *q = dest; - - while (*p) - { - if (*p == '\\') - { - p++; - switch (*p) - { - case '\0': - g_warning ("g_strcompress: trailing \\"); - goto out; - case '0': case '1': case '2': case '3': case '4': - case '5': case '6': case '7': - *q = 0; - octal = p; - while ((p < octal + 3) && (*p >= '0') && (*p <= '7')) - { - *q = (*q * 8) + (*p - '0'); - p++; - } - q++; - p--; - break; - case 'b': - *q++ = '\b'; - break; - case 'f': - *q++ = '\f'; - break; - case 'n': - *q++ = '\n'; - break; - case 'r': - *q++ = '\r'; - break; - case 't': - *q++ = '\t'; - break; - default: /* Also handles \" and \\ */ - *q++ = *p; - break; - } - } - else - *q++ = *p; - p++; - } -out: - *q = 0; - - return dest; -} - -gchar * -g_strescape (const gchar *source, - const gchar *exceptions) -{ - const guchar *p; - gchar *dest; - gchar *q; - guchar excmap[256]; - - g_return_val_if_fail (source != NULL, NULL); - - p = (guchar *) source; - /* Each source byte needs maximally four destination chars (\777) */ - q = dest = g_malloc (strlen (source) * 4 + 1); - - memset (excmap, 0, 256); - if (exceptions) - { - guchar *e = (guchar *) exceptions; - - while (*e) - { - excmap[*e] = 1; - e++; - } - } - - while (*p) - { - if (excmap[*p]) - *q++ = *p; - else - { - switch (*p) - { - case '\b': - *q++ = '\\'; - *q++ = 'b'; - break; - case '\f': - *q++ = '\\'; - *q++ = 'f'; - break; - case '\n': - *q++ = '\\'; - *q++ = 'n'; - break; - case '\r': - *q++ = '\\'; - *q++ = 'r'; - break; - case '\t': - *q++ = '\\'; - *q++ = 't'; - break; - case '\\': - *q++ = '\\'; - *q++ = '\\'; - break; - case '"': - *q++ = '\\'; - *q++ = '"'; - break; - default: - if ((*p < ' ') || (*p >= 0177)) - { - *q++ = '\\'; - *q++ = '0' + (((*p) >> 6) & 07); - *q++ = '0' + (((*p) >> 3) & 07); - *q++ = '0' + ((*p) & 07); - } - else - *q++ = *p; - break; - } - } - p++; - } - *q = 0; - return dest; -} - -gchar* -g_strchug (gchar *string) -{ - guchar *start; - - g_return_val_if_fail (string != NULL, NULL); - - for (start = (guchar*) string; *start && g_ascii_isspace (*start); start++) - ; - - g_memmove (string, start, strlen ((gchar *) start) + 1); - - return string; -} - -gchar* -g_strchomp (gchar *string) -{ - gsize len; - - g_return_val_if_fail (string != NULL, NULL); - - len = strlen (string); - while (len--) - { - if (g_ascii_isspace ((guchar) string[len])) - string[len] = '\0'; - else - break; - } - - return string; -} - -/** - * g_strsplit: - * @string: a string to split. - * @delimiter: a string which specifies the places at which to split the string. - * The delimiter is not included in any of the resulting strings, unless - * @max_tokens is reached. - * @max_tokens: the maximum number of pieces to split @string into. If this is - * less than 1, the string is split completely. - * - * Splits a string into a maximum of @max_tokens pieces, using the given - * @delimiter. If @max_tokens is reached, the remainder of @string is appended - * to the last token. - * - * As a special case, the result of splitting the empty string "" is an empty - * vector, not a vector containing a single string. The reason for this - * special case is that being able to represent a empty vector is typically - * more useful than consistent handling of empty elements. If you do need - * to represent empty elements, you'll need to check for the empty string - * before calling g_strsplit(). - * - * Return value: a newly-allocated %NULL-terminated array of strings. Use - * g_strfreev() to free it. - **/ -gchar** -g_strsplit (const gchar *string, - const gchar *delimiter, - gint max_tokens) -{ - GSList *string_list = NULL, *slist; - gchar **str_array, *s; - guint n = 0; - const gchar *remainder; - - g_return_val_if_fail (string != NULL, NULL); - g_return_val_if_fail (delimiter != NULL, NULL); - g_return_val_if_fail (delimiter[0] != '\0', NULL); - - if (max_tokens < 1) - max_tokens = G_MAXINT; - - remainder = string; - s = strstr (remainder, delimiter); - if (s) - { - gsize delimiter_len = strlen (delimiter); - - while (--max_tokens && s) - { - gsize len; - - len = s - remainder; - string_list = g_slist_prepend (string_list, - g_strndup (remainder, len)); - n++; - remainder = s + delimiter_len; - s = strstr (remainder, delimiter); - } - } - if (*string) - { - n++; - string_list = g_slist_prepend (string_list, g_strdup (remainder)); - } - - str_array = g_new (gchar*, n + 1); - - str_array[n--] = NULL; - for (slist = string_list; slist; slist = slist->next) - str_array[n--] = slist->data; - - g_slist_free (string_list); - - return str_array; -} - -/** - * g_strsplit_set: - * @string: The string to be tokenized - * @delimiters: A nul-terminated string containing bytes that are used - * to split the string. - * @max_tokens: The maximum number of tokens to split @string into. - * If this is less than 1, the string is split completely - * - * Splits @string into a number of tokens not containing any of the characters - * in @delimiter. A token is the (possibly empty) longest string that does not - * contain any of the characters in @delimiters. If @max_tokens is reached, the - * remainder is appended to the last token. - * - * For example the result of g_strsplit_set ("abc:def/ghi", ":/", -1) is a - * %NULL-terminated vector containing the three strings "abc", "def", - * and "ghi". - * - * The result if g_strsplit_set (":def/ghi:", ":/", -1) is a %NULL-terminated - * vector containing the four strings "", "def", "ghi", and "". - * - * As a special case, the result of splitting the empty string "" is an empty - * vector, not a vector containing a single string. The reason for this - * special case is that being able to represent a empty vector is typically - * more useful than consistent handling of empty elements. If you do need - * to represent empty elements, you'll need to check for the empty string - * before calling g_strsplit_set(). - * - * Note that this function works on bytes not characters, so it can't be used - * to delimit UTF-8 strings for anything but ASCII characters. - * - * Return value: a newly-allocated %NULL-terminated array of strings. Use - * g_strfreev() to free it. - * - * Since: 2.4 - **/ -gchar ** -g_strsplit_set (const gchar *string, - const gchar *delimiters, - gint max_tokens) -{ - gboolean delim_table[256]; - GSList *tokens, *list; - gint n_tokens; - const gchar *s; - const gchar *current; - gchar *token; - gchar **result; - - g_return_val_if_fail (string != NULL, NULL); - g_return_val_if_fail (delimiters != NULL, NULL); - - if (max_tokens < 1) - max_tokens = G_MAXINT; - - if (*string == '\0') - { - result = g_new (char *, 1); - result[0] = NULL; - return result; - } - - memset (delim_table, FALSE, sizeof (delim_table)); - for (s = delimiters; *s != '\0'; ++s) - delim_table[*(guchar *)s] = TRUE; - - tokens = NULL; - n_tokens = 0; - - s = current = string; - while (*s != '\0') - { - if (delim_table[*(guchar *)s] && n_tokens + 1 < max_tokens) - { - token = g_strndup (current, s - current); - tokens = g_slist_prepend (tokens, token); - ++n_tokens; - - current = s + 1; - } - - ++s; - } - - token = g_strndup (current, s - current); - tokens = g_slist_prepend (tokens, token); - ++n_tokens; - - result = g_new (gchar *, n_tokens + 1); - - result[n_tokens] = NULL; - for (list = tokens; list != NULL; list = list->next) - result[--n_tokens] = list->data; - - g_slist_free (tokens); - - return result; -} - -/** - * g_strfreev: - * @str_array: a %NULL-terminated array of strings to free. - - * Frees a %NULL-terminated array of strings, and the array itself. - * If called on a %NULL value, g_strfreev() simply returns. - **/ -void -g_strfreev (gchar **str_array) -{ - if (str_array) - { - int i; - - for (i = 0; str_array[i] != NULL; i++) - g_free (str_array[i]); - - g_free (str_array); - } -} - -/** - * g_strdupv: - * @str_array: %NULL-terminated array of strings. - * - * Copies %NULL-terminated array of strings. The copy is a deep copy; - * the new array should be freed by first freeing each string, then - * the array itself. g_strfreev() does this for you. If called - * on a %NULL value, g_strdupv() simply returns %NULL. - * - * Return value: a new %NULL-terminated array of strings. - **/ -gchar** -g_strdupv (gchar **str_array) -{ - if (str_array) - { - gint i; - gchar **retval; - - i = 0; - while (str_array[i]) - ++i; - - retval = g_new (gchar*, i + 1); - - i = 0; - while (str_array[i]) - { - retval[i] = g_strdup (str_array[i]); - ++i; - } - retval[i] = NULL; - - return retval; - } - else - return NULL; -} - -/** - * g_strjoinv: - * @separator: a string to insert between each of the strings, or %NULL - * @str_array: a %NULL-terminated array of strings to join - * - * Joins a number of strings together to form one long string, with the - * optional @separator inserted between each of them. The returned string - * should be freed with g_free(). - * - * Returns: a newly-allocated string containing all of the strings joined - * together, with @separator between them - */ -gchar* -g_strjoinv (const gchar *separator, - gchar **str_array) -{ - gchar *string; - gchar *ptr; - - g_return_val_if_fail (str_array != NULL, NULL); - - if (separator == NULL) - separator = ""; - - if (*str_array) - { - gint i; - gsize len; - gsize separator_len; - - separator_len = strlen (separator); - /* First part, getting length */ - len = 1 + strlen (str_array[0]); - for (i = 1; str_array[i] != NULL; i++) - len += strlen (str_array[i]); - len += separator_len * (i - 1); - - /* Second part, building string */ - string = g_new (gchar, len); - ptr = g_stpcpy (string, *str_array); - for (i = 1; str_array[i] != NULL; i++) - { - ptr = g_stpcpy (ptr, separator); - ptr = g_stpcpy (ptr, str_array[i]); - } - } - else - string = g_strdup (""); - - return string; -} - -/** - * g_strjoin: - * @separator: a string to insert between each of the strings, or %NULL - * @Varargs: a %NULL-terminated list of strings to join - * - * Joins a number of strings together to form one long string, with the - * optional @separator inserted between each of them. The returned string - * should be freed with g_free(). - * - * Returns: a newly-allocated string containing all of the strings joined - * together, with @separator between them - */ -gchar* -g_strjoin (const gchar *separator, - ...) -{ - gchar *string, *s; - va_list args; - gsize len; - gsize separator_len; - gchar *ptr; - - if (separator == NULL) - separator = ""; - - separator_len = strlen (separator); - - va_start (args, separator); - - s = va_arg (args, gchar*); - - if (s) - { - /* First part, getting length */ - len = 1 + strlen (s); - - s = va_arg (args, gchar*); - while (s) - { - len += separator_len + strlen (s); - s = va_arg (args, gchar*); - } - va_end (args); - - /* Second part, building string */ - string = g_new (gchar, len); - - va_start (args, separator); - - s = va_arg (args, gchar*); - ptr = g_stpcpy (string, s); - - s = va_arg (args, gchar*); - while (s) - { - ptr = g_stpcpy (ptr, separator); - ptr = g_stpcpy (ptr, s); - s = va_arg (args, gchar*); - } - } - else - string = g_strdup (""); - - va_end (args); - - return string; -} - - -/** - * g_strstr_len: - * @haystack: a string. - * @haystack_len: the maximum length of @haystack. Note that -1 is - * a valid length, if @haystack is nul-terminated, meaning it will - * search through the whole string. - * @needle: the string to search for. - * - * Searches the string @haystack for the first occurrence - * of the string @needle, limiting the length of the search - * to @haystack_len. - * - * Return value: a pointer to the found occurrence, or - * %NULL if not found. - **/ -gchar * -g_strstr_len (const gchar *haystack, - gssize haystack_len, - const gchar *needle) -{ - g_return_val_if_fail (haystack != NULL, NULL); - g_return_val_if_fail (needle != NULL, NULL); - - if (haystack_len < 0) - return strstr (haystack, needle); - else - { - const gchar *p = haystack; - gsize needle_len = strlen (needle); - const gchar *end; - gsize i; - - if (needle_len == 0) - return (gchar *)haystack; - - if (haystack_len < needle_len) - return NULL; - - end = haystack + haystack_len - needle_len; - - while (p <= end && *p) - { - for (i = 0; i < needle_len; i++) - if (p[i] != needle[i]) - goto next; - - return (gchar *)p; - - next: - p++; - } - - return NULL; - } -} - -/** - * g_strrstr: - * @haystack: a nul-terminated string. - * @needle: the nul-terminated string to search for. - * - * Searches the string @haystack for the last occurrence - * of the string @needle. - * - * Return value: a pointer to the found occurrence, or - * %NULL if not found. - **/ -gchar * -g_strrstr (const gchar *haystack, - const gchar *needle) -{ - gsize i; - gsize needle_len; - gsize haystack_len; - const gchar *p; - - g_return_val_if_fail (haystack != NULL, NULL); - g_return_val_if_fail (needle != NULL, NULL); - - needle_len = strlen (needle); - haystack_len = strlen (haystack); - - if (needle_len == 0) - return (gchar *)haystack; - - if (haystack_len < needle_len) - return NULL; - - p = haystack + haystack_len - needle_len; - - while (p >= haystack) - { - for (i = 0; i < needle_len; i++) - if (p[i] != needle[i]) - goto next; - - return (gchar *)p; - - next: - p--; - } - - return NULL; -} - -/** - * g_strrstr_len: - * @haystack: a nul-terminated string. - * @haystack_len: the maximum length of @haystack. - * @needle: the nul-terminated string to search for. - * - * Searches the string @haystack for the last occurrence - * of the string @needle, limiting the length of the search - * to @haystack_len. - * - * Return value: a pointer to the found occurrence, or - * %NULL if not found. - **/ -gchar * -g_strrstr_len (const gchar *haystack, - gssize haystack_len, - const gchar *needle) -{ - g_return_val_if_fail (haystack != NULL, NULL); - g_return_val_if_fail (needle != NULL, NULL); - - if (haystack_len < 0) - return g_strrstr (haystack, needle); - else - { - gsize needle_len = strlen (needle); - const gchar *haystack_max = haystack + haystack_len; - const gchar *p = haystack; - gsize i; - - while (p < haystack_max && *p) - p++; - - if (p < haystack + needle_len) - return NULL; - - p -= needle_len; - - while (p >= haystack) - { - for (i = 0; i < needle_len; i++) - if (p[i] != needle[i]) - goto next; - - return (gchar *)p; - - next: - p--; - } - - return NULL; - } -} - - -/** - * g_str_has_suffix: - * @str: a nul-terminated string. - * @suffix: the nul-terminated suffix to look for. - * - * Looks whether the string @str ends with @suffix. - * - * Return value: %TRUE if @str end with @suffix, %FALSE otherwise. - * - * Since: 2.2 - **/ -gboolean -g_str_has_suffix (const gchar *str, - const gchar *suffix) -{ - int str_len; - int suffix_len; - - g_return_val_if_fail (str != NULL, FALSE); - g_return_val_if_fail (suffix != NULL, FALSE); - - str_len = strlen (str); - suffix_len = strlen (suffix); - - if (str_len < suffix_len) - return FALSE; - - return strcmp (str + str_len - suffix_len, suffix) == 0; -} - -/** - * g_str_has_prefix: - * @str: a nul-terminated string. - * @prefix: the nul-terminated prefix to look for. - * - * Looks whether the string @str begins with @prefix. - * - * Return value: %TRUE if @str begins with @prefix, %FALSE otherwise. - * - * Since: 2.2 - **/ -gboolean -g_str_has_prefix (const gchar *str, - const gchar *prefix) -{ - int str_len; - int prefix_len; - - g_return_val_if_fail (str != NULL, FALSE); - g_return_val_if_fail (prefix != NULL, FALSE); - - str_len = strlen (str); - prefix_len = strlen (prefix); - - if (str_len < prefix_len) - return FALSE; - - return strncmp (str, prefix, prefix_len) == 0; -} - - -/** - * g_strip_context: - * @msgid: a string - * @msgval: another string - * - * An auxiliary function for gettext() support (see Q_()). - * - * Return value: @msgval, unless @msgval is identical to @msgid and contains - * a '|' character, in which case a pointer to the substring of msgid after - * the first '|' character is returned. - * - * Since: 2.4 - **/ -G_CONST_RETURN gchar * -g_strip_context (const gchar *msgid, - const gchar *msgval) -{ - if (msgval == msgid) - { - const char *c = strchr (msgid, '|'); - if (c != NULL) - return c + 1; - } - - return msgval; -} - - -/** - * g_strv_length: - * @str_array: a %NULL-terminated array of strings. - * - * Returns the length of the given %NULL-terminated - * string array @str_array. - * - * Return value: length of @str_array. - * - * Since: 2.6 - **/ -guint -g_strv_length (gchar **str_array) -{ - guint i = 0; - - g_return_val_if_fail (str_array != NULL, 0); - - while (str_array[i]) - ++i; - - return i; -} - - -/** - * g_dpgettext: - * @domain: the translation domain to use, or %NULL to use - * the domain set with textdomain() - * @msgctxtid: a combined message context and message id, separated - * by a \004 character - * @msgidoffset: the offset of the message id in @msgctxid - * - * This function is a variant of g_dgettext() which supports - * a disambiguating message context. GNU gettext uses the - * '\004' character to separate the message context and - * message id in @msgctxtid. - * If 0 is passed as @msgidoffset, this function will fall back to - * trying to use the deprecated convention of using "|" as a separation - * character. - * - * This uses g_dgettext() internally. See that functions for differences - * with dgettext() proper. - * - * Applications should normally not use this function directly, - * but use the C_() macro for translations with context. - * - * Returns: The translated string - * - * Since: 2.16 - */ -G_CONST_RETURN gchar * -g_dpgettext (const gchar *domain, - const gchar *msgctxtid, - gsize msgidoffset) -{ - const gchar *translation; - gchar *sep; - - translation = g_dgettext (domain, msgctxtid); - - if (translation == msgctxtid) - { - if (msgidoffset > 0) - return msgctxtid + msgidoffset; - - sep = strchr (msgctxtid, '|'); - - if (sep) - { - /* try with '\004' instead of '|', in case - * xgettext -kQ_:1g was used - */ - gchar *tmp = g_alloca (strlen (msgctxtid) + 1); - strcpy (tmp, msgctxtid); - tmp[sep - msgctxtid] = '\004'; - - translation = g_dgettext (domain, tmp); - - if (translation == tmp) - return sep + 1; - } - } - - return translation; -} - -/* This function is taken from gettext.h - * GNU gettext uses '\004' to separate context and msgid in .mo files. - */ -/** - * g_dpgettext2: - * @domain: the translation domain to use, or %NULL to use - * the domain set with textdomain() - * @context: the message context - * @msgid: the message - * - * This function is a variant of g_dgettext() which supports - * a disambiguating message context. GNU gettext uses the - * '\004' character to separate the message context and - * message id in @msgctxtid. - * - * This uses g_dgettext() internally. See that functions for differences - * with dgettext() proper. - * - * This function differs from C_() in that it is not a macro and - * thus you may use non-string-literals as context and msgid arguments. - * - * Returns: The translated string - * - * Since: 2.18 - */ -G_CONST_RETURN char * -g_dpgettext2 (const char *domain, - const char *msgctxt, - const char *msgid) -{ - size_t msgctxt_len = strlen (msgctxt) + 1; - size_t msgid_len = strlen (msgid) + 1; - const char *translation; - char* msg_ctxt_id; - - msg_ctxt_id = g_alloca (msgctxt_len + msgid_len); - - memcpy (msg_ctxt_id, msgctxt, msgctxt_len - 1); - msg_ctxt_id[msgctxt_len - 1] = '\004'; - memcpy (msg_ctxt_id + msgctxt_len, msgid, msgid_len); - - translation = g_dgettext (domain, msg_ctxt_id); - - if (translation == msg_ctxt_id) - { - /* try the old way of doing message contexts, too */ - msg_ctxt_id[msgctxt_len - 1] = '|'; - translation = g_dgettext (domain, msg_ctxt_id); - - if (translation == msg_ctxt_id) - return msgid; - } - - return translation; -} - -static gboolean -_g_dgettext_should_translate (void) -{ - static gsize translate = 0; - enum { - SHOULD_TRANSLATE = 1, - SHOULD_NOT_TRANSLATE = 2 - }; - - if (G_UNLIKELY (g_once_init_enter (&translate))) - { - gboolean should_translate = TRUE; - - const char *default_domain = textdomain (NULL); - const char *translator_comment = gettext (""); -#ifndef G_OS_WIN32 - const char *translate_locale = setlocale (LC_MESSAGES, NULL); -#else - const char *translate_locale = g_win32_getlocale (); -#endif - /* We should NOT translate only if all the following hold: - * - user has called textdomain() and set textdomain to non-default - * - default domain has no translations - * - locale does not start with "en_" and is not "C" - * - * Rationale: - * - If text domain is still the default domain, maybe user calls - * it later. Continue with old behavior of translating. - * - If locale starts with "en_", we can continue using the - * translations even if the app doesn't have translations for - * this locale. That is, en_UK and en_CA for example. - * - If locale is "C", maybe user calls setlocale(LC_ALL,"") later. - * Continue with old behavior of translating. - */ - if (0 != strcmp (default_domain, "messages") && - '\0' == *translator_comment && - 0 != strncmp (translate_locale, "en_", 3) && - 0 != strcmp (translate_locale, "C")) - should_translate = FALSE; - - g_once_init_leave (&translate, - should_translate ? - SHOULD_TRANSLATE : - SHOULD_NOT_TRANSLATE); - } - - return translate == SHOULD_TRANSLATE; -} - -/** - * g_dgettext: - * @domain: the translation domain to use, or %NULL to use - * the domain set with textdomain() - * @msgid: message to translate - * - * This function is a wrapper of dgettext() which does not translate - * the message if the default domain as set with textdomain() has no - * translations for the current locale. - * - * The advantage of using this function over dgettext() proper is that - * libraries using this function (like GTK+) will not use translations - * if the application using the library does not have translations for - * the current locale. This results in a consistent English-only - * interface instead of one having partial translations. For this - * feature to work, the call to textdomain() and setlocale() should - * precede any g_dgettext() invocations. For GTK+, it means calling - * textdomain() before gtk_init or its variants. - * - * This function disables translations if and only if upon its first - * call all the following conditions hold: - * - * @domain is not %NULL - * textdomain() has been called to set a default text domain - * there is no translations available for the default text domain - * and the current locale - * current locale is not "C" or any English locales (those - * starting with "en_") - * - * - * Note that this behavior may not be desired for example if an application - * has its untranslated messages in a language other than English. In those - * cases the application should call textdomain() after initializing GTK+. - * - * Applications should normally not use this function directly, - * but use the _() macro for translations. - * - * Returns: The translated string - * - * Since: 2.18 - */ -G_CONST_RETURN gchar * -g_dgettext (const gchar *domain, - const gchar *msgid) -{ - if (domain && G_UNLIKELY (!_g_dgettext_should_translate ())) - return msgid; - - return dgettext (domain, msgid); -} - -/** - * g_dngettext: - * @domain: the translation domain to use, or %NULL to use - * the domain set with textdomain() - * @msgid: message to translate - * @msgid_plural: plural form of the message - * @n: the quantity for which translation is needed - * - * This function is a wrapper of dngettext() which does not translate - * the message if the default domain as set with textdomain() has no - * translations for the current locale. - * - * See g_dgettext() for details of how this differs from dngettext() - * proper. - * - * Returns: The translated string - * - * Since: 2.18 - */ -G_CONST_RETURN gchar * -g_dngettext (const gchar *domain, - const gchar *msgid, - const gchar *msgid_plural, - gulong n) -{ - if (domain && G_UNLIKELY (!_g_dgettext_should_translate ())) - return n == 1 ? msgid : msgid_plural; - - return dngettext (domain, msgid, msgid_plural, n); -} - - -#define __G_STRFUNCS_C__ -#include "galiasdef.c" diff --git a/lib/win32/glib-2.20.4/glib/gstrfuncs.h b/lib/win32/glib-2.20.4/glib/gstrfuncs.h deleted file mode 100644 index ee291f80fc88a..0000000000000 --- a/lib/win32/glib-2.20.4/glib/gstrfuncs.h +++ /dev/null @@ -1,266 +0,0 @@ -/* GLIB - Library of useful routines for C programming - * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library 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 - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ - -/* - * Modified by the GLib Team and others 1997-2000. See the AUTHORS - * file for a list of people on the GLib Team. See the ChangeLog - * files for a list of changes. These files are distributed with - * GLib at ftp://ftp.gtk.org/pub/gtk/. - */ - -#if defined(G_DISABLE_SINGLE_INCLUDES) && !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION) -#error "Only can be included directly." -#endif - -#ifndef __G_STRFUNCS_H__ -#define __G_STRFUNCS_H__ - -#include -#include - -G_BEGIN_DECLS - -/* Functions like the ones in that are not affected by locale. */ -typedef enum { - G_ASCII_ALNUM = 1 << 0, - G_ASCII_ALPHA = 1 << 1, - G_ASCII_CNTRL = 1 << 2, - G_ASCII_DIGIT = 1 << 3, - G_ASCII_GRAPH = 1 << 4, - G_ASCII_LOWER = 1 << 5, - G_ASCII_PRINT = 1 << 6, - G_ASCII_PUNCT = 1 << 7, - G_ASCII_SPACE = 1 << 8, - G_ASCII_UPPER = 1 << 9, - G_ASCII_XDIGIT = 1 << 10 -} GAsciiType; - -GLIB_VAR const guint16 * const g_ascii_table; - -#define g_ascii_isalnum(c) \ - ((g_ascii_table[(guchar) (c)] & G_ASCII_ALNUM) != 0) - -#define g_ascii_isalpha(c) \ - ((g_ascii_table[(guchar) (c)] & G_ASCII_ALPHA) != 0) - -#define g_ascii_iscntrl(c) \ - ((g_ascii_table[(guchar) (c)] & G_ASCII_CNTRL) != 0) - -#define g_ascii_isdigit(c) \ - ((g_ascii_table[(guchar) (c)] & G_ASCII_DIGIT) != 0) - -#define g_ascii_isgraph(c) \ - ((g_ascii_table[(guchar) (c)] & G_ASCII_GRAPH) != 0) - -#define g_ascii_islower(c) \ - ((g_ascii_table[(guchar) (c)] & G_ASCII_LOWER) != 0) - -#define g_ascii_isprint(c) \ - ((g_ascii_table[(guchar) (c)] & G_ASCII_PRINT) != 0) - -#define g_ascii_ispunct(c) \ - ((g_ascii_table[(guchar) (c)] & G_ASCII_PUNCT) != 0) - -#define g_ascii_isspace(c) \ - ((g_ascii_table[(guchar) (c)] & G_ASCII_SPACE) != 0) - -#define g_ascii_isupper(c) \ - ((g_ascii_table[(guchar) (c)] & G_ASCII_UPPER) != 0) - -#define g_ascii_isxdigit(c) \ - ((g_ascii_table[(guchar) (c)] & G_ASCII_XDIGIT) != 0) - -gchar g_ascii_tolower (gchar c) G_GNUC_CONST; -gchar g_ascii_toupper (gchar c) G_GNUC_CONST; - -gint g_ascii_digit_value (gchar c) G_GNUC_CONST; -gint g_ascii_xdigit_value (gchar c) G_GNUC_CONST; - -/* String utility functions that modify a string argument or - * return a constant string that must not be freed. - */ -#define G_STR_DELIMITERS "_-|> <." -gchar* g_strdelimit (gchar *string, - const gchar *delimiters, - gchar new_delimiter); -gchar* g_strcanon (gchar *string, - const gchar *valid_chars, - gchar substitutor); -G_CONST_RETURN gchar* g_strerror (gint errnum) G_GNUC_CONST; -G_CONST_RETURN gchar* g_strsignal (gint signum) G_GNUC_CONST; -gchar* g_strreverse (gchar *string); -gsize g_strlcpy (gchar *dest, - const gchar *src, - gsize dest_size); -gsize g_strlcat (gchar *dest, - const gchar *src, - gsize dest_size); -gchar * g_strstr_len (const gchar *haystack, - gssize haystack_len, - const gchar *needle); -gchar * g_strrstr (const gchar *haystack, - const gchar *needle); -gchar * g_strrstr_len (const gchar *haystack, - gssize haystack_len, - const gchar *needle); - -gboolean g_str_has_suffix (const gchar *str, - const gchar *suffix); -gboolean g_str_has_prefix (const gchar *str, - const gchar *prefix); - -/* String to/from double conversion functions */ - -gdouble g_strtod (const gchar *nptr, - gchar **endptr); -gdouble g_ascii_strtod (const gchar *nptr, - gchar **endptr); -guint64 g_ascii_strtoull (const gchar *nptr, - gchar **endptr, - guint base); -gint64 g_ascii_strtoll (const gchar *nptr, - gchar **endptr, - guint base); -/* 29 bytes should enough for all possible values that - * g_ascii_dtostr can produce. - * Then add 10 for good measure */ -#define G_ASCII_DTOSTR_BUF_SIZE (29 + 10) -gchar * g_ascii_dtostr (gchar *buffer, - gint buf_len, - gdouble d); -gchar * g_ascii_formatd (gchar *buffer, - gint buf_len, - const gchar *format, - gdouble d); - -/* removes leading spaces */ -gchar* g_strchug (gchar *string); -/* removes trailing spaces */ -gchar* g_strchomp (gchar *string); -/* removes leading & trailing spaces */ -#define g_strstrip( string ) g_strchomp (g_strchug (string)) - -gint g_ascii_strcasecmp (const gchar *s1, - const gchar *s2); -gint g_ascii_strncasecmp (const gchar *s1, - const gchar *s2, - gsize n); -gchar* g_ascii_strdown (const gchar *str, - gssize len) G_GNUC_MALLOC; -gchar* g_ascii_strup (const gchar *str, - gssize len) G_GNUC_MALLOC; - -#ifndef G_DISABLE_DEPRECATED - -/* The following four functions are deprecated and will be removed in - * the next major release. They use the locale-specific tolower and - * toupper, which is almost never the right thing. - */ - -gint g_strcasecmp (const gchar *s1, - const gchar *s2); -gint g_strncasecmp (const gchar *s1, - const gchar *s2, - guint n); -gchar* g_strdown (gchar *string); -gchar* g_strup (gchar *string); - -#endif /* G_DISABLE_DEPRECATED */ - -/* String utility functions that return a newly allocated string which - * ought to be freed with g_free from the caller at some point. - */ -gchar* g_strdup (const gchar *str) G_GNUC_MALLOC; -gchar* g_strdup_printf (const gchar *format, - ...) G_GNUC_PRINTF (1, 2) G_GNUC_MALLOC; -gchar* g_strdup_vprintf (const gchar *format, - va_list args) G_GNUC_MALLOC; -gchar* g_strndup (const gchar *str, - gsize n) G_GNUC_MALLOC; -gchar* g_strnfill (gsize length, - gchar fill_char) G_GNUC_MALLOC; -gchar* g_strconcat (const gchar *string1, - ...) G_GNUC_MALLOC G_GNUC_NULL_TERMINATED; -gchar* g_strjoin (const gchar *separator, - ...) G_GNUC_MALLOC G_GNUC_NULL_TERMINATED; - -/* Make a copy of a string interpreting C string -style escape - * sequences. Inverse of g_strescape. The recognized sequences are \b - * \f \n \r \t \\ \" and the octal format. - */ -gchar* g_strcompress (const gchar *source) G_GNUC_MALLOC; - -/* Copy a string escaping nonprintable characters like in C strings. - * Inverse of g_strcompress. The exceptions parameter, if non-NULL, points - * to a string containing characters that are not to be escaped. - * - * Deprecated API: gchar* g_strescape (const gchar *source); - * Luckily this function wasn't used much, using NULL as second parameter - * provides mostly identical semantics. - */ -gchar* g_strescape (const gchar *source, - const gchar *exceptions) G_GNUC_MALLOC; - -gpointer g_memdup (gconstpointer mem, - guint byte_size) G_GNUC_MALLOC G_GNUC_ALLOC_SIZE(2); - -/* NULL terminated string arrays. - * g_strsplit(), g_strsplit_set() split up string into max_tokens tokens - * at delim and return a newly allocated string array. - * g_strjoinv() concatenates all of str_array's strings, sliding in an - * optional separator, the returned string is newly allocated. - * g_strfreev() frees the array itself and all of its strings. - * g_strdupv() copies a NULL-terminated array of strings - * g_strv_length() returns the length of a NULL-terminated array of strings - */ -gchar** g_strsplit (const gchar *string, - const gchar *delimiter, - gint max_tokens) G_GNUC_MALLOC; -gchar ** g_strsplit_set (const gchar *string, - const gchar *delimiters, - gint max_tokens) G_GNUC_MALLOC; -gchar* g_strjoinv (const gchar *separator, - gchar **str_array) G_GNUC_MALLOC; -void g_strfreev (gchar **str_array); -gchar** g_strdupv (gchar **str_array) G_GNUC_MALLOC; -guint g_strv_length (gchar **str_array); - -gchar* g_stpcpy (gchar *dest, - const char *src); - -G_CONST_RETURN gchar *g_strip_context (const gchar *msgid, - const gchar *msgval) G_GNUC_FORMAT(1); - -G_CONST_RETURN gchar *g_dgettext (const gchar *domain, - const gchar *msgid) G_GNUC_FORMAT(2); - -G_CONST_RETURN gchar *g_dngettext (const gchar *domain, - const gchar *msgid, - const gchar *msgid_plural, - gulong n) G_GNUC_FORMAT(3); -G_CONST_RETURN gchar *g_dpgettext (const gchar *domain, - const gchar *msgctxtid, - gsize msgidoffset) G_GNUC_FORMAT(2); -G_CONST_RETURN gchar *g_dpgettext2 (const gchar *domain, - const gchar *context, - const gchar *msgid) G_GNUC_FORMAT(3); - -G_END_DECLS - -#endif /* __G_STRFUNCS_H__ */ diff --git a/lib/win32/glib-2.20.4/glib/gstring.c b/lib/win32/glib-2.20.4/glib/gstring.c deleted file mode 100644 index bc2a9d2464fd1..0000000000000 --- a/lib/win32/glib-2.20.4/glib/gstring.c +++ /dev/null @@ -1,1482 +0,0 @@ -/* GLIB - Library of useful routines for C programming - * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library 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 - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ - -/* - * Modified by the GLib Team and others 1997-2000. See the AUTHORS - * file for a list of people on the GLib Team. See the ChangeLog - * files for a list of changes. These files are distributed with - * GLib at ftp://ftp.gtk.org/pub/gtk/. - */ - -/* - * MT safe - */ - -#include "config.h" - -#ifdef HAVE_UNISTD_H -#include -#endif -#include -#include -#include -#include -#include - -#include "glib.h" -#include "gprintf.h" - -#include "galias.h" - -struct _GStringChunk -{ - GHashTable *const_table; - GSList *storage_list; - gsize storage_next; - gsize this_size; - gsize default_size; -}; - -/* Hash Functions. - */ - -/** - * g_str_equal: - * @v1: a key - * @v2: a key to compare with @v1 - * - * Compares two strings for byte-by-byte equality and returns %TRUE - * if they are equal. It can be passed to g_hash_table_new() as the - * @key_equal_func parameter, when using strings as keys in a #GHashTable. - * - * Returns: %TRUE if the two keys match - */ -gboolean -g_str_equal (gconstpointer v1, - gconstpointer v2) -{ - const gchar *string1 = v1; - const gchar *string2 = v2; - - return strcmp (string1, string2) == 0; -} - -/** - * g_str_hash: - * @v: a string key - * - * Converts a string to a hash value. - * It can be passed to g_hash_table_new() as the @hash_func - * parameter, when using strings as keys in a #GHashTable. - * - * Returns: a hash value corresponding to the key - */ -guint -g_str_hash (gconstpointer v) -{ - /* 31 bit hash function */ - const signed char *p = v; - guint32 h = *p; - - if (h) - for (p += 1; *p != '\0'; p++) - h = (h << 5) - h + *p; - - return h; -} - -#define MY_MAXSIZE ((gsize)-1) - -static inline gsize -nearest_power (gsize base, gsize num) -{ - if (num > MY_MAXSIZE / 2) - { - return MY_MAXSIZE; - } - else - { - gsize n = base; - - while (n < num) - n <<= 1; - - return n; - } -} - -/* String Chunks. - */ - -/** - * g_string_chunk_new: - * @size: the default size of the blocks of memory which are - * allocated to store the strings. If a particular string - * is larger than this default size, a larger block of - * memory will be allocated for it. - * - * Creates a new #GStringChunk. - * - * Returns: a new #GStringChunk - */ -GStringChunk* -g_string_chunk_new (gsize size) -{ - GStringChunk *new_chunk = g_new (GStringChunk, 1); - gsize actual_size = 1; - - actual_size = nearest_power (1, size); - - new_chunk->const_table = NULL; - new_chunk->storage_list = NULL; - new_chunk->storage_next = actual_size; - new_chunk->default_size = actual_size; - new_chunk->this_size = actual_size; - - return new_chunk; -} - -/** - * g_string_chunk_free: - * @chunk: a #GStringChunk - * - * Frees all memory allocated by the #GStringChunk. - * After calling g_string_chunk_free() it is not safe to - * access any of the strings which were contained within it. - */ -void -g_string_chunk_free (GStringChunk *chunk) -{ - GSList *tmp_list; - - g_return_if_fail (chunk != NULL); - - if (chunk->storage_list) - { - for (tmp_list = chunk->storage_list; tmp_list; tmp_list = tmp_list->next) - g_free (tmp_list->data); - - g_slist_free (chunk->storage_list); - } - - if (chunk->const_table) - g_hash_table_destroy (chunk->const_table); - - g_free (chunk); -} - -/** - * g_string_chunk_clear: - * @chunk: a #GStringChunk - * - * Frees all strings contained within the #GStringChunk. - * After calling g_string_chunk_clear() it is not safe to - * access any of the strings which were contained within it. - * - * Since: 2.14 - */ -void -g_string_chunk_clear (GStringChunk *chunk) -{ - GSList *tmp_list; - - g_return_if_fail (chunk != NULL); - - if (chunk->storage_list) - { - for (tmp_list = chunk->storage_list; tmp_list; tmp_list = tmp_list->next) - g_free (tmp_list->data); - - g_slist_free (chunk->storage_list); - - chunk->storage_list = NULL; - chunk->storage_next = chunk->default_size; - chunk->this_size = chunk->default_size; - } - - if (chunk->const_table) - g_hash_table_remove_all (chunk->const_table); -} - -/** - * g_string_chunk_insert: - * @chunk: a #GStringChunk - * @string: the string to add - * - * Adds a copy of @string to the #GStringChunk. - * It returns a pointer to the new copy of the string - * in the #GStringChunk. The characters in the string - * can be changed, if necessary, though you should not - * change anything after the end of the string. - * - * Unlike g_string_chunk_insert_const(), this function - * does not check for duplicates. Also strings added - * with g_string_chunk_insert() will not be searched - * by g_string_chunk_insert_const() when looking for - * duplicates. - * - * Returns: a pointer to the copy of @string within - * the #GStringChunk - */ -gchar* -g_string_chunk_insert (GStringChunk *chunk, - const gchar *string) -{ - g_return_val_if_fail (chunk != NULL, NULL); - - return g_string_chunk_insert_len (chunk, string, -1); -} - -/** - * g_string_chunk_insert_const: - * @chunk: a #GStringChunk - * @string: the string to add - * - * Adds a copy of @string to the #GStringChunk, unless the same - * string has already been added to the #GStringChunk with - * g_string_chunk_insert_const(). - * - * This function is useful if you need to copy a large number - * of strings but do not want to waste space storing duplicates. - * But you must remember that there may be several pointers to - * the same string, and so any changes made to the strings - * should be done very carefully. - * - * Note that g_string_chunk_insert_const() will not return a - * pointer to a string added with g_string_chunk_insert(), even - * if they do match. - * - * Returns: a pointer to the new or existing copy of @string - * within the #GStringChunk - */ -gchar* -g_string_chunk_insert_const (GStringChunk *chunk, - const gchar *string) -{ - char* lookup; - - g_return_val_if_fail (chunk != NULL, NULL); - - if (!chunk->const_table) - chunk->const_table = g_hash_table_new (g_str_hash, g_str_equal); - - lookup = (char*) g_hash_table_lookup (chunk->const_table, (gchar *)string); - - if (!lookup) - { - lookup = g_string_chunk_insert (chunk, string); - g_hash_table_insert (chunk->const_table, lookup, lookup); - } - - return lookup; -} - -/** - * g_string_chunk_insert_len: - * @chunk: a #GStringChunk - * @string: bytes to insert - * @len: number of bytes of @string to insert, or -1 to insert a - * nul-terminated string - * - * Adds a copy of the first @len bytes of @string to the #GStringChunk. - * The copy is nul-terminated. - * - * Since this function does not stop at nul bytes, it is the caller's - * responsibility to ensure that @string has at least @len addressable - * bytes. - * - * The characters in the returned string can be changed, if necessary, - * though you should not change anything after the end of the string. - * - * Return value: a pointer to the copy of @string within the #GStringChunk - * - * Since: 2.4 - */ -gchar* -g_string_chunk_insert_len (GStringChunk *chunk, - const gchar *string, - gssize len) -{ - gssize size; - gchar* pos; - - g_return_val_if_fail (chunk != NULL, NULL); - - if (len < 0) - size = strlen (string); - else - size = len; - - if ((chunk->storage_next + size + 1) > chunk->this_size) - { - gsize new_size = nearest_power (chunk->default_size, size + 1); - - chunk->storage_list = g_slist_prepend (chunk->storage_list, - g_new (gchar, new_size)); - - chunk->this_size = new_size; - chunk->storage_next = 0; - } - - pos = ((gchar *) chunk->storage_list->data) + chunk->storage_next; - - *(pos + size) = '\0'; - - memcpy (pos, string, size); - - chunk->storage_next += size + 1; - - return pos; -} - -/* Strings. - */ -static void -g_string_maybe_expand (GString* string, - gsize len) -{ - if (string->len + len >= string->allocated_len) - { - string->allocated_len = nearest_power (1, string->len + len + 1); - string->str = g_realloc (string->str, string->allocated_len); - } -} - -/** - * g_string_sized_new: - * @dfl_size: the default size of the space allocated to - * hold the string - * - * Creates a new #GString, with enough space for @dfl_size - * bytes. This is useful if you are going to add a lot of - * text to the string and don't want it to be reallocated - * too often. - * - * Returns: the new #GString - */ -GString* -g_string_sized_new (gsize dfl_size) -{ - GString *string = g_slice_new (GString); - - string->allocated_len = 0; - string->len = 0; - string->str = NULL; - - g_string_maybe_expand (string, MAX (dfl_size, 2)); - string->str[0] = 0; - - return string; -} - -/** - * g_string_new: - * @init: the initial text to copy into the string - * - * Creates a new #GString, initialized with the given string. - * - * Returns: the new #GString - */ -GString* -g_string_new (const gchar *init) -{ - GString *string; - - if (init == NULL || *init == '\0') - string = g_string_sized_new (2); - else - { - gint len; - - len = strlen (init); - string = g_string_sized_new (len + 2); - - g_string_append_len (string, init, len); - } - - return string; -} - -/** - * g_string_new_len: - * @init: initial contents of the string - * @len: length of @init to use - * - * Creates a new #GString with @len bytes of the @init buffer. - * Because a length is provided, @init need not be nul-terminated, - * and can contain embedded nul bytes. - * - * Since this function does not stop at nul bytes, it is the caller's - * responsibility to ensure that @init has at least @len addressable - * bytes. - * - * Returns: a new #GString - */ -GString* -g_string_new_len (const gchar *init, - gssize len) -{ - GString *string; - - if (len < 0) - return g_string_new (init); - else - { - string = g_string_sized_new (len); - - if (init) - g_string_append_len (string, init, len); - - return string; - } -} - -/** - * g_string_free: - * @string: a #GString - * @free_segment: if %TRUE the actual character data is freed as well - * - * Frees the memory allocated for the #GString. - * If @free_segment is %TRUE it also frees the character data. - * - * Returns: the character data of @string - * (i.e. %NULL if @free_segment is %TRUE) - */ -gchar* -g_string_free (GString *string, - gboolean free_segment) -{ - gchar *segment; - - g_return_val_if_fail (string != NULL, NULL); - - if (free_segment) - { - g_free (string->str); - segment = NULL; - } - else - segment = string->str; - - g_slice_free (GString, string); - - return segment; -} - -/** - * g_string_equal: - * @v: a #GString - * @v2: another #GString - * - * Compares two strings for equality, returning %TRUE if they are equal. - * For use with #GHashTable. - * - * Returns: %TRUE if they strings are the same length and contain the - * same bytes - */ -gboolean -g_string_equal (const GString *v, - const GString *v2) -{ - gchar *p, *q; - GString *string1 = (GString *) v; - GString *string2 = (GString *) v2; - gsize i = string1->len; - - if (i != string2->len) - return FALSE; - - p = string1->str; - q = string2->str; - while (i) - { - if (*p != *q) - return FALSE; - p++; - q++; - i--; - } - return TRUE; -} - -/** - * g_string_hash: - * @str: a string to hash - * - * Creates a hash code for @str; for use with #GHashTable. - * - * Returns: hash code for @str - */ -/* 31 bit hash function */ -guint -g_string_hash (const GString *str) -{ - const gchar *p = str->str; - gsize n = str->len; - guint h = 0; - - while (n--) - { - h = (h << 5) - h + *p; - p++; - } - - return h; -} - -/** - * g_string_assign: - * @string: the destination #GString. Its current contents - * are destroyed. - * @rval: the string to copy into @string - * - * Copies the bytes from a string into a #GString, - * destroying any previous contents. It is rather like - * the standard strcpy() function, except that you do not - * have to worry about having enough space to copy the string. - * - * Returns: @string - */ -GString* -g_string_assign (GString *string, - const gchar *rval) -{ - g_return_val_if_fail (string != NULL, NULL); - g_return_val_if_fail (rval != NULL, string); - - /* Make sure assigning to itself doesn't corrupt the string. */ - if (string->str != rval) - { - /* Assigning from substring should be ok since g_string_truncate - does not realloc. */ - g_string_truncate (string, 0); - g_string_append (string, rval); - } - - return string; -} - -/** - * g_string_truncate: - * @string: a #GString - * @len: the new size of @string - * - * Cuts off the end of the GString, leaving the first @len bytes. - * - * Returns: @string - */ -GString* -g_string_truncate (GString *string, - gsize len) -{ - g_return_val_if_fail (string != NULL, NULL); - - string->len = MIN (len, string->len); - string->str[string->len] = 0; - - return string; -} - -/** - * g_string_set_size: - * @string: a #GString - * @len: the new length - * - * Sets the length of a #GString. If the length is less than - * the current length, the string will be truncated. If the - * length is greater than the current length, the contents - * of the newly added area are undefined. (However, as - * always, string->str[string->len] will be a nul byte.) - * - * Return value: @string - **/ -GString* -g_string_set_size (GString *string, - gsize len) -{ - g_return_val_if_fail (string != NULL, NULL); - - if (len >= string->allocated_len) - g_string_maybe_expand (string, len - string->len); - - string->len = len; - string->str[len] = 0; - - return string; -} - -/** - * g_string_insert_len: - * @string: a #GString - * @pos: position in @string where insertion should - * happen, or -1 for at the end - * @val: bytes to insert - * @len: number of bytes of @val to insert - * - * Inserts @len bytes of @val into @string at @pos. - * Because @len is provided, @val may contain embedded - * nuls and need not be nul-terminated. If @pos is -1, - * bytes are inserted at the end of the string. - * - * Since this function does not stop at nul bytes, it is - * the caller's responsibility to ensure that @val has at - * least @len addressable bytes. - * - * Returns: @string - */ -GString* -g_string_insert_len (GString *string, - gssize pos, - const gchar *val, - gssize len) -{ - g_return_val_if_fail (string != NULL, NULL); - g_return_val_if_fail (val != NULL, string); - - if (len < 0) - len = strlen (val); - - if (pos < 0) - pos = string->len; - else - g_return_val_if_fail (pos <= string->len, string); - - /* Check whether val represents a substring of string. This test - probably violates chapter and verse of the C standards, since - ">=" and "<=" are only valid when val really is a substring. - In practice, it will work on modern archs. */ - if (val >= string->str && val <= string->str + string->len) - { - gsize offset = val - string->str; - gsize precount = 0; - - g_string_maybe_expand (string, len); - val = string->str + offset; - /* At this point, val is valid again. */ - - /* Open up space where we are going to insert. */ - if (pos < string->len) - g_memmove (string->str + pos + len, string->str + pos, string->len - pos); - - /* Move the source part before the gap, if any. */ - if (offset < pos) - { - precount = MIN (len, pos - offset); - memcpy (string->str + pos, val, precount); - } - - /* Move the source part after the gap, if any. */ - if (len > precount) - memcpy (string->str + pos + precount, - val + /* Already moved: */ precount + /* Space opened up: */ len, - len - precount); - } - else - { - g_string_maybe_expand (string, len); - - /* If we aren't appending at the end, move a hunk - * of the old string to the end, opening up space - */ - if (pos < string->len) - g_memmove (string->str + pos + len, string->str + pos, string->len - pos); - - /* insert the new string */ - if (len == 1) - string->str[pos] = *val; - else - memcpy (string->str + pos, val, len); - } - - string->len += len; - - string->str[string->len] = 0; - - return string; -} - -#define SUB_DELIM_CHARS "!$&'()*+,;=" - -static gboolean -is_valid (char c, const char *reserved_chars_allowed) -{ - if (g_ascii_isalnum (c) || - c == '-' || - c == '.' || - c == '_' || - c == '~') - return TRUE; - - if (reserved_chars_allowed && - strchr (reserved_chars_allowed, c) != NULL) - return TRUE; - - return FALSE; -} - -static gboolean -gunichar_ok (gunichar c) -{ - return - (c != (gunichar) -2) && - (c != (gunichar) -1); -} - -/** - * g_string_append_uri_escaped: - * @string: a #GString - * @unescaped: a string - * @reserved_chars_allowed: a string of reserved characters allowed to be used - * @allow_utf8: set %TRUE if the escaped string may include UTF8 characters - * - * Appends @unescaped to @string, escaped any characters that - * are reserved in URIs using URI-style escape sequences. - * - * Returns: @string - * - * Since: 2.16 - **/ -GString * -g_string_append_uri_escaped (GString *string, - const char *unescaped, - const char *reserved_chars_allowed, - gboolean allow_utf8) -{ - unsigned char c; - const char *end; - static const gchar hex[16] = "0123456789ABCDEF"; - - g_return_val_if_fail (string != NULL, NULL); - g_return_val_if_fail (unescaped != NULL, NULL); - - end = unescaped + strlen (unescaped); - - while ((c = *unescaped) != 0) - { - if (c >= 0x80 && allow_utf8 && - gunichar_ok (g_utf8_get_char_validated (unescaped, end - unescaped))) - { - int len = g_utf8_skip [c]; - g_string_append_len (string, unescaped, len); - unescaped += len; - } - else if (is_valid (c, reserved_chars_allowed)) - { - g_string_append_c (string, c); - unescaped++; - } - else - { - g_string_append_c (string, '%'); - g_string_append_c (string, hex[((guchar)c) >> 4]); - g_string_append_c (string, hex[((guchar)c) & 0xf]); - unescaped++; - } - } - - return string; -} - -/** - * g_string_append: - * @string: a #GString - * @val: the string to append onto the end of @string - * - * Adds a string onto the end of a #GString, expanding - * it if necessary. - * - * Returns: @string - */ -GString* -g_string_append (GString *string, - const gchar *val) -{ - g_return_val_if_fail (string != NULL, NULL); - g_return_val_if_fail (val != NULL, string); - - return g_string_insert_len (string, -1, val, -1); -} - -/** - * g_string_append_len: - * @string: a #GString - * @val: bytes to append - * @len: number of bytes of @val to use - * - * Appends @len bytes of @val to @string. Because @len is - * provided, @val may contain embedded nuls and need not - * be nul-terminated. - * - * Since this function does not stop at nul bytes, it is - * the caller's responsibility to ensure that @val has at - * least @len addressable bytes. - * - * Returns: @string - */ -GString* -g_string_append_len (GString *string, - const gchar *val, - gssize len) -{ - g_return_val_if_fail (string != NULL, NULL); - g_return_val_if_fail (val != NULL, string); - - return g_string_insert_len (string, -1, val, len); -} - -/** - * g_string_append_c: - * @string: a #GString - * @c: the byte to append onto the end of @string - * - * Adds a byte onto the end of a #GString, expanding - * it if necessary. - * - * Returns: @string - */ -#undef g_string_append_c -GString* -g_string_append_c (GString *string, - gchar c) -{ - g_return_val_if_fail (string != NULL, NULL); - - return g_string_insert_c (string, -1, c); -} - -/** - * g_string_append_unichar: - * @string: a #GString - * @wc: a Unicode character - * - * Converts a Unicode character into UTF-8, and appends it - * to the string. - * - * Return value: @string - **/ -GString* -g_string_append_unichar (GString *string, - gunichar wc) -{ - g_return_val_if_fail (string != NULL, NULL); - - return g_string_insert_unichar (string, -1, wc); -} - -/** - * g_string_prepend: - * @string: a #GString - * @val: the string to prepend on the start of @string - * - * Adds a string on to the start of a #GString, - * expanding it if necessary. - * - * Returns: @string - */ -GString* -g_string_prepend (GString *string, - const gchar *val) -{ - g_return_val_if_fail (string != NULL, NULL); - g_return_val_if_fail (val != NULL, string); - - return g_string_insert_len (string, 0, val, -1); -} - -/** - * g_string_prepend_len: - * @string: a #GString - * @val: bytes to prepend - * @len: number of bytes in @val to prepend - * - * Prepends @len bytes of @val to @string. - * Because @len is provided, @val may contain - * embedded nuls and need not be nul-terminated. - * - * Since this function does not stop at nul bytes, - * it is the caller's responsibility to ensure that - * @val has at least @len addressable bytes. - * - * Returns: @string - */ -GString* -g_string_prepend_len (GString *string, - const gchar *val, - gssize len) -{ - g_return_val_if_fail (string != NULL, NULL); - g_return_val_if_fail (val != NULL, string); - - return g_string_insert_len (string, 0, val, len); -} - -/** - * g_string_prepend_c: - * @string: a #GString - * @c: the byte to prepend on the start of the #GString - * - * Adds a byte onto the start of a #GString, - * expanding it if necessary. - * - * Returns: @string - */ -GString* -g_string_prepend_c (GString *string, - gchar c) -{ - g_return_val_if_fail (string != NULL, NULL); - - return g_string_insert_c (string, 0, c); -} - -/** - * g_string_prepend_unichar: - * @string: a #GString - * @wc: a Unicode character - * - * Converts a Unicode character into UTF-8, and prepends it - * to the string. - * - * Return value: @string - **/ -GString* -g_string_prepend_unichar (GString *string, - gunichar wc) -{ - g_return_val_if_fail (string != NULL, NULL); - - return g_string_insert_unichar (string, 0, wc); -} - -/** - * g_string_insert: - * @string: a #GString - * @pos: the position to insert the copy of the string - * @val: the string to insert - * - * Inserts a copy of a string into a #GString, - * expanding it if necessary. - * - * Returns: @string - */ -GString* -g_string_insert (GString *string, - gssize pos, - const gchar *val) -{ - g_return_val_if_fail (string != NULL, NULL); - g_return_val_if_fail (val != NULL, string); - if (pos >= 0) - g_return_val_if_fail (pos <= string->len, string); - - return g_string_insert_len (string, pos, val, -1); -} - -/** - * g_string_insert_c: - * @string: a #GString - * @pos: the position to insert the byte - * @c: the byte to insert - * - * Inserts a byte into a #GString, expanding it if necessary. - * - * Returns: @string - */ -GString* -g_string_insert_c (GString *string, - gssize pos, - gchar c) -{ - g_return_val_if_fail (string != NULL, NULL); - - g_string_maybe_expand (string, 1); - - if (pos < 0) - pos = string->len; - else - g_return_val_if_fail (pos <= string->len, string); - - /* If not just an append, move the old stuff */ - if (pos < string->len) - g_memmove (string->str + pos + 1, string->str + pos, string->len - pos); - - string->str[pos] = c; - - string->len += 1; - - string->str[string->len] = 0; - - return string; -} - -/** - * g_string_insert_unichar: - * @string: a #GString - * @pos: the position at which to insert character, or -1 to - * append at the end of the string - * @wc: a Unicode character - * - * Converts a Unicode character into UTF-8, and insert it - * into the string at the given position. - * - * Return value: @string - **/ -GString* -g_string_insert_unichar (GString *string, - gssize pos, - gunichar wc) -{ - gint charlen, first, i; - gchar *dest; - - g_return_val_if_fail (string != NULL, NULL); - - /* Code copied from g_unichar_to_utf() */ - if (wc < 0x80) - { - first = 0; - charlen = 1; - } - else if (wc < 0x800) - { - first = 0xc0; - charlen = 2; - } - else if (wc < 0x10000) - { - first = 0xe0; - charlen = 3; - } - else if (wc < 0x200000) - { - first = 0xf0; - charlen = 4; - } - else if (wc < 0x4000000) - { - first = 0xf8; - charlen = 5; - } - else - { - first = 0xfc; - charlen = 6; - } - /* End of copied code */ - - g_string_maybe_expand (string, charlen); - - if (pos < 0) - pos = string->len; - else - g_return_val_if_fail (pos <= string->len, string); - - /* If not just an append, move the old stuff */ - if (pos < string->len) - g_memmove (string->str + pos + charlen, string->str + pos, string->len - pos); - - dest = string->str + pos; - /* Code copied from g_unichar_to_utf() */ - for (i = charlen - 1; i > 0; --i) - { - dest[i] = (wc & 0x3f) | 0x80; - wc >>= 6; - } - dest[0] = wc | first; - /* End of copied code */ - - string->len += charlen; - - string->str[string->len] = 0; - - return string; -} - -/** - * g_string_overwrite: - * @string: a #GString - * @pos: the position at which to start overwriting - * @val: the string that will overwrite the @string starting at @pos - * - * Overwrites part of a string, lengthening it if necessary. - * - * Return value: @string - * - * Since: 2.14 - **/ -GString * -g_string_overwrite (GString *string, - gsize pos, - const gchar *val) -{ - g_return_val_if_fail (val != NULL, string); - return g_string_overwrite_len (string, pos, val, strlen (val)); -} - -/** - * g_string_overwrite_len: - * @string: a #GString - * @pos: the position at which to start overwriting - * @val: the string that will overwrite the @string starting at @pos - * @len: the number of bytes to write from @val - * - * Overwrites part of a string, lengthening it if necessary. - * This function will work with embedded nuls. - * - * Return value: @string - * - * Since: 2.14 - **/ -GString * -g_string_overwrite_len (GString *string, - gsize pos, - const gchar *val, - gssize len) -{ - gsize end; - - g_return_val_if_fail (string != NULL, NULL); - - if (!len) - return string; - - g_return_val_if_fail (val != NULL, string); - g_return_val_if_fail (pos <= string->len, string); - - if (len < 0) - len = strlen (val); - - end = pos + len; - - if (end > string->len) - g_string_maybe_expand (string, end - string->len); - - memcpy (string->str + pos, val, len); - - if (end > string->len) - { - string->str[end] = '\0'; - string->len = end; - } - - return string; -} - -/** - * g_string_erase: - * @string: a #GString - * @pos: the position of the content to remove - * @len: the number of bytes to remove, or -1 to remove all - * following bytes - * - * Removes @len bytes from a #GString, starting at position @pos. - * The rest of the #GString is shifted down to fill the gap. - * - * Returns: @string - */ -GString* -g_string_erase (GString *string, - gssize pos, - gssize len) -{ - g_return_val_if_fail (string != NULL, NULL); - g_return_val_if_fail (pos >= 0, string); - g_return_val_if_fail (pos <= string->len, string); - - if (len < 0) - len = string->len - pos; - else - { - g_return_val_if_fail (pos + len <= string->len, string); - - if (pos + len < string->len) - g_memmove (string->str + pos, string->str + pos + len, string->len - (pos + len)); - } - - string->len -= len; - - string->str[string->len] = 0; - - return string; -} - -/** - * g_string_ascii_down: - * @string: a GString - * - * Converts all upper case ASCII letters to lower case ASCII letters. - * - * Return value: passed-in @string pointer, with all the upper case - * characters converted to lower case in place, with - * semantics that exactly match g_ascii_tolower(). - **/ -GString* -g_string_ascii_down (GString *string) -{ - gchar *s; - gint n; - - g_return_val_if_fail (string != NULL, NULL); - - n = string->len; - s = string->str; - - while (n) - { - *s = g_ascii_tolower (*s); - s++; - n--; - } - - return string; -} - -/** - * g_string_ascii_up: - * @string: a GString - * - * Converts all lower case ASCII letters to upper case ASCII letters. - * - * Return value: passed-in @string pointer, with all the lower case - * characters converted to upper case in place, with - * semantics that exactly match g_ascii_toupper(). - **/ -GString* -g_string_ascii_up (GString *string) -{ - gchar *s; - gint n; - - g_return_val_if_fail (string != NULL, NULL); - - n = string->len; - s = string->str; - - while (n) - { - *s = g_ascii_toupper (*s); - s++; - n--; - } - - return string; -} - -/** - * g_string_down: - * @string: a #GString - * - * Converts a #GString to lowercase. - * - * Returns: the #GString. - * - * Deprecated:2.2: This function uses the locale-specific - * tolower() function, which is almost never the right thing. - * Use g_string_ascii_down() or g_utf8_strdown() instead. - */ -GString* -g_string_down (GString *string) -{ - guchar *s; - glong n; - - g_return_val_if_fail (string != NULL, NULL); - - n = string->len; - s = (guchar *) string->str; - - while (n) - { - if (isupper (*s)) - *s = tolower (*s); - s++; - n--; - } - - return string; -} - -/** - * g_string_up: - * @string: a #GString - * - * Converts a #GString to uppercase. - * - * Return value: @string - * - * Deprecated:2.2: This function uses the locale-specific - * toupper() function, which is almost never the right thing. - * Use g_string_ascii_up() or g_utf8_strup() instead. - **/ -GString* -g_string_up (GString *string) -{ - guchar *s; - glong n; - - g_return_val_if_fail (string != NULL, NULL); - - n = string->len; - s = (guchar *) string->str; - - while (n) - { - if (islower (*s)) - *s = toupper (*s); - s++; - n--; - } - - return string; -} - -/** - * g_string_append_vprintf: - * @string: a #GString - * @format: the string format. See the printf() documentation - * @args: the list of arguments to insert in the output - * - * Appends a formatted string onto the end of a #GString. - * This function is similar to g_string_append_printf() - * except that the arguments to the format string are passed - * as a va_list. - * - * Since: 2.14 - */ -void -g_string_append_vprintf (GString *string, - const gchar *format, - va_list args) -{ - gchar *buf; - gint len; - - g_return_if_fail (string != NULL); - g_return_if_fail (format != NULL); - - len = g_vasprintf (&buf, format, args); - - if (len >= 0) - { - g_string_maybe_expand (string, len); - memcpy (string->str + string->len, buf, len + 1); - string->len += len; - g_free (buf); - } -} - -/** - * g_string_vprintf: - * @string: a #GString - * @format: the string format. See the printf() documentation - * @args: the parameters to insert into the format string - * - * Writes a formatted string into a #GString. - * This function is similar to g_string_printf() except that - * the arguments to the format string are passed as a va_list. - * - * Since: 2.14 - */ -void -g_string_vprintf (GString *string, - const gchar *format, - va_list args) -{ - g_string_truncate (string, 0); - g_string_append_vprintf (string, format, args); -} - -/** - * g_string_sprintf: - * @string: a #GString - * @format: the string format. See the sprintf() documentation - * @Varargs: the parameters to insert into the format string - * - * Writes a formatted string into a #GString. - * This is similar to the standard sprintf() function, - * except that the #GString buffer automatically expands - * to contain the results. The previous contents of the - * #GString are destroyed. - * - * Deprecated: This function has been renamed to g_string_printf(). - */ - -/** - * g_string_printf: - * @string: a #GString - * @format: the string format. See the printf() documentation - * @Varargs: the parameters to insert into the format string - * - * Writes a formatted string into a #GString. - * This is similar to the standard sprintf() function, - * except that the #GString buffer automatically expands - * to contain the results. The previous contents of the - * #GString are destroyed. - */ -void -g_string_printf (GString *string, - const gchar *format, - ...) -{ - va_list args; - - g_string_truncate (string, 0); - - va_start (args, format); - g_string_append_vprintf (string, format, args); - va_end (args); -} - -/** - * g_string_sprintfa: - * @string: a #GString - * @format: the string format. See the sprintf() documentation - * @Varargs: the parameters to insert into the format string - * - * Appends a formatted string onto the end of a #GString. - * This function is similar to g_string_sprintf() except that - * the text is appended to the #GString. - * - * Deprecated: This function has been renamed to g_string_append_printf() - */ - -/** - * g_string_append_printf: - * @string: a #GString - * @format: the string format. See the printf() documentation - * @Varargs: the parameters to insert into the format string - * - * Appends a formatted string onto the end of a #GString. - * This function is similar to g_string_printf() except - * that the text is appended to the #GString. - */ -void -g_string_append_printf (GString *string, - const gchar *format, - ...) -{ - va_list args; - - va_start (args, format); - g_string_append_vprintf (string, format, args); - va_end (args); -} - -#define __G_STRING_C__ -#include "galiasdef.c" diff --git a/lib/win32/glib-2.20.4/glib/gstring.h b/lib/win32/glib-2.20.4/glib/gstring.h deleted file mode 100644 index 2b1dd6ece2cf0..0000000000000 --- a/lib/win32/glib-2.20.4/glib/gstring.h +++ /dev/null @@ -1,178 +0,0 @@ -/* GLIB - Library of useful routines for C programming - * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library 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 - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ - -/* - * Modified by the GLib Team and others 1997-2000. See the AUTHORS - * file for a list of people on the GLib Team. See the ChangeLog - * files for a list of changes. These files are distributed with - * GLib at ftp://ftp.gtk.org/pub/gtk/. - */ - -#if defined(G_DISABLE_SINGLE_INCLUDES) && !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION) -#error "Only can be included directly." -#endif - -#ifndef __G_STRING_H__ -#define __G_STRING_H__ - -#include -#include -#include /* for G_CAN_INLINE */ - -G_BEGIN_DECLS - -typedef struct _GString GString; -typedef struct _GStringChunk GStringChunk; - -struct _GString -{ - gchar *str; - gsize len; - gsize allocated_len; -}; - -/* String Chunks - */ -GStringChunk* g_string_chunk_new (gsize size); -void g_string_chunk_free (GStringChunk *chunk); -void g_string_chunk_clear (GStringChunk *chunk); -gchar* g_string_chunk_insert (GStringChunk *chunk, - const gchar *string); -gchar* g_string_chunk_insert_len (GStringChunk *chunk, - const gchar *string, - gssize len); -gchar* g_string_chunk_insert_const (GStringChunk *chunk, - const gchar *string); - - -/* Strings - */ -GString* g_string_new (const gchar *init); -GString* g_string_new_len (const gchar *init, - gssize len); -GString* g_string_sized_new (gsize dfl_size); -gchar* g_string_free (GString *string, - gboolean free_segment); -gboolean g_string_equal (const GString *v, - const GString *v2); -guint g_string_hash (const GString *str); -GString* g_string_assign (GString *string, - const gchar *rval); -GString* g_string_truncate (GString *string, - gsize len); -GString* g_string_set_size (GString *string, - gsize len); -GString* g_string_insert_len (GString *string, - gssize pos, - const gchar *val, - gssize len); -GString* g_string_append (GString *string, - const gchar *val); -GString* g_string_append_len (GString *string, - const gchar *val, - gssize len); -GString* g_string_append_c (GString *string, - gchar c); -GString* g_string_append_unichar (GString *string, - gunichar wc); -GString* g_string_prepend (GString *string, - const gchar *val); -GString* g_string_prepend_c (GString *string, - gchar c); -GString* g_string_prepend_unichar (GString *string, - gunichar wc); -GString* g_string_prepend_len (GString *string, - const gchar *val, - gssize len); -GString* g_string_insert (GString *string, - gssize pos, - const gchar *val); -GString* g_string_insert_c (GString *string, - gssize pos, - gchar c); -GString* g_string_insert_unichar (GString *string, - gssize pos, - gunichar wc); -GString* g_string_overwrite (GString *string, - gsize pos, - const gchar *val); -GString* g_string_overwrite_len (GString *string, - gsize pos, - const gchar *val, - gssize len); -GString* g_string_erase (GString *string, - gssize pos, - gssize len); -GString* g_string_ascii_down (GString *string); -GString* g_string_ascii_up (GString *string); -void g_string_vprintf (GString *string, - const gchar *format, - va_list args); -void g_string_printf (GString *string, - const gchar *format, - ...) G_GNUC_PRINTF (2, 3); -void g_string_append_vprintf (GString *string, - const gchar *format, - va_list args); -void g_string_append_printf (GString *string, - const gchar *format, - ...) G_GNUC_PRINTF (2, 3); -GString * g_string_append_uri_escaped(GString *string, - const char *unescaped, - const char *reserved_chars_allowed, - gboolean allow_utf8); - -/* -- optimize g_strig_append_c --- */ -#ifdef G_CAN_INLINE -static inline GString* -g_string_append_c_inline (GString *gstring, - gchar c) -{ - if (gstring->len + 1 < gstring->allocated_len) - { - gstring->str[gstring->len++] = c; - gstring->str[gstring->len] = 0; - } - else - g_string_insert_c (gstring, -1, c); - return gstring; -} -#define g_string_append_c(gstr,c) g_string_append_c_inline (gstr, c) -#endif /* G_CAN_INLINE */ - - -#ifndef G_DISABLE_DEPRECATED - -/* The following two functions are deprecated and will be removed in - * the next major release. They use the locale-specific tolower and - * toupper, which is almost never the right thing. - */ - -GString* g_string_down (GString *string); -GString* g_string_up (GString *string); - -/* These aliases are included for compatibility. */ -#define g_string_sprintf g_string_printf -#define g_string_sprintfa g_string_append_printf - -#endif /* G_DISABLE_DEPRECATED */ - -G_END_DECLS - -#endif /* __G_STRING_H__ */ diff --git a/lib/win32/glib-2.20.4/glib/gtester.c b/lib/win32/glib-2.20.4/glib/gtester.c deleted file mode 100644 index ecc9f77fd6eff..0000000000000 --- a/lib/win32/glib-2.20.4/glib/gtester.c +++ /dev/null @@ -1,711 +0,0 @@ -/* GLib testing framework runner - * Copyright (C) 2007 Sven Herzberg - * Copyright (C) 2007 Tim Janik - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library 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 - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ -#include -#include -#include -#include -#include -#include -#include -#include -#include - -/* the read buffer size in bytes */ -#define READ_BUFFER_SIZE 4096 - -/* --- prototypes --- */ -static int main_selftest (int argc, - char **argv); -static void parse_args (gint *argc_p, - gchar ***argv_p); - -/* --- variables --- */ -static GIOChannel *ioc_report = NULL; -static gboolean gtester_quiet = FALSE; -static gboolean gtester_verbose = FALSE; -static gboolean gtester_list_tests = FALSE; -static gboolean gtester_selftest = FALSE; -static gboolean subtest_running = FALSE; -static gint subtest_exitstatus = 0; -static gboolean subtest_io_pending = FALSE; -static gboolean subtest_quiet = TRUE; -static gboolean subtest_verbose = FALSE; -static gboolean subtest_mode_fatal = TRUE; -static gboolean subtest_mode_perf = FALSE; -static gboolean subtest_mode_quick = TRUE; -static const gchar *subtest_seedstr = NULL; -static gchar *subtest_last_seed = NULL; -static GSList *subtest_paths = NULL; -static GSList *subtest_args = NULL; -static gboolean testcase_open = FALSE; -static guint testcase_count = 0; -static guint testcase_fail_count = 0; -static const gchar *output_filename = NULL; -static guint log_indent = 0; -static gint log_fd = -1; - -/* --- functions --- */ -static const char* -sindent (guint n) -{ - static const char spaces[] = " "; - int l = sizeof (spaces) - 1; - n = MIN (n, l); - return spaces + l - n; -} - -static void G_GNUC_PRINTF (1, 2) -test_log_printfe (const char *format, - ...) -{ - char *result; - int r; - va_list args; - va_start (args, format); - result = g_markup_vprintf_escaped (format, args); - va_end (args); - do - r = write (log_fd, result, strlen (result)); - while (r < 0 && errno == EINTR); - g_free (result); -} - -static void -terminate (void) -{ - kill (getpid(), SIGTERM); - abort(); -} - -static void -testcase_close (long double duration, - gint exit_status, - guint n_forks) -{ - g_return_if_fail (testcase_open > 0); - test_log_printfe ("%s%.6Lf\n", sindent (log_indent), duration); - test_log_printfe ("%s\n", - sindent (log_indent), exit_status, n_forks, - exit_status ? "failed" : "success"); - log_indent -= 2; - test_log_printfe ("%s\n", sindent (log_indent)); - testcase_open--; - if (gtester_verbose) - g_print ("%s\n", exit_status ? "FAIL" : "OK"); - if (exit_status && subtest_last_seed) - g_print ("GTester: last random seed: %s\n", subtest_last_seed); - if (exit_status) - testcase_fail_count += 1; - if (subtest_mode_fatal && testcase_fail_count) - terminate(); -} - -static void -test_log_msg (GTestLogMsg *msg) -{ - switch (msg->log_type) - { - guint i; - gchar **strv; - case G_TEST_LOG_NONE: - break; - case G_TEST_LOG_ERROR: - strv = g_strsplit (msg->strings[0], "\n", -1); - for (i = 0; strv[i]; i++) - test_log_printfe ("%s%s\n", sindent (log_indent), strv[i]); - g_strfreev (strv); - break; - case G_TEST_LOG_START_BINARY: - test_log_printfe ("%s\n", sindent (log_indent), msg->strings[0]); - subtest_last_seed = g_strdup (msg->strings[1]); - test_log_printfe ("%s%s\n", sindent (log_indent), subtest_last_seed); - break; - case G_TEST_LOG_LIST_CASE: - g_print ("%s\n", msg->strings[0]); - break; - case G_TEST_LOG_START_CASE: - testcase_count++; - if (gtester_verbose) - { - gchar *sc = g_strconcat (msg->strings[0], ":", NULL); - gchar *sleft = g_strdup_printf ("%-68s", sc); - g_free (sc); - g_print ("%70s ", sleft); - g_free (sleft); - } - g_return_if_fail (testcase_open == 0); - testcase_open++; - test_log_printfe ("%s\n", sindent (log_indent), msg->strings[0]); - log_indent += 2; - break; - case G_TEST_LOG_SKIP_CASE: - if (FALSE && gtester_verbose) /* enable to debug test case skipping logic */ - { - gchar *sc = g_strconcat (msg->strings[0], ":", NULL); - gchar *sleft = g_strdup_printf ("%-68s", sc); - g_free (sc); - g_print ("%70s SKIPPED\n", sleft); - g_free (sleft); - } - test_log_printfe ("%s\n", sindent (log_indent), msg->strings[0]); - break; - case G_TEST_LOG_STOP_CASE: - testcase_close (msg->nums[2], (int) msg->nums[0], (int) msg->nums[1]); - break; - case G_TEST_LOG_MIN_RESULT: - case G_TEST_LOG_MAX_RESULT: - test_log_printfe ("%s\n", - sindent (log_indent), msg->log_type == G_TEST_LOG_MIN_RESULT, msg->log_type == G_TEST_LOG_MAX_RESULT, msg->nums[0]); - test_log_printfe ("%s%s\n", sindent (log_indent + 2), msg->strings[0]); - test_log_printfe ("%s\n", sindent (log_indent)); - break; - case G_TEST_LOG_MESSAGE: - test_log_printfe ("%s\n%s\n%s\n", sindent (log_indent), msg->strings[0], sindent (log_indent)); - break; - } -} - -static gboolean -child_report_cb (GIOChannel *source, - GIOCondition condition, - gpointer data) -{ - GTestLogBuffer *tlb = data; - GIOStatus status = G_IO_STATUS_NORMAL; - gboolean first_read_eof = FALSE, first_read = TRUE; - gsize length = 0; - do - { - guint8 buffer[READ_BUFFER_SIZE]; - GError *error = NULL; - status = g_io_channel_read_chars (source, (gchar*) buffer, sizeof (buffer), &length, &error); - if (first_read && (condition & G_IO_IN)) - { - /* on some unixes (MacOS) we need to detect non-blocking fd EOF - * by an IO_IN select/poll followed by read()==0. - */ - first_read_eof = length == 0; - } - first_read = FALSE; - if (length) - { - GTestLogMsg *msg; - g_test_log_buffer_push (tlb, length, buffer); - do - { - msg = g_test_log_buffer_pop (tlb); - if (msg) - { - test_log_msg (msg); - g_test_log_msg_free (msg); - } - } - while (msg); - } - g_clear_error (&error); - /* ignore the io channel status, which will report intermediate EOFs for non blocking fds */ - (void) status; - } - while (length > 0); - /* g_print ("LASTIOSTATE: first_read_eof=%d condition=%d\n", first_read_eof, condition); */ - if (first_read_eof || (condition & (G_IO_ERR | G_IO_HUP))) - { - /* if there's no data to read and select() reports an error or hangup, - * the fd must have been closed remotely - */ - subtest_io_pending = FALSE; - return FALSE; - } - return TRUE; /* keep polling */ -} - -static void -child_watch_cb (GPid pid, - gint status, - gpointer data) -{ - g_spawn_close_pid (pid); - if (WIFEXITED (status)) /* normal exit */ - subtest_exitstatus = WEXITSTATUS (status); - else /* signal or core dump, etc */ - subtest_exitstatus = 0xffffffff; - subtest_running = FALSE; -} - -static gchar* -queue_gfree (GSList **slistp, - gchar *string) -{ - *slistp = g_slist_prepend (*slistp, string); - return string; -} - -static void -unset_cloexec_fdp (gpointer fdp_data) -{ - int r, *fdp = fdp_data; - do - r = fcntl (*fdp, F_SETFD, 0 /* FD_CLOEXEC */); - while (r < 0 && errno == EINTR); -} - -static gboolean -launch_test_binary (const char *binary, - guint skip_tests) -{ - GTestLogBuffer *tlb; - GSList *slist, *free_list = NULL; - GError *error = NULL; - int argc = 0; - const gchar **argv; - GPid pid = 0; - gint report_pipe[2] = { -1, -1 }; - guint child_report_cb_id = 0; - gboolean loop_pending; - gint i = 0; - - if (pipe (report_pipe) < 0) - { - if (subtest_mode_fatal) - g_error ("Failed to open pipe for test binary: %s: %s", binary, g_strerror (errno)); - else - g_warning ("Failed to open pipe for test binary: %s: %s", binary, g_strerror (errno)); - return FALSE; - } - - /* setup argc */ - for (slist = subtest_args; slist; slist = slist->next) - argc++; - /* argc++; */ - if (subtest_quiet) - argc++; - if (subtest_verbose) - argc++; - if (!subtest_mode_fatal) - argc++; - if (subtest_mode_quick) - argc++; - else - argc++; - if (subtest_mode_perf) - argc++; - if (gtester_list_tests) - argc++; - if (subtest_seedstr) - argc++; - argc++; - if (skip_tests) - argc++; - for (slist = subtest_paths; slist; slist = slist->next) - argc++; - - /* setup argv */ - argv = g_malloc ((argc + 2) * sizeof(gchar *)); - argv[i++] = binary; - for (slist = subtest_args; slist; slist = slist->next) - argv[i++] = (gchar*) slist->data; - /* argv[i++] = "--debug-log"; */ - if (subtest_quiet) - argv[i++] = "--quiet"; - if (subtest_verbose) - argv[i++] = "--verbose"; - if (!subtest_mode_fatal) - argv[i++] = "--keep-going"; - if (subtest_mode_quick) - argv[i++] = "-m=quick"; - else - argv[i++] = "-m=slow"; - if (subtest_mode_perf) - argv[i++] = "-m=perf"; - if (gtester_list_tests) - argv[i++] = "-l"; - if (subtest_seedstr) - argv[i++] = queue_gfree (&free_list, g_strdup_printf ("--seed=%s", subtest_seedstr)); - argv[i++] = queue_gfree (&free_list, g_strdup_printf ("--GTestLogFD=%u", report_pipe[1])); - if (skip_tests) - argv[i++] = queue_gfree (&free_list, g_strdup_printf ("--GTestSkipCount=%u", skip_tests)); - for (slist = subtest_paths; slist; slist = slist->next) - argv[i++] = queue_gfree (&free_list, g_strdup_printf ("-p=%s", (gchar*) slist->data)); - argv[i++] = NULL; - - g_spawn_async_with_pipes (NULL, /* g_get_current_dir() */ - (gchar**) argv, - NULL, /* envp */ - G_SPAWN_DO_NOT_REAP_CHILD, /* G_SPAWN_SEARCH_PATH */ - unset_cloexec_fdp, &report_pipe[1], /* pre-exec callback */ - &pid, - NULL, /* standard_input */ - NULL, /* standard_output */ - NULL, /* standard_error */ - &error); - g_slist_foreach (free_list, (void(*)(void*,void*)) g_free, NULL); - g_slist_free (free_list); - free_list = NULL; - close (report_pipe[1]); - - if (!gtester_quiet) - g_print ("(pid=%lu)\n", (unsigned long) pid); - - if (error) - { - close (report_pipe[0]); - if (subtest_mode_fatal) - g_error ("Failed to execute test binary: %s: %s", argv[0], error->message); - else - g_warning ("Failed to execute test binary: %s: %s", argv[0], error->message); - g_clear_error (&error); - g_free (argv); - return FALSE; - } - g_free (argv); - - subtest_running = TRUE; - subtest_io_pending = TRUE; - tlb = g_test_log_buffer_new(); - if (report_pipe[0] >= 0) - { - ioc_report = g_io_channel_unix_new (report_pipe[0]); - g_io_channel_set_flags (ioc_report, G_IO_FLAG_NONBLOCK, NULL); - g_io_channel_set_encoding (ioc_report, NULL, NULL); - g_io_channel_set_buffered (ioc_report, FALSE); - child_report_cb_id = g_io_add_watch_full (ioc_report, G_PRIORITY_DEFAULT - 1, G_IO_IN | G_IO_ERR | G_IO_HUP, child_report_cb, tlb, NULL); - g_io_channel_unref (ioc_report); - } - g_child_watch_add_full (G_PRIORITY_DEFAULT + 1, pid, child_watch_cb, NULL, NULL); - - loop_pending = g_main_context_pending (NULL); - while (subtest_running || /* FALSE once child exits */ - subtest_io_pending || /* FALSE once ioc_report closes */ - loop_pending) /* TRUE while idler, etc are running */ - { - /* g_print ("LOOPSTATE: subtest_running=%d subtest_io_pending=%d\n", subtest_running, subtest_io_pending); */ - /* check for unexpected hangs that are not signalled on report_pipe */ - if (!subtest_running && /* child exited */ - subtest_io_pending && /* no EOF detected on report_pipe */ - !loop_pending) /* no IO events pending however */ - break; - g_main_context_iteration (NULL, TRUE); - loop_pending = g_main_context_pending (NULL); - } - - g_source_remove (child_report_cb_id); - close (report_pipe[0]); - g_test_log_buffer_free (tlb); - - return TRUE; -} - -static void -launch_test (const char *binary) -{ - gboolean success = TRUE; - GTimer *btimer = g_timer_new(); - gboolean need_restart; - testcase_count = 0; - testcase_fail_count = 0; - if (!gtester_quiet) - g_print ("TEST: %s... ", binary); - - retry: - test_log_printfe ("%s\n", sindent (log_indent), binary); - log_indent += 2; - g_timer_start (btimer); - subtest_exitstatus = 0; - success &= launch_test_binary (binary, testcase_count); - success &= subtest_exitstatus == 0; - need_restart = testcase_open != 0; - if (testcase_open) - testcase_close (0, -256, 0); - g_timer_stop (btimer); - test_log_printfe ("%s%.6f\n", sindent (log_indent), g_timer_elapsed (btimer, NULL)); - log_indent -= 2; - test_log_printfe ("%s\n", sindent (log_indent)); - g_free (subtest_last_seed); - subtest_last_seed = NULL; - if (need_restart) - { - /* restart test binary, skipping processed test cases */ - goto retry; - } - - if (!gtester_quiet) - g_print ("%s: %s\n", testcase_fail_count || !success ? "FAIL" : "PASS", binary); - g_timer_destroy (btimer); - if (subtest_mode_fatal && !success) - terminate(); -} - -static void -usage (gboolean just_version) -{ - if (just_version) - { - g_print ("gtester version %d.%d.%d\n", GLIB_MAJOR_VERSION, GLIB_MINOR_VERSION, GLIB_MICRO_VERSION); - return; - } - g_print ("Usage: gtester [OPTIONS] testprogram...\n"); - /* 12345678901234567890123456789012345678901234567890123456789012345678901234567890 */ - g_print ("Options:\n"); - g_print (" -h, --help show this help message\n"); - g_print (" -v, --version print version informations\n"); - g_print (" --g-fatal-warnings make warnings fatal (abort)\n"); - g_print (" -k, --keep-going continue running after tests failed\n"); - g_print (" -l list paths of available test cases\n"); - g_print (" -m=perf, -m=slow, -m=quick -m=thorough\n"); - g_print (" run test cases in mode perf, slow/thorough or quick (default)\n"); - g_print (" -p=TESTPATH only start test cases matching TESTPATH\n"); - g_print (" --seed=SEEDSTRING start all tests with random number seed SEEDSTRING\n"); - g_print (" -o=LOGFILE write the test log to LOGFILE\n"); - g_print (" -q, --quiet suppress per test binary output\n"); - g_print (" --verbose report success per testcase\n"); -} - -static void -parse_args (gint *argc_p, - gchar ***argv_p) -{ - guint argc = *argc_p; - gchar **argv = *argv_p; - guint i, e; - /* parse known args */ - for (i = 1; i < argc; i++) - { - if (strcmp (argv[i], "--g-fatal-warnings") == 0) - { - GLogLevelFlags fatal_mask = (GLogLevelFlags) g_log_set_always_fatal ((GLogLevelFlags) G_LOG_FATAL_MASK); - fatal_mask = (GLogLevelFlags) (fatal_mask | G_LOG_LEVEL_WARNING | G_LOG_LEVEL_CRITICAL); - g_log_set_always_fatal (fatal_mask); - argv[i] = NULL; - } - else if (strcmp (argv[i], "--gtester-selftest") == 0) - { - gtester_selftest = TRUE; - argv[i] = NULL; - break; /* stop parsing regular gtester arguments */ - } - else if (strcmp (argv[i], "-h") == 0 || strcmp (argv[i], "--help") == 0) - { - usage (FALSE); - exit (0); - argv[i] = NULL; - } - else if (strcmp (argv[i], "-v") == 0 || strcmp (argv[i], "--version") == 0) - { - usage (TRUE); - exit (0); - argv[i] = NULL; - } - else if (strcmp (argv[i], "--keep-going") == 0 || - strcmp (argv[i], "-k") == 0) - { - subtest_mode_fatal = FALSE; - argv[i] = NULL; - } - else if (strcmp ("-p", argv[i]) == 0 || strncmp ("-p=", argv[i], 3) == 0) - { - gchar *equal = argv[i] + 2; - if (*equal == '=') - subtest_paths = g_slist_prepend (subtest_paths, equal + 1); - else if (i + 1 < argc) - { - argv[i++] = NULL; - subtest_paths = g_slist_prepend (subtest_paths, argv[i]); - } - argv[i] = NULL; - } - else if (strcmp ("--test-arg", argv[i]) == 0 || strncmp ("--test-arg=", argv[i], 11) == 0) - { - gchar *equal = argv[i] + 10; - if (*equal == '=') - subtest_args = g_slist_prepend (subtest_args, equal + 1); - else if (i + 1 < argc) - { - argv[i++] = NULL; - subtest_args = g_slist_prepend (subtest_args, argv[i]); - } - argv[i] = NULL; - } - else if (strcmp ("-o", argv[i]) == 0 || strncmp ("-o=", argv[i], 3) == 0) - { - gchar *equal = argv[i] + 2; - if (*equal == '=') - output_filename = equal + 1; - else if (i + 1 < argc) - { - argv[i++] = NULL; - output_filename = argv[i]; - } - argv[i] = NULL; - } - else if (strcmp ("-m", argv[i]) == 0 || strncmp ("-m=", argv[i], 3) == 0) - { - gchar *equal = argv[i] + 2; - const gchar *mode = ""; - if (*equal == '=') - mode = equal + 1; - else if (i + 1 < argc) - { - argv[i++] = NULL; - mode = argv[i]; - } - if (strcmp (mode, "perf") == 0) - subtest_mode_perf = TRUE; - else if (strcmp (mode, "slow") == 0 || strcmp (mode, "thorough") == 0) - subtest_mode_quick = FALSE; - else if (strcmp (mode, "quick") == 0) - { - subtest_mode_quick = TRUE; - subtest_mode_perf = FALSE; - } - else - g_error ("unknown test mode: -m %s", mode); - argv[i] = NULL; - } - else if (strcmp ("-q", argv[i]) == 0 || strcmp ("--quiet", argv[i]) == 0) - { - gtester_quiet = TRUE; - gtester_verbose = FALSE; - argv[i] = NULL; - } - else if (strcmp ("--verbose", argv[i]) == 0) - { - gtester_quiet = FALSE; - gtester_verbose = TRUE; - argv[i] = NULL; - } - else if (strcmp ("-l", argv[i]) == 0) - { - gtester_list_tests = TRUE; - argv[i] = NULL; - } - else if (strcmp ("--seed", argv[i]) == 0 || strncmp ("--seed=", argv[i], 7) == 0) - { - gchar *equal = argv[i] + 6; - if (*equal == '=') - subtest_seedstr = equal + 1; - else if (i + 1 < argc) - { - argv[i++] = NULL; - subtest_seedstr = argv[i]; - } - argv[i] = NULL; - } - } - /* collapse argv */ - e = 1; - for (i = 1; i < argc; i++) - if (argv[i]) - { - argv[e++] = argv[i]; - if (i >= e) - argv[i] = NULL; - } - *argc_p = e; -} - -int -main (int argc, - char **argv) -{ - guint ui; - - /* some unices need SA_RESTART for SIGCHLD to return -EAGAIN for io. - * we must fiddle with sigaction() *before* glib is used, otherwise - * we could revoke signal hanmdler setups from glib initialization code. - */ - if (TRUE) - { - struct sigaction sa; - struct sigaction osa; - sa.sa_handler = SIG_DFL; - sigfillset (&sa.sa_mask); - sa.sa_flags = SA_RESTART; - sigaction (SIGCHLD, &sa, &osa); - } - - g_set_prgname (argv[0]); - parse_args (&argc, &argv); - if (gtester_selftest) - return main_selftest (argc, argv); - - if (argc <= 1) - { - usage (FALSE); - return 1; - } - - if (output_filename) - { - log_fd = g_open (output_filename, O_WRONLY | O_CREAT | O_TRUNC, 0666); - if (log_fd < 0) - g_error ("Failed to open log file '%s': %s", output_filename, g_strerror (errno)); - } - - test_log_printfe ("\n"); - test_log_printfe ("%s\n", sindent (log_indent)); - log_indent += 2; - for (ui = 1; ui < argc; ui++) - { - const char *binary = argv[ui]; - launch_test (binary); - /* we only get here on success or if !subtest_mode_fatal */ - } - log_indent -= 2; - test_log_printfe ("%s\n", sindent (log_indent)); - - close (log_fd); - - return 0; -} - -static void -fixture_setup (guint *fix, - gconstpointer test_data) -{ - g_assert_cmphex (*fix, ==, 0); - *fix = 0xdeadbeef; -} -static void -fixture_test (guint *fix, - gconstpointer test_data) -{ - g_assert_cmphex (*fix, ==, 0xdeadbeef); - g_test_message ("This is a test message API test message."); - g_test_bug_base ("http://www.example.com/bugtracker/"); - g_test_bug ("123"); - g_test_bug_base ("http://www.example.com/bugtracker?bugnum=%s;cmd=showbug"); - g_test_bug ("456"); -} -static void -fixture_teardown (guint *fix, - gconstpointer test_data) -{ - g_assert_cmphex (*fix, ==, 0xdeadbeef); -} - -static int -main_selftest (int argc, - char **argv) -{ - /* gtester main() for --gtester-selftest invokations */ - g_test_init (&argc, &argv, NULL); - g_test_add ("/gtester/fixture-test", guint, NULL, fixture_setup, fixture_test, fixture_teardown); - return g_test_run(); -} diff --git a/lib/win32/glib-2.20.4/glib/gtestutils.c b/lib/win32/glib-2.20.4/glib/gtestutils.c deleted file mode 100644 index 3f19fbc9affac..0000000000000 --- a/lib/win32/glib-2.20.4/glib/gtestutils.c +++ /dev/null @@ -1,2012 +0,0 @@ -/* GLib testing utilities - * Copyright (C) 2007 Imendio AB - * Authors: Tim Janik, Sven Herzberg - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library 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 - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ -#include "config.h" -#include "gtestutils.h" -#include "galias.h" -#include -#ifdef G_OS_UNIX -#include -#include -#include -#endif -#include -#include -#include -#ifdef HAVE_UNISTD_H -#include -#endif -#ifdef G_OS_WIN32 -#include -#endif -#include -#include -#ifdef HAVE_SYS_SELECT_H -#include -#endif /* HAVE_SYS_SELECT_H */ - -/* --- structures --- */ -struct GTestCase -{ - gchar *name; - guint fixture_size; - void (*fixture_setup) (void*, gconstpointer); - void (*fixture_test) (void*, gconstpointer); - void (*fixture_teardown) (void*, gconstpointer); - gpointer test_data; -}; -struct GTestSuite -{ - gchar *name; - GSList *suites; - GSList *cases; -}; -typedef struct DestroyEntry DestroyEntry; -struct DestroyEntry -{ - DestroyEntry *next; - GDestroyNotify destroy_func; - gpointer destroy_data; -}; - -/* --- prototypes --- */ -static void test_run_seed (const gchar *rseed); -static void test_trap_clear (void); -static guint8* g_test_log_dump (GTestLogMsg *msg, - guint *len); -static void gtest_default_log_handler (const gchar *log_domain, - GLogLevelFlags log_level, - const gchar *message, - gpointer unused_data); - - -/* --- variables --- */ -static int test_log_fd = -1; -static gboolean test_mode_fatal = TRUE; -static gboolean g_test_run_once = TRUE; -static gboolean test_run_list = FALSE; -static gchar *test_run_seedstr = NULL; -static GRand *test_run_rand = NULL; -static gchar *test_run_name = ""; -static guint test_run_forks = 0; -static guint test_run_count = 0; -static guint test_skip_count = 0; -static GTimer *test_user_timer = NULL; -static double test_user_stamp = 0; -static GSList *test_paths = NULL; -static GTestSuite *test_suite_root = NULL; -static int test_trap_last_status = 0; -static int test_trap_last_pid = 0; -static char *test_trap_last_stdout = NULL; -static char *test_trap_last_stderr = NULL; -static char *test_uri_base = NULL; -static gboolean test_debug_log = FALSE; -static DestroyEntry *test_destroy_queue = NULL; -static GTestConfig mutable_test_config_vars = { - FALSE, /* test_initialized */ - TRUE, /* test_quick */ - FALSE, /* test_perf */ - FALSE, /* test_verbose */ - FALSE, /* test_quiet */ -}; -const GTestConfig * const g_test_config_vars = &mutable_test_config_vars; - -/* --- functions --- */ -const char* -g_test_log_type_name (GTestLogType log_type) -{ - switch (log_type) - { - case G_TEST_LOG_NONE: return "none"; - case G_TEST_LOG_ERROR: return "error"; - case G_TEST_LOG_START_BINARY: return "binary"; - case G_TEST_LOG_LIST_CASE: return "list"; - case G_TEST_LOG_SKIP_CASE: return "skip"; - case G_TEST_LOG_START_CASE: return "start"; - case G_TEST_LOG_STOP_CASE: return "stop"; - case G_TEST_LOG_MIN_RESULT: return "minperf"; - case G_TEST_LOG_MAX_RESULT: return "maxperf"; - case G_TEST_LOG_MESSAGE: return "message"; - } - return "???"; -} - -static void -g_test_log_send (guint n_bytes, - const guint8 *buffer) -{ - if (test_log_fd >= 0) - { - int r; - do - r = write (test_log_fd, buffer, n_bytes); - while (r < 0 && errno == EINTR); - } - if (test_debug_log) - { - GTestLogBuffer *lbuffer = g_test_log_buffer_new (); - GTestLogMsg *msg; - guint ui; - g_test_log_buffer_push (lbuffer, n_bytes, buffer); - msg = g_test_log_buffer_pop (lbuffer); - g_warn_if_fail (msg != NULL); - g_warn_if_fail (lbuffer->data->len == 0); - g_test_log_buffer_free (lbuffer); - /* print message */ - g_printerr ("{*LOG(%s)", g_test_log_type_name (msg->log_type)); - for (ui = 0; ui < msg->n_strings; ui++) - g_printerr (":{%s}", msg->strings[ui]); - if (msg->n_nums) - { - g_printerr (":("); - for (ui = 0; ui < msg->n_nums; ui++) - g_printerr ("%s%.16Lg", ui ? ";" : "", msg->nums[ui]); - g_printerr (")"); - } - g_printerr (":LOG*}\n"); - g_test_log_msg_free (msg); - } -} - -static void -g_test_log (GTestLogType lbit, - const gchar *string1, - const gchar *string2, - guint n_args, - long double *largs) -{ - gboolean fail = lbit == G_TEST_LOG_STOP_CASE && largs[0] != 0; - GTestLogMsg msg; - gchar *astrings[3] = { NULL, NULL, NULL }; - guint8 *dbuffer; - guint32 dbufferlen; - - switch (lbit) - { - case G_TEST_LOG_START_BINARY: - if (g_test_verbose()) - g_print ("GTest: random seed: %s\n", string2); - break; - case G_TEST_LOG_STOP_CASE: - if (g_test_verbose()) - g_print ("GTest: result: %s\n", fail ? "FAIL" : "OK"); - else if (!g_test_quiet()) - g_print ("%s\n", fail ? "FAIL" : "OK"); - if (fail && test_mode_fatal) - abort(); - break; - case G_TEST_LOG_MIN_RESULT: - if (g_test_verbose()) - g_print ("(MINPERF:%s)\n", string1); - break; - case G_TEST_LOG_MAX_RESULT: - if (g_test_verbose()) - g_print ("(MAXPERF:%s)\n", string1); - break; - case G_TEST_LOG_MESSAGE: - if (g_test_verbose()) - g_print ("(MSG: %s)\n", string1); - break; - default: ; - } - - msg.log_type = lbit; - msg.n_strings = (string1 != NULL) + (string1 && string2); - msg.strings = astrings; - astrings[0] = (gchar*) string1; - astrings[1] = astrings[0] ? (gchar*) string2 : NULL; - msg.n_nums = n_args; - msg.nums = largs; - dbuffer = g_test_log_dump (&msg, &dbufferlen); - g_test_log_send (dbufferlen, dbuffer); - g_free (dbuffer); - - switch (lbit) - { - case G_TEST_LOG_START_CASE: - if (g_test_verbose()) - g_print ("GTest: run: %s\n", string1); - else if (!g_test_quiet()) - g_print ("%s: ", string1); - break; - default: ; - } -} - -/* We intentionally parse the command line without GOptionContext - * because otherwise you would never be able to test it. - */ -static void -parse_args (gint *argc_p, - gchar ***argv_p) -{ - guint argc = *argc_p; - gchar **argv = *argv_p; - guint i, e; - /* parse known args */ - for (i = 1; i < argc; i++) - { - if (strcmp (argv[i], "--g-fatal-warnings") == 0) - { - GLogLevelFlags fatal_mask = (GLogLevelFlags) g_log_set_always_fatal ((GLogLevelFlags) G_LOG_FATAL_MASK); - fatal_mask = (GLogLevelFlags) (fatal_mask | G_LOG_LEVEL_WARNING | G_LOG_LEVEL_CRITICAL); - g_log_set_always_fatal (fatal_mask); - argv[i] = NULL; - } - else if (strcmp (argv[i], "--keep-going") == 0 || - strcmp (argv[i], "-k") == 0) - { - test_mode_fatal = FALSE; - argv[i] = NULL; - } - else if (strcmp (argv[i], "--debug-log") == 0) - { - test_debug_log = TRUE; - argv[i] = NULL; - } - else if (strcmp ("--GTestLogFD", argv[i]) == 0 || strncmp ("--GTestLogFD=", argv[i], 13) == 0) - { - gchar *equal = argv[i] + 12; - if (*equal == '=') - test_log_fd = g_ascii_strtoull (equal + 1, NULL, 0); - else if (i + 1 < argc) - { - argv[i++] = NULL; - test_log_fd = g_ascii_strtoull (argv[i], NULL, 0); - } - argv[i] = NULL; - } - else if (strcmp ("--GTestSkipCount", argv[i]) == 0 || strncmp ("--GTestSkipCount=", argv[i], 17) == 0) - { - gchar *equal = argv[i] + 16; - if (*equal == '=') - test_skip_count = g_ascii_strtoull (equal + 1, NULL, 0); - else if (i + 1 < argc) - { - argv[i++] = NULL; - test_skip_count = g_ascii_strtoull (argv[i], NULL, 0); - } - argv[i] = NULL; - } - else if (strcmp ("-p", argv[i]) == 0 || strncmp ("-p=", argv[i], 3) == 0) - { - gchar *equal = argv[i] + 2; - if (*equal == '=') - test_paths = g_slist_prepend (test_paths, equal + 1); - else if (i + 1 < argc) - { - argv[i++] = NULL; - test_paths = g_slist_prepend (test_paths, argv[i]); - } - argv[i] = NULL; - } - else if (strcmp ("-m", argv[i]) == 0 || strncmp ("-m=", argv[i], 3) == 0) - { - gchar *equal = argv[i] + 2; - const gchar *mode = ""; - if (*equal == '=') - mode = equal + 1; - else if (i + 1 < argc) - { - argv[i++] = NULL; - mode = argv[i]; - } - if (strcmp (mode, "perf") == 0) - mutable_test_config_vars.test_perf = TRUE; - else if (strcmp (mode, "slow") == 0) - mutable_test_config_vars.test_quick = FALSE; - else if (strcmp (mode, "thorough") == 0) - mutable_test_config_vars.test_quick = FALSE; - else if (strcmp (mode, "quick") == 0) - { - mutable_test_config_vars.test_quick = TRUE; - mutable_test_config_vars.test_perf = FALSE; - } - else - g_error ("unknown test mode: -m %s", mode); - argv[i] = NULL; - } - else if (strcmp ("-q", argv[i]) == 0 || strcmp ("--quiet", argv[i]) == 0) - { - mutable_test_config_vars.test_quiet = TRUE; - mutable_test_config_vars.test_verbose = FALSE; - argv[i] = NULL; - } - else if (strcmp ("--verbose", argv[i]) == 0) - { - mutable_test_config_vars.test_quiet = FALSE; - mutable_test_config_vars.test_verbose = TRUE; - argv[i] = NULL; - } - else if (strcmp ("-l", argv[i]) == 0) - { - test_run_list = TRUE; - argv[i] = NULL; - } - else if (strcmp ("--seed", argv[i]) == 0 || strncmp ("--seed=", argv[i], 7) == 0) - { - gchar *equal = argv[i] + 6; - if (*equal == '=') - test_run_seedstr = equal + 1; - else if (i + 1 < argc) - { - argv[i++] = NULL; - test_run_seedstr = argv[i]; - } - argv[i] = NULL; - } - else if (strcmp ("-?", argv[i]) == 0 || strcmp ("--help", argv[i]) == 0) - { - printf ("Usage:\n" - " %s [OPTION...]\n\n" - "Help Options:\n" - " -?, --help Show help options\n" - "Test Options:\n" - " -l List test cases available in a test executable\n" - " -seed=RANDOMSEED Provide a random seed to reproduce test\n" - " runs using random numbers\n" - " --verbose Run tests verbosely\n" - " -q, --quiet Run tests quietly\n" - " -p TESTPATH execute all tests matching TESTPATH\n" - " -m {perf|slow|thorough|quick} Execute tests according modes\n" - " --debug-log debug test logging output\n" - " -k, --keep-going gtester-specific argument\n" - " --GTestLogFD=N gtester-specific argument\n" - " --GTestSkipCount=N gtester-specific argument\n", - argv[0]); - exit (0); - } - } - /* collapse argv */ - e = 1; - for (i = 1; i < argc; i++) - if (argv[i]) - { - argv[e++] = argv[i]; - if (i >= e) - argv[i] = NULL; - } - *argc_p = e; -} - -/** - * g_test_init: - * @argc: Address of the @argc parameter of the main() function. - * Changed if any arguments were handled. - * @argv: Address of the @argv parameter of main(). - * Any parameters understood by g_test_init() stripped before return. - * @Varargs: Reserved for future extension. Currently, you must pass %NULL. - * - * Initialize the GLib testing framework, e.g. by seeding the - * test random number generator, the name for g_get_prgname() - * and parsing test related command line args. - * So far, the following arguments are understood: - * - * - * - * - * list test cases available in a test executable. - * - * - * - * - * - * provide a random seed to reproduce test runs using random numbers. - * - * - * - * - * run tests verbosely. - * - * - * , - * run tests quietly. - * - * - * - * - * execute all tests matching TESTPATH. - * - * - * - * - * - * execute tests according to these test modes: - * - * - * perf - * - * performance tests, may take long and report results. - * - * - * - * slow, thorough - * - * slow and thorough tests, may take quite long and - * maximize coverage. - * - * - * - * quick - * - * quick tests, should run really quickly and give good coverage. - * - * - * - * - * - * - * - * debug test logging output. - * - * - * , - * gtester-specific argument. - * - * - * - * gtester-specific argument. - * - * - * - * gtester-specific argument. - * - * - * - * Since: 2.16 - */ -void -g_test_init (int *argc, - char ***argv, - ...) -{ - static char seedstr[4 + 4 * 8 + 1]; - va_list args; - gpointer vararg1; - /* make warnings and criticals fatal for all test programs */ - GLogLevelFlags fatal_mask = (GLogLevelFlags) g_log_set_always_fatal ((GLogLevelFlags) G_LOG_FATAL_MASK); - fatal_mask = (GLogLevelFlags) (fatal_mask | G_LOG_LEVEL_WARNING | G_LOG_LEVEL_CRITICAL); - g_log_set_always_fatal (fatal_mask); - /* check caller args */ - g_return_if_fail (argc != NULL); - g_return_if_fail (argv != NULL); - g_return_if_fail (g_test_config_vars->test_initialized == FALSE); - mutable_test_config_vars.test_initialized = TRUE; - - va_start (args, argv); - vararg1 = va_arg (args, gpointer); /* reserved for future extensions */ - va_end (args); - g_return_if_fail (vararg1 == NULL); - - /* setup random seed string */ - g_snprintf (seedstr, sizeof (seedstr), "R02S%08x%08x%08x%08x", g_random_int(), g_random_int(), g_random_int(), g_random_int()); - test_run_seedstr = seedstr; - - /* parse args, sets up mode, changes seed, etc. */ - parse_args (argc, argv); - if (!g_get_prgname()) - g_set_prgname ((*argv)[0]); - - /* verify GRand reliability, needed for reliable seeds */ - if (1) - { - GRand *rg = g_rand_new_with_seed (0xc8c49fb6); - guint32 t1 = g_rand_int (rg), t2 = g_rand_int (rg), t3 = g_rand_int (rg), t4 = g_rand_int (rg); - /* g_print ("GRand-current: 0x%x 0x%x 0x%x 0x%x\n", t1, t2, t3, t4); */ - if (t1 != 0xfab39f9b || t2 != 0xb948fb0e || t3 != 0x3d31be26 || t4 != 0x43a19d66) - g_warning ("random numbers are not GRand-2.2 compatible, seeds may be broken (check $G_RANDOM_VERSION)"); - g_rand_free (rg); - } - - /* check rand seed */ - test_run_seed (test_run_seedstr); - - /* report program start */ - g_log_set_default_handler (gtest_default_log_handler, NULL); - g_test_log (G_TEST_LOG_START_BINARY, g_get_prgname(), test_run_seedstr, 0, NULL); -} - -static void -test_run_seed (const gchar *rseed) -{ - guint seed_failed = 0; - if (test_run_rand) - g_rand_free (test_run_rand); - test_run_rand = NULL; - while (strchr (" \t\v\r\n\f", *rseed)) - rseed++; - if (strncmp (rseed, "R02S", 4) == 0) /* seed for random generator 02 (GRand-2.2) */ - { - const char *s = rseed + 4; - if (strlen (s) >= 32) /* require 4 * 8 chars */ - { - guint32 seedarray[4]; - gchar *p, hexbuf[9] = { 0, }; - memcpy (hexbuf, s + 0, 8); - seedarray[0] = g_ascii_strtoull (hexbuf, &p, 16); - seed_failed += p != NULL && *p != 0; - memcpy (hexbuf, s + 8, 8); - seedarray[1] = g_ascii_strtoull (hexbuf, &p, 16); - seed_failed += p != NULL && *p != 0; - memcpy (hexbuf, s + 16, 8); - seedarray[2] = g_ascii_strtoull (hexbuf, &p, 16); - seed_failed += p != NULL && *p != 0; - memcpy (hexbuf, s + 24, 8); - seedarray[3] = g_ascii_strtoull (hexbuf, &p, 16); - seed_failed += p != NULL && *p != 0; - if (!seed_failed) - { - test_run_rand = g_rand_new_with_seed_array (seedarray, 4); - return; - } - } - } - g_error ("Unknown or invalid random seed: %s", rseed); -} - -/** - * g_test_rand_int: - * - * Get a reproducible random integer number. - * - * The random numbers generated by the g_test_rand_*() family of functions - * change with every new test program start, unless the --seed option is - * given when starting test programs. - * - * For individual test cases however, the random number generator is - * reseeded, to avoid dependencies between tests and to make --seed - * effective for all test cases. - * - * Returns: a random number from the seeded random number generator. - * - * Since: 2.16 - */ -gint32 -g_test_rand_int (void) -{ - return g_rand_int (test_run_rand); -} - -/** - * g_test_rand_int_range: - * @begin: the minimum value returned by this function - * @end: the smallest value not to be returned by this function - * - * Get a reproducible random integer number out of a specified range, - * see g_test_rand_int() for details on test case random numbers. - * - * Returns: a number with @begin <= number < @end. - * - * Since: 2.16 - */ -gint32 -g_test_rand_int_range (gint32 begin, - gint32 end) -{ - return g_rand_int_range (test_run_rand, begin, end); -} - -/** - * g_test_rand_double: - * - * Get a reproducible random floating point number, - * see g_test_rand_int() for details on test case random numbers. - * - * Returns: a random number from the seeded random number generator. - * - * Since: 2.16 - */ -double -g_test_rand_double (void) -{ - return g_rand_double (test_run_rand); -} - -/** - * g_test_rand_double_range: - * @range_start: the minimum value returned by this function - * @range_end: the minimum value not returned by this function - * - * Get a reproducible random floating pointer number out of a specified range, - * see g_test_rand_int() for details on test case random numbers. - * - * Returns: a number with @range_start <= number < @range_end. - * - * Since: 2.16 - */ -double -g_test_rand_double_range (double range_start, - double range_end) -{ - return g_rand_double_range (test_run_rand, range_start, range_end); -} - -/** - * g_test_timer_start: - * - * Start a timing test. Call g_test_timer_elapsed() when the task is supposed - * to be done. Call this function again to restart the timer. - * - * Since: 2.16 - */ -void -g_test_timer_start (void) -{ - if (!test_user_timer) - test_user_timer = g_timer_new(); - test_user_stamp = 0; - g_timer_start (test_user_timer); -} - -/** - * g_test_timer_elapsed: - * - * Get the time since the last start of the timer with g_test_timer_start(). - * - * Returns: the time since the last start of the timer, as a double - * - * Since: 2.16 - */ -double -g_test_timer_elapsed (void) -{ - test_user_stamp = test_user_timer ? g_timer_elapsed (test_user_timer, NULL) : 0; - return test_user_stamp; -} - -/** - * g_test_timer_last: - * - * Report the last result of g_test_timer_elapsed(). - * - * Returns: the last result of g_test_timer_elapsed(), as a double - * - * Since: 2.16 - */ -double -g_test_timer_last (void) -{ - return test_user_stamp; -} - -/** - * g_test_minimized_result: - * @minimized_quantity: the reported value - * @format: the format string of the report message - * @Varargs: arguments to pass to the printf() function - * - * Report the result of a performance or measurement test. - * The test should generally strive to minimize the reported - * quantities (smaller values are better than larger ones), - * this and @minimized_quantity can determine sorting - * order for test result reports. - * - * Since: 2.16 - */ -void -g_test_minimized_result (double minimized_quantity, - const char *format, - ...) -{ - long double largs = minimized_quantity; - gchar *buffer; - va_list args; - va_start (args, format); - buffer = g_strdup_vprintf (format, args); - va_end (args); - g_test_log (G_TEST_LOG_MIN_RESULT, buffer, NULL, 1, &largs); - g_free (buffer); -} - -/** - * g_test_maximized_result: - * @maximized_quantity: the reported value - * @format: the format string of the report message - * @Varargs: arguments to pass to the printf() function - * - * Report the result of a performance or measurement test. - * The test should generally strive to maximize the reported - * quantities (larger values are better than smaller ones), - * this and @maximized_quantity can determine sorting - * order for test result reports. - * - * Since: 2.16 - */ -void -g_test_maximized_result (double maximized_quantity, - const char *format, - ...) -{ - long double largs = maximized_quantity; - gchar *buffer; - va_list args; - va_start (args, format); - buffer = g_strdup_vprintf (format, args); - va_end (args); - g_test_log (G_TEST_LOG_MAX_RESULT, buffer, NULL, 1, &largs); - g_free (buffer); -} - -/** - * g_test_message: - * @format: the format string - * @...: printf-like arguments to @format - * - * Add a message to the test report. - * - * Since: 2.16 - */ -void -g_test_message (const char *format, - ...) -{ - gchar *buffer; - va_list args; - va_start (args, format); - buffer = g_strdup_vprintf (format, args); - va_end (args); - g_test_log (G_TEST_LOG_MESSAGE, buffer, NULL, 0, NULL); - g_free (buffer); -} - -/** - * g_test_bug_base: - * @uri_pattern: the base pattern for bug URIs - * - * Specify the base URI for bug reports. - * - * The base URI is used to construct bug report messages for - * g_test_message() when g_test_bug() is called. - * Calling this function outside of a test case sets the - * default base URI for all test cases. Calling it from within - * a test case changes the base URI for the scope of the test - * case only. - * Bug URIs are constructed by appending a bug specific URI - * portion to @uri_pattern, or by replacing the special string - * '%s' within @uri_pattern if that is present. - * - * Since: 2.16 - */ -void -g_test_bug_base (const char *uri_pattern) -{ - g_free (test_uri_base); - test_uri_base = g_strdup (uri_pattern); -} - -/** - * g_test_bug: - * @bug_uri_snippet: Bug specific bug tracker URI portion. - * - * This function adds a message to test reports that - * associates a bug URI with a test case. - * Bug URIs are constructed from a base URI set with g_test_bug_base() - * and @bug_uri_snippet. - * - * Since: 2.16 - */ -void -g_test_bug (const char *bug_uri_snippet) -{ - char *c; - g_return_if_fail (test_uri_base != NULL); - g_return_if_fail (bug_uri_snippet != NULL); - c = strstr (test_uri_base, "%s"); - if (c) - { - char *b = g_strndup (test_uri_base, c - test_uri_base); - char *s = g_strconcat (b, bug_uri_snippet, c + 2, NULL); - g_free (b); - g_test_message ("Bug Reference: %s", s); - g_free (s); - } - else - g_test_message ("Bug Reference: %s%s", test_uri_base, bug_uri_snippet); -} - -/** - * g_test_get_root: - * - * Get the toplevel test suite for the test path API. - * - * Returns: the toplevel #GTestSuite - * - * Since: 2.16 - */ -GTestSuite* -g_test_get_root (void) -{ - if (!test_suite_root) - { - test_suite_root = g_test_create_suite ("root"); - g_free (test_suite_root->name); - test_suite_root->name = g_strdup (""); - } - return test_suite_root; -} - -/** - * g_test_run: - * - * Runs all tests under the toplevel suite which can be retrieved - * with g_test_get_root(). Similar to g_test_run_suite(), the test - * cases to be run are filtered according to - * test path arguments (-p testpath) as - * parsed by g_test_init(). - * g_test_run_suite() or g_test_run() may only be called once - * in a program. - * - * Returns: 0 on success - * - * Since: 2.16 - */ -int -g_test_run (void) -{ - return g_test_run_suite (g_test_get_root()); -} - -/** - * g_test_create_case: - * @test_name: the name for the test case - * @data_size: the size of the fixture data structure - * @test_data: test data argument for the test functions - * @data_setup: the function to set up the fixture data - * @data_test: the actual test function - * @data_teardown: the function to teardown the fixture data - * - * Create a new #GTestCase, named @test_name, this API is fairly - * low level, calling g_test_add() or g_test_add_func() is preferable. - * When this test is executed, a fixture structure of size @data_size - * will be allocated and filled with 0s. Then data_setup() is called - * to initialize the fixture. After fixture setup, the actual test - * function data_test() is called. Once the test run completed, the - * fixture structure is torn down by calling data_teardown() and - * after that the memory is released. - * - * Splitting up a test run into fixture setup, test function and - * fixture teardown is most usful if the same fixture is used for - * multiple tests. In this cases, g_test_create_case() will be - * called with the same fixture, but varying @test_name and - * @data_test arguments. - * - * Returns: a newly allocated #GTestCase. - * - * Since: 2.16 - */ -GTestCase* -g_test_create_case (const char *test_name, - gsize data_size, - gconstpointer test_data, - void (*data_setup) (void), - void (*data_test) (void), - void (*data_teardown) (void)) -{ - GTestCase *tc; - g_return_val_if_fail (test_name != NULL, NULL); - g_return_val_if_fail (strchr (test_name, '/') == NULL, NULL); - g_return_val_if_fail (test_name[0] != 0, NULL); - g_return_val_if_fail (data_test != NULL, NULL); - tc = g_slice_new0 (GTestCase); - tc->name = g_strdup (test_name); - tc->test_data = (gpointer) test_data; - tc->fixture_size = data_size; - tc->fixture_setup = (void*) data_setup; - tc->fixture_test = (void*) data_test; - tc->fixture_teardown = (void*) data_teardown; - return tc; -} - -void -g_test_add_vtable (const char *testpath, - gsize data_size, - gconstpointer test_data, - void (*data_setup) (void), - void (*fixture_test_func) (void), - void (*data_teardown) (void)) -{ - gchar **segments; - guint ui; - GTestSuite *suite; - - g_return_if_fail (testpath != NULL); - g_return_if_fail (testpath[0] == '/'); - g_return_if_fail (fixture_test_func != NULL); - - suite = g_test_get_root(); - segments = g_strsplit (testpath, "/", -1); - for (ui = 0; segments[ui] != NULL; ui++) - { - const char *seg = segments[ui]; - gboolean islast = segments[ui + 1] == NULL; - if (islast && !seg[0]) - g_error ("invalid test case path: %s", testpath); - else if (!seg[0]) - continue; /* initial or duplicate slash */ - else if (!islast) - { - GTestSuite *csuite = g_test_create_suite (seg); - g_test_suite_add_suite (suite, csuite); - suite = csuite; - } - else /* islast */ - { - GTestCase *tc = g_test_create_case (seg, data_size, test_data, data_setup, fixture_test_func, data_teardown); - g_test_suite_add (suite, tc); - } - } - g_strfreev (segments); -} - -/** - * g_test_add_func: - * @testpath: Slash-separated test case path name for the test. - * @test_func: The test function to invoke for this test. - * - * Create a new test case, similar to g_test_create_case(). However - * the test is assumed to use no fixture, and test suites are automatically - * created on the fly and added to the root fixture, based on the - * slash-separated portions of @testpath. - * - * Since: 2.16 - */ -void -g_test_add_func (const char *testpath, - void (*test_func) (void)) -{ - g_return_if_fail (testpath != NULL); - g_return_if_fail (testpath[0] == '/'); - g_return_if_fail (test_func != NULL); - g_test_add_vtable (testpath, 0, NULL, NULL, test_func, NULL); -} - -/** - * g_test_add_data_func: - * @testpath: Slash-separated test case path name for the test. - * @test_data: Test data argument for the test function. - * @test_func: The test function to invoke for this test. - * - * Create a new test case, similar to g_test_create_case(). However - * the test is assumed to use no fixture, and test suites are automatically - * created on the fly and added to the root fixture, based on the - * slash-separated portions of @testpath. The @test_data argument - * will be passed as first argument to @test_func. - * - * Since: 2.16 - */ -void -g_test_add_data_func (const char *testpath, - gconstpointer test_data, - void (*test_func) (gconstpointer)) -{ - g_return_if_fail (testpath != NULL); - g_return_if_fail (testpath[0] == '/'); - g_return_if_fail (test_func != NULL); - g_test_add_vtable (testpath, 0, test_data, NULL, (void(*)(void)) test_func, NULL); -} - -/** - * g_test_create_suite: - * @suite_name: a name for the suite - * - * Create a new test suite with the name @suite_name. - * - * Returns: A newly allocated #GTestSuite instance. - * - * Since: 2.16 - */ -GTestSuite* -g_test_create_suite (const char *suite_name) -{ - GTestSuite *ts; - g_return_val_if_fail (suite_name != NULL, NULL); - g_return_val_if_fail (strchr (suite_name, '/') == NULL, NULL); - g_return_val_if_fail (suite_name[0] != 0, NULL); - ts = g_slice_new0 (GTestSuite); - ts->name = g_strdup (suite_name); - return ts; -} - -/** - * g_test_suite_add: - * @suite: a #GTestSuite - * @test_case: a #GTestCase - * - * Adds @test_case to @suite. - * - * Since: 2.16 - */ -void -g_test_suite_add (GTestSuite *suite, - GTestCase *test_case) -{ - g_return_if_fail (suite != NULL); - g_return_if_fail (test_case != NULL); - suite->cases = g_slist_prepend (suite->cases, test_case); -} - -/** - * g_test_suite_add_suite: - * @suite: a #GTestSuite - * @nestedsuite: another #GTestSuite - * - * Adds @nestedsuite to @suite. - * - * Since: 2.16 - */ -void -g_test_suite_add_suite (GTestSuite *suite, - GTestSuite *nestedsuite) -{ - g_return_if_fail (suite != NULL); - g_return_if_fail (nestedsuite != NULL); - suite->suites = g_slist_prepend (suite->suites, nestedsuite); -} - -/** - * g_test_queue_free: - * @gfree_pointer: the pointer to be stored. - * - * Enqueue a pointer to be released with g_free() during the next - * teardown phase. This is equivalent to calling g_test_queue_destroy() - * with a destroy callback of g_free(). - * - * Since: 2.16 - */ -void -g_test_queue_free (gpointer gfree_pointer) -{ - if (gfree_pointer) - g_test_queue_destroy (g_free, gfree_pointer); -} - -/** - * g_test_queue_destroy: - * @destroy_func: Destroy callback for teardown phase. - * @destroy_data: Destroy callback data. - * - * This function enqueus a callback @destroy_func() to be executed - * during the next test case teardown phase. This is most useful - * to auto destruct allocted test resources at the end of a test run. - * Resources are released in reverse queue order, that means enqueueing - * callback A before callback B will cause B() to be called before - * A() during teardown. - * - * Since: 2.16 - */ -void -g_test_queue_destroy (GDestroyNotify destroy_func, - gpointer destroy_data) -{ - DestroyEntry *dentry; - g_return_if_fail (destroy_func != NULL); - dentry = g_slice_new0 (DestroyEntry); - dentry->destroy_func = destroy_func; - dentry->destroy_data = destroy_data; - dentry->next = test_destroy_queue; - test_destroy_queue = dentry; -} - -static int -test_case_run (GTestCase *tc) -{ - gchar *old_name = test_run_name, *old_base = g_strdup (test_uri_base); - test_run_name = g_strconcat (old_name, "/", tc->name, NULL); - if (++test_run_count <= test_skip_count) - g_test_log (G_TEST_LOG_SKIP_CASE, test_run_name, NULL, 0, NULL); - else if (test_run_list) - { - g_print ("%s\n", test_run_name); - g_test_log (G_TEST_LOG_LIST_CASE, test_run_name, NULL, 0, NULL); - } - else - { - GTimer *test_run_timer = g_timer_new(); - long double largs[3]; - void *fixture; - g_test_log (G_TEST_LOG_START_CASE, test_run_name, NULL, 0, NULL); - test_run_forks = 0; - g_timer_start (test_run_timer); - fixture = tc->fixture_size ? g_malloc0 (tc->fixture_size) : tc->test_data; - test_run_seed (test_run_seedstr); - if (tc->fixture_setup) - tc->fixture_setup (fixture, tc->test_data); - tc->fixture_test (fixture, tc->test_data); - test_trap_clear(); - while (test_destroy_queue) - { - DestroyEntry *dentry = test_destroy_queue; - test_destroy_queue = dentry->next; - dentry->destroy_func (dentry->destroy_data); - g_slice_free (DestroyEntry, dentry); - } - if (tc->fixture_teardown) - tc->fixture_teardown (fixture, tc->test_data); - if (tc->fixture_size) - g_free (fixture); - g_timer_stop (test_run_timer); - largs[0] = 0; /* OK */ - largs[1] = test_run_forks; - largs[2] = g_timer_elapsed (test_run_timer, NULL); - g_test_log (G_TEST_LOG_STOP_CASE, NULL, NULL, G_N_ELEMENTS (largs), largs); - g_timer_destroy (test_run_timer); - } - g_free (test_run_name); - test_run_name = old_name; - g_free (test_uri_base); - test_uri_base = old_base; - return 0; -} - -static int -g_test_run_suite_internal (GTestSuite *suite, - const char *path) -{ - guint n_bad = 0, n_good = 0, bad_suite = 0, l; - gchar *rest, *old_name = test_run_name; - GSList *slist, *reversed; - g_return_val_if_fail (suite != NULL, -1); - while (path[0] == '/') - path++; - l = strlen (path); - rest = strchr (path, '/'); - l = rest ? MIN (l, rest - path) : l; - test_run_name = suite->name[0] == 0 ? g_strdup (test_run_name) : g_strconcat (old_name, "/", suite->name, NULL); - reversed = g_slist_reverse (g_slist_copy (suite->cases)); - for (slist = reversed; slist; slist = slist->next) - { - GTestCase *tc = slist->data; - guint n = l ? strlen (tc->name) : 0; - if (l == n && strncmp (path, tc->name, n) == 0) - { - n_good++; - n_bad += test_case_run (tc) != 0; - } - } - g_slist_free (reversed); - reversed = g_slist_reverse (g_slist_copy (suite->suites)); - for (slist = reversed; slist; slist = slist->next) - { - GTestSuite *ts = slist->data; - guint n = l ? strlen (ts->name) : 0; - if (l == n && strncmp (path, ts->name, n) == 0) - bad_suite += g_test_run_suite_internal (ts, rest ? rest : "") != 0; - } - g_slist_free (reversed); - g_free (test_run_name); - test_run_name = old_name; - return n_bad || bad_suite; -} - -/** - * g_test_run_suite: - * @suite: a #GTestSuite - * - * Execute the tests within @suite and all nested #GTestSuites. - * The test suites to be executed are filtered according to - * test path arguments (-p testpath) - * as parsed by g_test_init(). - * g_test_run_suite() or g_test_run() may only be called once - * in a program. - * - * Returns: 0 on success - * - * Since: 2.16 - */ -int -g_test_run_suite (GTestSuite *suite) -{ - guint n_bad = 0; - g_return_val_if_fail (g_test_config_vars->test_initialized, -1); - g_return_val_if_fail (g_test_run_once == TRUE, -1); - g_test_run_once = FALSE; - if (!test_paths) - test_paths = g_slist_prepend (test_paths, ""); - while (test_paths) - { - const char *rest, *path = test_paths->data; - guint l, n = strlen (suite->name); - test_paths = g_slist_delete_link (test_paths, test_paths); - while (path[0] == '/') - path++; - if (!n) /* root suite, run unconditionally */ - { - n_bad += 0 != g_test_run_suite_internal (suite, path); - continue; - } - /* regular suite, match path */ - rest = strchr (path, '/'); - l = strlen (path); - l = rest ? MIN (l, rest - path) : l; - if ((!l || l == n) && strncmp (path, suite->name, n) == 0) - n_bad += 0 != g_test_run_suite_internal (suite, rest ? rest : ""); - } - return n_bad; -} - -static void -gtest_default_log_handler (const gchar *log_domain, - GLogLevelFlags log_level, - const gchar *message, - gpointer unused_data) -{ - const gchar *strv[16]; - gchar *msg; - guint i = 0; - if (log_domain) - { - strv[i++] = log_domain; - strv[i++] = "-"; - } - if (log_level & G_LOG_FLAG_FATAL) - strv[i++] = "FATAL-"; - if (log_level & G_LOG_FLAG_RECURSION) - strv[i++] = "RECURSIVE-"; - if (log_level & G_LOG_LEVEL_ERROR) - strv[i++] = "ERROR"; - if (log_level & G_LOG_LEVEL_CRITICAL) - strv[i++] = "CRITICAL"; - if (log_level & G_LOG_LEVEL_WARNING) - strv[i++] = "WARNING"; - if (log_level & G_LOG_LEVEL_MESSAGE) - strv[i++] = "MESSAGE"; - if (log_level & G_LOG_LEVEL_INFO) - strv[i++] = "INFO"; - if (log_level & G_LOG_LEVEL_DEBUG) - strv[i++] = "DEBUG"; - strv[i++] = ": "; - strv[i++] = message; - strv[i++] = NULL; - msg = g_strjoinv ("", (gchar**) strv); - g_test_log (G_TEST_LOG_ERROR, msg, NULL, 0, NULL); - g_log_default_handler (log_domain, log_level, message, unused_data); - g_free (msg); -} - -void -g_assertion_message (const char *domain, - const char *file, - int line, - const char *func, - const char *message) -{ - char lstr[32]; - char *s; - if (!message) - message = "code should not be reached"; - g_snprintf (lstr, 32, "%d", line); - s = g_strconcat (domain ? domain : "", domain && domain[0] ? ":" : "", - "ERROR:", file, ":", lstr, ":", - func, func[0] ? ":" : "", - " ", message, NULL); - g_printerr ("**\n%s\n", s); - g_test_log (G_TEST_LOG_ERROR, s, NULL, 0, NULL); - g_free (s); - abort(); -} - -void -g_assertion_message_expr (const char *domain, - const char *file, - int line, - const char *func, - const char *expr) -{ - char *s = g_strconcat ("assertion failed: (", expr, ")", NULL); - g_assertion_message (domain, file, line, func, s); - g_free (s); -} - -void -g_assertion_message_cmpnum (const char *domain, - const char *file, - int line, - const char *func, - const char *expr, - long double arg1, - const char *cmp, - long double arg2, - char numtype) -{ - char *s = NULL; - switch (numtype) - { - case 'i': s = g_strdup_printf ("assertion failed (%s): (%.0Lf %s %.0Lf)", expr, arg1, cmp, arg2); break; - case 'x': s = g_strdup_printf ("assertion failed (%s): (0x%08" G_GINT64_MODIFIER "x %s 0x%08" G_GINT64_MODIFIER "x)", expr, (guint64) arg1, cmp, (guint64) arg2); break; - case 'f': s = g_strdup_printf ("assertion failed (%s): (%.9Lg %s %.9Lg)", expr, arg1, cmp, arg2); break; - /* ideally use: floats=%.7g double=%.17g */ - } - g_assertion_message (domain, file, line, func, s); - g_free (s); -} - -void -g_assertion_message_cmpstr (const char *domain, - const char *file, - int line, - const char *func, - const char *expr, - const char *arg1, - const char *cmp, - const char *arg2) -{ - char *a1, *a2, *s, *t1 = NULL, *t2 = NULL; - a1 = arg1 ? g_strconcat ("\"", t1 = g_strescape (arg1, NULL), "\"", NULL) : g_strdup ("NULL"); - a2 = arg2 ? g_strconcat ("\"", t2 = g_strescape (arg2, NULL), "\"", NULL) : g_strdup ("NULL"); - g_free (t1); - g_free (t2); - s = g_strdup_printf ("assertion failed (%s): (%s %s %s)", expr, a1, cmp, a2); - g_free (a1); - g_free (a2); - g_assertion_message (domain, file, line, func, s); - g_free (s); -} - -void -g_assertion_message_error (const char *domain, - const char *file, - int line, - const char *func, - const char *expr, - GError *error, - GQuark error_domain, - int error_code) -{ - GString *gstring; - - /* This is used by both g_assert_error() and g_assert_no_error(), so there - * are three cases: expected an error but got the wrong error, expected - * an error but got no error, and expected no error but got an error. - */ - - gstring = g_string_new ("assertion failed "); - if (error_domain) - g_string_append_printf (gstring, "(%s == (%s, %d)): ", expr, - g_quark_to_string (error_domain), error_code); - else - g_string_append_printf (gstring, "(%s == NULL): ", expr); - - if (error) - g_string_append_printf (gstring, "%s (%s, %d)", error->message, - g_quark_to_string (error->domain), error->code); - else - g_string_append_printf (gstring, "%s is NULL", expr); - - g_assertion_message (domain, file, line, func, gstring->str); - g_string_free (gstring, TRUE); -} - -/** - * g_strcmp0: - * @str1: a C string or %NULL - * @str2: another C string or %NULL - * - * Compares @str1 and @str2 like strcmp(). Handles %NULL - * gracefully by sorting it before non-%NULL strings. - * - * Returns: -1, 0 or 1, if @str1 is <, == or > than @str2. - * - * Since: 2.16 - */ -int -g_strcmp0 (const char *str1, - const char *str2) -{ - if (!str1) - return -(str1 != str2); - if (!str2) - return str1 != str2; - return strcmp (str1, str2); -} - -#ifdef G_OS_UNIX -static int /* 0 on success */ -kill_child (int pid, - int *status, - int patience) -{ - int wr; - if (patience >= 3) /* try graceful reap */ - { - if (waitpid (pid, status, WNOHANG) > 0) - return 0; - } - if (patience >= 2) /* try SIGHUP */ - { - kill (pid, SIGHUP); - if (waitpid (pid, status, WNOHANG) > 0) - return 0; - g_usleep (20 * 1000); /* give it some scheduling/shutdown time */ - if (waitpid (pid, status, WNOHANG) > 0) - return 0; - g_usleep (50 * 1000); /* give it some scheduling/shutdown time */ - if (waitpid (pid, status, WNOHANG) > 0) - return 0; - g_usleep (100 * 1000); /* give it some scheduling/shutdown time */ - if (waitpid (pid, status, WNOHANG) > 0) - return 0; - } - if (patience >= 1) /* try SIGTERM */ - { - kill (pid, SIGTERM); - if (waitpid (pid, status, WNOHANG) > 0) - return 0; - g_usleep (200 * 1000); /* give it some scheduling/shutdown time */ - if (waitpid (pid, status, WNOHANG) > 0) - return 0; - g_usleep (400 * 1000); /* give it some scheduling/shutdown time */ - if (waitpid (pid, status, WNOHANG) > 0) - return 0; - } - /* finish it off */ - kill (pid, SIGKILL); - do - wr = waitpid (pid, status, 0); - while (wr < 0 && errno == EINTR); - return wr; -} -#endif - -static inline int -g_string_must_read (GString *gstring, - int fd) -{ -#define STRING_BUFFER_SIZE 4096 - char buf[STRING_BUFFER_SIZE]; - gssize bytes; - again: - bytes = read (fd, buf, sizeof (buf)); - if (bytes == 0) - return 0; /* EOF, calling this function assumes data is available */ - else if (bytes > 0) - { - g_string_append_len (gstring, buf, bytes); - return 1; - } - else if (bytes < 0 && errno == EINTR) - goto again; - else /* bytes < 0 */ - { - g_warning ("failed to read() from child process (%d): %s", test_trap_last_pid, g_strerror (errno)); - return 1; /* ignore error after warning */ - } -} - -static inline void -g_string_write_out (GString *gstring, - int outfd, - int *stringpos) -{ - if (*stringpos < gstring->len) - { - int r; - do - r = write (outfd, gstring->str + *stringpos, gstring->len - *stringpos); - while (r < 0 && errno == EINTR); - *stringpos += MAX (r, 0); - } -} - -static void -test_trap_clear (void) -{ - test_trap_last_status = 0; - test_trap_last_pid = 0; - g_free (test_trap_last_stdout); - test_trap_last_stdout = NULL; - g_free (test_trap_last_stderr); - test_trap_last_stderr = NULL; -} - -#ifdef G_OS_UNIX - -static int -sane_dup2 (int fd1, - int fd2) -{ - int ret; - do - ret = dup2 (fd1, fd2); - while (ret < 0 && errno == EINTR); - return ret; -} - -static guint64 -test_time_stamp (void) -{ - GTimeVal tv; - guint64 stamp; - g_get_current_time (&tv); - stamp = tv.tv_sec; - stamp = stamp * 1000000 + tv.tv_usec; - return stamp; -} - -#endif - -/** - * g_test_trap_fork: - * @usec_timeout: Timeout for the forked test in micro seconds. - * @test_trap_flags: Flags to modify forking behaviour. - * - * Fork the current test program to execute a test case that might - * not return or that might abort. The forked test case is aborted - * and considered failing if its run time exceeds @usec_timeout. - * - * The forking behavior can be configured with the #GTestTrapFlags flags. - * - * In the following example, the test code forks, the forked child - * process produces some sample output and exits successfully. - * The forking parent process then asserts successful child program - * termination and validates child program outputs. - * - * |[ - * static void - * test_fork_patterns (void) - * { - * if (g_test_trap_fork (0, G_TEST_TRAP_SILENCE_STDOUT | G_TEST_TRAP_SILENCE_STDERR)) - * { - * g_print ("some stdout text: somagic17\n"); - * g_printerr ("some stderr text: semagic43\n"); - * exit (0); /* successful test run */ - * } - * g_test_trap_assert_passed(); - * g_test_trap_assert_stdout ("*somagic17*"); - * g_test_trap_assert_stderr ("*semagic43*"); - * } - * ]| - * - * This function is implemented only on Unix platforms. - * - * Returns: %TRUE for the forked child and %FALSE for the executing parent process. - * - * Since: 2.16 - */ -gboolean -g_test_trap_fork (guint64 usec_timeout, - GTestTrapFlags test_trap_flags) -{ -#ifdef G_OS_UNIX - gboolean pass_on_forked_log = FALSE; - int stdout_pipe[2] = { -1, -1 }; - int stderr_pipe[2] = { -1, -1 }; - int stdtst_pipe[2] = { -1, -1 }; - test_trap_clear(); - if (pipe (stdout_pipe) < 0 || pipe (stderr_pipe) < 0 || pipe (stdtst_pipe) < 0) - g_error ("failed to create pipes to fork test program: %s", g_strerror (errno)); - signal (SIGCHLD, SIG_DFL); - test_trap_last_pid = fork (); - if (test_trap_last_pid < 0) - g_error ("failed to fork test program: %s", g_strerror (errno)); - if (test_trap_last_pid == 0) /* child */ - { - int fd0 = -1; - close (stdout_pipe[0]); - close (stderr_pipe[0]); - close (stdtst_pipe[0]); - if (!(test_trap_flags & G_TEST_TRAP_INHERIT_STDIN)) - fd0 = open ("/dev/null", O_RDONLY); - if (sane_dup2 (stdout_pipe[1], 1) < 0 || sane_dup2 (stderr_pipe[1], 2) < 0 || (fd0 >= 0 && sane_dup2 (fd0, 0) < 0)) - g_error ("failed to dup2() in forked test program: %s", g_strerror (errno)); - if (fd0 >= 3) - close (fd0); - if (stdout_pipe[1] >= 3) - close (stdout_pipe[1]); - if (stderr_pipe[1] >= 3) - close (stderr_pipe[1]); - test_log_fd = stdtst_pipe[1]; - return TRUE; - } - else /* parent */ - { - GString *sout = g_string_new (NULL); - GString *serr = g_string_new (NULL); - guint64 sstamp; - int soutpos = 0, serrpos = 0, wr, need_wait = TRUE; - test_run_forks++; - close (stdout_pipe[1]); - close (stderr_pipe[1]); - close (stdtst_pipe[1]); - sstamp = test_time_stamp(); - /* read data until we get EOF on all pipes */ - while (stdout_pipe[0] >= 0 || stderr_pipe[0] >= 0 || stdtst_pipe[0] > 0) - { - fd_set fds; - struct timeval tv; - int ret; - FD_ZERO (&fds); - if (stdout_pipe[0] >= 0) - FD_SET (stdout_pipe[0], &fds); - if (stderr_pipe[0] >= 0) - FD_SET (stderr_pipe[0], &fds); - if (stdtst_pipe[0] >= 0) - FD_SET (stdtst_pipe[0], &fds); - tv.tv_sec = 0; - tv.tv_usec = MIN (usec_timeout ? usec_timeout : 1000000, 100 * 1000); /* sleep at most 0.5 seconds to catch clock skews, etc. */ - ret = select (MAX (MAX (stdout_pipe[0], stderr_pipe[0]), stdtst_pipe[0]) + 1, &fds, NULL, NULL, &tv); - if (ret < 0 && errno != EINTR) - { - g_warning ("Unexpected error in select() while reading from child process (%d): %s", test_trap_last_pid, g_strerror (errno)); - break; - } - if (stdout_pipe[0] >= 0 && FD_ISSET (stdout_pipe[0], &fds) && - g_string_must_read (sout, stdout_pipe[0]) == 0) - { - close (stdout_pipe[0]); - stdout_pipe[0] = -1; - } - if (stderr_pipe[0] >= 0 && FD_ISSET (stderr_pipe[0], &fds) && - g_string_must_read (serr, stderr_pipe[0]) == 0) - { - close (stderr_pipe[0]); - stderr_pipe[0] = -1; - } - if (stdtst_pipe[0] >= 0 && FD_ISSET (stdtst_pipe[0], &fds)) - { - guint8 buffer[4096]; - gint l, r = read (stdtst_pipe[0], buffer, sizeof (buffer)); - if (r > 0 && test_log_fd > 0) - do - l = write (pass_on_forked_log ? test_log_fd : -1, buffer, r); - while (l < 0 && errno == EINTR); - if (r == 0 || (r < 0 && errno != EINTR && errno != EAGAIN)) - { - close (stdtst_pipe[0]); - stdtst_pipe[0] = -1; - } - } - if (!(test_trap_flags & G_TEST_TRAP_SILENCE_STDOUT)) - g_string_write_out (sout, 1, &soutpos); - if (!(test_trap_flags & G_TEST_TRAP_SILENCE_STDERR)) - g_string_write_out (serr, 2, &serrpos); - if (usec_timeout) - { - guint64 nstamp = test_time_stamp(); - int status = 0; - sstamp = MIN (sstamp, nstamp); /* guard against backwards clock skews */ - if (usec_timeout < nstamp - sstamp) - { - /* timeout reached, need to abort the child now */ - kill_child (test_trap_last_pid, &status, 3); - test_trap_last_status = 1024; /* timeout */ - if (0 && WIFSIGNALED (status)) - g_printerr ("%s: child timed out and received: %s\n", G_STRFUNC, g_strsignal (WTERMSIG (status))); - need_wait = FALSE; - break; - } - } - } - close (stdout_pipe[0]); - close (stderr_pipe[0]); - close (stdtst_pipe[0]); - if (need_wait) - { - int status = 0; - do - wr = waitpid (test_trap_last_pid, &status, 0); - while (wr < 0 && errno == EINTR); - if (WIFEXITED (status)) /* normal exit */ - test_trap_last_status = WEXITSTATUS (status); /* 0..255 */ - else if (WIFSIGNALED (status)) - test_trap_last_status = (WTERMSIG (status) << 12); /* signalled */ - else /* WCOREDUMP (status) */ - test_trap_last_status = 512; /* coredump */ - } - test_trap_last_stdout = g_string_free (sout, FALSE); - test_trap_last_stderr = g_string_free (serr, FALSE); - return FALSE; - } -#else - g_message ("Not implemented: g_test_trap_fork"); - - return FALSE; -#endif -} - -/** - * g_test_trap_has_passed: - * - * Check the result of the last g_test_trap_fork() call. - * - * Returns: %TRUE if the last forked child terminated successfully. - * - * Since: 2.16 - */ -gboolean -g_test_trap_has_passed (void) -{ - return test_trap_last_status == 0; /* exit_status == 0 && !signal && !coredump */ -} - -/** - * g_test_trap_reached_timeout: - * - * Check the result of the last g_test_trap_fork() call. - * - * Returns: %TRUE if the last forked child got killed due to a fork timeout. - * - * Since: 2.16 - */ -gboolean -g_test_trap_reached_timeout (void) -{ - return 0 != (test_trap_last_status & 1024); /* timeout flag */ -} - -void -g_test_trap_assertions (const char *domain, - const char *file, - int line, - const char *func, - guint64 assertion_flags, /* 0-pass, 1-fail, 2-outpattern, 4-errpattern */ - const char *pattern) -{ -#ifdef G_OS_UNIX - gboolean must_pass = assertion_flags == 0; - gboolean must_fail = assertion_flags == 1; - gboolean match_result = 0 == (assertion_flags & 1); - const char *stdout_pattern = (assertion_flags & 2) ? pattern : NULL; - const char *stderr_pattern = (assertion_flags & 4) ? pattern : NULL; - const char *match_error = match_result ? "failed to match" : "contains invalid match"; - if (test_trap_last_pid == 0) - g_error ("child process failed to exit after g_test_trap_fork() and before g_test_trap_assert*()"); - if (must_pass && !g_test_trap_has_passed()) - { - char *msg = g_strdup_printf ("child process (%d) of test trap failed unexpectedly", test_trap_last_pid); - g_assertion_message (domain, file, line, func, msg); - g_free (msg); - } - if (must_fail && g_test_trap_has_passed()) - { - char *msg = g_strdup_printf ("child process (%d) did not fail as expected", test_trap_last_pid); - g_assertion_message (domain, file, line, func, msg); - g_free (msg); - } - if (stdout_pattern && match_result == !g_pattern_match_simple (stdout_pattern, test_trap_last_stdout)) - { - char *msg = g_strdup_printf ("stdout of child process (%d) %s: %s", test_trap_last_pid, match_error, stdout_pattern); - g_assertion_message (domain, file, line, func, msg); - g_free (msg); - } - if (stderr_pattern && match_result == !g_pattern_match_simple (stderr_pattern, test_trap_last_stderr)) - { - char *msg = g_strdup_printf ("stderr of child process (%d) %s: %s", test_trap_last_pid, match_error, stderr_pattern); - g_assertion_message (domain, file, line, func, msg); - g_free (msg); - } -#endif -} - -static void -gstring_overwrite_int (GString *gstring, - guint pos, - guint32 vuint) -{ - vuint = g_htonl (vuint); - g_string_overwrite_len (gstring, pos, (const gchar*) &vuint, 4); -} - -static void -gstring_append_int (GString *gstring, - guint32 vuint) -{ - vuint = g_htonl (vuint); - g_string_append_len (gstring, (const gchar*) &vuint, 4); -} - -static void -gstring_append_double (GString *gstring, - double vdouble) -{ - union { double vdouble; guint64 vuint64; } u; - u.vdouble = vdouble; - u.vuint64 = GUINT64_TO_BE (u.vuint64); - g_string_append_len (gstring, (const gchar*) &u.vuint64, 8); -} - -static guint8* -g_test_log_dump (GTestLogMsg *msg, - guint *len) -{ - GString *gstring = g_string_sized_new (1024); - guint ui; - gstring_append_int (gstring, 0); /* message length */ - gstring_append_int (gstring, msg->log_type); - gstring_append_int (gstring, msg->n_strings); - gstring_append_int (gstring, msg->n_nums); - gstring_append_int (gstring, 0); /* reserved */ - for (ui = 0; ui < msg->n_strings; ui++) - { - guint l = strlen (msg->strings[ui]); - gstring_append_int (gstring, l); - g_string_append_len (gstring, msg->strings[ui], l); - } - for (ui = 0; ui < msg->n_nums; ui++) - gstring_append_double (gstring, msg->nums[ui]); - *len = gstring->len; - gstring_overwrite_int (gstring, 0, *len); /* message length */ - return (guint8*) g_string_free (gstring, FALSE); -} - -static inline long double -net_double (const gchar **ipointer) -{ - union { guint64 vuint64; double vdouble; } u; - guint64 aligned_int64; - memcpy (&aligned_int64, *ipointer, 8); - *ipointer += 8; - u.vuint64 = GUINT64_FROM_BE (aligned_int64); - return u.vdouble; -} - -static inline guint32 -net_int (const gchar **ipointer) -{ - guint32 aligned_int; - memcpy (&aligned_int, *ipointer, 4); - *ipointer += 4; - return g_ntohl (aligned_int); -} - -static gboolean -g_test_log_extract (GTestLogBuffer *tbuffer) -{ - const gchar *p = tbuffer->data->str; - GTestLogMsg msg; - guint mlength; - if (tbuffer->data->len < 4 * 5) - return FALSE; - mlength = net_int (&p); - if (tbuffer->data->len < mlength) - return FALSE; - msg.log_type = net_int (&p); - msg.n_strings = net_int (&p); - msg.n_nums = net_int (&p); - if (net_int (&p) == 0) - { - guint ui; - msg.strings = g_new0 (gchar*, msg.n_strings + 1); - msg.nums = g_new0 (long double, msg.n_nums); - for (ui = 0; ui < msg.n_strings; ui++) - { - guint sl = net_int (&p); - msg.strings[ui] = g_strndup (p, sl); - p += sl; - } - for (ui = 0; ui < msg.n_nums; ui++) - msg.nums[ui] = net_double (&p); - if (p <= tbuffer->data->str + mlength) - { - g_string_erase (tbuffer->data, 0, mlength); - tbuffer->msgs = g_slist_prepend (tbuffer->msgs, g_memdup (&msg, sizeof (msg))); - return TRUE; - } - } - g_free (msg.nums); - g_strfreev (msg.strings); - g_error ("corrupt log stream from test program"); - return FALSE; -} - -/** - * g_test_log_buffer_new: - * - * Internal function for gtester to decode test log messages, no ABI guarantees provided. - */ -GTestLogBuffer* -g_test_log_buffer_new (void) -{ - GTestLogBuffer *tb = g_new0 (GTestLogBuffer, 1); - tb->data = g_string_sized_new (1024); - return tb; -} - -/** - * g_test_log_buffer_free - * - * Internal function for gtester to free test log messages, no ABI guarantees provided. - */ -void -g_test_log_buffer_free (GTestLogBuffer *tbuffer) -{ - g_return_if_fail (tbuffer != NULL); - while (tbuffer->msgs) - g_test_log_msg_free (g_test_log_buffer_pop (tbuffer)); - g_string_free (tbuffer->data, TRUE); - g_free (tbuffer); -} - -/** - * g_test_log_buffer_push - * - * Internal function for gtester to decode test log messages, no ABI guarantees provided. - */ -void -g_test_log_buffer_push (GTestLogBuffer *tbuffer, - guint n_bytes, - const guint8 *bytes) -{ - g_return_if_fail (tbuffer != NULL); - if (n_bytes) - { - gboolean more_messages; - g_return_if_fail (bytes != NULL); - g_string_append_len (tbuffer->data, (const gchar*) bytes, n_bytes); - do - more_messages = g_test_log_extract (tbuffer); - while (more_messages); - } -} - -/** - * g_test_log_buffer_pop: - * - * Internal function for gtester to retrieve test log messages, no ABI guarantees provided. - */ -GTestLogMsg* -g_test_log_buffer_pop (GTestLogBuffer *tbuffer) -{ - GTestLogMsg *msg = NULL; - g_return_val_if_fail (tbuffer != NULL, NULL); - if (tbuffer->msgs) - { - GSList *slist = g_slist_last (tbuffer->msgs); - msg = slist->data; - tbuffer->msgs = g_slist_delete_link (tbuffer->msgs, slist); - } - return msg; -} - -/** - * g_test_log_msg_free: - * - * Internal function for gtester to free test log messages, no ABI guarantees provided. - */ -void -g_test_log_msg_free (GTestLogMsg *tmsg) -{ - g_return_if_fail (tmsg != NULL); - g_strfreev (tmsg->strings); - g_free (tmsg->nums); - g_free (tmsg); -} - -/* --- macros docs START --- */ -/** - * g_test_add: - * @testpath: The test path for a new test case. - * @Fixture: The type of a fixture data structure. - * @tdata: Data argument for the test functions. - * @fsetup: The function to set up the fixture data. - * @ftest: The actual test function. - * @fteardown: The function to tear down the fixture data. - * - * Hook up a new test case at @testpath, similar to g_test_add_func(). - * A fixture data structure with setup and teardown function may be provided - * though, similar to g_test_create_case(). - * g_test_add() is implemented as a macro, so that the fsetup(), ftest() and - * fteardown() callbacks can expect a @Fixture pointer as first argument in - * a type safe manner. - * - * Since: 2.16 - **/ -/* --- macros docs END --- */ - -#define __G_TEST_UTILS_C__ -#include "galiasdef.c" diff --git a/lib/win32/glib-2.20.4/glib/gtestutils.h b/lib/win32/glib-2.20.4/glib/gtestutils.h deleted file mode 100644 index 4c474589d3602..0000000000000 --- a/lib/win32/glib-2.20.4/glib/gtestutils.h +++ /dev/null @@ -1,267 +0,0 @@ -/* GLib testing utilities - * Copyright (C) 2007 Imendio AB - * Authors: Tim Janik - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library 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 - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ - -#if defined(G_DISABLE_SINGLE_INCLUDES) && !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION) -#error "Only can be included directly." -#endif - -#ifndef __G_TEST_UTILS_H__ -#define __G_TEST_UTILS_H__ - -#include - -G_BEGIN_DECLS - -typedef struct GTestCase GTestCase; -typedef struct GTestSuite GTestSuite; - -/* assertion API */ -#define g_assert_cmpstr(s1, cmp, s2) do { const char *__s1 = (s1), *__s2 = (s2); \ - if (g_strcmp0 (__s1, __s2) cmp 0) ; else \ - g_assertion_message_cmpstr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \ - #s1 " " #cmp " " #s2, __s1, #cmp, __s2); } while (0) -#define g_assert_cmpint(n1, cmp, n2) do { gint64 __n1 = (n1), __n2 = (n2); \ - if (__n1 cmp __n2) ; else \ - g_assertion_message_cmpnum (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \ - #n1 " " #cmp " " #n2, __n1, #cmp, __n2, 'i'); } while (0) -#define g_assert_cmpuint(n1, cmp, n2) do { guint64 __n1 = (n1), __n2 = (n2); \ - if (__n1 cmp __n2) ; else \ - g_assertion_message_cmpnum (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \ - #n1 " " #cmp " " #n2, __n1, #cmp, __n2, 'i'); } while (0) -#define g_assert_cmphex(n1, cmp, n2) do { guint64 __n1 = (n1), __n2 = (n2); \ - if (__n1 cmp __n2) ; else \ - g_assertion_message_cmpnum (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \ - #n1 " " #cmp " " #n2, __n1, #cmp, __n2, 'x'); } while (0) -#define g_assert_cmpfloat(n1,cmp,n2) do { long double __n1 = (n1), __n2 = (n2); \ - if (__n1 cmp __n2) ; else \ - g_assertion_message_cmpnum (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \ - #n1 " " #cmp " " #n2, __n1, #cmp, __n2, 'f'); } while (0) -#define g_assert_no_error(err) do { if (err) \ - g_assertion_message_error (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \ - #err, err, 0, 0); } while (0) -#define g_assert_error(err, dom, c) do { if (!err || (err)->domain != dom || (err)->code != c) \ - g_assertion_message_error (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \ - #err, err, dom, c); } while (0) -#ifdef G_DISABLE_ASSERT -#define g_assert_not_reached() do { (void) 0; } while (0) -#define g_assert(expr) do { (void) 0; } while (0) -#else /* !G_DISABLE_ASSERT */ -#define g_assert_not_reached() do { g_assertion_message (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, NULL); } while (0) -#define g_assert(expr) do { if G_LIKELY (expr) ; else \ - g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \ - #expr); } while (0) -#endif /* !G_DISABLE_ASSERT */ - -int g_strcmp0 (const char *str1, - const char *str2); - -/* report performance results */ -void g_test_minimized_result (double minimized_quantity, - const char *format, - ...) G_GNUC_PRINTF (2, 3); -void g_test_maximized_result (double maximized_quantity, - const char *format, - ...) G_GNUC_PRINTF (2, 3); - -/* initialize testing framework */ -void g_test_init (int *argc, - char ***argv, - ...); -/* query testing framework config */ -#define g_test_quick() (g_test_config_vars->test_quick) -#define g_test_slow() (!g_test_config_vars->test_quick) -#define g_test_thorough() (!g_test_config_vars->test_quick) -#define g_test_perf() (g_test_config_vars->test_perf) -#define g_test_verbose() (g_test_config_vars->test_verbose) -#define g_test_quiet() (g_test_config_vars->test_quiet) -/* run all tests under toplevel suite (path: /) */ -int g_test_run (void); -/* hook up a test functions under test path */ -void g_test_add_func (const char *testpath, - void (*test_func) (void)); -void g_test_add_data_func (const char *testpath, - gconstpointer test_data, - void (*test_func) (gconstpointer)); -/* hook up a test with fixture under test path */ -#define g_test_add(testpath, Fixture, tdata, fsetup, ftest, fteardown) \ - G_STMT_START { \ - void (*add_vtable) (const char*, \ - gsize, \ - gconstpointer, \ - void (*) (Fixture*, gconstpointer), \ - void (*) (Fixture*, gconstpointer), \ - void (*) (Fixture*, gconstpointer)) = (void (*) (const gchar *, gsize, gconstpointer, void (*) (Fixture*, gconstpointer), void (*) (Fixture*, gconstpointer), void (*) (Fixture*, gconstpointer))) g_test_add_vtable; \ - add_vtable \ - (testpath, sizeof (Fixture), tdata, fsetup, ftest, fteardown); \ - } G_STMT_END - -/* add test messages to the test report */ -void g_test_message (const char *format, - ...) G_GNUC_PRINTF (1, 2); -void g_test_bug_base (const char *uri_pattern); -void g_test_bug (const char *bug_uri_snippet); -/* measure test timings */ -void g_test_timer_start (void); -double g_test_timer_elapsed (void); /* elapsed seconds */ -double g_test_timer_last (void); /* repeat last elapsed() result */ - -/* automatically g_free or g_object_unref upon teardown */ -void g_test_queue_free (gpointer gfree_pointer); -void g_test_queue_destroy (GDestroyNotify destroy_func, - gpointer destroy_data); -#define g_test_queue_unref(gobject) g_test_queue_destroy (g_object_unref, gobject) - -/* test traps are guards used around forked tests */ -typedef enum { - G_TEST_TRAP_SILENCE_STDOUT = 1 << 7, - G_TEST_TRAP_SILENCE_STDERR = 1 << 8, - G_TEST_TRAP_INHERIT_STDIN = 1 << 9 -} GTestTrapFlags; -gboolean g_test_trap_fork (guint64 usec_timeout, - GTestTrapFlags test_trap_flags); -gboolean g_test_trap_has_passed (void); -gboolean g_test_trap_reached_timeout (void); -#define g_test_trap_assert_passed() g_test_trap_assertions (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, 0, 0) -#define g_test_trap_assert_failed() g_test_trap_assertions (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, 1, 0) -#define g_test_trap_assert_stdout(soutpattern) g_test_trap_assertions (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, 2, soutpattern) -#define g_test_trap_assert_stdout_unmatched(soutpattern) g_test_trap_assertions (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, 3, soutpattern) -#define g_test_trap_assert_stderr(serrpattern) g_test_trap_assertions (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, 4, serrpattern) -#define g_test_trap_assert_stderr_unmatched(serrpattern) g_test_trap_assertions (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, 5, serrpattern) - -/* provide seed-able random numbers for tests */ -#define g_test_rand_bit() (0 != (g_test_rand_int() & (1 << 15))) -gint32 g_test_rand_int (void); -gint32 g_test_rand_int_range (gint32 begin, - gint32 end); -double g_test_rand_double (void); -double g_test_rand_double_range (double range_start, - double range_end); - -/* semi-internal API */ -GTestCase* g_test_create_case (const char *test_name, - gsize data_size, - gconstpointer test_data, - void (*data_setup) (void), - void (*data_test) (void), - void (*data_teardown) (void)); -GTestSuite* g_test_create_suite (const char *suite_name); -GTestSuite* g_test_get_root (void); -void g_test_suite_add (GTestSuite *suite, - GTestCase *test_case); -void g_test_suite_add_suite (GTestSuite *suite, - GTestSuite *nestedsuite); -int g_test_run_suite (GTestSuite *suite); - -/* internal ABI */ -void g_test_trap_assertions (const char *domain, - const char *file, - int line, - const char *func, - guint64 assertion_flags, /* 0-pass, 1-fail, 2-outpattern, 4-errpattern */ - const char *pattern); -void g_assertion_message (const char *domain, - const char *file, - int line, - const char *func, - const char *message) G_GNUC_NORETURN; -void g_assertion_message_expr (const char *domain, - const char *file, - int line, - const char *func, - const char *expr) G_GNUC_NORETURN; -void g_assertion_message_cmpstr (const char *domain, - const char *file, - int line, - const char *func, - const char *expr, - const char *arg1, - const char *cmp, - const char *arg2) G_GNUC_NORETURN; -void g_assertion_message_cmpnum (const char *domain, - const char *file, - int line, - const char *func, - const char *expr, - long double arg1, - const char *cmp, - long double arg2, - char numtype) G_GNUC_NORETURN; -void g_assertion_message_error (const char *domain, - const char *file, - int line, - const char *func, - const char *expr, - GError *error, - GQuark error_domain, - int error_code) G_GNUC_NORETURN; -void g_test_add_vtable (const char *testpath, - gsize data_size, - gconstpointer test_data, - void (*data_setup) (void), - void (*data_test) (void), - void (*data_teardown) (void)); -typedef struct { - gboolean test_initialized; - gboolean test_quick; /* disable thorough tests */ - gboolean test_perf; /* run performance tests */ - gboolean test_verbose; /* extra info */ - gboolean test_quiet; /* reduce output */ -} GTestConfig; -GLIB_VAR const GTestConfig * const g_test_config_vars; - -/* internal logging API */ -typedef enum { - G_TEST_LOG_NONE, - G_TEST_LOG_ERROR, /* s:msg */ - G_TEST_LOG_START_BINARY, /* s:binaryname s:seed */ - G_TEST_LOG_LIST_CASE, /* s:testpath */ - G_TEST_LOG_SKIP_CASE, /* s:testpath */ - G_TEST_LOG_START_CASE, /* s:testpath */ - G_TEST_LOG_STOP_CASE, /* d:status d:nforks d:elapsed */ - G_TEST_LOG_MIN_RESULT, /* s:blurb d:result */ - G_TEST_LOG_MAX_RESULT, /* s:blurb d:result */ - G_TEST_LOG_MESSAGE /* s:blurb */ -} GTestLogType; - -typedef struct { - GTestLogType log_type; - guint n_strings; - gchar **strings; /* NULL terminated */ - guint n_nums; - long double *nums; -} GTestLogMsg; -typedef struct { - /*< private >*/ - GString *data; - GSList *msgs; -} GTestLogBuffer; - -const char* g_test_log_type_name (GTestLogType log_type); -GTestLogBuffer* g_test_log_buffer_new (void); -void g_test_log_buffer_free (GTestLogBuffer *tbuffer); -void g_test_log_buffer_push (GTestLogBuffer *tbuffer, - guint n_bytes, - const guint8 *bytes); -GTestLogMsg* g_test_log_buffer_pop (GTestLogBuffer *tbuffer); -void g_test_log_msg_free (GTestLogMsg *tmsg); - -G_END_DECLS - -#endif /* __G_TEST_UTILS_H__ */ diff --git a/lib/win32/glib-2.20.4/glib/gthread.c b/lib/win32/glib-2.20.4/glib/gthread.c deleted file mode 100644 index 0903c7e250c69..0000000000000 --- a/lib/win32/glib-2.20.4/glib/gthread.c +++ /dev/null @@ -1,993 +0,0 @@ -/* GLIB - Library of useful routines for C programming - * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald - * - * gthread.c: MT safety related functions - * Copyright 1998 Sebastian Wilhelmi; University of Karlsruhe - * Owen Taylor - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library 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 - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ - -/* - * Modified by the GLib Team and others 1997-2000. See the AUTHORS - * file for a list of people on the GLib Team. See the ChangeLog - * files for a list of changes. These files are distributed with - * GLib at ftp://ftp.gtk.org/pub/gtk/. - */ - -/* - * MT safe - */ - -/* implement gthread.h's inline functions */ -#define G_IMPLEMENT_INLINES 1 -#define __G_THREAD_C__ - -#include "config.h" - -#include "glib.h" -#include "gthreadprivate.h" - -#ifdef HAVE_UNISTD_H -#include -#endif - -#ifndef G_OS_WIN32 -#include -#include -#else -#include -#endif /* G_OS_WIN32 */ - -#include - -#include "galias.h" - -GQuark -g_thread_error_quark (void) -{ - return g_quark_from_static_string ("g_thread_error"); -} - -/* Keep this in sync with GRealThread in gmain.c! */ -typedef struct _GRealThread GRealThread; -struct _GRealThread -{ - GThread thread; - gpointer private_data; - GRealThread *next; - gpointer retval; - GSystemThread system_thread; -}; - -typedef struct _GStaticPrivateNode GStaticPrivateNode; -struct _GStaticPrivateNode -{ - gpointer data; - GDestroyNotify destroy; -}; - -static void g_thread_cleanup (gpointer data); -static void g_thread_fail (void); -static guint64 gettime (void); - -guint64 (*g_thread_gettime) (void) = gettime; - -/* Global variables */ - -static GSystemThread zero_thread; /* This is initialized to all zero */ -gboolean g_thread_use_default_impl = TRUE; -gboolean g_threads_got_initialized = FALSE; - -GThreadFunctions g_thread_functions_for_glib_use = { - (GMutex*(*)())g_thread_fail, /* mutex_new */ - NULL, /* mutex_lock */ - NULL, /* mutex_trylock */ - NULL, /* mutex_unlock */ - NULL, /* mutex_free */ - (GCond*(*)())g_thread_fail, /* cond_new */ - NULL, /* cond_signal */ - NULL, /* cond_broadcast */ - NULL, /* cond_wait */ - NULL, /* cond_timed_wait */ - NULL, /* cond_free */ - (GPrivate*(*)(GDestroyNotify))g_thread_fail, /* private_new */ - NULL, /* private_get */ - NULL, /* private_set */ - (void(*)(GThreadFunc, gpointer, gulong, - gboolean, gboolean, GThreadPriority, - gpointer, GError**))g_thread_fail, /* thread_create */ - NULL, /* thread_yield */ - NULL, /* thread_join */ - NULL, /* thread_exit */ - NULL, /* thread_set_priority */ - NULL, /* thread_self */ - NULL /* thread_equal */ -}; - -/* Local data */ - -static GMutex *g_once_mutex = NULL; -static GCond *g_once_cond = NULL; -static GPrivate *g_thread_specific_private = NULL; -static GRealThread *g_thread_all_threads = NULL; -static GSList *g_thread_free_indeces = NULL; -static GSList* g_once_init_list = NULL; - -G_LOCK_DEFINE_STATIC (g_thread); - -#ifdef G_THREADS_ENABLED -/* This must be called only once, before any threads are created. - * It will only be called from g_thread_init() in -lgthread. - */ -void -g_thread_init_glib (void) -{ - /* We let the main thread (the one that calls g_thread_init) inherit - * the static_private data set before calling g_thread_init - */ - GRealThread* main_thread = (GRealThread*) g_thread_self (); - - /* mutex and cond creation works without g_threads_got_initialized */ - g_once_mutex = g_mutex_new (); - g_once_cond = g_cond_new (); - - /* we may only create mutex and cond in here */ - _g_mem_thread_init_noprivate_nomessage (); - - /* setup the basic threading system */ - g_threads_got_initialized = TRUE; - g_thread_specific_private = g_private_new (g_thread_cleanup); - g_private_set (g_thread_specific_private, main_thread); - G_THREAD_UF (thread_self, (&main_thread->system_thread)); - - /* complete memory system initialization, g_private_*() works now */ - _g_slice_thread_init_nomessage (); - - /* accomplish log system initialization to enable messaging */ - _g_messages_thread_init_nomessage (); - - /* we may run full-fledged initializers from here */ - _g_atomic_thread_init (); - _g_convert_thread_init (); - _g_rand_thread_init (); - _g_main_thread_init (); - _g_utils_thread_init (); -#ifdef G_OS_WIN32 - _g_win32_thread_init (); -#endif -} -#endif /* G_THREADS_ENABLED */ - -gpointer -g_once_impl (GOnce *once, - GThreadFunc func, - gpointer arg) -{ - g_mutex_lock (g_once_mutex); - - while (once->status == G_ONCE_STATUS_PROGRESS) - g_cond_wait (g_once_cond, g_once_mutex); - - if (once->status != G_ONCE_STATUS_READY) - { - once->status = G_ONCE_STATUS_PROGRESS; - g_mutex_unlock (g_once_mutex); - - once->retval = func (arg); - - g_mutex_lock (g_once_mutex); - once->status = G_ONCE_STATUS_READY; - g_cond_broadcast (g_once_cond); - } - - g_mutex_unlock (g_once_mutex); - - return once->retval; -} - -gboolean -g_once_init_enter_impl (volatile gsize *value_location) -{ - gboolean need_init = FALSE; - g_mutex_lock (g_once_mutex); - if (g_atomic_pointer_get (value_location) == NULL) - { - if (!g_slist_find (g_once_init_list, (void*) value_location)) - { - need_init = TRUE; - g_once_init_list = g_slist_prepend (g_once_init_list, (void*) value_location); - } - else - do - g_cond_wait (g_once_cond, g_once_mutex); - while (g_slist_find (g_once_init_list, (void*) value_location)); - } - g_mutex_unlock (g_once_mutex); - return need_init; -} - -void -g_once_init_leave (volatile gsize *value_location, - gsize initialization_value) -{ - g_return_if_fail (g_atomic_pointer_get (value_location) == NULL); - g_return_if_fail (initialization_value != 0); - g_return_if_fail (g_once_init_list != NULL); - - g_atomic_pointer_set ((void**)value_location, (void*) initialization_value); - g_mutex_lock (g_once_mutex); - g_once_init_list = g_slist_remove (g_once_init_list, (void*) value_location); - g_cond_broadcast (g_once_cond); - g_mutex_unlock (g_once_mutex); -} - -void -g_static_mutex_init (GStaticMutex *mutex) -{ - static const GStaticMutex init_mutex = G_STATIC_MUTEX_INIT; - - g_return_if_fail (mutex); - - *mutex = init_mutex; -} - -GMutex * -g_static_mutex_get_mutex_impl (GMutex** mutex) -{ - if (!g_thread_supported ()) - return NULL; - - g_assert (g_once_mutex); - - g_mutex_lock (g_once_mutex); - - if (!(*mutex)) - g_atomic_pointer_set (mutex, g_mutex_new()); - - g_mutex_unlock (g_once_mutex); - - return *mutex; -} - -void -g_static_mutex_free (GStaticMutex* mutex) -{ - GMutex **runtime_mutex; - - g_return_if_fail (mutex); - - /* The runtime_mutex is the first (or only) member of GStaticMutex, - * see both versions (of glibconfig.h) in configure.in. Note, that - * this variable is NULL, if g_thread_init() hasn't been called or - * if we're using the default thread implementation and it provides - * static mutexes. */ - runtime_mutex = ((GMutex**)mutex); - - if (*runtime_mutex) - g_mutex_free (*runtime_mutex); - - *runtime_mutex = NULL; -} - -void -g_static_rec_mutex_init (GStaticRecMutex *mutex) -{ - static const GStaticRecMutex init_mutex = G_STATIC_REC_MUTEX_INIT; - - g_return_if_fail (mutex); - - *mutex = init_mutex; -} - -void -g_static_rec_mutex_lock (GStaticRecMutex* mutex) -{ - GSystemThread self; - - g_return_if_fail (mutex); - - if (!g_thread_supported ()) - return; - - G_THREAD_UF (thread_self, (&self)); - - if (g_system_thread_equal (self, mutex->owner)) - { - mutex->depth++; - return; - } - g_static_mutex_lock (&mutex->mutex); - g_system_thread_assign (mutex->owner, self); - mutex->depth = 1; -} - -gboolean -g_static_rec_mutex_trylock (GStaticRecMutex* mutex) -{ - GSystemThread self; - - g_return_val_if_fail (mutex, FALSE); - - if (!g_thread_supported ()) - return TRUE; - - G_THREAD_UF (thread_self, (&self)); - - if (g_system_thread_equal (self, mutex->owner)) - { - mutex->depth++; - return TRUE; - } - - if (!g_static_mutex_trylock (&mutex->mutex)) - return FALSE; - - g_system_thread_assign (mutex->owner, self); - mutex->depth = 1; - return TRUE; -} - -void -g_static_rec_mutex_unlock (GStaticRecMutex* mutex) -{ - g_return_if_fail (mutex); - - if (!g_thread_supported ()) - return; - - if (mutex->depth > 1) - { - mutex->depth--; - return; - } - g_system_thread_assign (mutex->owner, zero_thread); - g_static_mutex_unlock (&mutex->mutex); -} - -void -g_static_rec_mutex_lock_full (GStaticRecMutex *mutex, - guint depth) -{ - GSystemThread self; - g_return_if_fail (mutex); - - if (!g_thread_supported ()) - return; - - if (depth == 0) - return; - - G_THREAD_UF (thread_self, (&self)); - - if (g_system_thread_equal (self, mutex->owner)) - { - mutex->depth += depth; - return; - } - g_static_mutex_lock (&mutex->mutex); - g_system_thread_assign (mutex->owner, self); - mutex->depth = depth; -} - -guint -g_static_rec_mutex_unlock_full (GStaticRecMutex *mutex) -{ - guint depth; - - g_return_val_if_fail (mutex, 0); - - if (!g_thread_supported ()) - return 1; - - depth = mutex->depth; - - g_system_thread_assign (mutex->owner, zero_thread); - mutex->depth = 0; - g_static_mutex_unlock (&mutex->mutex); - - return depth; -} - -void -g_static_rec_mutex_free (GStaticRecMutex *mutex) -{ - g_return_if_fail (mutex); - - g_static_mutex_free (&mutex->mutex); -} - -void -g_static_private_init (GStaticPrivate *private_key) -{ - private_key->index = 0; -} - -gpointer -g_static_private_get (GStaticPrivate *private_key) -{ - GRealThread *self = (GRealThread*) g_thread_self (); - GArray *array; - - array = self->private_data; - if (!array) - return NULL; - - if (!private_key->index) - return NULL; - else if (private_key->index <= array->len) - return g_array_index (array, GStaticPrivateNode, - private_key->index - 1).data; - else - return NULL; -} - -void -g_static_private_set (GStaticPrivate *private_key, - gpointer data, - GDestroyNotify notify) -{ - GRealThread *self = (GRealThread*) g_thread_self (); - GArray *array; - static guint next_index = 0; - GStaticPrivateNode *node; - - array = self->private_data; - if (!array) - { - array = g_array_new (FALSE, TRUE, sizeof (GStaticPrivateNode)); - self->private_data = array; - } - - if (!private_key->index) - { - G_LOCK (g_thread); - - if (!private_key->index) - { - if (g_thread_free_indeces) - { - private_key->index = - GPOINTER_TO_UINT (g_thread_free_indeces->data); - g_thread_free_indeces = - g_slist_delete_link (g_thread_free_indeces, - g_thread_free_indeces); - } - else - private_key->index = ++next_index; - } - - G_UNLOCK (g_thread); - } - - if (private_key->index > array->len) - g_array_set_size (array, private_key->index); - - node = &g_array_index (array, GStaticPrivateNode, private_key->index - 1); - if (node->destroy) - { - gpointer ddata = node->data; - GDestroyNotify ddestroy = node->destroy; - - node->data = data; - node->destroy = notify; - - ddestroy (ddata); - } - else - { - node->data = data; - node->destroy = notify; - } -} - -void -g_static_private_free (GStaticPrivate *private_key) -{ - guint idx = private_key->index; - GRealThread *thread; - - if (!idx) - return; - - private_key->index = 0; - - G_LOCK (g_thread); - - thread = g_thread_all_threads; - while (thread) - { - GArray *array = thread->private_data; - thread = thread->next; - - if (array && idx <= array->len) - { - GStaticPrivateNode *node = &g_array_index (array, - GStaticPrivateNode, - idx - 1); - gpointer ddata = node->data; - GDestroyNotify ddestroy = node->destroy; - - node->data = NULL; - node->destroy = NULL; - - if (ddestroy) - { - G_UNLOCK (g_thread); - ddestroy (ddata); - G_LOCK (g_thread); - } - } - } - g_thread_free_indeces = g_slist_prepend (g_thread_free_indeces, - GUINT_TO_POINTER (idx)); - G_UNLOCK (g_thread); -} - -static void -g_thread_cleanup (gpointer data) -{ - if (data) - { - GRealThread* thread = data; - if (thread->private_data) - { - GArray* array = thread->private_data; - guint i; - - for (i = 0; i < array->len; i++ ) - { - GStaticPrivateNode *node = - &g_array_index (array, GStaticPrivateNode, i); - if (node->destroy) - node->destroy (node->data); - } - g_array_free (array, TRUE); - } - - /* We only free the thread structure, if it isn't joinable. If - it is, the structure is freed in g_thread_join */ - if (!thread->thread.joinable) - { - GRealThread *t, *p; - - G_LOCK (g_thread); - for (t = g_thread_all_threads, p = NULL; t; p = t, t = t->next) - { - if (t == thread) - { - if (p) - p->next = t->next; - else - g_thread_all_threads = t->next; - break; - } - } - G_UNLOCK (g_thread); - - /* Just to make sure, this isn't used any more */ - g_system_thread_assign (thread->system_thread, zero_thread); - g_free (thread); - } - } -} - -static void -g_thread_fail (void) -{ - g_error ("The thread system is not yet initialized."); -} - -#define G_NSEC_PER_SEC 1000000000 - -static guint64 -gettime (void) -{ -#ifdef G_OS_WIN32 - guint64 v; - - /* Returns 100s of nanoseconds since start of 1601 */ - GetSystemTimeAsFileTime ((FILETIME *)&v); - - /* Offset to Unix epoch */ - v -= G_GINT64_CONSTANT (116444736000000000); - /* Convert to nanoseconds */ - v *= 100; - - return v; -#else - struct timeval tv; - - gettimeofday (&tv, NULL); - - return (guint64) tv.tv_sec * G_NSEC_PER_SEC + tv.tv_usec * (G_NSEC_PER_SEC / G_USEC_PER_SEC); -#endif -} - -static gpointer -g_thread_create_proxy (gpointer data) -{ - GRealThread* thread = data; - - g_assert (data); - - /* This has to happen before G_LOCK, as that might call g_thread_self */ - g_private_set (g_thread_specific_private, data); - - /* the lock makes sure, that thread->system_thread is written, - before thread->thread.func is called. See g_thread_create. */ - G_LOCK (g_thread); - G_UNLOCK (g_thread); - - thread->retval = thread->thread.func (thread->thread.data); - - return NULL; -} - -GThread* -g_thread_create_full (GThreadFunc func, - gpointer data, - gulong stack_size, - gboolean joinable, - gboolean bound, - GThreadPriority priority, - GError **error) -{ - GRealThread* result; - GError *local_error = NULL; - g_return_val_if_fail (func, NULL); - g_return_val_if_fail (priority >= G_THREAD_PRIORITY_LOW, NULL); - g_return_val_if_fail (priority <= G_THREAD_PRIORITY_URGENT, NULL); - - result = g_new0 (GRealThread, 1); - - result->thread.joinable = joinable; - result->thread.priority = priority; - result->thread.func = func; - result->thread.data = data; - result->private_data = NULL; - G_LOCK (g_thread); - G_THREAD_UF (thread_create, (g_thread_create_proxy, result, - stack_size, joinable, bound, priority, - &result->system_thread, &local_error)); - if (!local_error) - { - result->next = g_thread_all_threads; - g_thread_all_threads = result; - } - G_UNLOCK (g_thread); - - if (local_error) - { - g_propagate_error (error, local_error); - g_free (result); - return NULL; - } - - return (GThread*) result; -} - -void -g_thread_exit (gpointer retval) -{ - GRealThread* real = (GRealThread*) g_thread_self (); - real->retval = retval; - G_THREAD_CF (thread_exit, (void)0, ()); -} - -gpointer -g_thread_join (GThread* thread) -{ - GRealThread* real = (GRealThread*) thread; - GRealThread *p, *t; - gpointer retval; - - g_return_val_if_fail (thread, NULL); - g_return_val_if_fail (thread->joinable, NULL); - g_return_val_if_fail (!g_system_thread_equal (real->system_thread, - zero_thread), NULL); - - G_THREAD_UF (thread_join, (&real->system_thread)); - - retval = real->retval; - - G_LOCK (g_thread); - for (t = g_thread_all_threads, p = NULL; t; p = t, t = t->next) - { - if (t == (GRealThread*) thread) - { - if (p) - p->next = t->next; - else - g_thread_all_threads = t->next; - break; - } - } - G_UNLOCK (g_thread); - - /* Just to make sure, this isn't used any more */ - thread->joinable = 0; - g_system_thread_assign (real->system_thread, zero_thread); - - /* the thread structure for non-joinable threads is freed upon - thread end. We free the memory here. This will leave a loose end, - if a joinable thread is not joined. */ - - g_free (thread); - - return retval; -} - -void -g_thread_set_priority (GThread* thread, - GThreadPriority priority) -{ - GRealThread* real = (GRealThread*) thread; - - g_return_if_fail (thread); - g_return_if_fail (!g_system_thread_equal (real->system_thread, zero_thread)); - g_return_if_fail (priority >= G_THREAD_PRIORITY_LOW); - g_return_if_fail (priority <= G_THREAD_PRIORITY_URGENT); - - thread->priority = priority; - - G_THREAD_CF (thread_set_priority, (void)0, - (&real->system_thread, priority)); -} - -GThread* -g_thread_self (void) -{ - GRealThread* thread = g_private_get (g_thread_specific_private); - - if (!thread) - { - /* If no thread data is available, provide and set one. This - can happen for the main thread and for threads, that are not - created by GLib. */ - thread = g_new0 (GRealThread, 1); - thread->thread.joinable = FALSE; /* This is a save guess */ - thread->thread.priority = G_THREAD_PRIORITY_NORMAL; /* This is - just a guess */ - thread->thread.func = NULL; - thread->thread.data = NULL; - thread->private_data = NULL; - - if (g_thread_supported ()) - G_THREAD_UF (thread_self, (&thread->system_thread)); - - g_private_set (g_thread_specific_private, thread); - - G_LOCK (g_thread); - thread->next = g_thread_all_threads; - g_thread_all_threads = thread; - G_UNLOCK (g_thread); - } - - return (GThread*)thread; -} - -void -g_static_rw_lock_init (GStaticRWLock* lock) -{ - static const GStaticRWLock init_lock = G_STATIC_RW_LOCK_INIT; - - g_return_if_fail (lock); - - *lock = init_lock; -} - -inline static void -g_static_rw_lock_wait (GCond** cond, GStaticMutex* mutex) -{ - if (!*cond) - *cond = g_cond_new (); - g_cond_wait (*cond, g_static_mutex_get_mutex (mutex)); -} - -inline static void -g_static_rw_lock_signal (GStaticRWLock* lock) -{ - if (lock->want_to_write && lock->write_cond) - g_cond_signal (lock->write_cond); - else if (lock->want_to_read && lock->read_cond) - g_cond_broadcast (lock->read_cond); -} - -void -g_static_rw_lock_reader_lock (GStaticRWLock* lock) -{ - g_return_if_fail (lock); - - if (!g_threads_got_initialized) - return; - - g_static_mutex_lock (&lock->mutex); - lock->want_to_read++; - while (lock->have_writer || lock->want_to_write) - g_static_rw_lock_wait (&lock->read_cond, &lock->mutex); - lock->want_to_read--; - lock->read_counter++; - g_static_mutex_unlock (&lock->mutex); -} - -gboolean -g_static_rw_lock_reader_trylock (GStaticRWLock* lock) -{ - gboolean ret_val = FALSE; - - g_return_val_if_fail (lock, FALSE); - - if (!g_threads_got_initialized) - return TRUE; - - g_static_mutex_lock (&lock->mutex); - if (!lock->have_writer && !lock->want_to_write) - { - lock->read_counter++; - ret_val = TRUE; - } - g_static_mutex_unlock (&lock->mutex); - return ret_val; -} - -void -g_static_rw_lock_reader_unlock (GStaticRWLock* lock) -{ - g_return_if_fail (lock); - - if (!g_threads_got_initialized) - return; - - g_static_mutex_lock (&lock->mutex); - lock->read_counter--; - if (lock->read_counter == 0) - g_static_rw_lock_signal (lock); - g_static_mutex_unlock (&lock->mutex); -} - -void -g_static_rw_lock_writer_lock (GStaticRWLock* lock) -{ - g_return_if_fail (lock); - - if (!g_threads_got_initialized) - return; - - g_static_mutex_lock (&lock->mutex); - lock->want_to_write++; - while (lock->have_writer || lock->read_counter) - g_static_rw_lock_wait (&lock->write_cond, &lock->mutex); - lock->want_to_write--; - lock->have_writer = TRUE; - g_static_mutex_unlock (&lock->mutex); -} - -gboolean -g_static_rw_lock_writer_trylock (GStaticRWLock* lock) -{ - gboolean ret_val = FALSE; - - g_return_val_if_fail (lock, FALSE); - - if (!g_threads_got_initialized) - return TRUE; - - g_static_mutex_lock (&lock->mutex); - if (!lock->have_writer && !lock->read_counter) - { - lock->have_writer = TRUE; - ret_val = TRUE; - } - g_static_mutex_unlock (&lock->mutex); - return ret_val; -} - -void -g_static_rw_lock_writer_unlock (GStaticRWLock* lock) -{ - g_return_if_fail (lock); - - if (!g_threads_got_initialized) - return; - - g_static_mutex_lock (&lock->mutex); - lock->have_writer = FALSE; - g_static_rw_lock_signal (lock); - g_static_mutex_unlock (&lock->mutex); -} - -void -g_static_rw_lock_free (GStaticRWLock* lock) -{ - g_return_if_fail (lock); - - if (lock->read_cond) - { - g_cond_free (lock->read_cond); - lock->read_cond = NULL; - } - if (lock->write_cond) - { - g_cond_free (lock->write_cond); - lock->write_cond = NULL; - } - g_static_mutex_free (&lock->mutex); -} - -/** - * g_thread_foreach - * @thread_func: function to call for all GThread structures - * @user_data: second argument to @thread_func - * - * Call @thread_func on all existing #GThread structures. Note that - * threads may decide to exit while @thread_func is running, so - * without intimate knowledge about the lifetime of foreign threads, - * @thread_func shouldn't access the GThread* pointer passed in as - * first argument. However, @thread_func will not be called for threads - * which are known to have exited already. - * - * Due to thread lifetime checks, this function has an execution complexity - * which is quadratic in the number of existing threads. - * - * Since: 2.10 - */ -void -g_thread_foreach (GFunc thread_func, - gpointer user_data) -{ - GSList *slist = NULL; - GRealThread *thread; - g_return_if_fail (thread_func != NULL); - /* snapshot the list of threads for iteration */ - G_LOCK (g_thread); - for (thread = g_thread_all_threads; thread; thread = thread->next) - slist = g_slist_prepend (slist, thread); - G_UNLOCK (g_thread); - /* walk the list, skipping non-existant threads */ - while (slist) - { - GSList *node = slist; - slist = node->next; - /* check whether the current thread still exists */ - G_LOCK (g_thread); - for (thread = g_thread_all_threads; thread; thread = thread->next) - if (thread == node->data) - break; - G_UNLOCK (g_thread); - if (thread) - thread_func (thread, user_data); - g_slist_free_1 (node); - } -} - -/** - * g_thread_get_initialized - * - * Indicates if g_thread_init() has been called. - * - * Returns: %TRUE if threads have been initialized. - * - * Since: 2.20 - */ -gboolean -g_thread_get_initialized () -{ - return g_thread_supported (); -} - -#define __G_THREAD_C__ -#include "galiasdef.c" diff --git a/lib/win32/glib-2.20.4/glib/gthread.h b/lib/win32/glib-2.20.4/glib/gthread.h deleted file mode 100644 index 019d0dbf1d032..0000000000000 --- a/lib/win32/glib-2.20.4/glib/gthread.h +++ /dev/null @@ -1,404 +0,0 @@ -/* GLIB - Library of useful routines for C programming - * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library 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 - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ - -/* - * Modified by the GLib Team and others 1997-2000. See the AUTHORS - * file for a list of people on the GLib Team. See the ChangeLog - * files for a list of changes. These files are distributed with - * GLib at ftp://ftp.gtk.org/pub/gtk/. - */ - -#if defined(G_DISABLE_SINGLE_INCLUDES) && !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION) -#error "Only can be included directly." -#endif - -#ifndef __G_THREAD_H__ -#define __G_THREAD_H__ - -#include -#include -#include /* for G_INLINE_FUNC */ -#include /* for g_atomic_pointer_get */ - -G_BEGIN_DECLS - -/* GLib Thread support - */ - -extern GQuark g_thread_error_quark (void); -#define G_THREAD_ERROR g_thread_error_quark () - -typedef enum -{ - G_THREAD_ERROR_AGAIN /* Resource temporarily unavailable */ -} GThreadError; - -typedef gpointer (*GThreadFunc) (gpointer data); - -typedef enum -{ - G_THREAD_PRIORITY_LOW, - G_THREAD_PRIORITY_NORMAL, - G_THREAD_PRIORITY_HIGH, - G_THREAD_PRIORITY_URGENT -} GThreadPriority; - -typedef struct _GThread GThread; -struct _GThread -{ - /*< private >*/ - GThreadFunc func; - gpointer data; - gboolean joinable; - GThreadPriority priority; -}; - -typedef struct _GMutex GMutex; -typedef struct _GCond GCond; -typedef struct _GPrivate GPrivate; -typedef struct _GStaticPrivate GStaticPrivate; - -typedef struct _GThreadFunctions GThreadFunctions; -struct _GThreadFunctions -{ - GMutex* (*mutex_new) (void); - void (*mutex_lock) (GMutex *mutex); - gboolean (*mutex_trylock) (GMutex *mutex); - void (*mutex_unlock) (GMutex *mutex); - void (*mutex_free) (GMutex *mutex); - GCond* (*cond_new) (void); - void (*cond_signal) (GCond *cond); - void (*cond_broadcast) (GCond *cond); - void (*cond_wait) (GCond *cond, - GMutex *mutex); - gboolean (*cond_timed_wait) (GCond *cond, - GMutex *mutex, - GTimeVal *end_time); - void (*cond_free) (GCond *cond); - GPrivate* (*private_new) (GDestroyNotify destructor); - gpointer (*private_get) (GPrivate *private_key); - void (*private_set) (GPrivate *private_key, - gpointer data); - void (*thread_create) (GThreadFunc func, - gpointer data, - gulong stack_size, - gboolean joinable, - gboolean bound, - GThreadPriority priority, - gpointer thread, - GError **error); - void (*thread_yield) (void); - void (*thread_join) (gpointer thread); - void (*thread_exit) (void); - void (*thread_set_priority)(gpointer thread, - GThreadPriority priority); - void (*thread_self) (gpointer thread); - gboolean (*thread_equal) (gpointer thread1, - gpointer thread2); -}; - -GLIB_VAR GThreadFunctions g_thread_functions_for_glib_use; -GLIB_VAR gboolean g_thread_use_default_impl; -GLIB_VAR gboolean g_threads_got_initialized; - -GLIB_VAR guint64 (*g_thread_gettime) (void); - -/* initializes the mutex/cond/private implementation for glib, might - * only be called once, and must not be called directly or indirectly - * from another glib-function, e.g. as a callback. - */ -void g_thread_init (GThreadFunctions *vtable); - -/* Errorcheck mutexes. If you define G_ERRORCHECK_MUTEXES, then all - * mutexes will check for re-locking and re-unlocking */ - -/* Initialize thread system with errorcheck mutexes. vtable must be - * NULL. Do not call directly. Use #define G_ERRORCHECK_MUTEXES - * instead. - */ -void g_thread_init_with_errorcheck_mutexes (GThreadFunctions* vtable); - -/* Checks if thread support is initialized. Identical to the - * g_thread_supported macro but provided for language bindings. - */ -gboolean g_thread_get_initialized (void); - -/* A random number to recognize debug calls to g_mutex_... */ -#define G_MUTEX_DEBUG_MAGIC 0xf8e18ad7 - -#ifdef G_ERRORCHECK_MUTEXES -#define g_thread_init(vtable) g_thread_init_with_errorcheck_mutexes (vtable) -#endif - -/* internal function for fallback static mutex implementation */ -GMutex* g_static_mutex_get_mutex_impl (GMutex **mutex); - -#define g_static_mutex_get_mutex_impl_shortcut(mutex) \ - (g_atomic_pointer_get (mutex) ? *(mutex) : \ - g_static_mutex_get_mutex_impl (mutex)) - -/* shorthands for conditional and unconditional function calls */ - -#define G_THREAD_UF(op, arglist) \ - (*g_thread_functions_for_glib_use . op) arglist -#define G_THREAD_CF(op, fail, arg) \ - (g_thread_supported () ? G_THREAD_UF (op, arg) : (fail)) -#define G_THREAD_ECF(op, fail, mutex, type) \ - (g_thread_supported () ? \ - ((type(*)(GMutex*, const gulong, gchar const*)) \ - (*g_thread_functions_for_glib_use . op)) \ - (mutex, G_MUTEX_DEBUG_MAGIC, G_STRLOC) : (fail)) - -#ifndef G_ERRORCHECK_MUTEXES -# define g_mutex_lock(mutex) \ - G_THREAD_CF (mutex_lock, (void)0, (mutex)) -# define g_mutex_trylock(mutex) \ - G_THREAD_CF (mutex_trylock, TRUE, (mutex)) -# define g_mutex_unlock(mutex) \ - G_THREAD_CF (mutex_unlock, (void)0, (mutex)) -# define g_mutex_free(mutex) \ - G_THREAD_CF (mutex_free, (void)0, (mutex)) -# define g_cond_wait(cond, mutex) \ - G_THREAD_CF (cond_wait, (void)0, (cond, mutex)) -# define g_cond_timed_wait(cond, mutex, abs_time) \ - G_THREAD_CF (cond_timed_wait, TRUE, (cond, mutex, abs_time)) -#else /* G_ERRORCHECK_MUTEXES */ -# define g_mutex_lock(mutex) \ - G_THREAD_ECF (mutex_lock, (void)0, (mutex), void) -# define g_mutex_trylock(mutex) \ - G_THREAD_ECF (mutex_trylock, TRUE, (mutex), gboolean) -# define g_mutex_unlock(mutex) \ - G_THREAD_ECF (mutex_unlock, (void)0, (mutex), void) -# define g_mutex_free(mutex) \ - G_THREAD_ECF (mutex_free, (void)0, (mutex), void) -# define g_cond_wait(cond, mutex) \ - (g_thread_supported () ? ((void(*)(GCond*, GMutex*, gulong, gchar*))\ - g_thread_functions_for_glib_use.cond_wait) \ - (cond, mutex, G_MUTEX_DEBUG_MAGIC, G_STRLOC) : (void) 0) -# define g_cond_timed_wait(cond, mutex, abs_time) \ - (g_thread_supported () ? \ - ((gboolean(*)(GCond*, GMutex*, GTimeVal*, gulong, gchar*)) \ - g_thread_functions_for_glib_use.cond_timed_wait) \ - (cond, mutex, abs_time, G_MUTEX_DEBUG_MAGIC, G_STRLOC) : TRUE) -#endif /* G_ERRORCHECK_MUTEXES */ - -#define g_thread_supported() (g_threads_got_initialized) -#define g_mutex_new() G_THREAD_UF (mutex_new, ()) -#define g_cond_new() G_THREAD_UF (cond_new, ()) -#define g_cond_signal(cond) G_THREAD_CF (cond_signal, (void)0, (cond)) -#define g_cond_broadcast(cond) G_THREAD_CF (cond_broadcast, (void)0, (cond)) -#define g_cond_free(cond) G_THREAD_CF (cond_free, (void)0, (cond)) -#define g_private_new(destructor) G_THREAD_UF (private_new, (destructor)) -#define g_private_get(private_key) G_THREAD_CF (private_get, \ - ((gpointer)private_key), \ - (private_key)) -#define g_private_set(private_key, value) G_THREAD_CF (private_set, \ - (void) (private_key = \ - (GPrivate*) (value)), \ - (private_key, value)) -#define g_thread_yield() G_THREAD_CF (thread_yield, (void)0, ()) - -#define g_thread_create(func, data, joinable, error) \ - (g_thread_create_full (func, data, 0, joinable, FALSE, \ - G_THREAD_PRIORITY_NORMAL, error)) - -GThread* g_thread_create_full (GThreadFunc func, - gpointer data, - gulong stack_size, - gboolean joinable, - gboolean bound, - GThreadPriority priority, - GError **error); -GThread* g_thread_self (void); -void g_thread_exit (gpointer retval); -gpointer g_thread_join (GThread *thread); - -void g_thread_set_priority (GThread *thread, - GThreadPriority priority); - -/* GStaticMutexes can be statically initialized with the value - * G_STATIC_MUTEX_INIT, and then they can directly be used, that is - * much easier, than having to explicitly allocate the mutex before - * use - */ -#define g_static_mutex_lock(mutex) \ - g_mutex_lock (g_static_mutex_get_mutex (mutex)) -#define g_static_mutex_trylock(mutex) \ - g_mutex_trylock (g_static_mutex_get_mutex (mutex)) -#define g_static_mutex_unlock(mutex) \ - g_mutex_unlock (g_static_mutex_get_mutex (mutex)) -void g_static_mutex_init (GStaticMutex *mutex); -void g_static_mutex_free (GStaticMutex *mutex); - -struct _GStaticPrivate -{ - /*< private >*/ - guint index; -}; -#define G_STATIC_PRIVATE_INIT { 0 } -void g_static_private_init (GStaticPrivate *private_key); -gpointer g_static_private_get (GStaticPrivate *private_key); -void g_static_private_set (GStaticPrivate *private_key, - gpointer data, - GDestroyNotify notify); -void g_static_private_free (GStaticPrivate *private_key); - -typedef struct _GStaticRecMutex GStaticRecMutex; -struct _GStaticRecMutex -{ - /*< private >*/ - GStaticMutex mutex; - guint depth; - GSystemThread owner; -}; - -#define G_STATIC_REC_MUTEX_INIT { G_STATIC_MUTEX_INIT } -void g_static_rec_mutex_init (GStaticRecMutex *mutex); -void g_static_rec_mutex_lock (GStaticRecMutex *mutex); -gboolean g_static_rec_mutex_trylock (GStaticRecMutex *mutex); -void g_static_rec_mutex_unlock (GStaticRecMutex *mutex); -void g_static_rec_mutex_lock_full (GStaticRecMutex *mutex, - guint depth); -guint g_static_rec_mutex_unlock_full (GStaticRecMutex *mutex); -void g_static_rec_mutex_free (GStaticRecMutex *mutex); - -typedef struct _GStaticRWLock GStaticRWLock; -struct _GStaticRWLock -{ - /*< private >*/ - GStaticMutex mutex; - GCond *read_cond; - GCond *write_cond; - guint read_counter; - gboolean have_writer; - guint want_to_read; - guint want_to_write; -}; - -#define G_STATIC_RW_LOCK_INIT { G_STATIC_MUTEX_INIT, NULL, NULL, 0, FALSE, 0, 0 } - -void g_static_rw_lock_init (GStaticRWLock* lock); -void g_static_rw_lock_reader_lock (GStaticRWLock* lock); -gboolean g_static_rw_lock_reader_trylock (GStaticRWLock* lock); -void g_static_rw_lock_reader_unlock (GStaticRWLock* lock); -void g_static_rw_lock_writer_lock (GStaticRWLock* lock); -gboolean g_static_rw_lock_writer_trylock (GStaticRWLock* lock); -void g_static_rw_lock_writer_unlock (GStaticRWLock* lock); -void g_static_rw_lock_free (GStaticRWLock* lock); - -void g_thread_foreach (GFunc thread_func, - gpointer user_data); - -typedef enum -{ - G_ONCE_STATUS_NOTCALLED, - G_ONCE_STATUS_PROGRESS, - G_ONCE_STATUS_READY -} GOnceStatus; - -typedef struct _GOnce GOnce; -struct _GOnce -{ - volatile GOnceStatus status; - volatile gpointer retval; -}; - -#define G_ONCE_INIT { G_ONCE_STATUS_NOTCALLED, NULL } - -gpointer g_once_impl (GOnce *once, GThreadFunc func, gpointer arg); - -#ifdef G_ATOMIC_OP_MEMORY_BARRIER_NEEDED -# define g_once(once, func, arg) g_once_impl ((once), (func), (arg)) -#else /* !G_ATOMIC_OP_MEMORY_BARRIER_NEEDED*/ -# define g_once(once, func, arg) \ - (((once)->status == G_ONCE_STATUS_READY) ? \ - (once)->retval : \ - g_once_impl ((once), (func), (arg))) -#endif /* G_ATOMIC_OP_MEMORY_BARRIER_NEEDED */ - -/* initialize-once guards, keyed by value_location */ -G_INLINE_FUNC gboolean g_once_init_enter (volatile gsize *value_location); -gboolean g_once_init_enter_impl (volatile gsize *value_location); -void g_once_init_leave (volatile gsize *value_location, - gsize initialization_value); -#if defined (G_CAN_INLINE) || defined (__G_THREAD_C__) -G_INLINE_FUNC gboolean -g_once_init_enter (volatile gsize *value_location) -{ - if G_LIKELY ((gpointer) g_atomic_pointer_get (value_location) != NULL) - return FALSE; - else - return g_once_init_enter_impl (value_location); -} -#endif /* G_CAN_INLINE || __G_THREAD_C__ */ - -/* these are some convenience macros that expand to nothing if GLib - * was configured with --disable-threads. for using StaticMutexes, - * you define them with G_LOCK_DEFINE_STATIC (name) or G_LOCK_DEFINE (name) - * if you need to export the mutex. With G_LOCK_EXTERN (name) you can - * declare such an globally defined lock. name is a unique identifier - * for the protected varibale or code portion. locking, testing and - * unlocking of such mutexes can be done with G_LOCK(), G_UNLOCK() and - * G_TRYLOCK() respectively. - */ -extern void glib_dummy_decl (void); -#define G_LOCK_NAME(name) g__ ## name ## _lock -#ifdef G_THREADS_ENABLED -# define G_LOCK_DEFINE_STATIC(name) static G_LOCK_DEFINE (name) -# define G_LOCK_DEFINE(name) \ - GStaticMutex G_LOCK_NAME (name) = G_STATIC_MUTEX_INIT -# define G_LOCK_EXTERN(name) extern GStaticMutex G_LOCK_NAME (name) - -# ifdef G_DEBUG_LOCKS -# define G_LOCK(name) G_STMT_START{ \ - g_log (G_LOG_DOMAIN, G_LOG_LEVEL_DEBUG, \ - "file %s: line %d (%s): locking: %s ", \ - __FILE__, __LINE__, G_STRFUNC, \ - #name); \ - g_static_mutex_lock (&G_LOCK_NAME (name)); \ - }G_STMT_END -# define G_UNLOCK(name) G_STMT_START{ \ - g_log (G_LOG_DOMAIN, G_LOG_LEVEL_DEBUG, \ - "file %s: line %d (%s): unlocking: %s ", \ - __FILE__, __LINE__, G_STRFUNC, \ - #name); \ - g_static_mutex_unlock (&G_LOCK_NAME (name)); \ - }G_STMT_END -# define G_TRYLOCK(name) \ - (g_log (G_LOG_DOMAIN, G_LOG_LEVEL_DEBUG, \ - "file %s: line %d (%s): try locking: %s ", \ - __FILE__, __LINE__, G_STRFUNC, \ - #name), g_static_mutex_trylock (&G_LOCK_NAME (name))) -# else /* !G_DEBUG_LOCKS */ -# define G_LOCK(name) g_static_mutex_lock (&G_LOCK_NAME (name)) -# define G_UNLOCK(name) g_static_mutex_unlock (&G_LOCK_NAME (name)) -# define G_TRYLOCK(name) g_static_mutex_trylock (&G_LOCK_NAME (name)) -# endif /* !G_DEBUG_LOCKS */ -#else /* !G_THREADS_ENABLED */ -# define G_LOCK_DEFINE_STATIC(name) extern void glib_dummy_decl (void) -# define G_LOCK_DEFINE(name) extern void glib_dummy_decl (void) -# define G_LOCK_EXTERN(name) extern void glib_dummy_decl (void) -# define G_LOCK(name) -# define G_UNLOCK(name) -# define G_TRYLOCK(name) (TRUE) -#endif /* !G_THREADS_ENABLED */ - -G_END_DECLS - -#endif /* __G_THREAD_H__ */ diff --git a/lib/win32/glib-2.20.4/glib/gthreadpool.c b/lib/win32/glib-2.20.4/glib/gthreadpool.c deleted file mode 100644 index 2059a999dbd9a..0000000000000 --- a/lib/win32/glib-2.20.4/glib/gthreadpool.c +++ /dev/null @@ -1,945 +0,0 @@ -/* GLIB - Library of useful routines for C programming - * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald - * - * GAsyncQueue: thread pool implementation. - * Copyright (C) 2000 Sebastian Wilhelmi; University of Karlsruhe - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library 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 - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ - -/* - * MT safe - */ - -#include "config.h" - -#include "glib.h" -#include "galias.h" - -#define DEBUG_MSG(x) -/* #define DEBUG_MSG(args) g_printerr args ; g_printerr ("\n"); */ - -typedef struct _GRealThreadPool GRealThreadPool; - -struct _GRealThreadPool -{ - GThreadPool pool; - GAsyncQueue* queue; - GCond* cond; - gint max_threads; - gint num_threads; - gboolean running; - gboolean immediate; - gboolean waiting; - GCompareDataFunc sort_func; - gpointer sort_user_data; -}; - -/* The following is just an address to mark the wakeup order for a - * thread, it could be any address (as long, as it isn't a valid - * GThreadPool address) */ -static const gpointer wakeup_thread_marker = (gpointer) &g_thread_pool_new; -static gint wakeup_thread_serial = 0; - -/* Here all unused threads are waiting */ -static GAsyncQueue *unused_thread_queue = NULL; -static gint unused_threads = 0; -static gint max_unused_threads = 0; -static gint kill_unused_threads = 0; -static guint max_idle_time = 0; - -static void g_thread_pool_queue_push_unlocked (GRealThreadPool *pool, - gpointer data); -static void g_thread_pool_free_internal (GRealThreadPool *pool); -static gpointer g_thread_pool_thread_proxy (gpointer data); -static void g_thread_pool_start_thread (GRealThreadPool *pool, - GError **error); -static void g_thread_pool_wakeup_and_stop_all (GRealThreadPool *pool); -static GRealThreadPool* g_thread_pool_wait_for_new_pool (void); -static gpointer g_thread_pool_wait_for_new_task (GRealThreadPool *pool); - -static void -g_thread_pool_queue_push_unlocked (GRealThreadPool *pool, - gpointer data) -{ - if (pool->sort_func) - g_async_queue_push_sorted_unlocked (pool->queue, - data, - pool->sort_func, - pool->sort_user_data); - else - g_async_queue_push_unlocked (pool->queue, data); -} - -static GRealThreadPool* -g_thread_pool_wait_for_new_pool (void) -{ - GRealThreadPool *pool; - gint local_wakeup_thread_serial; - guint local_max_unused_threads; - gint local_max_idle_time; - gint last_wakeup_thread_serial; - gboolean have_relayed_thread_marker = FALSE; - - local_max_unused_threads = g_atomic_int_get (&max_unused_threads); - local_max_idle_time = g_atomic_int_get (&max_idle_time); - last_wakeup_thread_serial = g_atomic_int_get (&wakeup_thread_serial); - - g_atomic_int_inc (&unused_threads); - - do - { - if (g_atomic_int_get (&unused_threads) >= local_max_unused_threads) - { - /* If this is a superfluous thread, stop it. */ - pool = NULL; - } - else if (local_max_idle_time > 0) - { - /* If a maximal idle time is given, wait for the given time. */ - GTimeVal end_time; - - g_get_current_time (&end_time); - g_time_val_add (&end_time, local_max_idle_time * 1000); - - DEBUG_MSG (("thread %p waiting in global pool for %f seconds.", - g_thread_self (), local_max_idle_time / 1000.0)); - - pool = g_async_queue_timed_pop (unused_thread_queue, &end_time); - } - else - { - /* If no maximal idle time is given, wait indefinitely. */ - DEBUG_MSG (("thread %p waiting in global pool.", - g_thread_self ())); - pool = g_async_queue_pop (unused_thread_queue); - } - - if (pool == wakeup_thread_marker) - { - local_wakeup_thread_serial = g_atomic_int_get (&wakeup_thread_serial); - if (last_wakeup_thread_serial == local_wakeup_thread_serial) - { - if (!have_relayed_thread_marker) - { - /* If this wakeup marker has been received for - * the second time, relay it. - */ - DEBUG_MSG (("thread %p relaying wakeup message to " - "waiting thread with lower serial.", - g_thread_self ())); - - g_async_queue_push (unused_thread_queue, wakeup_thread_marker); - have_relayed_thread_marker = TRUE; - - /* If a wakeup marker has been relayed, this thread - * will get out of the way for 100 microseconds to - * avoid receiving this marker again. */ - g_usleep (100); - } - } - else - { - if (g_atomic_int_exchange_and_add (&kill_unused_threads, -1) > 0) - { - pool = NULL; - break; - } - - DEBUG_MSG (("thread %p updating to new limits.", - g_thread_self ())); - - local_max_unused_threads = g_atomic_int_get (&max_unused_threads); - local_max_idle_time = g_atomic_int_get (&max_idle_time); - last_wakeup_thread_serial = local_wakeup_thread_serial; - - have_relayed_thread_marker = FALSE; - } - } - } - while (pool == wakeup_thread_marker); - - g_atomic_int_add (&unused_threads, -1); - - return pool; -} - -static gpointer -g_thread_pool_wait_for_new_task (GRealThreadPool *pool) -{ - gpointer task = NULL; - - if (pool->running || (!pool->immediate && - g_async_queue_length_unlocked (pool->queue) > 0)) - { - /* This thread pool is still active. */ - if (pool->num_threads > pool->max_threads && pool->max_threads != -1) - { - /* This is a superfluous thread, so it goes to the global pool. */ - DEBUG_MSG (("superfluous thread %p in pool %p.", - g_thread_self (), pool)); - } - else if (pool->pool.exclusive) - { - /* Exclusive threads stay attached to the pool. */ - task = g_async_queue_pop_unlocked (pool->queue); - - DEBUG_MSG (("thread %p in exclusive pool %p waits for task " - "(%d running, %d unprocessed).", - g_thread_self (), pool, pool->num_threads, - g_async_queue_length_unlocked (pool->queue))); - } - else - { - /* A thread will wait for new tasks for at most 1/2 - * second before going to the global pool. - */ - GTimeVal end_time; - - g_get_current_time (&end_time); - g_time_val_add (&end_time, G_USEC_PER_SEC / 2); /* 1/2 second */ - - DEBUG_MSG (("thread %p in pool %p waits for up to a 1/2 second for task " - "(%d running, %d unprocessed).", - g_thread_self (), pool, pool->num_threads, - g_async_queue_length_unlocked (pool->queue))); - - task = g_async_queue_timed_pop_unlocked (pool->queue, &end_time); - } - } - else - { - /* This thread pool is inactive, it will no longer process tasks. */ - DEBUG_MSG (("pool %p not active, thread %p will go to global pool " - "(running: %s, immediate: %s, len: %d).", - pool, g_thread_self (), - pool->running ? "true" : "false", - pool->immediate ? "true" : "false", - g_async_queue_length_unlocked (pool->queue))); - } - - return task; -} - - -static gpointer -g_thread_pool_thread_proxy (gpointer data) -{ - GRealThreadPool *pool; - - pool = data; - - DEBUG_MSG (("thread %p started for pool %p.", - g_thread_self (), pool)); - - g_async_queue_lock (pool->queue); - - while (TRUE) - { - gpointer task; - - task = g_thread_pool_wait_for_new_task (pool); - if (task) - { - if (pool->running || !pool->immediate) - { - /* A task was received and the thread pool is active, so - * execute the function. - */ - g_async_queue_unlock (pool->queue); - DEBUG_MSG (("thread %p in pool %p calling func.", - g_thread_self (), pool)); - pool->pool.func (task, pool->pool.user_data); - g_async_queue_lock (pool->queue); - } - } - else - { - /* No task was received, so this thread goes to the global - * pool. - */ - gboolean free_pool = FALSE; - - DEBUG_MSG (("thread %p leaving pool %p for global pool.", - g_thread_self (), pool)); - pool->num_threads--; - - if (!pool->running) - { - if (!pool->waiting) - { - if (pool->num_threads == 0) - { - /* If the pool is not running and no other - * thread is waiting for this thread pool to - * finish and this is the last thread of this - * pool, free the pool. - */ - free_pool = TRUE; - } - else - { - /* If the pool is not running and no other - * thread is waiting for this thread pool to - * finish and this is not the last thread of - * this pool and there are no tasks left in the - * queue, wakeup the remaining threads. - */ - if (g_async_queue_length_unlocked (pool->queue) == - - pool->num_threads) - g_thread_pool_wakeup_and_stop_all (pool); - } - } - else if (pool->immediate || - g_async_queue_length_unlocked (pool->queue) <= 0) - { - /* If the pool is not running and another thread is - * waiting for this thread pool to finish and there - * are either no tasks left or the pool shall stop - * immediatly, inform the waiting thread of a change - * of the thread pool state. - */ - g_cond_broadcast (pool->cond); - } - } - - g_async_queue_unlock (pool->queue); - - if (free_pool) - g_thread_pool_free_internal (pool); - - if ((pool = g_thread_pool_wait_for_new_pool ()) == NULL) - break; - - g_async_queue_lock (pool->queue); - - DEBUG_MSG (("thread %p entering pool %p from global pool.", - g_thread_self (), pool)); - - /* pool->num_threads++ is not done here, but in - * g_thread_pool_start_thread to make the new started thread - * known to the pool, before itself can do it. - */ - } - } - - return NULL; -} - -static void -g_thread_pool_start_thread (GRealThreadPool *pool, - GError **error) -{ - gboolean success = FALSE; - - if (pool->num_threads >= pool->max_threads && pool->max_threads != -1) - /* Enough threads are already running */ - return; - - g_async_queue_lock (unused_thread_queue); - - if (g_async_queue_length_unlocked (unused_thread_queue) < 0) - { - g_async_queue_push_unlocked (unused_thread_queue, pool); - success = TRUE; - } - - g_async_queue_unlock (unused_thread_queue); - - if (!success) - { - GError *local_error = NULL; - /* No thread was found, we have to start a new one */ - g_thread_create (g_thread_pool_thread_proxy, pool, FALSE, &local_error); - - if (local_error) - { - g_propagate_error (error, local_error); - return; - } - } - - /* See comment in g_thread_pool_thread_proxy as to why this is done - * here and not there - */ - pool->num_threads++; -} - -/** - * g_thread_pool_new: - * @func: a function to execute in the threads of the new thread pool - * @user_data: user data that is handed over to @func every time it - * is called - * @max_threads: the maximal number of threads to execute concurrently in - * the new thread pool, -1 means no limit - * @exclusive: should this thread pool be exclusive? - * @error: return location for error - * - * This function creates a new thread pool. - * - * Whenever you call g_thread_pool_push(), either a new thread is - * created or an unused one is reused. At most @max_threads threads - * are running concurrently for this thread pool. @max_threads = -1 - * allows unlimited threads to be created for this thread pool. The - * newly created or reused thread now executes the function @func with - * the two arguments. The first one is the parameter to - * g_thread_pool_push() and the second one is @user_data. - * - * The parameter @exclusive determines, whether the thread pool owns - * all threads exclusive or whether the threads are shared - * globally. If @exclusive is %TRUE, @max_threads threads are started - * immediately and they will run exclusively for this thread pool until - * it is destroyed by g_thread_pool_free(). If @exclusive is %FALSE, - * threads are created, when needed and shared between all - * non-exclusive thread pools. This implies that @max_threads may not - * be -1 for exclusive thread pools. - * - * @error can be %NULL to ignore errors, or non-%NULL to report - * errors. An error can only occur when @exclusive is set to %TRUE and - * not all @max_threads threads could be created. - * - * Return value: the new #GThreadPool - **/ -GThreadPool* -g_thread_pool_new (GFunc func, - gpointer user_data, - gint max_threads, - gboolean exclusive, - GError **error) -{ - GRealThreadPool *retval; - G_LOCK_DEFINE_STATIC (init); - - g_return_val_if_fail (func, NULL); - g_return_val_if_fail (!exclusive || max_threads != -1, NULL); - g_return_val_if_fail (max_threads >= -1, NULL); - g_return_val_if_fail (g_thread_supported (), NULL); - - retval = g_new (GRealThreadPool, 1); - - retval->pool.func = func; - retval->pool.user_data = user_data; - retval->pool.exclusive = exclusive; - retval->queue = g_async_queue_new (); - retval->cond = NULL; - retval->max_threads = max_threads; - retval->num_threads = 0; - retval->running = TRUE; - retval->sort_func = NULL; - retval->sort_user_data = NULL; - - G_LOCK (init); - if (!unused_thread_queue) - unused_thread_queue = g_async_queue_new (); - G_UNLOCK (init); - - if (retval->pool.exclusive) - { - g_async_queue_lock (retval->queue); - - while (retval->num_threads < retval->max_threads) - { - GError *local_error = NULL; - g_thread_pool_start_thread (retval, &local_error); - if (local_error) - { - g_propagate_error (error, local_error); - break; - } - } - - g_async_queue_unlock (retval->queue); - } - - return (GThreadPool*) retval; -} - -/** - * g_thread_pool_push: - * @pool: a #GThreadPool - * @data: a new task for @pool - * @error: return location for error - * - * Inserts @data into the list of tasks to be executed by @pool. When - * the number of currently running threads is lower than the maximal - * allowed number of threads, a new thread is started (or reused) with - * the properties given to g_thread_pool_new (). Otherwise @data stays - * in the queue until a thread in this pool finishes its previous task - * and processes @data. - * - * @error can be %NULL to ignore errors, or non-%NULL to report - * errors. An error can only occur when a new thread couldn't be - * created. In that case @data is simply appended to the queue of work - * to do. - **/ -void -g_thread_pool_push (GThreadPool *pool, - gpointer data, - GError **error) -{ - GRealThreadPool *real; - - real = (GRealThreadPool*) pool; - - g_return_if_fail (real); - g_return_if_fail (real->running); - - g_async_queue_lock (real->queue); - - if (g_async_queue_length_unlocked (real->queue) >= 0) - /* No thread is waiting in the queue */ - g_thread_pool_start_thread (real, error); - - g_thread_pool_queue_push_unlocked (real, data); - g_async_queue_unlock (real->queue); -} - -/** - * g_thread_pool_set_max_threads: - * @pool: a #GThreadPool - * @max_threads: a new maximal number of threads for @pool - * @error: return location for error - * - * Sets the maximal allowed number of threads for @pool. A value of -1 - * means, that the maximal number of threads is unlimited. - * - * Setting @max_threads to 0 means stopping all work for @pool. It is - * effectively frozen until @max_threads is set to a non-zero value - * again. - * - * A thread is never terminated while calling @func, as supplied by - * g_thread_pool_new (). Instead the maximal number of threads only - * has effect for the allocation of new threads in g_thread_pool_push(). - * A new thread is allocated, whenever the number of currently - * running threads in @pool is smaller than the maximal number. - * - * @error can be %NULL to ignore errors, or non-%NULL to report - * errors. An error can only occur when a new thread couldn't be - * created. - **/ -void -g_thread_pool_set_max_threads (GThreadPool *pool, - gint max_threads, - GError **error) -{ - GRealThreadPool *real; - gint to_start; - - real = (GRealThreadPool*) pool; - - g_return_if_fail (real); - g_return_if_fail (real->running); - g_return_if_fail (!real->pool.exclusive || max_threads != -1); - g_return_if_fail (max_threads >= -1); - - g_async_queue_lock (real->queue); - - real->max_threads = max_threads; - - if (pool->exclusive) - to_start = real->max_threads - real->num_threads; - else - to_start = g_async_queue_length_unlocked (real->queue); - - for ( ; to_start > 0; to_start--) - { - GError *local_error = NULL; - - g_thread_pool_start_thread (real, &local_error); - if (local_error) - { - g_propagate_error (error, local_error); - break; - } - } - - g_async_queue_unlock (real->queue); -} - -/** - * g_thread_pool_get_max_threads: - * @pool: a #GThreadPool - * - * Returns the maximal number of threads for @pool. - * - * Return value: the maximal number of threads - **/ -gint -g_thread_pool_get_max_threads (GThreadPool *pool) -{ - GRealThreadPool *real; - gint retval; - - real = (GRealThreadPool*) pool; - - g_return_val_if_fail (real, 0); - g_return_val_if_fail (real->running, 0); - - g_async_queue_lock (real->queue); - retval = real->max_threads; - g_async_queue_unlock (real->queue); - - return retval; -} - -/** - * g_thread_pool_get_num_threads: - * @pool: a #GThreadPool - * - * Returns the number of threads currently running in @pool. - * - * Return value: the number of threads currently running - **/ -guint -g_thread_pool_get_num_threads (GThreadPool *pool) -{ - GRealThreadPool *real; - guint retval; - - real = (GRealThreadPool*) pool; - - g_return_val_if_fail (real, 0); - g_return_val_if_fail (real->running, 0); - - g_async_queue_lock (real->queue); - retval = real->num_threads; - g_async_queue_unlock (real->queue); - - return retval; -} - -/** - * g_thread_pool_unprocessed: - * @pool: a #GThreadPool - * - * Returns the number of tasks still unprocessed in @pool. - * - * Return value: the number of unprocessed tasks - **/ -guint -g_thread_pool_unprocessed (GThreadPool *pool) -{ - GRealThreadPool *real; - gint unprocessed; - - real = (GRealThreadPool*) pool; - - g_return_val_if_fail (real, 0); - g_return_val_if_fail (real->running, 0); - - unprocessed = g_async_queue_length (real->queue); - - return MAX (unprocessed, 0); -} - -/** - * g_thread_pool_free: - * @pool: a #GThreadPool - * @immediate: should @pool shut down immediately? - * @wait_: should the function wait for all tasks to be finished? - * - * Frees all resources allocated for @pool. - * - * If @immediate is %TRUE, no new task is processed for - * @pool. Otherwise @pool is not freed before the last task is - * processed. Note however, that no thread of this pool is - * interrupted, while processing a task. Instead at least all still - * running threads can finish their tasks before the @pool is freed. - * - * If @wait_ is %TRUE, the functions does not return before all tasks - * to be processed (dependent on @immediate, whether all or only the - * currently running) are ready. Otherwise the function returns immediately. - * - * After calling this function @pool must not be used anymore. - **/ -void -g_thread_pool_free (GThreadPool *pool, - gboolean immediate, - gboolean wait_) -{ - GRealThreadPool *real; - - real = (GRealThreadPool*) pool; - - g_return_if_fail (real); - g_return_if_fail (real->running); - - /* If there's no thread allowed here, there is not much sense in - * not stopping this pool immediately, when it's not empty - */ - g_return_if_fail (immediate || - real->max_threads != 0 || - g_async_queue_length (real->queue) == 0); - - g_async_queue_lock (real->queue); - - real->running = FALSE; - real->immediate = immediate; - real->waiting = wait_; - - if (wait_) - { - real->cond = g_cond_new (); - - while (g_async_queue_length_unlocked (real->queue) != -real->num_threads && - !(immediate && real->num_threads == 0)) - g_cond_wait (real->cond, _g_async_queue_get_mutex (real->queue)); - } - - if (immediate || g_async_queue_length_unlocked (real->queue) == -real->num_threads) - { - /* No thread is currently doing something (and nothing is left - * to process in the queue) - */ - if (real->num_threads == 0) - { - /* No threads left, we clean up */ - g_async_queue_unlock (real->queue); - g_thread_pool_free_internal (real); - return; - } - - g_thread_pool_wakeup_and_stop_all (real); - } - - /* The last thread should cleanup the pool */ - real->waiting = FALSE; - g_async_queue_unlock (real->queue); -} - -static void -g_thread_pool_free_internal (GRealThreadPool* pool) -{ - g_return_if_fail (pool); - g_return_if_fail (pool->running == FALSE); - g_return_if_fail (pool->num_threads == 0); - - g_async_queue_unref (pool->queue); - - if (pool->cond) - g_cond_free (pool->cond); - - g_free (pool); -} - -static void -g_thread_pool_wakeup_and_stop_all (GRealThreadPool* pool) -{ - guint i; - - g_return_if_fail (pool); - g_return_if_fail (pool->running == FALSE); - g_return_if_fail (pool->num_threads != 0); - - pool->immediate = TRUE; - - for (i = 0; i < pool->num_threads; i++) - g_thread_pool_queue_push_unlocked (pool, GUINT_TO_POINTER (1)); -} - -/** - * g_thread_pool_set_max_unused_threads: - * @max_threads: maximal number of unused threads - * - * Sets the maximal number of unused threads to @max_threads. If - * @max_threads is -1, no limit is imposed on the number of unused - * threads. - **/ -void -g_thread_pool_set_max_unused_threads (gint max_threads) -{ - g_return_if_fail (max_threads >= -1); - - g_atomic_int_set (&max_unused_threads, max_threads); - - if (max_threads != -1) - { - max_threads -= g_atomic_int_get (&unused_threads); - if (max_threads < 0) - { - g_atomic_int_set (&kill_unused_threads, -max_threads); - g_atomic_int_inc (&wakeup_thread_serial); - - g_async_queue_lock (unused_thread_queue); - - do - { - g_async_queue_push_unlocked (unused_thread_queue, - wakeup_thread_marker); - } - while (++max_threads); - - g_async_queue_unlock (unused_thread_queue); - } - } -} - -/** - * g_thread_pool_get_max_unused_threads: - * - * Returns the maximal allowed number of unused threads. - * - * Return value: the maximal number of unused threads - **/ -gint -g_thread_pool_get_max_unused_threads (void) -{ - return g_atomic_int_get (&max_unused_threads); -} - -/** - * g_thread_pool_get_num_unused_threads: - * - * Returns the number of currently unused threads. - * - * Return value: the number of currently unused threads - **/ -guint -g_thread_pool_get_num_unused_threads (void) -{ - return g_atomic_int_get (&unused_threads); -} - -/** - * g_thread_pool_stop_unused_threads: - * - * Stops all currently unused threads. This does not change the - * maximal number of unused threads. This function can be used to - * regularly stop all unused threads e.g. from g_timeout_add(). - **/ -void -g_thread_pool_stop_unused_threads (void) -{ - guint oldval; - - oldval = g_thread_pool_get_max_unused_threads (); - - g_thread_pool_set_max_unused_threads (0); - g_thread_pool_set_max_unused_threads (oldval); -} - -/** - * g_thread_pool_set_sort_function: - * @pool: a #GThreadPool - * @func: the #GCompareDataFunc used to sort the list of tasks. - * This function is passed two tasks. It should return - * 0 if the order in which they are handled does not matter, - * a negative value if the first task should be processed before - * the second or a positive value if the second task should be - * processed first. - * @user_data: user data passed to @func. - * - * Sets the function used to sort the list of tasks. This allows the - * tasks to be processed by a priority determined by @func, and not - * just in the order in which they were added to the pool. - * - * Note, if the maximum number of threads is more than 1, the order - * that threads are executed can not be guranteed 100%. Threads are - * scheduled by the operating system and are executed at random. It - * cannot be assumed that threads are executed in the order they are - * created. - * - * Since: 2.10 - **/ -void -g_thread_pool_set_sort_function (GThreadPool *pool, - GCompareDataFunc func, - gpointer user_data) -{ - GRealThreadPool *real; - - real = (GRealThreadPool*) pool; - - g_return_if_fail (real); - g_return_if_fail (real->running); - - g_async_queue_lock (real->queue); - - real->sort_func = func; - real->sort_user_data = user_data; - - if (func) - g_async_queue_sort_unlocked (real->queue, - real->sort_func, - real->sort_user_data); - - g_async_queue_unlock (real->queue); -} - -/** - * g_thread_pool_set_max_idle_time: - * @interval: the maximum @interval (1/1000ths of a second) a thread - * can be idle. - * - * This function will set the maximum @interval that a thread waiting - * in the pool for new tasks can be idle for before being - * stopped. This function is similar to calling - * g_thread_pool_stop_unused_threads() on a regular timeout, except, - * this is done on a per thread basis. - * - * By setting @interval to 0, idle threads will not be stopped. - * - * This function makes use of g_async_queue_timed_pop () using - * @interval. - * - * Since: 2.10 - **/ -void -g_thread_pool_set_max_idle_time (guint interval) -{ - guint i; - - g_atomic_int_set (&max_idle_time, interval); - - i = g_atomic_int_get (&unused_threads); - if (i > 0) - { - g_atomic_int_inc (&wakeup_thread_serial); - g_async_queue_lock (unused_thread_queue); - - do - { - g_async_queue_push_unlocked (unused_thread_queue, - wakeup_thread_marker); - } - while (--i); - - g_async_queue_unlock (unused_thread_queue); - } -} - -/** - * g_thread_pool_get_max_idle_time: - * - * This function will return the maximum @interval that a thread will - * wait in the thread pool for new tasks before being stopped. - * - * If this function returns 0, threads waiting in the thread pool for - * new work are not stopped. - * - * Return value: the maximum @interval to wait for new tasks in the - * thread pool before stopping the thread (1/1000ths of a second). - * - * Since: 2.10 - **/ -guint -g_thread_pool_get_max_idle_time (void) -{ - return g_atomic_int_get (&max_idle_time); -} - -#define __G_THREADPOOL_C__ -#include "galiasdef.c" diff --git a/lib/win32/glib-2.20.4/glib/gthreadpool.h b/lib/win32/glib-2.20.4/glib/gthreadpool.h deleted file mode 100644 index d5864241e6b0d..0000000000000 --- a/lib/win32/glib-2.20.4/glib/gthreadpool.h +++ /dev/null @@ -1,114 +0,0 @@ -/* GLIB - Library of useful routines for C programming - * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library 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 - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ - -/* - * Modified by the GLib Team and others 1997-2000. See the AUTHORS - * file for a list of people on the GLib Team. See the ChangeLog - * files for a list of changes. These files are distributed with - * GLib at ftp://ftp.gtk.org/pub/gtk/. - */ - -#if defined(G_DISABLE_SINGLE_INCLUDES) && !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION) -#error "Only can be included directly." -#endif - -#ifndef __G_THREADPOOL_H__ -#define __G_THREADPOOL_H__ - -#include - -G_BEGIN_DECLS - -typedef struct _GThreadPool GThreadPool; - -/* Thread Pools - */ - -/* The real GThreadPool is bigger, so you may only create a thread - * pool with the constructor function */ -struct _GThreadPool -{ - GFunc func; - gpointer user_data; - gboolean exclusive; -}; - -/* Get a thread pool with the function func, at most max_threads may - * run at a time (max_threads == -1 means no limit), exclusive == TRUE - * means, that the threads shouldn't be shared and that they will be - * prestarted (otherwise they are started as needed) user_data is the - * 2nd argument to the func */ -GThreadPool* g_thread_pool_new (GFunc func, - gpointer user_data, - gint max_threads, - gboolean exclusive, - GError **error); - -/* Push new data into the thread pool. This task is assigned to a thread later - * (when the maximal number of threads is reached for that pool) or now - * (otherwise). If necessary a new thread will be started. The function - * returns immediatly */ -void g_thread_pool_push (GThreadPool *pool, - gpointer data, - GError **error); - -/* Set the number of threads, which can run concurrently for that pool, -1 - * means no limit. 0 means has the effect, that the pool won't process - * requests until the limit is set higher again */ -void g_thread_pool_set_max_threads (GThreadPool *pool, - gint max_threads, - GError **error); -gint g_thread_pool_get_max_threads (GThreadPool *pool); - -/* Get the number of threads assigned to that pool. This number doesn't - * necessarily represent the number of working threads in that pool */ -guint g_thread_pool_get_num_threads (GThreadPool *pool); - -/* Get the number of unprocessed items in the pool */ -guint g_thread_pool_unprocessed (GThreadPool *pool); - -/* Free the pool, immediate means, that all unprocessed items in the queue - * wont be processed, wait means, that the function doesn't return immediatly, - * but after all threads in the pool are ready processing items. immediate - * does however not mean, that threads are killed. */ -void g_thread_pool_free (GThreadPool *pool, - gboolean immediate, - gboolean wait_); - -/* Set the maximal number of unused threads before threads will be stopped by - * GLib, -1 means no limit */ -void g_thread_pool_set_max_unused_threads (gint max_threads); -gint g_thread_pool_get_max_unused_threads (void); -guint g_thread_pool_get_num_unused_threads (void); - -/* Stop all currently unused threads, but leave the limit untouched */ -void g_thread_pool_stop_unused_threads (void); - -/* Set sort function for priority threading */ -void g_thread_pool_set_sort_function (GThreadPool *pool, - GCompareDataFunc func, - gpointer user_data); - -/* Set maximum time a thread can be idle in the pool before it is stopped */ -void g_thread_pool_set_max_idle_time (guint interval); -guint g_thread_pool_get_max_idle_time (void); - -G_END_DECLS - -#endif /* __G_THREADPOOL_H__ */ diff --git a/lib/win32/glib-2.20.4/glib/gthreadprivate.h b/lib/win32/glib-2.20.4/glib/gthreadprivate.h deleted file mode 100644 index c9b5fa50d8ab5..0000000000000 --- a/lib/win32/glib-2.20.4/glib/gthreadprivate.h +++ /dev/null @@ -1,68 +0,0 @@ -/* GLIB - Library of useful routines for C programming - * - * gthreadprivate.h - GLib internal thread system related declarations. - * - * Copyright (C) 2003 Sebastian Wilhelmi - * - * The Gnome Library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or (at your option) any later version. - * - * The Gnome Library 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 - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with the Gnome Library; see the file COPYING.LIB. If not, - * write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ - -#ifndef __G_THREADPRIVATE_H__ -#define __G_THREADPRIVATE_H__ - -G_BEGIN_DECLS - -/* System thread identifier comparision and assignment */ -#if GLIB_SIZEOF_SYSTEM_THREAD == SIZEOF_VOID_P -# define g_system_thread_equal_simple(thread1, thread2) \ - ((thread1).dummy_pointer == (thread2).dummy_pointer) -# define g_system_thread_assign(dest, src) \ - ((dest).dummy_pointer = (src).dummy_pointer) -#else /* GLIB_SIZEOF_SYSTEM_THREAD != SIZEOF_VOID_P */ -# define g_system_thread_equal_simple(thread1, thread2) \ - (memcmp (&(thread1), &(thread2), GLIB_SIZEOF_SYSTEM_THREAD) == 0) -# define g_system_thread_assign(dest, src) \ - (memcpy (&(dest), &(src), GLIB_SIZEOF_SYSTEM_THREAD)) -#endif /* GLIB_SIZEOF_SYSTEM_THREAD == SIZEOF_VOID_P */ - -#define g_system_thread_equal(thread1, thread2) \ - (g_thread_functions_for_glib_use.thread_equal ? \ - g_thread_functions_for_glib_use.thread_equal (&(thread1), &(thread2)) :\ - g_system_thread_equal_simple((thread1), (thread2))) - -/* Is called from gthread/gthread-impl.c */ -void g_thread_init_glib (void); - -/* base initializers, may only use g_mutex_new(), g_cond_new() */ -G_GNUC_INTERNAL void _g_mem_thread_init_noprivate_nomessage (void); -/* initializers that may also use g_private_new() */ -G_GNUC_INTERNAL void _g_slice_thread_init_nomessage (void); -G_GNUC_INTERNAL void _g_messages_thread_init_nomessage (void); - -/* full fledged initializers */ -G_GNUC_INTERNAL void _g_convert_thread_init (void); -G_GNUC_INTERNAL void _g_rand_thread_init (void); -G_GNUC_INTERNAL void _g_main_thread_init (void); -G_GNUC_INTERNAL void _g_atomic_thread_init (void); -G_GNUC_INTERNAL void _g_utils_thread_init (void); - -#ifdef G_OS_WIN32 -G_GNUC_INTERNAL void _g_win32_thread_init (void); -#endif /* G_OS_WIN32 */ - -G_END_DECLS - -#endif /* __G_THREADPRIVATE_H__ */ diff --git a/lib/win32/glib-2.20.4/glib/gtimer.c b/lib/win32/glib-2.20.4/glib/gtimer.c deleted file mode 100644 index c52eeb7fef753..0000000000000 --- a/lib/win32/glib-2.20.4/glib/gtimer.c +++ /dev/null @@ -1,469 +0,0 @@ -/* GLIB - Library of useful routines for C programming - * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library 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 - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ - -/* - * Modified by the GLib Team and others 1997-2000. See the AUTHORS - * file for a list of people on the GLib Team. See the ChangeLog - * files for a list of changes. These files are distributed with - * GLib at ftp://ftp.gtk.org/pub/gtk/. - */ - -/* - * MT safe - */ - -#include "config.h" -#include "glibconfig.h" - -#include - -#ifdef HAVE_UNISTD_H -#include -#endif /* HAVE_UNISTD_H */ - -#ifndef G_OS_WIN32 -#include -#include -#include -#endif /* G_OS_WIN32 */ - -#ifdef G_OS_WIN32 -#include -#endif /* G_OS_WIN32 */ - -#include "glib.h" -#include "gthread.h" -#include "galias.h" - -#define G_NSEC_PER_SEC 1000000000 - -#define GETTIME(v) (v = g_thread_gettime ()) - -struct _GTimer -{ - guint64 start; - guint64 end; - - guint active : 1; -}; - - -GTimer* -g_timer_new (void) -{ - GTimer *timer; - - timer = g_new (GTimer, 1); - timer->active = TRUE; - - GETTIME (timer->start); - - return timer; -} - -void -g_timer_destroy (GTimer *timer) -{ - g_return_if_fail (timer != NULL); - - g_free (timer); -} - -void -g_timer_start (GTimer *timer) -{ - g_return_if_fail (timer != NULL); - - timer->active = TRUE; - - GETTIME (timer->start); -} - -void -g_timer_stop (GTimer *timer) -{ - g_return_if_fail (timer != NULL); - - timer->active = FALSE; - - GETTIME (timer->end); -} - -void -g_timer_reset (GTimer *timer) -{ - g_return_if_fail (timer != NULL); - - GETTIME (timer->start); -} - -void -g_timer_continue (GTimer *timer) -{ - guint64 elapsed; - - g_return_if_fail (timer != NULL); - g_return_if_fail (timer->active == FALSE); - - /* Get elapsed time and reset timer start time - * to the current time minus the previously - * elapsed interval. - */ - - elapsed = timer->end - timer->start; - - GETTIME (timer->start); - - timer->start -= elapsed; - - timer->active = TRUE; -} - -gdouble -g_timer_elapsed (GTimer *timer, - gulong *microseconds) -{ - gdouble total; - gint64 elapsed; - - g_return_val_if_fail (timer != NULL, 0); - - if (timer->active) - GETTIME (timer->end); - - elapsed = timer->end - timer->start; - - total = elapsed / 1e9; - - if (microseconds) - *microseconds = (elapsed / 1000) % 1000000; - - return total; -} - -void -g_usleep (gulong microseconds) -{ -#ifdef G_OS_WIN32 - Sleep (microseconds / 1000); -#else /* !G_OS_WIN32 */ -# ifdef HAVE_NANOSLEEP - struct timespec request, remaining; - request.tv_sec = microseconds / G_USEC_PER_SEC; - request.tv_nsec = 1000 * (microseconds % G_USEC_PER_SEC); - while (nanosleep (&request, &remaining) == -1 && errno == EINTR) - request = remaining; -# else /* !HAVE_NANOSLEEP */ -# ifdef HAVE_NSLEEP - /* on AIX, nsleep is analogous to nanosleep */ - struct timespec request, remaining; - request.tv_sec = microseconds / G_USEC_PER_SEC; - request.tv_nsec = 1000 * (microseconds % G_USEC_PER_SEC); - while (nsleep (&request, &remaining) == -1 && errno == EINTR) - request = remaining; -# else /* !HAVE_NSLEEP */ - if (g_thread_supported ()) - { - static GStaticMutex mutex = G_STATIC_MUTEX_INIT; - static GCond* cond = NULL; - GTimeVal end_time; - - g_get_current_time (&end_time); - if (microseconds > G_MAXLONG) - { - microseconds -= G_MAXLONG; - g_time_val_add (&end_time, G_MAXLONG); - } - g_time_val_add (&end_time, microseconds); - - g_static_mutex_lock (&mutex); - - if (!cond) - cond = g_cond_new (); - - while (g_cond_timed_wait (cond, g_static_mutex_get_mutex (&mutex), - &end_time)) - /* do nothing */; - - g_static_mutex_unlock (&mutex); - } - else - { - struct timeval tv; - tv.tv_sec = microseconds / G_USEC_PER_SEC; - tv.tv_usec = microseconds % G_USEC_PER_SEC; - select(0, NULL, NULL, NULL, &tv); - } -# endif /* !HAVE_NSLEEP */ -# endif /* !HAVE_NANOSLEEP */ -#endif /* !G_OS_WIN32 */ -} - -/** - * g_time_val_add: - * @time_: a #GTimeVal - * @microseconds: number of microseconds to add to @time - * - * Adds the given number of microseconds to @time_. @microseconds can - * also be negative to decrease the value of @time_. - **/ -void -g_time_val_add (GTimeVal *time_, glong microseconds) -{ - g_return_if_fail (time_->tv_usec >= 0 && time_->tv_usec < G_USEC_PER_SEC); - - if (microseconds >= 0) - { - time_->tv_usec += microseconds % G_USEC_PER_SEC; - time_->tv_sec += microseconds / G_USEC_PER_SEC; - if (time_->tv_usec >= G_USEC_PER_SEC) - { - time_->tv_usec -= G_USEC_PER_SEC; - time_->tv_sec++; - } - } - else - { - microseconds *= -1; - time_->tv_usec -= microseconds % G_USEC_PER_SEC; - time_->tv_sec -= microseconds / G_USEC_PER_SEC; - if (time_->tv_usec < 0) - { - time_->tv_usec += G_USEC_PER_SEC; - time_->tv_sec--; - } - } -} - -/* converts a broken down date representation, relative to UTC, to - * a timestamp; it uses timegm() if it's available. - */ -static time_t -mktime_utc (struct tm *tm) -{ - time_t retval; - -#ifndef HAVE_TIMEGM - static const gint days_before[] = - { - 0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334 - }; -#endif - -#ifndef HAVE_TIMEGM - if (tm->tm_mon < 0 || tm->tm_mon > 11) - return (time_t) -1; - - retval = (tm->tm_year - 70) * 365; - retval += (tm->tm_year - 68) / 4; - retval += days_before[tm->tm_mon] + tm->tm_mday - 1; - - if (tm->tm_year % 4 == 0 && tm->tm_mon < 2) - retval -= 1; - - retval = ((((retval * 24) + tm->tm_hour) * 60) + tm->tm_min) * 60 + tm->tm_sec; -#else - retval = timegm (tm); -#endif /* !HAVE_TIMEGM */ - - return retval; -} - -/** - * g_time_val_from_iso8601: - * @iso_date: an ISO 8601 encoded date string - * @time_: a #GTimeVal - * - * Converts a string containing an ISO 8601 encoded date and time - * to a #GTimeVal and puts it into @time_. - * - * Return value: %TRUE if the conversion was successful. - * - * Since: 2.12 - */ -gboolean -g_time_val_from_iso8601 (const gchar *iso_date, - GTimeVal *time_) -{ - struct tm tm; - long val; - - g_return_val_if_fail (iso_date != NULL, FALSE); - g_return_val_if_fail (time_ != NULL, FALSE); - - /* Ensure that the first character is a digit, - * the first digit of the date, otherwise we don't - * have an ISO 8601 date */ - while (g_ascii_isspace (*iso_date)) - iso_date++; - - if (*iso_date == '\0') - return FALSE; - - if (!g_ascii_isdigit (*iso_date) && *iso_date != '-' && *iso_date != '+') - return FALSE; - - val = strtoul (iso_date, (char **)&iso_date, 10); - if (*iso_date == '-') - { - /* YYYY-MM-DD */ - tm.tm_year = val - 1900; - iso_date++; - tm.tm_mon = strtoul (iso_date, (char **)&iso_date, 10) - 1; - - if (*iso_date++ != '-') - return FALSE; - - tm.tm_mday = strtoul (iso_date, (char **)&iso_date, 10); - } - else - { - /* YYYYMMDD */ - tm.tm_mday = val % 100; - tm.tm_mon = (val % 10000) / 100 - 1; - tm.tm_year = val / 10000 - 1900; - } - - if (*iso_date++ != 'T') - return FALSE; - - val = strtoul (iso_date, (char **)&iso_date, 10); - if (*iso_date == ':') - { - /* hh:mm:ss */ - tm.tm_hour = val; - iso_date++; - tm.tm_min = strtoul (iso_date, (char **)&iso_date, 10); - - if (*iso_date++ != ':') - return FALSE; - - tm.tm_sec = strtoul (iso_date, (char **)&iso_date, 10); - } - else - { - /* hhmmss */ - tm.tm_sec = val % 100; - tm.tm_min = (val % 10000) / 100; - tm.tm_hour = val / 10000; - } - - time_->tv_sec = mktime_utc (&tm); - time_->tv_usec = 0; - - if (*iso_date == ',' || *iso_date == '.') - { - glong mul = 100000; - - while (g_ascii_isdigit (*++iso_date)) - { - time_->tv_usec += (*iso_date - '0') * mul; - mul /= 10; - } - } - - if (*iso_date == '+' || *iso_date == '-') - { - gint sign = (*iso_date == '+') ? -1 : 1; - - val = strtoul (iso_date + 1, (char **)&iso_date, 10); - - if (*iso_date == ':') - val = 60 * val + strtoul (iso_date + 1, (char **)&iso_date, 10); - else - val = 60 * (val / 100) + (val % 100); - - time_->tv_sec += (time_t) (60 * val * sign); - } - else if (*iso_date++ != 'Z') - return FALSE; - - while (g_ascii_isspace (*iso_date)) - iso_date++; - - return *iso_date == '\0'; -} - -/** - * g_time_val_to_iso8601: - * @time_: a #GTimeVal - * - * Converts @time_ into an ISO 8601 encoded string, relative to the - * Coordinated Universal Time (UTC). - * - * Return value: a newly allocated string containing an ISO 8601 date - * - * Since: 2.12 - */ -gchar * -g_time_val_to_iso8601 (GTimeVal *time_) -{ - gchar *retval; - struct tm *tm; -#ifdef HAVE_GMTIME_R - struct tm tm_; -#endif - time_t secs; - - g_return_val_if_fail (time_->tv_usec >= 0 && time_->tv_usec < G_USEC_PER_SEC, NULL); - - secs = time_->tv_sec; -#ifdef _WIN32 - tm = gmtime (&secs); -#else -#ifdef HAVE_GMTIME_R - tm = gmtime_r (&secs, &tm_); -#else - tm = gmtime (&secs); -#endif -#endif - - if (time_->tv_usec != 0) - { - /* ISO 8601 date and time format, with fractionary seconds: - * YYYY-MM-DDTHH:MM:SS.MMMMMMZ - */ - retval = g_strdup_printf ("%4d-%02d-%02dT%02d:%02d:%02d.%06ldZ", - tm->tm_year + 1900, - tm->tm_mon + 1, - tm->tm_mday, - tm->tm_hour, - tm->tm_min, - tm->tm_sec, - time_->tv_usec); - } - else - { - /* ISO 8601 date and time format: - * YYYY-MM-DDTHH:MM:SSZ - */ - retval = g_strdup_printf ("%4d-%02d-%02dT%02d:%02d:%02dZ", - tm->tm_year + 1900, - tm->tm_mon + 1, - tm->tm_mday, - tm->tm_hour, - tm->tm_min, - tm->tm_sec); - } - - return retval; -} - -#define __G_TIMER_C__ -#include "galiasdef.c" diff --git a/lib/win32/glib-2.20.4/glib/gtimer.h b/lib/win32/glib-2.20.4/glib/gtimer.h deleted file mode 100644 index 743eed1f904ce..0000000000000 --- a/lib/win32/glib-2.20.4/glib/gtimer.h +++ /dev/null @@ -1,65 +0,0 @@ -/* GLIB - Library of useful routines for C programming - * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library 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 - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ - -/* - * Modified by the GLib Team and others 1997-2000. See the AUTHORS - * file for a list of people on the GLib Team. See the ChangeLog - * files for a list of changes. These files are distributed with - * GLib at ftp://ftp.gtk.org/pub/gtk/. - */ - -#if defined(G_DISABLE_SINGLE_INCLUDES) && !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION) -#error "Only can be included directly." -#endif - -#ifndef __G_TIMER_H__ -#define __G_TIMER_H__ - -#include - -G_BEGIN_DECLS - -/* Timer - */ - -/* microseconds per second */ -typedef struct _GTimer GTimer; - -#define G_USEC_PER_SEC 1000000 - -GTimer* g_timer_new (void); -void g_timer_destroy (GTimer *timer); -void g_timer_start (GTimer *timer); -void g_timer_stop (GTimer *timer); -void g_timer_reset (GTimer *timer); -void g_timer_continue (GTimer *timer); -gdouble g_timer_elapsed (GTimer *timer, - gulong *microseconds); - -void g_usleep (gulong microseconds); - -void g_time_val_add (GTimeVal *time_, - glong microseconds); -gboolean g_time_val_from_iso8601 (const gchar *iso_date, - GTimeVal *time_); -gchar* g_time_val_to_iso8601 (GTimeVal *time_) G_GNUC_MALLOC; - -G_END_DECLS - -#endif /* __G_TIMER_H__ */ diff --git a/lib/win32/glib-2.20.4/glib/gtree.c b/lib/win32/glib-2.20.4/glib/gtree.c deleted file mode 100644 index 8ae5e9812da7f..0000000000000 --- a/lib/win32/glib-2.20.4/glib/gtree.c +++ /dev/null @@ -1,1290 +0,0 @@ -/* GLIB - Library of useful routines for C programming - * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library 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 - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ - -/* - * Modified by the GLib Team and others 1997-2000. See the AUTHORS - * file for a list of people on the GLib Team. See the ChangeLog - * files for a list of changes. These files are distributed with - * GLib at ftp://ftp.gtk.org/pub/gtk/. - */ - -/* - * MT safe - */ - -#include "config.h" - -#include "glib.h" -#include "galias.h" - -#undef G_TREE_DEBUG - -#define MAX_GTREE_HEIGHT 40 - -typedef struct _GTreeNode GTreeNode; - -struct _GTree -{ - GTreeNode *root; - GCompareDataFunc key_compare; - GDestroyNotify key_destroy_func; - GDestroyNotify value_destroy_func; - gpointer key_compare_data; - guint nnodes; -}; - -struct _GTreeNode -{ - gpointer key; /* key for this node */ - gpointer value; /* value stored at this node */ - GTreeNode *left; /* left subtree */ - GTreeNode *right; /* right subtree */ - gint8 balance; /* height (left) - height (right) */ - guint8 left_child; - guint8 right_child; -}; - - -static GTreeNode* g_tree_node_new (gpointer key, - gpointer value); -static void g_tree_insert_internal (GTree *tree, - gpointer key, - gpointer value, - gboolean replace); -static gboolean g_tree_remove_internal (GTree *tree, - gconstpointer key, - gboolean steal); -static GTreeNode* g_tree_node_balance (GTreeNode *node); -static GTreeNode *g_tree_find_node (GTree *tree, - gconstpointer key); -static gint g_tree_node_pre_order (GTreeNode *node, - GTraverseFunc traverse_func, - gpointer data); -static gint g_tree_node_in_order (GTreeNode *node, - GTraverseFunc traverse_func, - gpointer data); -static gint g_tree_node_post_order (GTreeNode *node, - GTraverseFunc traverse_func, - gpointer data); -static gpointer g_tree_node_search (GTreeNode *node, - GCompareFunc search_func, - gconstpointer data); -static GTreeNode* g_tree_node_rotate_left (GTreeNode *node); -static GTreeNode* g_tree_node_rotate_right (GTreeNode *node); -#ifdef G_TREE_DEBUG -static void g_tree_node_check (GTreeNode *node); -#endif - - -static GTreeNode* -g_tree_node_new (gpointer key, - gpointer value) -{ - GTreeNode *node = g_slice_new (GTreeNode); - - node->balance = 0; - node->left = NULL; - node->right = NULL; - node->left_child = FALSE; - node->right_child = FALSE; - node->key = key; - node->value = value; - - return node; -} - -/** - * g_tree_new: - * @key_compare_func: the function used to order the nodes in the #GTree. - * It should return values similar to the standard strcmp() function - - * 0 if the two arguments are equal, a negative value if the first argument - * comes before the second, or a positive value if the first argument comes - * after the second. - * - * Creates a new #GTree. - * - * Return value: a new #GTree. - **/ -GTree* -g_tree_new (GCompareFunc key_compare_func) -{ - g_return_val_if_fail (key_compare_func != NULL, NULL); - - return g_tree_new_full ((GCompareDataFunc) key_compare_func, NULL, - NULL, NULL); -} - -/** - * g_tree_new_with_data: - * @key_compare_func: qsort()-style comparison function. - * @key_compare_data: data to pass to comparison function. - * - * Creates a new #GTree with a comparison function that accepts user data. - * See g_tree_new() for more details. - * - * Return value: a new #GTree. - **/ -GTree* -g_tree_new_with_data (GCompareDataFunc key_compare_func, - gpointer key_compare_data) -{ - g_return_val_if_fail (key_compare_func != NULL, NULL); - - return g_tree_new_full (key_compare_func, key_compare_data, - NULL, NULL); -} - -/** - * g_tree_new_full: - * @key_compare_func: qsort()-style comparison function. - * @key_compare_data: data to pass to comparison function. - * @key_destroy_func: a function to free the memory allocated for the key - * used when removing the entry from the #GTree or %NULL if you don't - * want to supply such a function. - * @value_destroy_func: a function to free the memory allocated for the - * value used when removing the entry from the #GTree or %NULL if you - * don't want to supply such a function. - * - * Creates a new #GTree like g_tree_new() and allows to specify functions - * to free the memory allocated for the key and value that get called when - * removing the entry from the #GTree. - * - * Return value: a new #GTree. - **/ -GTree* -g_tree_new_full (GCompareDataFunc key_compare_func, - gpointer key_compare_data, - GDestroyNotify key_destroy_func, - GDestroyNotify value_destroy_func) -{ - GTree *tree; - - g_return_val_if_fail (key_compare_func != NULL, NULL); - - tree = g_new (GTree, 1); - tree->root = NULL; - tree->key_compare = key_compare_func; - tree->key_destroy_func = key_destroy_func; - tree->value_destroy_func = value_destroy_func; - tree->key_compare_data = key_compare_data; - tree->nnodes = 0; - - return tree; -} - -static inline GTreeNode * -g_tree_first_node (GTree *tree) -{ - GTreeNode *tmp; - - if (!tree->root) - return NULL; - - tmp = tree->root; - - while (tmp->left_child) - tmp = tmp->left; - - return tmp; -} - -static inline GTreeNode * -g_tree_node_previous (GTreeNode *node) -{ - GTreeNode *tmp; - - tmp = node->left; - - if (node->left_child) - while (tmp->right_child) - tmp = tmp->right; - - return tmp; -} - -static inline GTreeNode * -g_tree_node_next (GTreeNode *node) -{ - GTreeNode *tmp; - - tmp = node->right; - - if (node->right_child) - while (tmp->left_child) - tmp = tmp->left; - - return tmp; -} - -/** - * g_tree_destroy: - * @tree: a #GTree. - * - * Destroys the #GTree. If keys and/or values are dynamically allocated, you - * should either free them first or create the #GTree using g_tree_new_full(). - * In the latter case the destroy functions you supplied will be called on - * all keys and values before destroying the #GTree. - **/ -void -g_tree_destroy (GTree *tree) -{ - GTreeNode *node; - GTreeNode *next; - - g_return_if_fail (tree != NULL); - - node = g_tree_first_node (tree); - - while (node) - { - next = g_tree_node_next (node); - - if (tree->key_destroy_func) - tree->key_destroy_func (node->key); - if (tree->value_destroy_func) - tree->value_destroy_func (node->value); - g_slice_free (GTreeNode, node); - - node = next; - } - - g_free (tree); -} - -/** - * g_tree_insert: - * @tree: a #GTree. - * @key: the key to insert. - * @value: the value corresponding to the key. - * - * Inserts a key/value pair into a #GTree. If the given key already exists - * in the #GTree its corresponding value is set to the new value. If you - * supplied a value_destroy_func when creating the #GTree, the old value is - * freed using that function. If you supplied a @key_destroy_func when - * creating the #GTree, the passed key is freed using that function. - * - * The tree is automatically 'balanced' as new key/value pairs are added, - * so that the distance from the root to every leaf is as small as possible. - **/ -void -g_tree_insert (GTree *tree, - gpointer key, - gpointer value) -{ - g_return_if_fail (tree != NULL); - - g_tree_insert_internal (tree, key, value, FALSE); - -#ifdef G_TREE_DEBUG - g_tree_node_check (tree->root); -#endif -} - -/** - * g_tree_replace: - * @tree: a #GTree. - * @key: the key to insert. - * @value: the value corresponding to the key. - * - * Inserts a new key and value into a #GTree similar to g_tree_insert(). - * The difference is that if the key already exists in the #GTree, it gets - * replaced by the new key. If you supplied a @value_destroy_func when - * creating the #GTree, the old value is freed using that function. If you - * supplied a @key_destroy_func when creating the #GTree, the old key is - * freed using that function. - * - * The tree is automatically 'balanced' as new key/value pairs are added, - * so that the distance from the root to every leaf is as small as possible. - **/ -void -g_tree_replace (GTree *tree, - gpointer key, - gpointer value) -{ - g_return_if_fail (tree != NULL); - - g_tree_insert_internal (tree, key, value, TRUE); - -#ifdef G_TREE_DEBUG - g_tree_node_check (tree->root); -#endif -} - -/* internal insert routine */ -static void -g_tree_insert_internal (GTree *tree, - gpointer key, - gpointer value, - gboolean replace) -{ - GTreeNode *node; - GTreeNode *path[MAX_GTREE_HEIGHT]; - int idx; - - g_return_if_fail (tree != NULL); - - if (!tree->root) - { - tree->root = g_tree_node_new (key, value); - tree->nnodes++; - return; - } - - idx = 0; - path[idx++] = NULL; - node = tree->root; - - while (1) - { - int cmp = tree->key_compare (key, node->key, tree->key_compare_data); - - if (cmp == 0) - { - if (tree->value_destroy_func) - tree->value_destroy_func (node->value); - - node->value = value; - - if (replace) - { - if (tree->key_destroy_func) - tree->key_destroy_func (node->key); - - node->key = key; - } - else - { - /* free the passed key */ - if (tree->key_destroy_func) - tree->key_destroy_func (key); - } - - return; - } - else if (cmp < 0) - { - if (node->left_child) - { - path[idx++] = node; - node = node->left; - } - else - { - GTreeNode *child = g_tree_node_new (key, value); - - child->left = node->left; - child->right = node; - node->left = child; - node->left_child = TRUE; - node->balance -= 1; - - tree->nnodes++; - - break; - } - } - else - { - if (node->right_child) - { - path[idx++] = node; - node = node->right; - } - else - { - GTreeNode *child = g_tree_node_new (key, value); - - child->right = node->right; - child->left = node; - node->right = child; - node->right_child = TRUE; - node->balance += 1; - - tree->nnodes++; - - break; - } - } - } - - /* restore balance. This is the goodness of a non-recursive - implementation, when we are done with balancing we 'break' - the loop and we are done. */ - while (1) - { - GTreeNode *bparent = path[--idx]; - gboolean left_node = (bparent && node == bparent->left); - g_assert (!bparent || bparent->left == node || bparent->right == node); - - if (node->balance < -1 || node->balance > 1) - { - node = g_tree_node_balance (node); - if (bparent == NULL) - tree->root = node; - else if (left_node) - bparent->left = node; - else - bparent->right = node; - } - - if (node->balance == 0 || bparent == NULL) - break; - - if (left_node) - bparent->balance -= 1; - else - bparent->balance += 1; - - node = bparent; - } -} - -/** - * g_tree_remove: - * @tree: a #GTree. - * @key: the key to remove. - * - * Removes a key/value pair from a #GTree. - * - * If the #GTree was created using g_tree_new_full(), the key and value - * are freed using the supplied destroy functions, otherwise you have to - * make sure that any dynamically allocated values are freed yourself. - * If the key does not exist in the #GTree, the function does nothing. - * - * Returns: %TRUE if the key was found (prior to 2.8, this function returned - * nothing) - **/ -gboolean -g_tree_remove (GTree *tree, - gconstpointer key) -{ - gboolean removed; - - g_return_val_if_fail (tree != NULL, FALSE); - - removed = g_tree_remove_internal (tree, key, FALSE); - -#ifdef G_TREE_DEBUG - g_tree_node_check (tree->root); -#endif - - return removed; -} - -/** - * g_tree_steal: - * @tree: a #GTree. - * @key: the key to remove. - * - * Removes a key and its associated value from a #GTree without calling - * the key and value destroy functions. - * - * If the key does not exist in the #GTree, the function does nothing. - * - * Returns: %TRUE if the key was found (prior to 2.8, this function returned - * nothing) - **/ -gboolean -g_tree_steal (GTree *tree, - gconstpointer key) -{ - gboolean removed; - - g_return_val_if_fail (tree != NULL, FALSE); - - removed = g_tree_remove_internal (tree, key, TRUE); - -#ifdef G_TREE_DEBUG - g_tree_node_check (tree->root); -#endif - - return removed; -} - -/* internal remove routine */ -static gboolean -g_tree_remove_internal (GTree *tree, - gconstpointer key, - gboolean steal) -{ - GTreeNode *node, *parent, *balance; - GTreeNode *path[MAX_GTREE_HEIGHT]; - int idx; - gboolean left_node; - - g_return_val_if_fail (tree != NULL, FALSE); - - if (!tree->root) - return FALSE; - - idx = 0; - path[idx++] = NULL; - node = tree->root; - - while (1) - { - int cmp = tree->key_compare (key, node->key, tree->key_compare_data); - - if (cmp == 0) - break; - else if (cmp < 0) - { - if (!node->left_child) - return FALSE; - - path[idx++] = node; - node = node->left; - } - else - { - if (!node->right_child) - return FALSE; - - path[idx++] = node; - node = node->right; - } - } - - /* the following code is almost equal to g_tree_remove_node, - except that we do not have to call g_tree_node_parent. */ - balance = parent = path[--idx]; - g_assert (!parent || parent->left == node || parent->right == node); - left_node = (parent && node == parent->left); - - if (!node->left_child) - { - if (!node->right_child) - { - if (!parent) - tree->root = NULL; - else if (left_node) - { - parent->left_child = FALSE; - parent->left = node->left; - parent->balance += 1; - } - else - { - parent->right_child = FALSE; - parent->right = node->right; - parent->balance -= 1; - } - } - else /* node has a right child */ - { - GTreeNode *tmp = g_tree_node_next (node); - tmp->left = node->left; - - if (!parent) - tree->root = node->right; - else if (left_node) - { - parent->left = node->right; - parent->balance += 1; - } - else - { - parent->right = node->right; - parent->balance -= 1; - } - } - } - else /* node has a left child */ - { - if (!node->right_child) - { - GTreeNode *tmp = g_tree_node_previous (node); - tmp->right = node->right; - - if (parent == NULL) - tree->root = node->left; - else if (left_node) - { - parent->left = node->left; - parent->balance += 1; - } - else - { - parent->right = node->left; - parent->balance -= 1; - } - } - else /* node has a both children (pant, pant!) */ - { - GTreeNode *prev = node->left; - GTreeNode *next = node->right; - GTreeNode *nextp = node; - int old_idx = idx + 1; - idx++; - - /* path[idx] == parent */ - /* find the immediately next node (and its parent) */ - while (next->left_child) - { - path[++idx] = nextp = next; - next = next->left; - } - - path[old_idx] = next; - balance = path[idx]; - - /* remove 'next' from the tree */ - if (nextp != node) - { - if (next->right_child) - nextp->left = next->right; - else - nextp->left_child = FALSE; - nextp->balance += 1; - - next->right_child = TRUE; - next->right = node->right; - } - else - node->balance -= 1; - - /* set the prev to point to the right place */ - while (prev->right_child) - prev = prev->right; - prev->right = next; - - /* prepare 'next' to replace 'node' */ - next->left_child = TRUE; - next->left = node->left; - next->balance = node->balance; - - if (!parent) - tree->root = next; - else if (left_node) - parent->left = next; - else - parent->right = next; - } - } - - /* restore balance */ - if (balance) - while (1) - { - GTreeNode *bparent = path[--idx]; - g_assert (!bparent || bparent->left == balance || bparent->right == balance); - left_node = (bparent && balance == bparent->left); - - if(balance->balance < -1 || balance->balance > 1) - { - balance = g_tree_node_balance (balance); - if (!bparent) - tree->root = balance; - else if (left_node) - bparent->left = balance; - else - bparent->right = balance; - } - - if (balance->balance != 0 || !bparent) - break; - - if (left_node) - bparent->balance += 1; - else - bparent->balance -= 1; - - balance = bparent; - } - - if (!steal) - { - if (tree->key_destroy_func) - tree->key_destroy_func (node->key); - if (tree->value_destroy_func) - tree->value_destroy_func (node->value); - } - - g_slice_free (GTreeNode, node); - - tree->nnodes--; - - return TRUE; -} - -/** - * g_tree_lookup: - * @tree: a #GTree. - * @key: the key to look up. - * - * Gets the value corresponding to the given key. Since a #GTree is - * automatically balanced as key/value pairs are added, key lookup is very - * fast. - * - * Return value: the value corresponding to the key, or %NULL if the key was - * not found. - **/ -gpointer -g_tree_lookup (GTree *tree, - gconstpointer key) -{ - GTreeNode *node; - - g_return_val_if_fail (tree != NULL, NULL); - - node = g_tree_find_node (tree, key); - - return node ? node->value : NULL; -} - -/** - * g_tree_lookup_extended: - * @tree: a #GTree. - * @lookup_key: the key to look up. - * @orig_key: returns the original key. - * @value: returns the value associated with the key. - * - * Looks up a key in the #GTree, returning the original key and the - * associated value and a #gboolean which is %TRUE if the key was found. This - * is useful if you need to free the memory allocated for the original key, - * for example before calling g_tree_remove(). - * - * Return value: %TRUE if the key was found in the #GTree. - **/ -gboolean -g_tree_lookup_extended (GTree *tree, - gconstpointer lookup_key, - gpointer *orig_key, - gpointer *value) -{ - GTreeNode *node; - - g_return_val_if_fail (tree != NULL, FALSE); - - node = g_tree_find_node (tree, lookup_key); - - if (node) - { - if (orig_key) - *orig_key = node->key; - if (value) - *value = node->value; - return TRUE; - } - else - return FALSE; -} - -/** - * g_tree_foreach: - * @tree: a #GTree. - * @func: the function to call for each node visited. If this function - * returns %TRUE, the traversal is stopped. - * @user_data: user data to pass to the function. - * - * Calls the given function for each of the key/value pairs in the #GTree. - * The function is passed the key and value of each pair, and the given - * @data parameter. The tree is traversed in sorted order. - * - * The tree may not be modified while iterating over it (you can't - * add/remove items). To remove all items matching a predicate, you need - * to add each item to a list in your #GTraverseFunc as you walk over - * the tree, then walk the list and remove each item. - **/ -void -g_tree_foreach (GTree *tree, - GTraverseFunc func, - gpointer user_data) -{ - GTreeNode *node; - - g_return_if_fail (tree != NULL); - - if (!tree->root) - return; - - node = g_tree_first_node (tree); - - while (node) - { - if ((*func) (node->key, node->value, user_data)) - break; - - node = g_tree_node_next (node); - } -} - -/** - * g_tree_traverse: - * @tree: a #GTree. - * @traverse_func: the function to call for each node visited. If this - * function returns %TRUE, the traversal is stopped. - * @traverse_type: the order in which nodes are visited, one of %G_IN_ORDER, - * %G_PRE_ORDER and %G_POST_ORDER. - * @user_data: user data to pass to the function. - * - * Calls the given function for each node in the #GTree. - * - * Deprecated:2.2: The order of a balanced tree is somewhat arbitrary. If you - * just want to visit all nodes in sorted order, use g_tree_foreach() - * instead. If you really need to visit nodes in a different order, consider - * using an N-ary Tree. - **/ -void -g_tree_traverse (GTree *tree, - GTraverseFunc traverse_func, - GTraverseType traverse_type, - gpointer user_data) -{ - g_return_if_fail (tree != NULL); - - if (!tree->root) - return; - - switch (traverse_type) - { - case G_PRE_ORDER: - g_tree_node_pre_order (tree->root, traverse_func, user_data); - break; - - case G_IN_ORDER: - g_tree_node_in_order (tree->root, traverse_func, user_data); - break; - - case G_POST_ORDER: - g_tree_node_post_order (tree->root, traverse_func, user_data); - break; - - case G_LEVEL_ORDER: - g_warning ("g_tree_traverse(): traverse type G_LEVEL_ORDER isn't implemented."); - break; - } -} - -/** - * g_tree_search: - * @tree: a #GTree. - * @search_func: a function used to search the #GTree. - * @user_data: the data passed as the second argument to the @search_func - * function. - * - * Searches a #GTree using @search_func. - * - * The @search_func is called with a pointer to the key of a key/value pair in - * the tree, and the passed in @user_data. If @search_func returns 0 for a - * key/value pair, then g_tree_search_func() will return the value of that - * pair. If @search_func returns -1, searching will proceed among the - * key/value pairs that have a smaller key; if @search_func returns 1, - * searching will proceed among the key/value pairs that have a larger key. - * - * Return value: the value corresponding to the found key, or %NULL if the key - * was not found. - **/ -gpointer -g_tree_search (GTree *tree, - GCompareFunc search_func, - gconstpointer user_data) -{ - g_return_val_if_fail (tree != NULL, NULL); - - if (tree->root) - return g_tree_node_search (tree->root, search_func, user_data); - else - return NULL; -} - -/** - * g_tree_height: - * @tree: a #GTree. - * - * Gets the height of a #GTree. - * - * If the #GTree contains no nodes, the height is 0. - * If the #GTree contains only one root node the height is 1. - * If the root node has children the height is 2, etc. - * - * Return value: the height of the #GTree. - **/ -gint -g_tree_height (GTree *tree) -{ - GTreeNode *node; - gint height; - - g_return_val_if_fail (tree != NULL, 0); - - if (!tree->root) - return 0; - - height = 0; - node = tree->root; - - while (1) - { - height += 1 + MAX(node->balance, 0); - - if (!node->left_child) - return height; - - node = node->left; - } -} - -/** - * g_tree_nnodes: - * @tree: a #GTree. - * - * Gets the number of nodes in a #GTree. - * - * Return value: the number of nodes in the #GTree. - **/ -gint -g_tree_nnodes (GTree *tree) -{ - g_return_val_if_fail (tree != NULL, 0); - - return tree->nnodes; -} - -static GTreeNode* -g_tree_node_balance (GTreeNode *node) -{ - if (node->balance < -1) - { - if (node->left->balance > 0) - node->left = g_tree_node_rotate_left (node->left); - node = g_tree_node_rotate_right (node); - } - else if (node->balance > 1) - { - if (node->right->balance < 0) - node->right = g_tree_node_rotate_right (node->right); - node = g_tree_node_rotate_left (node); - } - - return node; -} - -static GTreeNode * -g_tree_find_node (GTree *tree, - gconstpointer key) -{ - GTreeNode *node; - gint cmp; - - node = tree->root; - if (!node) - return NULL; - - while (1) - { - cmp = tree->key_compare (key, node->key, tree->key_compare_data); - if (cmp == 0) - return node; - else if (cmp < 0) - { - if (!node->left_child) - return NULL; - - node = node->left; - } - else - { - if (!node->right_child) - return NULL; - - node = node->right; - } - } -} - -static gint -g_tree_node_pre_order (GTreeNode *node, - GTraverseFunc traverse_func, - gpointer data) -{ - if ((*traverse_func) (node->key, node->value, data)) - return TRUE; - - if (node->left_child) - { - if (g_tree_node_pre_order (node->left, traverse_func, data)) - return TRUE; - } - - if (node->right_child) - { - if (g_tree_node_pre_order (node->right, traverse_func, data)) - return TRUE; - } - - return FALSE; -} - -static gint -g_tree_node_in_order (GTreeNode *node, - GTraverseFunc traverse_func, - gpointer data) -{ - if (node->left_child) - { - if (g_tree_node_in_order (node->left, traverse_func, data)) - return TRUE; - } - - if ((*traverse_func) (node->key, node->value, data)) - return TRUE; - - if (node->right_child) - { - if (g_tree_node_in_order (node->right, traverse_func, data)) - return TRUE; - } - - return FALSE; -} - -static gint -g_tree_node_post_order (GTreeNode *node, - GTraverseFunc traverse_func, - gpointer data) -{ - if (node->left_child) - { - if (g_tree_node_post_order (node->left, traverse_func, data)) - return TRUE; - } - - if (node->right_child) - { - if (g_tree_node_post_order (node->right, traverse_func, data)) - return TRUE; - } - - if ((*traverse_func) (node->key, node->value, data)) - return TRUE; - - return FALSE; -} - -static gpointer -g_tree_node_search (GTreeNode *node, - GCompareFunc search_func, - gconstpointer data) -{ - gint dir; - - if (!node) - return NULL; - - while (1) - { - dir = (* search_func) (node->key, data); - if (dir == 0) - return node->value; - else if (dir < 0) - { - if (!node->left_child) - return NULL; - - node = node->left; - } - else - { - if (!node->right_child) - return NULL; - - node = node->right; - } - } -} - -static GTreeNode* -g_tree_node_rotate_left (GTreeNode *node) -{ - GTreeNode *right; - gint a_bal; - gint b_bal; - - right = node->right; - - if (right->left_child) - node->right = right->left; - else - { - node->right_child = FALSE; - node->right = right; - right->left_child = TRUE; - } - right->left = node; - - a_bal = node->balance; - b_bal = right->balance; - - if (b_bal <= 0) - { - if (a_bal >= 1) - right->balance = b_bal - 1; - else - right->balance = a_bal + b_bal - 2; - node->balance = a_bal - 1; - } - else - { - if (a_bal <= b_bal) - right->balance = a_bal - 2; - else - right->balance = b_bal - 1; - node->balance = a_bal - b_bal - 1; - } - - return right; -} - -static GTreeNode* -g_tree_node_rotate_right (GTreeNode *node) -{ - GTreeNode *left; - gint a_bal; - gint b_bal; - - left = node->left; - - if (left->right_child) - node->left = left->right; - else - { - node->left_child = FALSE; - node->left = left; - left->right_child = TRUE; - } - left->right = node; - - a_bal = node->balance; - b_bal = left->balance; - - if (b_bal <= 0) - { - if (b_bal > a_bal) - left->balance = b_bal + 1; - else - left->balance = a_bal + 2; - node->balance = a_bal - b_bal + 1; - } - else - { - if (a_bal <= -1) - left->balance = b_bal + 1; - else - left->balance = a_bal + b_bal + 2; - node->balance = a_bal + 1; - } - - return left; -} - -#ifdef G_TREE_DEBUG -static gint -g_tree_node_height (GTreeNode *node) -{ - gint left_height; - gint right_height; - - if (node) - { - left_height = 0; - right_height = 0; - - if (node->left_child) - left_height = g_tree_node_height (node->left); - - if (node->right_child) - right_height = g_tree_node_height (node->right); - - return MAX (left_height, right_height) + 1; - } - - return 0; -} - -static void -g_tree_node_check (GTreeNode *node) -{ - gint left_height; - gint right_height; - gint balance; - GTreeNode *tmp; - - if (node) - { - if (node->left_child) - { - tmp = g_tree_node_previous (node); - g_assert (tmp->right == node); - } - - if (node->right_child) - { - tmp = g_tree_node_next (node); - g_assert (tmp->left == node); - } - - left_height = 0; - right_height = 0; - - if (node->left_child) - left_height = g_tree_node_height (node->left); - if (node->right_child) - right_height = g_tree_node_height (node->right); - - balance = right_height - left_height; - g_assert (balance == node->balance); - - if (node->left_child) - g_tree_node_check (node->left); - if (node->right_child) - g_tree_node_check (node->right); - } -} - -static void -g_tree_node_dump (GTreeNode *node, - gint indent) -{ - g_print ("%*s%c\n", indent, "", *(char *)node->key); - - if (node->left_child) - g_tree_node_dump (node->left, indent + 2); - else if (node->left) - g_print ("%*s<%c\n", indent + 2, "", *(char *)node->left->key); - - if (node->right_child) - g_tree_node_dump (node->right, indent + 2); - else if (node->right) - g_print ("%*s>%c\n", indent + 2, "", *(char *)node->right->key); -} - - -void -g_tree_dump (GTree *tree) -{ - if (tree->root) - g_tree_node_dump (tree->root, 0); -} -#endif - - -#define __G_TREE_C__ -#include "galiasdef.c" - diff --git a/lib/win32/glib-2.20.4/glib/gtree.h b/lib/win32/glib-2.20.4/glib/gtree.h deleted file mode 100644 index a8bbda8d7b429..0000000000000 --- a/lib/win32/glib-2.20.4/glib/gtree.h +++ /dev/null @@ -1,89 +0,0 @@ -/* GLIB - Library of useful routines for C programming - * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library 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 - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ - -/* - * Modified by the GLib Team and others 1997-2000. See the AUTHORS - * file for a list of people on the GLib Team. See the ChangeLog - * files for a list of changes. These files are distributed with - * GLib at ftp://ftp.gtk.org/pub/gtk/. - */ - -#if defined(G_DISABLE_SINGLE_INCLUDES) && !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION) -#error "Only can be included directly." -#endif - -#ifndef __G_TREE_H__ -#define __G_TREE_H__ - -#include - -G_BEGIN_DECLS - -typedef struct _GTree GTree; - -typedef gboolean (*GTraverseFunc) (gpointer key, - gpointer value, - gpointer data); - -/* Balanced binary trees - */ -GTree* g_tree_new (GCompareFunc key_compare_func); -GTree* g_tree_new_with_data (GCompareDataFunc key_compare_func, - gpointer key_compare_data); -GTree* g_tree_new_full (GCompareDataFunc key_compare_func, - gpointer key_compare_data, - GDestroyNotify key_destroy_func, - GDestroyNotify value_destroy_func); -void g_tree_destroy (GTree *tree); -void g_tree_insert (GTree *tree, - gpointer key, - gpointer value); -void g_tree_replace (GTree *tree, - gpointer key, - gpointer value); -gboolean g_tree_remove (GTree *tree, - gconstpointer key); -gboolean g_tree_steal (GTree *tree, - gconstpointer key); -gpointer g_tree_lookup (GTree *tree, - gconstpointer key); -gboolean g_tree_lookup_extended (GTree *tree, - gconstpointer lookup_key, - gpointer *orig_key, - gpointer *value); -void g_tree_foreach (GTree *tree, - GTraverseFunc func, - gpointer user_data); - -#ifndef G_DISABLE_DEPRECATED -void g_tree_traverse (GTree *tree, - GTraverseFunc traverse_func, - GTraverseType traverse_type, - gpointer user_data); -#endif /* G_DISABLE_DEPRECATED */ - -gpointer g_tree_search (GTree *tree, - GCompareFunc search_func, - gconstpointer user_data); -gint g_tree_height (GTree *tree); -gint g_tree_nnodes (GTree *tree); - -G_END_DECLS - -#endif /* __G_TREE_H__ */ diff --git a/lib/win32/glib-2.20.4/glib/gtypes.h b/lib/win32/glib-2.20.4/glib/gtypes.h deleted file mode 100644 index 56cc648857a8c..0000000000000 --- a/lib/win32/glib-2.20.4/glib/gtypes.h +++ /dev/null @@ -1,433 +0,0 @@ -/* GLIB - Library of useful routines for C programming - * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library 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 - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ - -/* - * Modified by the GLib Team and others 1997-2000. See the AUTHORS - * file for a list of people on the GLib Team. See the ChangeLog - * files for a list of changes. These files are distributed with - * GLib at ftp://ftp.gtk.org/pub/gtk/. - */ - -#if defined(G_DISABLE_SINGLE_INCLUDES) && !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION) -#error "Only can be included directly." -#endif - -#ifndef __G_TYPES_H__ -#define __G_TYPES_H__ - -#include -#include - -G_BEGIN_DECLS - -/* Provide type definitions for commonly used types. - * These are useful because a "gint8" can be adjusted - * to be 1 byte (8 bits) on all platforms. Similarly and - * more importantly, "gint32" can be adjusted to be - * 4 bytes (32 bits) on all platforms. - */ - -typedef char gchar; -typedef short gshort; -typedef long glong; -typedef int gint; -typedef gint gboolean; - -typedef unsigned char guchar; -typedef unsigned short gushort; -typedef unsigned long gulong; -typedef unsigned int guint; - -typedef float gfloat; -typedef double gdouble; - -/* Define min and max constants for the fixed size numerical types */ -#define G_MININT8 ((gint8) 0x80) -#define G_MAXINT8 ((gint8) 0x7f) -#define G_MAXUINT8 ((guint8) 0xff) - -#define G_MININT16 ((gint16) 0x8000) -#define G_MAXINT16 ((gint16) 0x7fff) -#define G_MAXUINT16 ((guint16) 0xffff) - -#define G_MININT32 ((gint32) 0x80000000) -#define G_MAXINT32 ((gint32) 0x7fffffff) -#define G_MAXUINT32 ((guint32) 0xffffffff) - -#define G_MININT64 ((gint64) G_GINT64_CONSTANT(0x8000000000000000)) -#define G_MAXINT64 G_GINT64_CONSTANT(0x7fffffffffffffff) -#define G_MAXUINT64 G_GINT64_CONSTANT(0xffffffffffffffffU) - -typedef void* gpointer; -typedef const void *gconstpointer; - -typedef gint (*GCompareFunc) (gconstpointer a, - gconstpointer b); -typedef gint (*GCompareDataFunc) (gconstpointer a, - gconstpointer b, - gpointer user_data); -typedef gboolean (*GEqualFunc) (gconstpointer a, - gconstpointer b); -typedef void (*GDestroyNotify) (gpointer data); -typedef void (*GFunc) (gpointer data, - gpointer user_data); -typedef guint (*GHashFunc) (gconstpointer key); -typedef void (*GHFunc) (gpointer key, - gpointer value, - gpointer user_data); -typedef void (*GFreeFunc) (gpointer data); -typedef const gchar * (*GTranslateFunc) (const gchar *str, - gpointer data); - - -/* Define some mathematical constants that aren't available - * symbolically in some strict ISO C implementations. - * - * Note that the large number of digits used in these definitions - * doesn't imply that GLib or current computers in general would be - * able to handle floating point numbers with an accuracy like this. - * It's mostly an exercise in futility and future proofing. For - * extended precision floating point support, look somewhere else - * than GLib. - */ -#define G_E 2.7182818284590452353602874713526624977572470937000 -#define G_LN2 0.69314718055994530941723212145817656807550013436026 -#define G_LN10 2.3025850929940456840179914546843642076011014886288 -#define G_PI 3.1415926535897932384626433832795028841971693993751 -#define G_PI_2 1.5707963267948966192313216916397514420985846996876 -#define G_PI_4 0.78539816339744830961566084581987572104929234984378 -#define G_SQRT2 1.4142135623730950488016887242096980785696718753769 - -/* Portable endian checks and conversions - * - * glibconfig.h defines G_BYTE_ORDER which expands to one of - * the below macros. - */ -#define G_LITTLE_ENDIAN 1234 -#define G_BIG_ENDIAN 4321 -#define G_PDP_ENDIAN 3412 /* unused, need specific PDP check */ - - -/* Basic bit swapping functions - */ -#define GUINT16_SWAP_LE_BE_CONSTANT(val) ((guint16) ( \ - (guint16) ((guint16) (val) >> 8) | \ - (guint16) ((guint16) (val) << 8))) - -#define GUINT32_SWAP_LE_BE_CONSTANT(val) ((guint32) ( \ - (((guint32) (val) & (guint32) 0x000000ffU) << 24) | \ - (((guint32) (val) & (guint32) 0x0000ff00U) << 8) | \ - (((guint32) (val) & (guint32) 0x00ff0000U) >> 8) | \ - (((guint32) (val) & (guint32) 0xff000000U) >> 24))) - -#define GUINT64_SWAP_LE_BE_CONSTANT(val) ((guint64) ( \ - (((guint64) (val) & \ - (guint64) G_GINT64_CONSTANT (0x00000000000000ffU)) << 56) | \ - (((guint64) (val) & \ - (guint64) G_GINT64_CONSTANT (0x000000000000ff00U)) << 40) | \ - (((guint64) (val) & \ - (guint64) G_GINT64_CONSTANT (0x0000000000ff0000U)) << 24) | \ - (((guint64) (val) & \ - (guint64) G_GINT64_CONSTANT (0x00000000ff000000U)) << 8) | \ - (((guint64) (val) & \ - (guint64) G_GINT64_CONSTANT (0x000000ff00000000U)) >> 8) | \ - (((guint64) (val) & \ - (guint64) G_GINT64_CONSTANT (0x0000ff0000000000U)) >> 24) | \ - (((guint64) (val) & \ - (guint64) G_GINT64_CONSTANT (0x00ff000000000000U)) >> 40) | \ - (((guint64) (val) & \ - (guint64) G_GINT64_CONSTANT (0xff00000000000000U)) >> 56))) - -/* Arch specific stuff for speed - */ -#if defined (__GNUC__) && (__GNUC__ >= 2) && defined (__OPTIMIZE__) -# if defined (__i386__) -# define GUINT16_SWAP_LE_BE_IA32(val) \ - (__extension__ \ - ({ register guint16 __v, __x = ((guint16) (val)); \ - if (__builtin_constant_p (__x)) \ - __v = GUINT16_SWAP_LE_BE_CONSTANT (__x); \ - else \ - __asm__ ("rorw $8, %w0" \ - : "=r" (__v) \ - : "0" (__x) \ - : "cc"); \ - __v; })) -# if !defined (__i486__) && !defined (__i586__) \ - && !defined (__pentium__) && !defined (__i686__) \ - && !defined (__pentiumpro__) && !defined (__pentium4__) -# define GUINT32_SWAP_LE_BE_IA32(val) \ - (__extension__ \ - ({ register guint32 __v, __x = ((guint32) (val)); \ - if (__builtin_constant_p (__x)) \ - __v = GUINT32_SWAP_LE_BE_CONSTANT (__x); \ - else \ - __asm__ ("rorw $8, %w0\n\t" \ - "rorl $16, %0\n\t" \ - "rorw $8, %w0" \ - : "=r" (__v) \ - : "0" (__x) \ - : "cc"); \ - __v; })) -# else /* 486 and higher has bswap */ -# define GUINT32_SWAP_LE_BE_IA32(val) \ - (__extension__ \ - ({ register guint32 __v, __x = ((guint32) (val)); \ - if (__builtin_constant_p (__x)) \ - __v = GUINT32_SWAP_LE_BE_CONSTANT (__x); \ - else \ - __asm__ ("bswap %0" \ - : "=r" (__v) \ - : "0" (__x)); \ - __v; })) -# endif /* processor specific 32-bit stuff */ -# define GUINT64_SWAP_LE_BE_IA32(val) \ - (__extension__ \ - ({ union { guint64 __ll; \ - guint32 __l[2]; } __w, __r; \ - __w.__ll = ((guint64) (val)); \ - if (__builtin_constant_p (__w.__ll)) \ - __r.__ll = GUINT64_SWAP_LE_BE_CONSTANT (__w.__ll); \ - else \ - { \ - __r.__l[0] = GUINT32_SWAP_LE_BE (__w.__l[1]); \ - __r.__l[1] = GUINT32_SWAP_LE_BE (__w.__l[0]); \ - } \ - __r.__ll; })) - /* Possibly just use the constant version and let gcc figure it out? */ -# define GUINT16_SWAP_LE_BE(val) (GUINT16_SWAP_LE_BE_IA32 (val)) -# define GUINT32_SWAP_LE_BE(val) (GUINT32_SWAP_LE_BE_IA32 (val)) -# define GUINT64_SWAP_LE_BE(val) (GUINT64_SWAP_LE_BE_IA32 (val)) -# elif defined (__ia64__) -# define GUINT16_SWAP_LE_BE_IA64(val) \ - (__extension__ \ - ({ register guint16 __v, __x = ((guint16) (val)); \ - if (__builtin_constant_p (__x)) \ - __v = GUINT16_SWAP_LE_BE_CONSTANT (__x); \ - else \ - __asm__ __volatile__ ("shl %0 = %1, 48 ;;" \ - "mux1 %0 = %0, @rev ;;" \ - : "=r" (__v) \ - : "r" (__x)); \ - __v; })) -# define GUINT32_SWAP_LE_BE_IA64(val) \ - (__extension__ \ - ({ register guint32 __v, __x = ((guint32) (val)); \ - if (__builtin_constant_p (__x)) \ - __v = GUINT32_SWAP_LE_BE_CONSTANT (__x); \ - else \ - __asm__ __volatile__ ("shl %0 = %1, 32 ;;" \ - "mux1 %0 = %0, @rev ;;" \ - : "=r" (__v) \ - : "r" (__x)); \ - __v; })) -# define GUINT64_SWAP_LE_BE_IA64(val) \ - (__extension__ \ - ({ register guint64 __v, __x = ((guint64) (val)); \ - if (__builtin_constant_p (__x)) \ - __v = GUINT64_SWAP_LE_BE_CONSTANT (__x); \ - else \ - __asm__ __volatile__ ("mux1 %0 = %1, @rev ;;" \ - : "=r" (__v) \ - : "r" (__x)); \ - __v; })) -# define GUINT16_SWAP_LE_BE(val) (GUINT16_SWAP_LE_BE_IA64 (val)) -# define GUINT32_SWAP_LE_BE(val) (GUINT32_SWAP_LE_BE_IA64 (val)) -# define GUINT64_SWAP_LE_BE(val) (GUINT64_SWAP_LE_BE_IA64 (val)) -# elif defined (__x86_64__) -# define GUINT32_SWAP_LE_BE_X86_64(val) \ - (__extension__ \ - ({ register guint32 __v, __x = ((guint32) (val)); \ - if (__builtin_constant_p (__x)) \ - __v = GUINT32_SWAP_LE_BE_CONSTANT (__x); \ - else \ - __asm__ ("bswapl %0" \ - : "=r" (__v) \ - : "0" (__x)); \ - __v; })) -# define GUINT64_SWAP_LE_BE_X86_64(val) \ - (__extension__ \ - ({ register guint64 __v, __x = ((guint64) (val)); \ - if (__builtin_constant_p (__x)) \ - __v = GUINT64_SWAP_LE_BE_CONSTANT (__x); \ - else \ - __asm__ ("bswapq %0" \ - : "=r" (__v) \ - : "0" (__x)); \ - __v; })) - /* gcc seems to figure out optimal code for this on its own */ -# define GUINT16_SWAP_LE_BE(val) (GUINT16_SWAP_LE_BE_CONSTANT (val)) -# define GUINT32_SWAP_LE_BE(val) (GUINT32_SWAP_LE_BE_X86_64 (val)) -# define GUINT64_SWAP_LE_BE(val) (GUINT64_SWAP_LE_BE_X86_64 (val)) -# else /* generic gcc */ -# define GUINT16_SWAP_LE_BE(val) (GUINT16_SWAP_LE_BE_CONSTANT (val)) -# define GUINT32_SWAP_LE_BE(val) (GUINT32_SWAP_LE_BE_CONSTANT (val)) -# define GUINT64_SWAP_LE_BE(val) (GUINT64_SWAP_LE_BE_CONSTANT (val)) -# endif -#else /* generic */ -# define GUINT16_SWAP_LE_BE(val) (GUINT16_SWAP_LE_BE_CONSTANT (val)) -# define GUINT32_SWAP_LE_BE(val) (GUINT32_SWAP_LE_BE_CONSTANT (val)) -# define GUINT64_SWAP_LE_BE(val) (GUINT64_SWAP_LE_BE_CONSTANT (val)) -#endif /* generic */ - -#define GUINT16_SWAP_LE_PDP(val) ((guint16) (val)) -#define GUINT16_SWAP_BE_PDP(val) (GUINT16_SWAP_LE_BE (val)) -#define GUINT32_SWAP_LE_PDP(val) ((guint32) ( \ - (((guint32) (val) & (guint32) 0x0000ffffU) << 16) | \ - (((guint32) (val) & (guint32) 0xffff0000U) >> 16))) -#define GUINT32_SWAP_BE_PDP(val) ((guint32) ( \ - (((guint32) (val) & (guint32) 0x00ff00ffU) << 8) | \ - (((guint32) (val) & (guint32) 0xff00ff00U) >> 8))) - -/* The G*_TO_?E() macros are defined in glibconfig.h. - * The transformation is symmetric, so the FROM just maps to the TO. - */ -#define GINT16_FROM_LE(val) (GINT16_TO_LE (val)) -#define GUINT16_FROM_LE(val) (GUINT16_TO_LE (val)) -#define GINT16_FROM_BE(val) (GINT16_TO_BE (val)) -#define GUINT16_FROM_BE(val) (GUINT16_TO_BE (val)) -#define GINT32_FROM_LE(val) (GINT32_TO_LE (val)) -#define GUINT32_FROM_LE(val) (GUINT32_TO_LE (val)) -#define GINT32_FROM_BE(val) (GINT32_TO_BE (val)) -#define GUINT32_FROM_BE(val) (GUINT32_TO_BE (val)) - -#define GINT64_FROM_LE(val) (GINT64_TO_LE (val)) -#define GUINT64_FROM_LE(val) (GUINT64_TO_LE (val)) -#define GINT64_FROM_BE(val) (GINT64_TO_BE (val)) -#define GUINT64_FROM_BE(val) (GUINT64_TO_BE (val)) - -#define GLONG_FROM_LE(val) (GLONG_TO_LE (val)) -#define GULONG_FROM_LE(val) (GULONG_TO_LE (val)) -#define GLONG_FROM_BE(val) (GLONG_TO_BE (val)) -#define GULONG_FROM_BE(val) (GULONG_TO_BE (val)) - -#define GINT_FROM_LE(val) (GINT_TO_LE (val)) -#define GUINT_FROM_LE(val) (GUINT_TO_LE (val)) -#define GINT_FROM_BE(val) (GINT_TO_BE (val)) -#define GUINT_FROM_BE(val) (GUINT_TO_BE (val)) - - -/* Portable versions of host-network order stuff - */ -#define g_ntohl(val) (GUINT32_FROM_BE (val)) -#define g_ntohs(val) (GUINT16_FROM_BE (val)) -#define g_htonl(val) (GUINT32_TO_BE (val)) -#define g_htons(val) (GUINT16_TO_BE (val)) - -/* IEEE Standard 754 Single Precision Storage Format (gfloat): - * - * 31 30 23 22 0 - * +--------+---------------+---------------+ - * | s 1bit | e[30:23] 8bit | f[22:0] 23bit | - * +--------+---------------+---------------+ - * B0------------------->B1------->B2-->B3--> - * - * IEEE Standard 754 Double Precision Storage Format (gdouble): - * - * 63 62 52 51 32 31 0 - * +--------+----------------+----------------+ +---------------+ - * | s 1bit | e[62:52] 11bit | f[51:32] 20bit | | f[31:0] 32bit | - * +--------+----------------+----------------+ +---------------+ - * B0--------------->B1---------->B2--->B3----> B4->B5->B6->B7-> - */ -/* subtract from biased_exponent to form base2 exponent (normal numbers) */ -typedef union _GDoubleIEEE754 GDoubleIEEE754; -typedef union _GFloatIEEE754 GFloatIEEE754; -#define G_IEEE754_FLOAT_BIAS (127) -#define G_IEEE754_DOUBLE_BIAS (1023) -/* multiply with base2 exponent to get base10 exponent (normal numbers) */ -#define G_LOG_2_BASE_10 (0.30102999566398119521) -#if G_BYTE_ORDER == G_LITTLE_ENDIAN -union _GFloatIEEE754 -{ - gfloat v_float; - struct { - guint mantissa : 23; - guint biased_exponent : 8; - guint sign : 1; - } mpn; -}; -union _GDoubleIEEE754 -{ - gdouble v_double; - struct { - guint mantissa_low : 32; - guint mantissa_high : 20; - guint biased_exponent : 11; - guint sign : 1; - } mpn; -}; -#elif G_BYTE_ORDER == G_BIG_ENDIAN -union _GFloatIEEE754 -{ - gfloat v_float; - struct { - guint sign : 1; - guint biased_exponent : 8; - guint mantissa : 23; - } mpn; -}; -union _GDoubleIEEE754 -{ - gdouble v_double; - struct { - guint sign : 1; - guint biased_exponent : 11; - guint mantissa_high : 20; - guint mantissa_low : 32; - } mpn; -}; -#else /* !G_LITTLE_ENDIAN && !G_BIG_ENDIAN */ -#error unknown ENDIAN type -#endif /* !G_LITTLE_ENDIAN && !G_BIG_ENDIAN */ - -typedef struct _GTimeVal GTimeVal; - -struct _GTimeVal -{ - glong tv_sec; - glong tv_usec; -}; - -G_END_DECLS - -/* We prefix variable declarations so they can - * properly get exported in Windows DLLs. - */ -#ifndef GLIB_VAR -# ifdef G_PLATFORM_WIN32 -# ifdef GLIB_STATIC_COMPILATION -# define GLIB_VAR extern -# else /* !GLIB_STATIC_COMPILATION */ -# ifdef GLIB_COMPILATION -# ifdef DLL_EXPORT -# define GLIB_VAR __declspec(dllexport) -# else /* !DLL_EXPORT */ -# define GLIB_VAR extern -# endif /* !DLL_EXPORT */ -# else /* !GLIB_COMPILATION */ -# define GLIB_VAR extern __declspec(dllimport) -# endif /* !GLIB_COMPILATION */ -# endif /* !GLIB_STATIC_COMPILATION */ -# else /* !G_PLATFORM_WIN32 */ -# define GLIB_VAR extern -# endif /* !G_PLATFORM_WIN32 */ -#endif /* GLIB_VAR */ - -#endif /* __G_TYPES_H__ */ diff --git a/lib/win32/glib-2.20.4/glib/gunibreak.c b/lib/win32/glib-2.20.4/glib/gunibreak.c deleted file mode 100644 index 9c129218ce18f..0000000000000 --- a/lib/win32/glib-2.20.4/glib/gunibreak.c +++ /dev/null @@ -1,66 +0,0 @@ -/* gunibreak.c - line break properties - * - * Copyright 2000 Red Hat, Inc. - * - * The Gnome Library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or (at your option) any later version. - * - * The Gnome Library 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 - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with the Gnome Library; see the file COPYING.LIB. If not, - * write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ - -#include "config.h" - -#include - -#include "glib.h" -#include "gunibreak.h" -#include "galias.h" - -#define TPROP_PART1(Page, Char) \ - ((break_property_table_part1[Page] >= G_UNICODE_MAX_TABLE_INDEX) \ - ? (break_property_table_part1[Page] - G_UNICODE_MAX_TABLE_INDEX) \ - : (break_property_data[break_property_table_part1[Page]][Char])) - -#define TPROP_PART2(Page, Char) \ - ((break_property_table_part2[Page] >= G_UNICODE_MAX_TABLE_INDEX) \ - ? (break_property_table_part2[Page] - G_UNICODE_MAX_TABLE_INDEX) \ - : (break_property_data[break_property_table_part2[Page]][Char])) - -#define PROP(Char) \ - (((Char) <= G_UNICODE_LAST_CHAR_PART1) \ - ? TPROP_PART1 ((Char) >> 8, (Char) & 0xff) \ - : (((Char) >= 0xe0000 && (Char) <= G_UNICODE_LAST_CHAR) \ - ? TPROP_PART2 (((Char) - 0xe0000) >> 8, (Char) & 0xff) \ - : G_UNICODE_BREAK_UNKNOWN)) - -/** - * g_unichar_break_type: - * @c: a Unicode character - * - * Determines the break type of @c. @c should be a Unicode character - * (to derive a character from UTF-8 encoded text, use - * g_utf8_get_char()). The break type is used to find word and line - * breaks ("text boundaries"), Pango implements the Unicode boundary - * resolution algorithms and normally you would use a function such - * as pango_break() instead of caring about break types yourself. - * - * Return value: the break type of @c - **/ -GUnicodeBreakType -g_unichar_break_type (gunichar c) -{ - return PROP (c); -} - -#define __G_UNIBREAK_C__ -#include "galiasdef.c" diff --git a/lib/win32/glib-2.20.4/glib/gunibreak.h b/lib/win32/glib-2.20.4/glib/gunibreak.h deleted file mode 100644 index 504ac4787a0c3..0000000000000 --- a/lib/win32/glib-2.20.4/glib/gunibreak.h +++ /dev/null @@ -1,17919 +0,0 @@ -/* This file is automatically generated. DO NOT EDIT! - Instead, edit gen-unicode-tables.pl and re-run. */ - -#ifndef BREAKTABLES_H -#define BREAKTABLES_H - -#define G_UNICODE_DATA_VERSION "5.1.0" - -#define G_UNICODE_LAST_CHAR 0x10FFFF - -#define G_UNICODE_MAX_TABLE_INDEX 10000 - -/* the last code point that should be looked up in break_property_table_part1 */ -#define G_UNICODE_LAST_CHAR_PART1 0x2FAFF - -static const gint8 break_property_data[][256] = { - { /* page 0, index 0 */ - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_AFTER, - G_UNICODE_BREAK_LINE_FEED, G_UNICODE_BREAK_MANDATORY, - G_UNICODE_BREAK_MANDATORY, G_UNICODE_BREAK_CARRIAGE_RETURN, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_SPACE, G_UNICODE_BREAK_EXCLAMATION, - G_UNICODE_BREAK_QUOTATION, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_PREFIX, G_UNICODE_BREAK_POSTFIX, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_QUOTATION, - G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_PREFIX, - G_UNICODE_BREAK_INFIX_SEPARATOR, G_UNICODE_BREAK_HYPHEN, - G_UNICODE_BREAK_INFIX_SEPARATOR, G_UNICODE_BREAK_SYMBOL, - G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, - G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, - G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, - G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, - G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, - G_UNICODE_BREAK_INFIX_SEPARATOR, G_UNICODE_BREAK_INFIX_SEPARATOR, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_EXCLAMATION, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_OPEN_PUNCTUATION, - G_UNICODE_BREAK_PREFIX, G_UNICODE_BREAK_CLOSE_PUNCTUATION, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_OPEN_PUNCTUATION, - G_UNICODE_BREAK_AFTER, G_UNICODE_BREAK_CLOSE_PUNCTUATION, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_NEXT_LINE, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_NON_BREAKING_GLUE, G_UNICODE_BREAK_OPEN_PUNCTUATION, - G_UNICODE_BREAK_POSTFIX, G_UNICODE_BREAK_PREFIX, G_UNICODE_BREAK_PREFIX, - G_UNICODE_BREAK_PREFIX, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_QUOTATION, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_AFTER, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_POSTFIX, - G_UNICODE_BREAK_PREFIX, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_BEFORE, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_QUOTATION, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC - }, - { /* page 2, index 1 */ - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_BEFORE, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_BEFORE, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_BEFORE, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC - }, - { /* page 3, index 2 */ - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_NON_BREAKING_GLUE, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_NON_BREAKING_GLUE, G_UNICODE_BREAK_NON_BREAKING_GLUE, - G_UNICODE_BREAK_NON_BREAKING_GLUE, G_UNICODE_BREAK_NON_BREAKING_GLUE, - G_UNICODE_BREAK_NON_BREAKING_GLUE, G_UNICODE_BREAK_NON_BREAKING_GLUE, - G_UNICODE_BREAK_NON_BREAKING_GLUE, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_INFIX_SEPARATOR, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC - }, - { /* page 4, index 3 */ - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC - }, - { /* page 5, index 4 */ - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_INFIX_SEPARATOR, - G_UNICODE_BREAK_AFTER, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_AFTER, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_EXCLAMATION, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN - }, - { /* page 6, index 5 */ - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_POSTFIX, - G_UNICODE_BREAK_POSTFIX, G_UNICODE_BREAK_POSTFIX, - G_UNICODE_BREAK_INFIX_SEPARATOR, G_UNICODE_BREAK_INFIX_SEPARATOR, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_EXCLAMATION, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_EXCLAMATION, G_UNICODE_BREAK_EXCLAMATION, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, - G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, - G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, - G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, - G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, - G_UNICODE_BREAK_POSTFIX, G_UNICODE_BREAK_NUMERIC, - G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_EXCLAMATION, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, - G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, - G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, - G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, - G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC - }, - { /* page 7, index 6 */ - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, - G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, - G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, - G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, - G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_INFIX_SEPARATOR, G_UNICODE_BREAK_EXCLAMATION, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN - }, - { /* page 9, index 7 */ - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_AFTER, G_UNICODE_BREAK_AFTER, G_UNICODE_BREAK_NUMERIC, - G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, - G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, - G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, - G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, - G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_NUMERIC, - G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, - G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, - G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, - G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, - G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_PREFIX, - G_UNICODE_BREAK_PREFIX, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN - }, - { /* page 10, index 8 */ - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, - G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, - G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, - G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, - G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, - G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, - G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, - G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, - G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_PREFIX, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN - }, - { /* page 11, index 9 */ - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, - G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, - G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, - G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, - G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, - G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, - G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, - G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, - G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_PREFIX, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN - }, - { /* page 12, index 10 */ - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, - G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, - G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, - G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, - G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, - G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, - G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, - G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, - G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN - }, - { /* page 13, index 11 */ - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, - G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, - G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, - G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, - G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_POSTFIX, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN - }, - { /* page 14, index 12 */ - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_PREFIX, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, - G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, - G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, - G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, - G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_AFTER, - G_UNICODE_BREAK_AFTER, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, - G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, - G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, - G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, - G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN - }, - { /* page 15, index 13 */ - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_BEFORE, - G_UNICODE_BREAK_BEFORE, G_UNICODE_BREAK_BEFORE, G_UNICODE_BREAK_BEFORE, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_BEFORE, - G_UNICODE_BREAK_BEFORE, G_UNICODE_BREAK_NON_BREAKING_GLUE, - G_UNICODE_BREAK_BEFORE, G_UNICODE_BREAK_BEFORE, G_UNICODE_BREAK_AFTER, - G_UNICODE_BREAK_NON_BREAKING_GLUE, G_UNICODE_BREAK_EXCLAMATION, - G_UNICODE_BREAK_EXCLAMATION, G_UNICODE_BREAK_EXCLAMATION, - G_UNICODE_BREAK_EXCLAMATION, G_UNICODE_BREAK_EXCLAMATION, - G_UNICODE_BREAK_NON_BREAKING_GLUE, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_EXCLAMATION, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, - G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, - G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, - G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, - G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_AFTER, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, - G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_AFTER, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_AFTER, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_AFTER, G_UNICODE_BREAK_AFTER, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_BEFORE, - G_UNICODE_BREAK_BEFORE, G_UNICODE_BREAK_AFTER, G_UNICODE_BREAK_BEFORE, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN - }, - { /* page 16, index 14 */ - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, - G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, - G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, - G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, - G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_AFTER, - G_UNICODE_BREAK_AFTER, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_NUMERIC, - G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, - G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, - G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, - G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, - G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN - }, - { /* page 17, index 15 */ - G_UNICODE_BREAK_HANGUL_L_JAMO, G_UNICODE_BREAK_HANGUL_L_JAMO, - G_UNICODE_BREAK_HANGUL_L_JAMO, G_UNICODE_BREAK_HANGUL_L_JAMO, - G_UNICODE_BREAK_HANGUL_L_JAMO, G_UNICODE_BREAK_HANGUL_L_JAMO, - G_UNICODE_BREAK_HANGUL_L_JAMO, G_UNICODE_BREAK_HANGUL_L_JAMO, - G_UNICODE_BREAK_HANGUL_L_JAMO, G_UNICODE_BREAK_HANGUL_L_JAMO, - G_UNICODE_BREAK_HANGUL_L_JAMO, G_UNICODE_BREAK_HANGUL_L_JAMO, - G_UNICODE_BREAK_HANGUL_L_JAMO, G_UNICODE_BREAK_HANGUL_L_JAMO, - G_UNICODE_BREAK_HANGUL_L_JAMO, G_UNICODE_BREAK_HANGUL_L_JAMO, - G_UNICODE_BREAK_HANGUL_L_JAMO, G_UNICODE_BREAK_HANGUL_L_JAMO, - G_UNICODE_BREAK_HANGUL_L_JAMO, G_UNICODE_BREAK_HANGUL_L_JAMO, - G_UNICODE_BREAK_HANGUL_L_JAMO, G_UNICODE_BREAK_HANGUL_L_JAMO, - G_UNICODE_BREAK_HANGUL_L_JAMO, G_UNICODE_BREAK_HANGUL_L_JAMO, - G_UNICODE_BREAK_HANGUL_L_JAMO, G_UNICODE_BREAK_HANGUL_L_JAMO, - G_UNICODE_BREAK_HANGUL_L_JAMO, G_UNICODE_BREAK_HANGUL_L_JAMO, - G_UNICODE_BREAK_HANGUL_L_JAMO, G_UNICODE_BREAK_HANGUL_L_JAMO, - G_UNICODE_BREAK_HANGUL_L_JAMO, G_UNICODE_BREAK_HANGUL_L_JAMO, - G_UNICODE_BREAK_HANGUL_L_JAMO, G_UNICODE_BREAK_HANGUL_L_JAMO, - G_UNICODE_BREAK_HANGUL_L_JAMO, G_UNICODE_BREAK_HANGUL_L_JAMO, - G_UNICODE_BREAK_HANGUL_L_JAMO, G_UNICODE_BREAK_HANGUL_L_JAMO, - G_UNICODE_BREAK_HANGUL_L_JAMO, G_UNICODE_BREAK_HANGUL_L_JAMO, - G_UNICODE_BREAK_HANGUL_L_JAMO, G_UNICODE_BREAK_HANGUL_L_JAMO, - G_UNICODE_BREAK_HANGUL_L_JAMO, G_UNICODE_BREAK_HANGUL_L_JAMO, - G_UNICODE_BREAK_HANGUL_L_JAMO, G_UNICODE_BREAK_HANGUL_L_JAMO, - G_UNICODE_BREAK_HANGUL_L_JAMO, G_UNICODE_BREAK_HANGUL_L_JAMO, - G_UNICODE_BREAK_HANGUL_L_JAMO, G_UNICODE_BREAK_HANGUL_L_JAMO, - G_UNICODE_BREAK_HANGUL_L_JAMO, G_UNICODE_BREAK_HANGUL_L_JAMO, - G_UNICODE_BREAK_HANGUL_L_JAMO, G_UNICODE_BREAK_HANGUL_L_JAMO, - G_UNICODE_BREAK_HANGUL_L_JAMO, G_UNICODE_BREAK_HANGUL_L_JAMO, - G_UNICODE_BREAK_HANGUL_L_JAMO, G_UNICODE_BREAK_HANGUL_L_JAMO, - G_UNICODE_BREAK_HANGUL_L_JAMO, G_UNICODE_BREAK_HANGUL_L_JAMO, - G_UNICODE_BREAK_HANGUL_L_JAMO, G_UNICODE_BREAK_HANGUL_L_JAMO, - G_UNICODE_BREAK_HANGUL_L_JAMO, G_UNICODE_BREAK_HANGUL_L_JAMO, - G_UNICODE_BREAK_HANGUL_L_JAMO, G_UNICODE_BREAK_HANGUL_L_JAMO, - G_UNICODE_BREAK_HANGUL_L_JAMO, G_UNICODE_BREAK_HANGUL_L_JAMO, - G_UNICODE_BREAK_HANGUL_L_JAMO, G_UNICODE_BREAK_HANGUL_L_JAMO, - G_UNICODE_BREAK_HANGUL_L_JAMO, G_UNICODE_BREAK_HANGUL_L_JAMO, - G_UNICODE_BREAK_HANGUL_L_JAMO, G_UNICODE_BREAK_HANGUL_L_JAMO, - G_UNICODE_BREAK_HANGUL_L_JAMO, G_UNICODE_BREAK_HANGUL_L_JAMO, - G_UNICODE_BREAK_HANGUL_L_JAMO, G_UNICODE_BREAK_HANGUL_L_JAMO, - G_UNICODE_BREAK_HANGUL_L_JAMO, G_UNICODE_BREAK_HANGUL_L_JAMO, - G_UNICODE_BREAK_HANGUL_L_JAMO, G_UNICODE_BREAK_HANGUL_L_JAMO, - G_UNICODE_BREAK_HANGUL_L_JAMO, G_UNICODE_BREAK_HANGUL_L_JAMO, - G_UNICODE_BREAK_HANGUL_L_JAMO, G_UNICODE_BREAK_HANGUL_L_JAMO, - G_UNICODE_BREAK_HANGUL_L_JAMO, G_UNICODE_BREAK_HANGUL_L_JAMO, - G_UNICODE_BREAK_HANGUL_L_JAMO, G_UNICODE_BREAK_HANGUL_L_JAMO, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_HANGUL_L_JAMO, - G_UNICODE_BREAK_HANGUL_V_JAMO, G_UNICODE_BREAK_HANGUL_V_JAMO, - G_UNICODE_BREAK_HANGUL_V_JAMO, G_UNICODE_BREAK_HANGUL_V_JAMO, - G_UNICODE_BREAK_HANGUL_V_JAMO, G_UNICODE_BREAK_HANGUL_V_JAMO, - G_UNICODE_BREAK_HANGUL_V_JAMO, G_UNICODE_BREAK_HANGUL_V_JAMO, - G_UNICODE_BREAK_HANGUL_V_JAMO, G_UNICODE_BREAK_HANGUL_V_JAMO, - G_UNICODE_BREAK_HANGUL_V_JAMO, G_UNICODE_BREAK_HANGUL_V_JAMO, - G_UNICODE_BREAK_HANGUL_V_JAMO, G_UNICODE_BREAK_HANGUL_V_JAMO, - G_UNICODE_BREAK_HANGUL_V_JAMO, G_UNICODE_BREAK_HANGUL_V_JAMO, - G_UNICODE_BREAK_HANGUL_V_JAMO, G_UNICODE_BREAK_HANGUL_V_JAMO, - G_UNICODE_BREAK_HANGUL_V_JAMO, G_UNICODE_BREAK_HANGUL_V_JAMO, - G_UNICODE_BREAK_HANGUL_V_JAMO, G_UNICODE_BREAK_HANGUL_V_JAMO, - G_UNICODE_BREAK_HANGUL_V_JAMO, G_UNICODE_BREAK_HANGUL_V_JAMO, - G_UNICODE_BREAK_HANGUL_V_JAMO, G_UNICODE_BREAK_HANGUL_V_JAMO, - G_UNICODE_BREAK_HANGUL_V_JAMO, G_UNICODE_BREAK_HANGUL_V_JAMO, - G_UNICODE_BREAK_HANGUL_V_JAMO, G_UNICODE_BREAK_HANGUL_V_JAMO, - G_UNICODE_BREAK_HANGUL_V_JAMO, G_UNICODE_BREAK_HANGUL_V_JAMO, - G_UNICODE_BREAK_HANGUL_V_JAMO, G_UNICODE_BREAK_HANGUL_V_JAMO, - G_UNICODE_BREAK_HANGUL_V_JAMO, G_UNICODE_BREAK_HANGUL_V_JAMO, - G_UNICODE_BREAK_HANGUL_V_JAMO, G_UNICODE_BREAK_HANGUL_V_JAMO, - G_UNICODE_BREAK_HANGUL_V_JAMO, G_UNICODE_BREAK_HANGUL_V_JAMO, - G_UNICODE_BREAK_HANGUL_V_JAMO, G_UNICODE_BREAK_HANGUL_V_JAMO, - G_UNICODE_BREAK_HANGUL_V_JAMO, G_UNICODE_BREAK_HANGUL_V_JAMO, - G_UNICODE_BREAK_HANGUL_V_JAMO, G_UNICODE_BREAK_HANGUL_V_JAMO, - G_UNICODE_BREAK_HANGUL_V_JAMO, G_UNICODE_BREAK_HANGUL_V_JAMO, - G_UNICODE_BREAK_HANGUL_V_JAMO, G_UNICODE_BREAK_HANGUL_V_JAMO, - G_UNICODE_BREAK_HANGUL_V_JAMO, G_UNICODE_BREAK_HANGUL_V_JAMO, - G_UNICODE_BREAK_HANGUL_V_JAMO, G_UNICODE_BREAK_HANGUL_V_JAMO, - G_UNICODE_BREAK_HANGUL_V_JAMO, G_UNICODE_BREAK_HANGUL_V_JAMO, - G_UNICODE_BREAK_HANGUL_V_JAMO, G_UNICODE_BREAK_HANGUL_V_JAMO, - G_UNICODE_BREAK_HANGUL_V_JAMO, G_UNICODE_BREAK_HANGUL_V_JAMO, - G_UNICODE_BREAK_HANGUL_V_JAMO, G_UNICODE_BREAK_HANGUL_V_JAMO, - G_UNICODE_BREAK_HANGUL_V_JAMO, G_UNICODE_BREAK_HANGUL_V_JAMO, - G_UNICODE_BREAK_HANGUL_V_JAMO, G_UNICODE_BREAK_HANGUL_V_JAMO, - G_UNICODE_BREAK_HANGUL_V_JAMO, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_HANGUL_T_JAMO, G_UNICODE_BREAK_HANGUL_T_JAMO, - G_UNICODE_BREAK_HANGUL_T_JAMO, G_UNICODE_BREAK_HANGUL_T_JAMO, - G_UNICODE_BREAK_HANGUL_T_JAMO, G_UNICODE_BREAK_HANGUL_T_JAMO, - G_UNICODE_BREAK_HANGUL_T_JAMO, G_UNICODE_BREAK_HANGUL_T_JAMO, - G_UNICODE_BREAK_HANGUL_T_JAMO, G_UNICODE_BREAK_HANGUL_T_JAMO, - G_UNICODE_BREAK_HANGUL_T_JAMO, G_UNICODE_BREAK_HANGUL_T_JAMO, - G_UNICODE_BREAK_HANGUL_T_JAMO, G_UNICODE_BREAK_HANGUL_T_JAMO, - G_UNICODE_BREAK_HANGUL_T_JAMO, G_UNICODE_BREAK_HANGUL_T_JAMO, - G_UNICODE_BREAK_HANGUL_T_JAMO, G_UNICODE_BREAK_HANGUL_T_JAMO, - G_UNICODE_BREAK_HANGUL_T_JAMO, G_UNICODE_BREAK_HANGUL_T_JAMO, - G_UNICODE_BREAK_HANGUL_T_JAMO, G_UNICODE_BREAK_HANGUL_T_JAMO, - G_UNICODE_BREAK_HANGUL_T_JAMO, G_UNICODE_BREAK_HANGUL_T_JAMO, - G_UNICODE_BREAK_HANGUL_T_JAMO, G_UNICODE_BREAK_HANGUL_T_JAMO, - G_UNICODE_BREAK_HANGUL_T_JAMO, G_UNICODE_BREAK_HANGUL_T_JAMO, - G_UNICODE_BREAK_HANGUL_T_JAMO, G_UNICODE_BREAK_HANGUL_T_JAMO, - G_UNICODE_BREAK_HANGUL_T_JAMO, G_UNICODE_BREAK_HANGUL_T_JAMO, - G_UNICODE_BREAK_HANGUL_T_JAMO, G_UNICODE_BREAK_HANGUL_T_JAMO, - G_UNICODE_BREAK_HANGUL_T_JAMO, G_UNICODE_BREAK_HANGUL_T_JAMO, - G_UNICODE_BREAK_HANGUL_T_JAMO, G_UNICODE_BREAK_HANGUL_T_JAMO, - G_UNICODE_BREAK_HANGUL_T_JAMO, G_UNICODE_BREAK_HANGUL_T_JAMO, - G_UNICODE_BREAK_HANGUL_T_JAMO, G_UNICODE_BREAK_HANGUL_T_JAMO, - G_UNICODE_BREAK_HANGUL_T_JAMO, G_UNICODE_BREAK_HANGUL_T_JAMO, - G_UNICODE_BREAK_HANGUL_T_JAMO, G_UNICODE_BREAK_HANGUL_T_JAMO, - G_UNICODE_BREAK_HANGUL_T_JAMO, G_UNICODE_BREAK_HANGUL_T_JAMO, - G_UNICODE_BREAK_HANGUL_T_JAMO, G_UNICODE_BREAK_HANGUL_T_JAMO, - G_UNICODE_BREAK_HANGUL_T_JAMO, G_UNICODE_BREAK_HANGUL_T_JAMO, - G_UNICODE_BREAK_HANGUL_T_JAMO, G_UNICODE_BREAK_HANGUL_T_JAMO, - G_UNICODE_BREAK_HANGUL_T_JAMO, G_UNICODE_BREAK_HANGUL_T_JAMO, - G_UNICODE_BREAK_HANGUL_T_JAMO, G_UNICODE_BREAK_HANGUL_T_JAMO, - G_UNICODE_BREAK_HANGUL_T_JAMO, G_UNICODE_BREAK_HANGUL_T_JAMO, - G_UNICODE_BREAK_HANGUL_T_JAMO, G_UNICODE_BREAK_HANGUL_T_JAMO, - G_UNICODE_BREAK_HANGUL_T_JAMO, G_UNICODE_BREAK_HANGUL_T_JAMO, - G_UNICODE_BREAK_HANGUL_T_JAMO, G_UNICODE_BREAK_HANGUL_T_JAMO, - G_UNICODE_BREAK_HANGUL_T_JAMO, G_UNICODE_BREAK_HANGUL_T_JAMO, - G_UNICODE_BREAK_HANGUL_T_JAMO, G_UNICODE_BREAK_HANGUL_T_JAMO, - G_UNICODE_BREAK_HANGUL_T_JAMO, G_UNICODE_BREAK_HANGUL_T_JAMO, - G_UNICODE_BREAK_HANGUL_T_JAMO, G_UNICODE_BREAK_HANGUL_T_JAMO, - G_UNICODE_BREAK_HANGUL_T_JAMO, G_UNICODE_BREAK_HANGUL_T_JAMO, - G_UNICODE_BREAK_HANGUL_T_JAMO, G_UNICODE_BREAK_HANGUL_T_JAMO, - G_UNICODE_BREAK_HANGUL_T_JAMO, G_UNICODE_BREAK_HANGUL_T_JAMO, - G_UNICODE_BREAK_HANGUL_T_JAMO, G_UNICODE_BREAK_HANGUL_T_JAMO, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN - }, - { /* page 18, index 16 */ - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC - }, - { /* page 19, index 17 */ - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AFTER, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN - }, - { /* page 20, index 18 */ - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC - }, - { /* page 22, index 19 */ - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_AFTER, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_AFTER, G_UNICODE_BREAK_AFTER, G_UNICODE_BREAK_AFTER, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN - }, - { /* page 23, index 20 */ - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_AFTER, - G_UNICODE_BREAK_AFTER, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_AFTER, - G_UNICODE_BREAK_AFTER, G_UNICODE_BREAK_NON_STARTER, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_AFTER, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AFTER, - G_UNICODE_BREAK_PREFIX, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_NUMERIC, - G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, - G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, - G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, - G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, - G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN - }, - { /* page 24, index 21 */ - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_EXCLAMATION, G_UNICODE_BREAK_EXCLAMATION, - G_UNICODE_BREAK_AFTER, G_UNICODE_BREAK_AFTER, G_UNICODE_BREAK_BEFORE, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_EXCLAMATION, - G_UNICODE_BREAK_EXCLAMATION, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_NON_BREAKING_GLUE, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_NUMERIC, - G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, - G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, - G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, - G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, - G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN - }, - { /* page 25, index 22 */ - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_EXCLAMATION, G_UNICODE_BREAK_EXCLAMATION, - G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, - G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, - G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, - G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, - G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, - G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, - G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, - G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, - G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC - }, - { /* page 26, index 23 */ - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN - }, - { /* page 27, index 24 */ - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, - G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, - G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, - G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, - G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_AFTER, - G_UNICODE_BREAK_AFTER, G_UNICODE_BREAK_AFTER, G_UNICODE_BREAK_AFTER, - G_UNICODE_BREAK_AFTER, G_UNICODE_BREAK_AFTER, G_UNICODE_BREAK_AFTER, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_NUMERIC, - G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, - G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, - G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, - G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, - G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN - }, - { /* page 28, index 25 */ - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_AFTER, G_UNICODE_BREAK_AFTER, - G_UNICODE_BREAK_AFTER, G_UNICODE_BREAK_AFTER, G_UNICODE_BREAK_AFTER, - G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, - G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, - G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, - G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, - G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, - G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, - G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, - G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, - G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_AFTER, G_UNICODE_BREAK_AFTER, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN - }, - { /* page 29, index 26 */ - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK - }, - { /* page 31, index 27 */ - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_BEFORE, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN - }, - { /* page 32, index 28 */ - G_UNICODE_BREAK_AFTER, G_UNICODE_BREAK_AFTER, G_UNICODE_BREAK_AFTER, - G_UNICODE_BREAK_AFTER, G_UNICODE_BREAK_AFTER, G_UNICODE_BREAK_AFTER, - G_UNICODE_BREAK_AFTER, G_UNICODE_BREAK_NON_BREAKING_GLUE, - G_UNICODE_BREAK_AFTER, G_UNICODE_BREAK_AFTER, G_UNICODE_BREAK_AFTER, - G_UNICODE_BREAK_ZERO_WIDTH_SPACE, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_AFTER, - G_UNICODE_BREAK_NON_BREAKING_GLUE, G_UNICODE_BREAK_AFTER, - G_UNICODE_BREAK_AFTER, G_UNICODE_BREAK_BEFORE_AND_AFTER, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_QUOTATION, - G_UNICODE_BREAK_QUOTATION, G_UNICODE_BREAK_OPEN_PUNCTUATION, - G_UNICODE_BREAK_QUOTATION, G_UNICODE_BREAK_QUOTATION, - G_UNICODE_BREAK_QUOTATION, G_UNICODE_BREAK_OPEN_PUNCTUATION, - G_UNICODE_BREAK_QUOTATION, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_INSEPARABLE, - G_UNICODE_BREAK_INSEPARABLE, G_UNICODE_BREAK_INSEPARABLE, - G_UNICODE_BREAK_AFTER, G_UNICODE_BREAK_MANDATORY, - G_UNICODE_BREAK_MANDATORY, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_NON_BREAKING_GLUE, G_UNICODE_BREAK_POSTFIX, - G_UNICODE_BREAK_POSTFIX, G_UNICODE_BREAK_POSTFIX, - G_UNICODE_BREAK_POSTFIX, G_UNICODE_BREAK_POSTFIX, - G_UNICODE_BREAK_POSTFIX, G_UNICODE_BREAK_POSTFIX, - G_UNICODE_BREAK_POSTFIX, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_QUOTATION, G_UNICODE_BREAK_QUOTATION, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_NON_STARTER, - G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_INFIX_SEPARATOR, - G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, - G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_NON_STARTER, - G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AFTER, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AFTER, G_UNICODE_BREAK_AFTER, - G_UNICODE_BREAK_AFTER, G_UNICODE_BREAK_AFTER, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_AFTER, G_UNICODE_BREAK_AFTER, G_UNICODE_BREAK_AFTER, - G_UNICODE_BREAK_WORD_JOINER, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_OPEN_PUNCTUATION, - G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_OPEN_PUNCTUATION, - G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_PREFIX, - G_UNICODE_BREAK_PREFIX, G_UNICODE_BREAK_PREFIX, G_UNICODE_BREAK_PREFIX, - G_UNICODE_BREAK_PREFIX, G_UNICODE_BREAK_PREFIX, G_UNICODE_BREAK_PREFIX, - G_UNICODE_BREAK_POSTFIX, G_UNICODE_BREAK_PREFIX, G_UNICODE_BREAK_PREFIX, - G_UNICODE_BREAK_PREFIX, G_UNICODE_BREAK_PREFIX, G_UNICODE_BREAK_PREFIX, - G_UNICODE_BREAK_PREFIX, G_UNICODE_BREAK_PREFIX, G_UNICODE_BREAK_PREFIX, - G_UNICODE_BREAK_PREFIX, G_UNICODE_BREAK_PREFIX, G_UNICODE_BREAK_PREFIX, - G_UNICODE_BREAK_PREFIX, G_UNICODE_BREAK_PREFIX, G_UNICODE_BREAK_PREFIX, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN - }, - { /* page 33, index 29 */ - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_POSTFIX, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_POSTFIX, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_PREFIX, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC - }, - { /* page 34, index 30 */ - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_PREFIX, G_UNICODE_BREAK_PREFIX, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC - }, - { /* page 35, index 31 */ - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_OPEN_PUNCTUATION, - G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN - }, - { /* page 36, index 32 */ - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC - }, - { /* page 37, index 33 */ - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC - }, - { /* page 38, index 34 */ - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN - }, - { /* page 39, index 35 */ - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_QUOTATION, - G_UNICODE_BREAK_QUOTATION, G_UNICODE_BREAK_QUOTATION, - G_UNICODE_BREAK_QUOTATION, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_EXCLAMATION, G_UNICODE_BREAK_EXCLAMATION, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, - G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, - G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, - G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, - G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, - G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, - G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_OPEN_PUNCTUATION, - G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, - G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, - G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, - G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, - G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC - }, - { /* page 41, index 36 */ - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_OPEN_PUNCTUATION, - G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_OPEN_PUNCTUATION, - G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_OPEN_PUNCTUATION, - G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_OPEN_PUNCTUATION, - G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_OPEN_PUNCTUATION, - G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_OPEN_PUNCTUATION, - G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_OPEN_PUNCTUATION, - G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_OPEN_PUNCTUATION, - G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_OPEN_PUNCTUATION, - G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_OPEN_PUNCTUATION, - G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_OPEN_PUNCTUATION, - G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, - G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC - }, - { /* page 43, index 37 */ - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN - }, - { /* page 44, index 38 */ - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_EXCLAMATION, - G_UNICODE_BREAK_AFTER, G_UNICODE_BREAK_AFTER, G_UNICODE_BREAK_AFTER, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_EXCLAMATION, - G_UNICODE_BREAK_AFTER - }, - { /* page 45, index 39 */ - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK - }, - { /* page 46, index 40 */ - G_UNICODE_BREAK_QUOTATION, G_UNICODE_BREAK_QUOTATION, - G_UNICODE_BREAK_QUOTATION, G_UNICODE_BREAK_QUOTATION, - G_UNICODE_BREAK_QUOTATION, G_UNICODE_BREAK_QUOTATION, - G_UNICODE_BREAK_QUOTATION, G_UNICODE_BREAK_QUOTATION, - G_UNICODE_BREAK_QUOTATION, G_UNICODE_BREAK_QUOTATION, - G_UNICODE_BREAK_QUOTATION, G_UNICODE_BREAK_QUOTATION, - G_UNICODE_BREAK_QUOTATION, G_UNICODE_BREAK_QUOTATION, - G_UNICODE_BREAK_AFTER, G_UNICODE_BREAK_AFTER, G_UNICODE_BREAK_AFTER, - G_UNICODE_BREAK_AFTER, G_UNICODE_BREAK_AFTER, G_UNICODE_BREAK_AFTER, - G_UNICODE_BREAK_AFTER, G_UNICODE_BREAK_AFTER, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_AFTER, G_UNICODE_BREAK_OPEN_PUNCTUATION, - G_UNICODE_BREAK_AFTER, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_QUOTATION, - G_UNICODE_BREAK_QUOTATION, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_QUOTATION, - G_UNICODE_BREAK_QUOTATION, G_UNICODE_BREAK_OPEN_PUNCTUATION, - G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_OPEN_PUNCTUATION, - G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_OPEN_PUNCTUATION, - G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_OPEN_PUNCTUATION, - G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_AFTER, - G_UNICODE_BREAK_AFTER, G_UNICODE_BREAK_AFTER, G_UNICODE_BREAK_AFTER, - G_UNICODE_BREAK_EXCLAMATION, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_AFTER, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN - }, - { /* page 47, index 41 */ - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN - }, - { /* page 48, index 42 */ - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_CLOSE_PUNCTUATION, - G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_NON_STARTER, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, - G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, - G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, - G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, - G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, - G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, - G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, - G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, - G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_OPEN_PUNCTUATION, - G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_NON_STARTER, - G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_NON_STARTER, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_NON_STARTER, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_NON_STARTER, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_NON_STARTER, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_NON_STARTER, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_NON_STARTER, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_NON_STARTER, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_NON_STARTER, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_NON_STARTER, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_NON_STARTER, - G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_NON_STARTER, - G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_NON_STARTER, - G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_NON_STARTER, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_NON_STARTER, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_NON_STARTER, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_NON_STARTER, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_NON_STARTER, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_NON_STARTER, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_NON_STARTER, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_NON_STARTER, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_NON_STARTER, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_NON_STARTER, - G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_NON_STARTER, - G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_NON_STARTER, - G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_IDEOGRAPHIC - }, - { /* page 49, index 43 */ - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_NON_STARTER, - G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_NON_STARTER, - G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_NON_STARTER, - G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_NON_STARTER, - G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_NON_STARTER, - G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_NON_STARTER, - G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_NON_STARTER, - G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_NON_STARTER - }, - { /* page 50, index 44 */ - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_UNKNOWN - }, - { /* page 77, index 45 */ - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC - }, - { /* page 159, index 46 */ - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN - }, - { /* page 160, index 47 */ - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_NON_STARTER, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC - }, - { /* page 164, index 48 */ - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN - }, - { /* page 166, index 49 */ - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AFTER, - G_UNICODE_BREAK_EXCLAMATION, G_UNICODE_BREAK_AFTER, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, - G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, - G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, - G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, - G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN - }, - { /* page 167, index 50 */ - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC - }, - { /* page 168, index 51 */ - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_BEFORE, G_UNICODE_BREAK_BEFORE, - G_UNICODE_BREAK_EXCLAMATION, G_UNICODE_BREAK_EXCLAMATION, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_AFTER, - G_UNICODE_BREAK_AFTER, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, - G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, - G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, - G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, - G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN - }, - { /* page 169, index 52 */ - G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, - G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, - G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, - G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, - G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_AFTER, G_UNICODE_BREAK_AFTER, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN - }, - { /* page 170, index 53 */ - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, - G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, - G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, - G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, - G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AFTER, G_UNICODE_BREAK_AFTER, - G_UNICODE_BREAK_AFTER, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN - }, - { /* page 172, index 54 */ - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE - }, - { /* page 173, index 55 */ - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE - }, - { /* page 174, index 56 */ - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE - }, - { /* page 175, index 57 */ - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE - }, - { /* page 176, index 58 */ - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE - }, - { /* page 177, index 59 */ - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE - }, - { /* page 178, index 60 */ - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE - }, - { /* page 179, index 61 */ - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE - }, - { /* page 180, index 62 */ - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE - }, - { /* page 181, index 63 */ - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE - }, - { /* page 182, index 64 */ - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE - }, - { /* page 183, index 65 */ - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE - }, - { /* page 184, index 66 */ - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE - }, - { /* page 185, index 67 */ - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE - }, - { /* page 186, index 68 */ - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE - }, - { /* page 187, index 69 */ - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE - }, - { /* page 188, index 70 */ - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE - }, - { /* page 189, index 71 */ - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE - }, - { /* page 190, index 72 */ - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE - }, - { /* page 191, index 73 */ - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE - }, - { /* page 192, index 74 */ - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE - }, - { /* page 193, index 75 */ - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE - }, - { /* page 194, index 76 */ - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE - }, - { /* page 195, index 77 */ - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE - }, - { /* page 196, index 78 */ - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE - }, - { /* page 197, index 79 */ - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE - }, - { /* page 198, index 80 */ - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE - }, - { /* page 199, index 81 */ - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE - }, - { /* page 200, index 82 */ - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE - }, - { /* page 201, index 83 */ - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE - }, - { /* page 202, index 84 */ - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE - }, - { /* page 203, index 85 */ - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE - }, - { /* page 204, index 86 */ - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE - }, - { /* page 205, index 87 */ - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE - }, - { /* page 206, index 88 */ - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE - }, - { /* page 207, index 89 */ - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE - }, - { /* page 208, index 90 */ - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE - }, - { /* page 209, index 91 */ - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE - }, - { /* page 210, index 92 */ - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE - }, - { /* page 211, index 93 */ - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE - }, - { /* page 212, index 94 */ - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE - }, - { /* page 213, index 95 */ - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE - }, - { /* page 214, index 96 */ - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE - }, - { /* page 215, index 97 */ - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN - }, - { /* page 250, index 98 */ - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN - }, - { /* page 251, index 99 */ - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC - }, - { /* page 253, index 100 */ - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_POSTFIX, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN - }, - { /* page 254, index 101 */ - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_INFIX_SEPARATOR, G_UNICODE_BREAK_CLOSE_PUNCTUATION, - G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_INFIX_SEPARATOR, - G_UNICODE_BREAK_INFIX_SEPARATOR, G_UNICODE_BREAK_EXCLAMATION, - G_UNICODE_BREAK_EXCLAMATION, G_UNICODE_BREAK_OPEN_PUNCTUATION, - G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_INSEPARABLE, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_OPEN_PUNCTUATION, - G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_OPEN_PUNCTUATION, - G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_OPEN_PUNCTUATION, - G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_OPEN_PUNCTUATION, - G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_OPEN_PUNCTUATION, - G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_OPEN_PUNCTUATION, - G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_OPEN_PUNCTUATION, - G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_OPEN_PUNCTUATION, - G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_OPEN_PUNCTUATION, - G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_NON_STARTER, - G_UNICODE_BREAK_EXCLAMATION, G_UNICODE_BREAK_EXCLAMATION, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_OPEN_PUNCTUATION, - G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_OPEN_PUNCTUATION, - G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_OPEN_PUNCTUATION, - G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_PREFIX, - G_UNICODE_BREAK_POSTFIX, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_WORD_JOINER - }, - { /* page 255, index 102 */ - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_EXCLAMATION, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_PREFIX, G_UNICODE_BREAK_POSTFIX, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_NON_STARTER, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_EXCLAMATION, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_OPEN_PUNCTUATION, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_CLOSE_PUNCTUATION, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_OPEN_PUNCTUATION, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_CLOSE_PUNCTUATION, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_OPEN_PUNCTUATION, - G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, - G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, - G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_NON_STARTER, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_NON_STARTER, - G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_NON_STARTER, - G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_NON_STARTER, - G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_NON_STARTER, - G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_NON_STARTER, - G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_NON_STARTER, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_POSTFIX, G_UNICODE_BREAK_PREFIX, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_PREFIX, - G_UNICODE_BREAK_PREFIX, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_CONTINGENT, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN - }, - { /* page 256, index 103 */ - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN - }, - { /* page 257, index 104 */ - G_UNICODE_BREAK_AFTER, G_UNICODE_BREAK_AFTER, G_UNICODE_BREAK_AFTER, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN - }, - { /* page 258, index 105 */ - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN - }, - { /* page 259, index 106 */ - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_AFTER, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_AFTER, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN - }, - { /* page 260, index 107 */ - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, - G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, - G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, - G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, - G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN - }, - { /* page 264, index 108 */ - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN - }, - { /* page 265, index 109 */ - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_AFTER, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN - }, - { /* page 266, index 110 */ - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_AFTER, - G_UNICODE_BREAK_AFTER, G_UNICODE_BREAK_AFTER, G_UNICODE_BREAK_AFTER, - G_UNICODE_BREAK_AFTER, G_UNICODE_BREAK_AFTER, G_UNICODE_BREAK_AFTER, - G_UNICODE_BREAK_AFTER, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN - }, - { /* page 291, index 111 */ - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN - }, - { /* page 292, index 112 */ - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_AFTER, - G_UNICODE_BREAK_AFTER, G_UNICODE_BREAK_AFTER, G_UNICODE_BREAK_AFTER, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN - }, - { /* page 464, index 113 */ - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN - }, - { /* page 465, index 114 */ - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN - }, - { /* page 466, index 115 */ - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN - }, - { /* page 467, index 116 */ - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN - }, - { /* page 468, index 117 */ - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC - }, - { /* page 469, index 118 */ - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC - }, - { /* page 470, index 119 */ - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC - }, - { /* page 471, index 120 */ - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, - G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, - G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, - G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, - G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, - G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, - G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, - G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, - G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, - G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, - G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, - G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, - G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, - G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, - G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, - G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, - G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, - G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, - G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, - G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, - G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, - G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, - G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, - G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, - G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC - }, - { /* page 496, index 121 */ - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN - }, - { /* page 678, index 122 */ - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN - }, - { /* page 762, index 123 */ - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN - }, - { /* page 3584, index 124 */ - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN - }, - { /* page 3585, index 125 */ - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN - } -}; - -/* U+0000 through U+2FAFF */ -static const gint16 break_property_table_part1[763] = { - 0 /* page 0 */, - G_UNICODE_BREAK_ALPHABETIC + G_UNICODE_MAX_TABLE_INDEX, - 1 /* page 2 */, - 2 /* page 3 */, - 3 /* page 4 */, - 4 /* page 5 */, - 5 /* page 6 */, - 6 /* page 7 */, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - 7 /* page 9 */, - 8 /* page 10 */, - 9 /* page 11 */, - 10 /* page 12 */, - 11 /* page 13 */, - 12 /* page 14 */, - 13 /* page 15 */, - 14 /* page 16 */, - 15 /* page 17 */, - 16 /* page 18 */, - 17 /* page 19 */, - 18 /* page 20 */, - G_UNICODE_BREAK_ALPHABETIC + G_UNICODE_MAX_TABLE_INDEX, - 19 /* page 22 */, - 20 /* page 23 */, - 21 /* page 24 */, - 22 /* page 25 */, - 23 /* page 26 */, - 24 /* page 27 */, - 25 /* page 28 */, - 26 /* page 29 */, - G_UNICODE_BREAK_ALPHABETIC + G_UNICODE_MAX_TABLE_INDEX, - 27 /* page 31 */, - 28 /* page 32 */, - 29 /* page 33 */, - 30 /* page 34 */, - 31 /* page 35 */, - 32 /* page 36 */, - 33 /* page 37 */, - 34 /* page 38 */, - 35 /* page 39 */, - G_UNICODE_BREAK_ALPHABETIC + G_UNICODE_MAX_TABLE_INDEX, - 36 /* page 41 */, - G_UNICODE_BREAK_ALPHABETIC + G_UNICODE_MAX_TABLE_INDEX, - 37 /* page 43 */, - 38 /* page 44 */, - 39 /* page 45 */, - 40 /* page 46 */, - 41 /* page 47 */, - 42 /* page 48 */, - 43 /* page 49 */, - 44 /* page 50 */, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - 45 /* page 77 */, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - 46 /* page 159 */, - 47 /* page 160 */, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - 48 /* page 164 */, - G_UNICODE_BREAK_ALPHABETIC + G_UNICODE_MAX_TABLE_INDEX, - 49 /* page 166 */, - 50 /* page 167 */, - 51 /* page 168 */, - 52 /* page 169 */, - 53 /* page 170 */, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - 54 /* page 172 */, - 55 /* page 173 */, - 56 /* page 174 */, - 57 /* page 175 */, - 58 /* page 176 */, - 59 /* page 177 */, - 60 /* page 178 */, - 61 /* page 179 */, - 62 /* page 180 */, - 63 /* page 181 */, - 64 /* page 182 */, - 65 /* page 183 */, - 66 /* page 184 */, - 67 /* page 185 */, - 68 /* page 186 */, - 69 /* page 187 */, - 70 /* page 188 */, - 71 /* page 189 */, - 72 /* page 190 */, - 73 /* page 191 */, - 74 /* page 192 */, - 75 /* page 193 */, - 76 /* page 194 */, - 77 /* page 195 */, - 78 /* page 196 */, - 79 /* page 197 */, - 80 /* page 198 */, - 81 /* page 199 */, - 82 /* page 200 */, - 83 /* page 201 */, - 84 /* page 202 */, - 85 /* page 203 */, - 86 /* page 204 */, - 87 /* page 205 */, - 88 /* page 206 */, - 89 /* page 207 */, - 90 /* page 208 */, - 91 /* page 209 */, - 92 /* page 210 */, - 93 /* page 211 */, - 94 /* page 212 */, - 95 /* page 213 */, - 96 /* page 214 */, - 97 /* page 215 */, - G_UNICODE_BREAK_SURROGATE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_SURROGATE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_SURROGATE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_SURROGATE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_SURROGATE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_SURROGATE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_SURROGATE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_SURROGATE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - 98 /* page 250 */, - 99 /* page 251 */, - G_UNICODE_BREAK_ALPHABETIC + G_UNICODE_MAX_TABLE_INDEX, - 100 /* page 253 */, - 101 /* page 254 */, - 102 /* page 255 */, - 103 /* page 256 */, - 104 /* page 257 */, - 105 /* page 258 */, - 106 /* page 259 */, - 107 /* page 260 */, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - 108 /* page 264 */, - 109 /* page 265 */, - 110 /* page 266 */, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_ALPHABETIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_ALPHABETIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_ALPHABETIC + G_UNICODE_MAX_TABLE_INDEX, - 111 /* page 291 */, - 112 /* page 292 */, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - 113 /* page 464 */, - 114 /* page 465 */, - 115 /* page 466 */, - 116 /* page 467 */, - 117 /* page 468 */, - 118 /* page 469 */, - 119 /* page 470 */, - 120 /* page 471 */, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - 121 /* page 496 */, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - 122 /* page 678 */, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, - 123 /* page 762 */ -}; - -/* U+E0000 through U+10FFFF */ -static const gint16 break_property_table_part2[768] = { - 124 /* page 3584 */, - 125 /* page 3585 */, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX -}; - -#endif /* BREAKTABLES_H */ diff --git a/lib/win32/glib-2.20.4/glib/gunichartables.h b/lib/win32/glib-2.20.4/glib/gunichartables.h deleted file mode 100644 index 044a44ff45d48..0000000000000 --- a/lib/win32/glib-2.20.4/glib/gunichartables.h +++ /dev/null @@ -1,13060 +0,0 @@ -/* This file is automatically generated. DO NOT EDIT! - Instead, edit gen-unicode-tables.pl and re-run. */ - -#ifndef CHARTABLES_H -#define CHARTABLES_H - -#define G_UNICODE_DATA_VERSION "5.1.0" - -#define G_UNICODE_LAST_CHAR 0x10ffff - -#define G_UNICODE_MAX_TABLE_INDEX 10000 - -#define G_UNICODE_LAST_CHAR_PART1 0x2FAFF - -#define G_UNICODE_LAST_PAGE_PART1 762 - -static const char type_data[][256] = { - { /* page 0, index 0 */ - G_UNICODE_CONTROL, G_UNICODE_CONTROL, G_UNICODE_CONTROL, - G_UNICODE_CONTROL, G_UNICODE_CONTROL, G_UNICODE_CONTROL, - G_UNICODE_CONTROL, G_UNICODE_CONTROL, G_UNICODE_CONTROL, - G_UNICODE_CONTROL, G_UNICODE_CONTROL, G_UNICODE_CONTROL, - G_UNICODE_CONTROL, G_UNICODE_CONTROL, G_UNICODE_CONTROL, - G_UNICODE_CONTROL, G_UNICODE_CONTROL, G_UNICODE_CONTROL, - G_UNICODE_CONTROL, G_UNICODE_CONTROL, G_UNICODE_CONTROL, - G_UNICODE_CONTROL, G_UNICODE_CONTROL, G_UNICODE_CONTROL, - G_UNICODE_CONTROL, G_UNICODE_CONTROL, G_UNICODE_CONTROL, - G_UNICODE_CONTROL, G_UNICODE_CONTROL, G_UNICODE_CONTROL, - G_UNICODE_CONTROL, G_UNICODE_CONTROL, G_UNICODE_SPACE_SEPARATOR, - G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_OTHER_PUNCTUATION, - G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_CURRENCY_SYMBOL, - G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_OTHER_PUNCTUATION, - G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_OPEN_PUNCTUATION, - G_UNICODE_CLOSE_PUNCTUATION, G_UNICODE_OTHER_PUNCTUATION, - G_UNICODE_MATH_SYMBOL, G_UNICODE_OTHER_PUNCTUATION, - G_UNICODE_DASH_PUNCTUATION, G_UNICODE_OTHER_PUNCTUATION, - G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_DECIMAL_NUMBER, - G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER, - G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER, - G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER, - G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER, - G_UNICODE_DECIMAL_NUMBER, G_UNICODE_OTHER_PUNCTUATION, - G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_MATH_SYMBOL, - G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, - G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_OTHER_PUNCTUATION, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_OPEN_PUNCTUATION, G_UNICODE_OTHER_PUNCTUATION, - G_UNICODE_CLOSE_PUNCTUATION, G_UNICODE_MODIFIER_SYMBOL, - G_UNICODE_CONNECT_PUNCTUATION, G_UNICODE_MODIFIER_SYMBOL, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_OPEN_PUNCTUATION, G_UNICODE_MATH_SYMBOL, - G_UNICODE_CLOSE_PUNCTUATION, G_UNICODE_MATH_SYMBOL, G_UNICODE_CONTROL, - G_UNICODE_CONTROL, G_UNICODE_CONTROL, G_UNICODE_CONTROL, - G_UNICODE_CONTROL, G_UNICODE_CONTROL, G_UNICODE_CONTROL, - G_UNICODE_CONTROL, G_UNICODE_CONTROL, G_UNICODE_CONTROL, - G_UNICODE_CONTROL, G_UNICODE_CONTROL, G_UNICODE_CONTROL, - G_UNICODE_CONTROL, G_UNICODE_CONTROL, G_UNICODE_CONTROL, - G_UNICODE_CONTROL, G_UNICODE_CONTROL, G_UNICODE_CONTROL, - G_UNICODE_CONTROL, G_UNICODE_CONTROL, G_UNICODE_CONTROL, - G_UNICODE_CONTROL, G_UNICODE_CONTROL, G_UNICODE_CONTROL, - G_UNICODE_CONTROL, G_UNICODE_CONTROL, G_UNICODE_CONTROL, - G_UNICODE_CONTROL, G_UNICODE_CONTROL, G_UNICODE_CONTROL, - G_UNICODE_CONTROL, G_UNICODE_CONTROL, G_UNICODE_SPACE_SEPARATOR, - G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_CURRENCY_SYMBOL, - G_UNICODE_CURRENCY_SYMBOL, G_UNICODE_CURRENCY_SYMBOL, - G_UNICODE_CURRENCY_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_MODIFIER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_INITIAL_PUNCTUATION, G_UNICODE_MATH_SYMBOL, G_UNICODE_FORMAT, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_MODIFIER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_MATH_SYMBOL, G_UNICODE_OTHER_NUMBER, - G_UNICODE_OTHER_NUMBER, G_UNICODE_MODIFIER_SYMBOL, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_MODIFIER_SYMBOL, - G_UNICODE_OTHER_NUMBER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_FINAL_PUNCTUATION, G_UNICODE_OTHER_NUMBER, - G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, - G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_MATH_SYMBOL, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_MATH_SYMBOL, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER - }, - { /* page 1, index 1 */ - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_TITLECASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_TITLECASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_TITLECASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_TITLECASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER - }, - { /* page 2, index 2 */ - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_MODIFIER_LETTER, G_UNICODE_MODIFIER_LETTER, - G_UNICODE_MODIFIER_LETTER, G_UNICODE_MODIFIER_LETTER, - G_UNICODE_MODIFIER_LETTER, G_UNICODE_MODIFIER_LETTER, - G_UNICODE_MODIFIER_LETTER, G_UNICODE_MODIFIER_LETTER, - G_UNICODE_MODIFIER_LETTER, G_UNICODE_MODIFIER_LETTER, - G_UNICODE_MODIFIER_LETTER, G_UNICODE_MODIFIER_LETTER, - G_UNICODE_MODIFIER_LETTER, G_UNICODE_MODIFIER_LETTER, - G_UNICODE_MODIFIER_LETTER, G_UNICODE_MODIFIER_LETTER, - G_UNICODE_MODIFIER_LETTER, G_UNICODE_MODIFIER_LETTER, - G_UNICODE_MODIFIER_SYMBOL, G_UNICODE_MODIFIER_SYMBOL, - G_UNICODE_MODIFIER_SYMBOL, G_UNICODE_MODIFIER_SYMBOL, - G_UNICODE_MODIFIER_LETTER, G_UNICODE_MODIFIER_LETTER, - G_UNICODE_MODIFIER_LETTER, G_UNICODE_MODIFIER_LETTER, - G_UNICODE_MODIFIER_LETTER, G_UNICODE_MODIFIER_LETTER, - G_UNICODE_MODIFIER_LETTER, G_UNICODE_MODIFIER_LETTER, - G_UNICODE_MODIFIER_LETTER, G_UNICODE_MODIFIER_LETTER, - G_UNICODE_MODIFIER_LETTER, G_UNICODE_MODIFIER_LETTER, - G_UNICODE_MODIFIER_SYMBOL, G_UNICODE_MODIFIER_SYMBOL, - G_UNICODE_MODIFIER_SYMBOL, G_UNICODE_MODIFIER_SYMBOL, - G_UNICODE_MODIFIER_SYMBOL, G_UNICODE_MODIFIER_SYMBOL, - G_UNICODE_MODIFIER_SYMBOL, G_UNICODE_MODIFIER_SYMBOL, - G_UNICODE_MODIFIER_SYMBOL, G_UNICODE_MODIFIER_SYMBOL, - G_UNICODE_MODIFIER_SYMBOL, G_UNICODE_MODIFIER_SYMBOL, - G_UNICODE_MODIFIER_SYMBOL, G_UNICODE_MODIFIER_SYMBOL, - G_UNICODE_MODIFIER_LETTER, G_UNICODE_MODIFIER_LETTER, - G_UNICODE_MODIFIER_LETTER, G_UNICODE_MODIFIER_LETTER, - G_UNICODE_MODIFIER_LETTER, G_UNICODE_MODIFIER_SYMBOL, - G_UNICODE_MODIFIER_SYMBOL, G_UNICODE_MODIFIER_SYMBOL, - G_UNICODE_MODIFIER_SYMBOL, G_UNICODE_MODIFIER_SYMBOL, - G_UNICODE_MODIFIER_SYMBOL, G_UNICODE_MODIFIER_SYMBOL, - G_UNICODE_MODIFIER_LETTER, G_UNICODE_MODIFIER_SYMBOL, - G_UNICODE_MODIFIER_LETTER, G_UNICODE_MODIFIER_SYMBOL, - G_UNICODE_MODIFIER_SYMBOL, G_UNICODE_MODIFIER_SYMBOL, - G_UNICODE_MODIFIER_SYMBOL, G_UNICODE_MODIFIER_SYMBOL, - G_UNICODE_MODIFIER_SYMBOL, G_UNICODE_MODIFIER_SYMBOL, - G_UNICODE_MODIFIER_SYMBOL, G_UNICODE_MODIFIER_SYMBOL, - G_UNICODE_MODIFIER_SYMBOL, G_UNICODE_MODIFIER_SYMBOL, - G_UNICODE_MODIFIER_SYMBOL, G_UNICODE_MODIFIER_SYMBOL, - G_UNICODE_MODIFIER_SYMBOL, G_UNICODE_MODIFIER_SYMBOL, - G_UNICODE_MODIFIER_SYMBOL, G_UNICODE_MODIFIER_SYMBOL - }, - { /* page 3, index 3 */ - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_MODIFIER_LETTER, G_UNICODE_MODIFIER_SYMBOL, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_MODIFIER_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_OTHER_PUNCTUATION, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_MODIFIER_SYMBOL, - G_UNICODE_MODIFIER_SYMBOL, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UNASSIGNED, G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UNASSIGNED, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UNASSIGNED, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_MATH_SYMBOL, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER - }, - { /* page 4, index 4 */ - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_ENCLOSING_MARK, G_UNICODE_ENCLOSING_MARK, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER - }, - { /* page 5, index 5 */ - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_MODIFIER_LETTER, G_UNICODE_OTHER_PUNCTUATION, - G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_OTHER_PUNCTUATION, - G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_OTHER_PUNCTUATION, - G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_UNASSIGNED, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_UNASSIGNED, - G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_DASH_PUNCTUATION, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_DASH_PUNCTUATION, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_OTHER_PUNCTUATION, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_OTHER_PUNCTUATION, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_OTHER_PUNCTUATION, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED - }, - { /* page 6, index 6 */ - G_UNICODE_FORMAT, G_UNICODE_FORMAT, G_UNICODE_FORMAT, G_UNICODE_FORMAT, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_MATH_SYMBOL, - G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, - G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_OTHER_PUNCTUATION, - G_UNICODE_CURRENCY_SYMBOL, G_UNICODE_OTHER_PUNCTUATION, - G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_OTHER_PUNCTUATION, - G_UNICODE_UNASSIGNED, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_MODIFIER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_UNASSIGNED, G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER, - G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER, - G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER, - G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER, - G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER, - G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_OTHER_PUNCTUATION, - G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_OTHER_PUNCTUATION, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_OTHER_LETTER, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_FORMAT, G_UNICODE_ENCLOSING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_MODIFIER_LETTER, G_UNICODE_MODIFIER_LETTER, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_DECIMAL_NUMBER, - G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER, - G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER, - G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER, - G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER, - G_UNICODE_DECIMAL_NUMBER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_LETTER - }, - { /* page 7, index 7 */ - G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_OTHER_PUNCTUATION, - G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_OTHER_PUNCTUATION, - G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_OTHER_PUNCTUATION, - G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_OTHER_PUNCTUATION, - G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_OTHER_PUNCTUATION, - G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_OTHER_PUNCTUATION, - G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_OTHER_PUNCTUATION, - G_UNICODE_UNASSIGNED, G_UNICODE_FORMAT, G_UNICODE_OTHER_LETTER, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_OTHER_LETTER, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER, - G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER, - G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER, - G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER, - G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_MODIFIER_LETTER, - G_UNICODE_MODIFIER_LETTER, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_OTHER_PUNCTUATION, - G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_MODIFIER_LETTER, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED - }, - { /* page 9, index 8 */ - G_UNICODE_UNASSIGNED, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_COMBINING_MARK, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_OTHER_LETTER, G_UNICODE_COMBINING_MARK, - G_UNICODE_COMBINING_MARK, G_UNICODE_COMBINING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_COMBINING_MARK, G_UNICODE_COMBINING_MARK, - G_UNICODE_COMBINING_MARK, G_UNICODE_COMBINING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_OTHER_LETTER, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_OTHER_PUNCTUATION, - G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER, - G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER, - G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER, - G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER, - G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER, - G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_MODIFIER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_UNASSIGNED, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_COMBINING_MARK, - G_UNICODE_COMBINING_MARK, G_UNICODE_UNASSIGNED, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_UNASSIGNED, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_UNASSIGNED, G_UNICODE_OTHER_LETTER, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_OTHER_LETTER, - G_UNICODE_COMBINING_MARK, G_UNICODE_COMBINING_MARK, - G_UNICODE_COMBINING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_COMBINING_MARK, G_UNICODE_COMBINING_MARK, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_COMBINING_MARK, G_UNICODE_COMBINING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_OTHER_LETTER, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_COMBINING_MARK, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_UNASSIGNED, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_DECIMAL_NUMBER, - G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER, - G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER, - G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER, - G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER, - G_UNICODE_DECIMAL_NUMBER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_CURRENCY_SYMBOL, G_UNICODE_CURRENCY_SYMBOL, - G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, - G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED - }, - { /* page 10, index 9 */ - G_UNICODE_UNASSIGNED, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_COMBINING_MARK, - G_UNICODE_UNASSIGNED, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_UNASSIGNED, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_UNASSIGNED, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_UNASSIGNED, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_UNASSIGNED, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_UNASSIGNED, G_UNICODE_COMBINING_MARK, G_UNICODE_COMBINING_MARK, - G_UNICODE_COMBINING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_NON_SPACING_MARK, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_UNASSIGNED, G_UNICODE_OTHER_LETTER, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER, - G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER, - G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER, - G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER, - G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_COMBINING_MARK, G_UNICODE_UNASSIGNED, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_UNASSIGNED, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_UNASSIGNED, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_UNASSIGNED, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_UNASSIGNED, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_UNASSIGNED, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_OTHER_LETTER, - G_UNICODE_COMBINING_MARK, G_UNICODE_COMBINING_MARK, - G_UNICODE_COMBINING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_UNASSIGNED, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_COMBINING_MARK, - G_UNICODE_UNASSIGNED, G_UNICODE_COMBINING_MARK, G_UNICODE_COMBINING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_OTHER_LETTER, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_DECIMAL_NUMBER, - G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER, - G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER, - G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER, - G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER, - G_UNICODE_DECIMAL_NUMBER, G_UNICODE_UNASSIGNED, - G_UNICODE_CURRENCY_SYMBOL, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED - }, - { /* page 11, index 10 */ - G_UNICODE_UNASSIGNED, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_COMBINING_MARK, G_UNICODE_COMBINING_MARK, G_UNICODE_UNASSIGNED, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_UNASSIGNED, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_UNASSIGNED, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_UNASSIGNED, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_NON_SPACING_MARK, G_UNICODE_OTHER_LETTER, - G_UNICODE_COMBINING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_COMBINING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_COMBINING_MARK, G_UNICODE_COMBINING_MARK, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_COMBINING_MARK, G_UNICODE_COMBINING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_COMBINING_MARK, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_UNASSIGNED, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER, - G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER, - G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER, - G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER, - G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_LETTER, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_OTHER_LETTER, G_UNICODE_UNASSIGNED, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_UNASSIGNED, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_UNASSIGNED, G_UNICODE_OTHER_LETTER, - G_UNICODE_UNASSIGNED, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_COMBINING_MARK, G_UNICODE_COMBINING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_COMBINING_MARK, - G_UNICODE_COMBINING_MARK, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_COMBINING_MARK, G_UNICODE_COMBINING_MARK, - G_UNICODE_COMBINING_MARK, G_UNICODE_UNASSIGNED, G_UNICODE_COMBINING_MARK, - G_UNICODE_COMBINING_MARK, G_UNICODE_COMBINING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_OTHER_LETTER, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_COMBINING_MARK, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER, - G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER, - G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER, - G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER, - G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER, - G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_CURRENCY_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED - }, - { /* page 12, index 11 */ - G_UNICODE_UNASSIGNED, G_UNICODE_COMBINING_MARK, G_UNICODE_COMBINING_MARK, - G_UNICODE_COMBINING_MARK, G_UNICODE_UNASSIGNED, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_UNASSIGNED, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_UNASSIGNED, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_UNASSIGNED, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_UNASSIGNED, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_OTHER_LETTER, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_COMBINING_MARK, G_UNICODE_COMBINING_MARK, - G_UNICODE_COMBINING_MARK, G_UNICODE_COMBINING_MARK, G_UNICODE_UNASSIGNED, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_UNASSIGNED, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_UNASSIGNED, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_DECIMAL_NUMBER, - G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER, - G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER, - G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER, - G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER, - G_UNICODE_DECIMAL_NUMBER, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, - G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, - G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_SYMBOL, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_COMBINING_MARK, G_UNICODE_COMBINING_MARK, - G_UNICODE_UNASSIGNED, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_UNASSIGNED, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_UNASSIGNED, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_UNASSIGNED, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_UNASSIGNED, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_OTHER_LETTER, G_UNICODE_COMBINING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_COMBINING_MARK, - G_UNICODE_COMBINING_MARK, G_UNICODE_COMBINING_MARK, - G_UNICODE_COMBINING_MARK, G_UNICODE_COMBINING_MARK, G_UNICODE_UNASSIGNED, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_COMBINING_MARK, - G_UNICODE_COMBINING_MARK, G_UNICODE_UNASSIGNED, G_UNICODE_COMBINING_MARK, - G_UNICODE_COMBINING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_COMBINING_MARK, - G_UNICODE_COMBINING_MARK, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_OTHER_LETTER, - G_UNICODE_UNASSIGNED, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_DECIMAL_NUMBER, - G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER, - G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER, - G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER, - G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER, - G_UNICODE_DECIMAL_NUMBER, G_UNICODE_UNASSIGNED, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED - }, - { /* page 13, index 12 */ - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_COMBINING_MARK, - G_UNICODE_COMBINING_MARK, G_UNICODE_UNASSIGNED, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_UNASSIGNED, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_UNASSIGNED, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_UNASSIGNED, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_OTHER_LETTER, G_UNICODE_COMBINING_MARK, - G_UNICODE_COMBINING_MARK, G_UNICODE_COMBINING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_UNASSIGNED, G_UNICODE_COMBINING_MARK, G_UNICODE_COMBINING_MARK, - G_UNICODE_COMBINING_MARK, G_UNICODE_UNASSIGNED, G_UNICODE_COMBINING_MARK, - G_UNICODE_COMBINING_MARK, G_UNICODE_COMBINING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_COMBINING_MARK, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_DECIMAL_NUMBER, - G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER, - G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER, - G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER, - G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER, - G_UNICODE_DECIMAL_NUMBER, G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, - G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, - G_UNICODE_OTHER_NUMBER, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_COMBINING_MARK, G_UNICODE_COMBINING_MARK, - G_UNICODE_UNASSIGNED, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_UNASSIGNED, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_UNASSIGNED, - G_UNICODE_OTHER_LETTER, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_NON_SPACING_MARK, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_COMBINING_MARK, G_UNICODE_COMBINING_MARK, - G_UNICODE_COMBINING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_UNASSIGNED, G_UNICODE_NON_SPACING_MARK, G_UNICODE_UNASSIGNED, - G_UNICODE_COMBINING_MARK, G_UNICODE_COMBINING_MARK, - G_UNICODE_COMBINING_MARK, G_UNICODE_COMBINING_MARK, - G_UNICODE_COMBINING_MARK, G_UNICODE_COMBINING_MARK, - G_UNICODE_COMBINING_MARK, G_UNICODE_COMBINING_MARK, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_COMBINING_MARK, - G_UNICODE_COMBINING_MARK, G_UNICODE_OTHER_PUNCTUATION, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED - }, - { /* page 14, index 13 */ - G_UNICODE_UNASSIGNED, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_CURRENCY_SYMBOL, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_MODIFIER_LETTER, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_OTHER_PUNCTUATION, - G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER, - G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER, - G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER, - G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER, - G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER, - G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_OTHER_PUNCTUATION, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_UNASSIGNED, G_UNICODE_OTHER_LETTER, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_UNASSIGNED, G_UNICODE_OTHER_LETTER, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_OTHER_LETTER, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_UNASSIGNED, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_UNASSIGNED, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_UNASSIGNED, G_UNICODE_OTHER_LETTER, G_UNICODE_UNASSIGNED, - G_UNICODE_OTHER_LETTER, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_UNASSIGNED, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_UNASSIGNED, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_OTHER_LETTER, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_UNASSIGNED, G_UNICODE_MODIFIER_LETTER, G_UNICODE_UNASSIGNED, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_DECIMAL_NUMBER, - G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER, - G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER, - G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER, - G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER, - G_UNICODE_DECIMAL_NUMBER, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED - }, - { /* page 15, index 14 */ - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_PUNCTUATION, - G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_OTHER_PUNCTUATION, - G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_OTHER_PUNCTUATION, - G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_OTHER_PUNCTUATION, - G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_OTHER_PUNCTUATION, - G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_OTHER_PUNCTUATION, - G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_OTHER_PUNCTUATION, - G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_OTHER_PUNCTUATION, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER, - G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER, - G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER, - G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER, - G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER, - G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, - G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, - G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, - G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_OPEN_PUNCTUATION, - G_UNICODE_CLOSE_PUNCTUATION, G_UNICODE_OPEN_PUNCTUATION, - G_UNICODE_CLOSE_PUNCTUATION, G_UNICODE_COMBINING_MARK, - G_UNICODE_COMBINING_MARK, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_UNASSIGNED, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_COMBINING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_OTHER_PUNCTUATION, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_UNASSIGNED, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_UNASSIGNED, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_UNASSIGNED, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_OTHER_PUNCTUATION, - G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_OTHER_PUNCTUATION, - G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED - }, - { /* page 16, index 15 */ - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_COMBINING_MARK, - G_UNICODE_COMBINING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_COMBINING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_COMBINING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_COMBINING_MARK, - G_UNICODE_COMBINING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_OTHER_LETTER, - G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER, - G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER, - G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER, - G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER, - G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER, - G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_OTHER_PUNCTUATION, - G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_OTHER_PUNCTUATION, - G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_OTHER_PUNCTUATION, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_COMBINING_MARK, G_UNICODE_COMBINING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_OTHER_LETTER, G_UNICODE_COMBINING_MARK, - G_UNICODE_COMBINING_MARK, G_UNICODE_COMBINING_MARK, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_COMBINING_MARK, - G_UNICODE_COMBINING_MARK, G_UNICODE_COMBINING_MARK, - G_UNICODE_COMBINING_MARK, G_UNICODE_COMBINING_MARK, - G_UNICODE_COMBINING_MARK, G_UNICODE_COMBINING_MARK, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_COMBINING_MARK, G_UNICODE_COMBINING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_COMBINING_MARK, G_UNICODE_COMBINING_MARK, - G_UNICODE_COMBINING_MARK, G_UNICODE_COMBINING_MARK, - G_UNICODE_COMBINING_MARK, G_UNICODE_COMBINING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_OTHER_LETTER, - G_UNICODE_COMBINING_MARK, G_UNICODE_DECIMAL_NUMBER, - G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER, - G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER, - G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER, - G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER, - G_UNICODE_DECIMAL_NUMBER, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_MODIFIER_LETTER, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED - }, - { /* page 17, index 16 */ - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED - }, - { /* page 18, index 17 */ - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_UNASSIGNED, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_UNASSIGNED, G_UNICODE_OTHER_LETTER, G_UNICODE_UNASSIGNED, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_UNASSIGNED, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_UNASSIGNED, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_UNASSIGNED, - G_UNICODE_OTHER_LETTER, G_UNICODE_UNASSIGNED, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_UNASSIGNED, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER - }, - { /* page 19, index 18 */ - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_UNASSIGNED, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_PUNCTUATION, - G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_OTHER_PUNCTUATION, - G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_OTHER_PUNCTUATION, - G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_OTHER_PUNCTUATION, - G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_OTHER_NUMBER, - G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, - G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, - G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, - G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, - G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, - G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, - G_UNICODE_OTHER_NUMBER, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED - }, - { /* page 20, index 19 */ - G_UNICODE_UNASSIGNED, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER - }, - { /* page 22, index 20 */ - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_PUNCTUATION, - G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_SPACE_SEPARATOR, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OPEN_PUNCTUATION, - G_UNICODE_CLOSE_PUNCTUATION, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_PUNCTUATION, - G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_OTHER_PUNCTUATION, - G_UNICODE_LETTER_NUMBER, G_UNICODE_LETTER_NUMBER, - G_UNICODE_LETTER_NUMBER, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED - }, - { /* page 23, index 21 */ - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_UNASSIGNED, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_OTHER_PUNCTUATION, - G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_UNASSIGNED, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_UNASSIGNED, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_FORMAT, - G_UNICODE_FORMAT, G_UNICODE_COMBINING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_COMBINING_MARK, G_UNICODE_COMBINING_MARK, - G_UNICODE_COMBINING_MARK, G_UNICODE_COMBINING_MARK, - G_UNICODE_COMBINING_MARK, G_UNICODE_COMBINING_MARK, - G_UNICODE_COMBINING_MARK, G_UNICODE_COMBINING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_COMBINING_MARK, - G_UNICODE_COMBINING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_OTHER_PUNCTUATION, - G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_MODIFIER_LETTER, - G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_OTHER_PUNCTUATION, - G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_CURRENCY_SYMBOL, - G_UNICODE_OTHER_LETTER, G_UNICODE_NON_SPACING_MARK, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER, - G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER, - G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER, - G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER, - G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_OTHER_NUMBER, - G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, - G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, - G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED - }, - { /* page 24, index 22 */ - G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_OTHER_PUNCTUATION, - G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_OTHER_PUNCTUATION, - G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_OTHER_PUNCTUATION, - G_UNICODE_DASH_PUNCTUATION, G_UNICODE_OTHER_PUNCTUATION, - G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_OTHER_PUNCTUATION, - G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_SPACE_SEPARATOR, G_UNICODE_UNASSIGNED, - G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER, - G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER, - G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER, - G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER, - G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_MODIFIER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_OTHER_LETTER, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED - }, - { /* page 25, index 23 */ - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_COMBINING_MARK, G_UNICODE_COMBINING_MARK, - G_UNICODE_COMBINING_MARK, G_UNICODE_COMBINING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_COMBINING_MARK, G_UNICODE_COMBINING_MARK, - G_UNICODE_COMBINING_MARK, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_COMBINING_MARK, - G_UNICODE_COMBINING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_COMBINING_MARK, G_UNICODE_COMBINING_MARK, - G_UNICODE_COMBINING_MARK, G_UNICODE_COMBINING_MARK, - G_UNICODE_COMBINING_MARK, G_UNICODE_COMBINING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_OTHER_PUNCTUATION, - G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER, - G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER, - G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER, - G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER, - G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_COMBINING_MARK, G_UNICODE_COMBINING_MARK, - G_UNICODE_COMBINING_MARK, G_UNICODE_COMBINING_MARK, - G_UNICODE_COMBINING_MARK, G_UNICODE_COMBINING_MARK, - G_UNICODE_COMBINING_MARK, G_UNICODE_COMBINING_MARK, - G_UNICODE_COMBINING_MARK, G_UNICODE_COMBINING_MARK, - G_UNICODE_COMBINING_MARK, G_UNICODE_COMBINING_MARK, - G_UNICODE_COMBINING_MARK, G_UNICODE_COMBINING_MARK, - G_UNICODE_COMBINING_MARK, G_UNICODE_COMBINING_MARK, - G_UNICODE_COMBINING_MARK, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_COMBINING_MARK, - G_UNICODE_COMBINING_MARK, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER, - G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER, - G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER, - G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER, - G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_OTHER_PUNCTUATION, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL - }, - { /* page 26, index 24 */ - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_COMBINING_MARK, G_UNICODE_COMBINING_MARK, - G_UNICODE_COMBINING_MARK, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_OTHER_PUNCTUATION, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED - }, - { /* page 27, index 25 */ - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_COMBINING_MARK, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_COMBINING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_COMBINING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_COMBINING_MARK, - G_UNICODE_COMBINING_MARK, G_UNICODE_COMBINING_MARK, - G_UNICODE_COMBINING_MARK, G_UNICODE_COMBINING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_COMBINING_MARK, - G_UNICODE_COMBINING_MARK, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER, - G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER, - G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER, - G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER, - G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER, - G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_OTHER_PUNCTUATION, - G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_OTHER_PUNCTUATION, - G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_OTHER_PUNCTUATION, - G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_COMBINING_MARK, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_COMBINING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_COMBINING_MARK, - G_UNICODE_COMBINING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_COMBINING_MARK, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_DECIMAL_NUMBER, - G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER, - G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER, - G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER, - G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER, - G_UNICODE_DECIMAL_NUMBER, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED - }, - { /* page 28, index 26 */ - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_COMBINING_MARK, G_UNICODE_COMBINING_MARK, - G_UNICODE_COMBINING_MARK, G_UNICODE_COMBINING_MARK, - G_UNICODE_COMBINING_MARK, G_UNICODE_COMBINING_MARK, - G_UNICODE_COMBINING_MARK, G_UNICODE_COMBINING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_COMBINING_MARK, G_UNICODE_COMBINING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_OTHER_PUNCTUATION, - G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_OTHER_PUNCTUATION, - G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_DECIMAL_NUMBER, - G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER, - G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER, - G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER, - G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER, - G_UNICODE_DECIMAL_NUMBER, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_DECIMAL_NUMBER, - G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER, - G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER, - G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER, - G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER, - G_UNICODE_DECIMAL_NUMBER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_MODIFIER_LETTER, - G_UNICODE_MODIFIER_LETTER, G_UNICODE_MODIFIER_LETTER, - G_UNICODE_MODIFIER_LETTER, G_UNICODE_MODIFIER_LETTER, - G_UNICODE_MODIFIER_LETTER, G_UNICODE_OTHER_PUNCTUATION, - G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED - }, - { /* page 29, index 27 */ - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_MODIFIER_LETTER, G_UNICODE_MODIFIER_LETTER, - G_UNICODE_MODIFIER_LETTER, G_UNICODE_MODIFIER_LETTER, - G_UNICODE_MODIFIER_LETTER, G_UNICODE_MODIFIER_LETTER, - G_UNICODE_MODIFIER_LETTER, G_UNICODE_MODIFIER_LETTER, - G_UNICODE_MODIFIER_LETTER, G_UNICODE_MODIFIER_LETTER, - G_UNICODE_MODIFIER_LETTER, G_UNICODE_MODIFIER_LETTER, - G_UNICODE_MODIFIER_LETTER, G_UNICODE_MODIFIER_LETTER, - G_UNICODE_MODIFIER_LETTER, G_UNICODE_MODIFIER_LETTER, - G_UNICODE_MODIFIER_LETTER, G_UNICODE_MODIFIER_LETTER, - G_UNICODE_MODIFIER_LETTER, G_UNICODE_MODIFIER_LETTER, - G_UNICODE_MODIFIER_LETTER, G_UNICODE_MODIFIER_LETTER, - G_UNICODE_MODIFIER_LETTER, G_UNICODE_MODIFIER_LETTER, - G_UNICODE_MODIFIER_LETTER, G_UNICODE_MODIFIER_LETTER, - G_UNICODE_MODIFIER_LETTER, G_UNICODE_MODIFIER_LETTER, - G_UNICODE_MODIFIER_LETTER, G_UNICODE_MODIFIER_LETTER, - G_UNICODE_MODIFIER_LETTER, G_UNICODE_MODIFIER_LETTER, - G_UNICODE_MODIFIER_LETTER, G_UNICODE_MODIFIER_LETTER, - G_UNICODE_MODIFIER_LETTER, G_UNICODE_MODIFIER_LETTER, - G_UNICODE_MODIFIER_LETTER, G_UNICODE_MODIFIER_LETTER, - G_UNICODE_MODIFIER_LETTER, G_UNICODE_MODIFIER_LETTER, - G_UNICODE_MODIFIER_LETTER, G_UNICODE_MODIFIER_LETTER, - G_UNICODE_MODIFIER_LETTER, G_UNICODE_MODIFIER_LETTER, - G_UNICODE_MODIFIER_LETTER, G_UNICODE_MODIFIER_LETTER, - G_UNICODE_MODIFIER_LETTER, G_UNICODE_MODIFIER_LETTER, - G_UNICODE_MODIFIER_LETTER, G_UNICODE_MODIFIER_LETTER, - G_UNICODE_MODIFIER_LETTER, G_UNICODE_MODIFIER_LETTER, - G_UNICODE_MODIFIER_LETTER, G_UNICODE_MODIFIER_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_MODIFIER_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_MODIFIER_LETTER, - G_UNICODE_MODIFIER_LETTER, G_UNICODE_MODIFIER_LETTER, - G_UNICODE_MODIFIER_LETTER, G_UNICODE_MODIFIER_LETTER, - G_UNICODE_MODIFIER_LETTER, G_UNICODE_MODIFIER_LETTER, - G_UNICODE_MODIFIER_LETTER, G_UNICODE_MODIFIER_LETTER, - G_UNICODE_MODIFIER_LETTER, G_UNICODE_MODIFIER_LETTER, - G_UNICODE_MODIFIER_LETTER, G_UNICODE_MODIFIER_LETTER, - G_UNICODE_MODIFIER_LETTER, G_UNICODE_MODIFIER_LETTER, - G_UNICODE_MODIFIER_LETTER, G_UNICODE_MODIFIER_LETTER, - G_UNICODE_MODIFIER_LETTER, G_UNICODE_MODIFIER_LETTER, - G_UNICODE_MODIFIER_LETTER, G_UNICODE_MODIFIER_LETTER, - G_UNICODE_MODIFIER_LETTER, G_UNICODE_MODIFIER_LETTER, - G_UNICODE_MODIFIER_LETTER, G_UNICODE_MODIFIER_LETTER, - G_UNICODE_MODIFIER_LETTER, G_UNICODE_MODIFIER_LETTER, - G_UNICODE_MODIFIER_LETTER, G_UNICODE_MODIFIER_LETTER, - G_UNICODE_MODIFIER_LETTER, G_UNICODE_MODIFIER_LETTER, - G_UNICODE_MODIFIER_LETTER, G_UNICODE_MODIFIER_LETTER, - G_UNICODE_MODIFIER_LETTER, G_UNICODE_MODIFIER_LETTER, - G_UNICODE_MODIFIER_LETTER, G_UNICODE_MODIFIER_LETTER, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK - }, - { /* page 30, index 28 */ - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER - }, - { /* page 31, index 29 */ - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UNASSIGNED, G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UNASSIGNED, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UNASSIGNED, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UNASSIGNED, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_TITLECASE_LETTER, G_UNICODE_TITLECASE_LETTER, - G_UNICODE_TITLECASE_LETTER, G_UNICODE_TITLECASE_LETTER, - G_UNICODE_TITLECASE_LETTER, G_UNICODE_TITLECASE_LETTER, - G_UNICODE_TITLECASE_LETTER, G_UNICODE_TITLECASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_TITLECASE_LETTER, G_UNICODE_TITLECASE_LETTER, - G_UNICODE_TITLECASE_LETTER, G_UNICODE_TITLECASE_LETTER, - G_UNICODE_TITLECASE_LETTER, G_UNICODE_TITLECASE_LETTER, - G_UNICODE_TITLECASE_LETTER, G_UNICODE_TITLECASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_TITLECASE_LETTER, G_UNICODE_TITLECASE_LETTER, - G_UNICODE_TITLECASE_LETTER, G_UNICODE_TITLECASE_LETTER, - G_UNICODE_TITLECASE_LETTER, G_UNICODE_TITLECASE_LETTER, - G_UNICODE_TITLECASE_LETTER, G_UNICODE_TITLECASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_UNASSIGNED, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_TITLECASE_LETTER, G_UNICODE_MODIFIER_SYMBOL, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_MODIFIER_SYMBOL, - G_UNICODE_MODIFIER_SYMBOL, G_UNICODE_MODIFIER_SYMBOL, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_UNASSIGNED, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_TITLECASE_LETTER, G_UNICODE_MODIFIER_SYMBOL, - G_UNICODE_MODIFIER_SYMBOL, G_UNICODE_MODIFIER_SYMBOL, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UNASSIGNED, - G_UNICODE_MODIFIER_SYMBOL, G_UNICODE_MODIFIER_SYMBOL, - G_UNICODE_MODIFIER_SYMBOL, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_MODIFIER_SYMBOL, G_UNICODE_MODIFIER_SYMBOL, - G_UNICODE_MODIFIER_SYMBOL, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_UNASSIGNED, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_TITLECASE_LETTER, G_UNICODE_MODIFIER_SYMBOL, - G_UNICODE_MODIFIER_SYMBOL, G_UNICODE_UNASSIGNED - }, - { /* page 32, index 30 */ - G_UNICODE_SPACE_SEPARATOR, G_UNICODE_SPACE_SEPARATOR, - G_UNICODE_SPACE_SEPARATOR, G_UNICODE_SPACE_SEPARATOR, - G_UNICODE_SPACE_SEPARATOR, G_UNICODE_SPACE_SEPARATOR, - G_UNICODE_SPACE_SEPARATOR, G_UNICODE_SPACE_SEPARATOR, - G_UNICODE_SPACE_SEPARATOR, G_UNICODE_SPACE_SEPARATOR, - G_UNICODE_SPACE_SEPARATOR, G_UNICODE_FORMAT, G_UNICODE_FORMAT, - G_UNICODE_FORMAT, G_UNICODE_FORMAT, G_UNICODE_FORMAT, - G_UNICODE_DASH_PUNCTUATION, G_UNICODE_DASH_PUNCTUATION, - G_UNICODE_DASH_PUNCTUATION, G_UNICODE_DASH_PUNCTUATION, - G_UNICODE_DASH_PUNCTUATION, G_UNICODE_DASH_PUNCTUATION, - G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_OTHER_PUNCTUATION, - G_UNICODE_INITIAL_PUNCTUATION, G_UNICODE_FINAL_PUNCTUATION, - G_UNICODE_OPEN_PUNCTUATION, G_UNICODE_INITIAL_PUNCTUATION, - G_UNICODE_INITIAL_PUNCTUATION, G_UNICODE_FINAL_PUNCTUATION, - G_UNICODE_OPEN_PUNCTUATION, G_UNICODE_INITIAL_PUNCTUATION, - G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_OTHER_PUNCTUATION, - G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_OTHER_PUNCTUATION, - G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_OTHER_PUNCTUATION, - G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_OTHER_PUNCTUATION, - G_UNICODE_LINE_SEPARATOR, G_UNICODE_PARAGRAPH_SEPARATOR, - G_UNICODE_FORMAT, G_UNICODE_FORMAT, G_UNICODE_FORMAT, G_UNICODE_FORMAT, - G_UNICODE_FORMAT, G_UNICODE_SPACE_SEPARATOR, G_UNICODE_OTHER_PUNCTUATION, - G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_OTHER_PUNCTUATION, - G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_OTHER_PUNCTUATION, - G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_OTHER_PUNCTUATION, - G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_OTHER_PUNCTUATION, - G_UNICODE_INITIAL_PUNCTUATION, G_UNICODE_FINAL_PUNCTUATION, - G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_OTHER_PUNCTUATION, - G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_OTHER_PUNCTUATION, - G_UNICODE_CONNECT_PUNCTUATION, G_UNICODE_CONNECT_PUNCTUATION, - G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_OTHER_PUNCTUATION, - G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_MATH_SYMBOL, - G_UNICODE_OPEN_PUNCTUATION, G_UNICODE_CLOSE_PUNCTUATION, - G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_OTHER_PUNCTUATION, - G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_OTHER_PUNCTUATION, - G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_OTHER_PUNCTUATION, - G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_OTHER_PUNCTUATION, - G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_OTHER_PUNCTUATION, - G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_MATH_SYMBOL, - G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_CONNECT_PUNCTUATION, - G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_OTHER_PUNCTUATION, - G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_OTHER_PUNCTUATION, - G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_OTHER_PUNCTUATION, - G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_OTHER_PUNCTUATION, - G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_OTHER_PUNCTUATION, - G_UNICODE_SPACE_SEPARATOR, G_UNICODE_FORMAT, G_UNICODE_FORMAT, - G_UNICODE_FORMAT, G_UNICODE_FORMAT, G_UNICODE_FORMAT, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_FORMAT, - G_UNICODE_FORMAT, G_UNICODE_FORMAT, G_UNICODE_FORMAT, G_UNICODE_FORMAT, - G_UNICODE_FORMAT, G_UNICODE_OTHER_NUMBER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_OTHER_NUMBER, - G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, - G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, G_UNICODE_MATH_SYMBOL, - G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, G_UNICODE_OPEN_PUNCTUATION, - G_UNICODE_CLOSE_PUNCTUATION, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, - G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, - G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, - G_UNICODE_OTHER_NUMBER, G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, - G_UNICODE_MATH_SYMBOL, G_UNICODE_OPEN_PUNCTUATION, - G_UNICODE_CLOSE_PUNCTUATION, G_UNICODE_UNASSIGNED, - G_UNICODE_MODIFIER_LETTER, G_UNICODE_MODIFIER_LETTER, - G_UNICODE_MODIFIER_LETTER, G_UNICODE_MODIFIER_LETTER, - G_UNICODE_MODIFIER_LETTER, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_CURRENCY_SYMBOL, G_UNICODE_CURRENCY_SYMBOL, - G_UNICODE_CURRENCY_SYMBOL, G_UNICODE_CURRENCY_SYMBOL, - G_UNICODE_CURRENCY_SYMBOL, G_UNICODE_CURRENCY_SYMBOL, - G_UNICODE_CURRENCY_SYMBOL, G_UNICODE_CURRENCY_SYMBOL, - G_UNICODE_CURRENCY_SYMBOL, G_UNICODE_CURRENCY_SYMBOL, - G_UNICODE_CURRENCY_SYMBOL, G_UNICODE_CURRENCY_SYMBOL, - G_UNICODE_CURRENCY_SYMBOL, G_UNICODE_CURRENCY_SYMBOL, - G_UNICODE_CURRENCY_SYMBOL, G_UNICODE_CURRENCY_SYMBOL, - G_UNICODE_CURRENCY_SYMBOL, G_UNICODE_CURRENCY_SYMBOL, - G_UNICODE_CURRENCY_SYMBOL, G_UNICODE_CURRENCY_SYMBOL, - G_UNICODE_CURRENCY_SYMBOL, G_UNICODE_CURRENCY_SYMBOL, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_ENCLOSING_MARK, G_UNICODE_ENCLOSING_MARK, - G_UNICODE_ENCLOSING_MARK, G_UNICODE_ENCLOSING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_ENCLOSING_MARK, - G_UNICODE_ENCLOSING_MARK, G_UNICODE_ENCLOSING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED - }, - { /* page 33, index 31 */ - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, - G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_MATH_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_OTHER_SYMBOL, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_OTHER_NUMBER, - G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, - G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, - G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, - G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, - G_UNICODE_LETTER_NUMBER, G_UNICODE_LETTER_NUMBER, - G_UNICODE_LETTER_NUMBER, G_UNICODE_LETTER_NUMBER, - G_UNICODE_LETTER_NUMBER, G_UNICODE_LETTER_NUMBER, - G_UNICODE_LETTER_NUMBER, G_UNICODE_LETTER_NUMBER, - G_UNICODE_LETTER_NUMBER, G_UNICODE_LETTER_NUMBER, - G_UNICODE_LETTER_NUMBER, G_UNICODE_LETTER_NUMBER, - G_UNICODE_LETTER_NUMBER, G_UNICODE_LETTER_NUMBER, - G_UNICODE_LETTER_NUMBER, G_UNICODE_LETTER_NUMBER, - G_UNICODE_LETTER_NUMBER, G_UNICODE_LETTER_NUMBER, - G_UNICODE_LETTER_NUMBER, G_UNICODE_LETTER_NUMBER, - G_UNICODE_LETTER_NUMBER, G_UNICODE_LETTER_NUMBER, - G_UNICODE_LETTER_NUMBER, G_UNICODE_LETTER_NUMBER, - G_UNICODE_LETTER_NUMBER, G_UNICODE_LETTER_NUMBER, - G_UNICODE_LETTER_NUMBER, G_UNICODE_LETTER_NUMBER, - G_UNICODE_LETTER_NUMBER, G_UNICODE_LETTER_NUMBER, - G_UNICODE_LETTER_NUMBER, G_UNICODE_LETTER_NUMBER, - G_UNICODE_LETTER_NUMBER, G_UNICODE_LETTER_NUMBER, - G_UNICODE_LETTER_NUMBER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LETTER_NUMBER, - G_UNICODE_LETTER_NUMBER, G_UNICODE_LETTER_NUMBER, - G_UNICODE_LETTER_NUMBER, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_MATH_SYMBOL, - G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, - G_UNICODE_MATH_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_MATH_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_MATH_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_MATH_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_MATH_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_MATH_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_MATH_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, - G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, - G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, - G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL - }, - { /* page 35, index 32 */ - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_MATH_SYMBOL, - G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_MATH_SYMBOL, - G_UNICODE_MATH_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OPEN_PUNCTUATION, G_UNICODE_CLOSE_PUNCTUATION, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_MATH_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, - G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, - G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, - G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, - G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, - G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, - G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, - G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, - G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, - G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED - }, - { /* page 36, index 33 */ - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, - G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, - G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, - G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, - G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, - G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, - G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, - G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, - G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, - G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, - G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, - G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, - G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, - G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, - G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, - G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, - G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, - G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, - G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, - G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, - G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, - G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, - G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, - G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, - G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, - G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, - G_UNICODE_OTHER_NUMBER - }, - { /* page 37, index 34 */ - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_MATH_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_MATH_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_MATH_SYMBOL, - G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, - G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, - G_UNICODE_MATH_SYMBOL - }, - { /* page 38, index 35 */ - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_MATH_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED - }, - { /* page 39, index 36 */ - G_UNICODE_UNASSIGNED, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_UNASSIGNED, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_UNASSIGNED, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_UNASSIGNED, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_UNASSIGNED, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_UNASSIGNED, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OPEN_PUNCTUATION, G_UNICODE_CLOSE_PUNCTUATION, - G_UNICODE_OPEN_PUNCTUATION, G_UNICODE_CLOSE_PUNCTUATION, - G_UNICODE_OPEN_PUNCTUATION, G_UNICODE_CLOSE_PUNCTUATION, - G_UNICODE_OPEN_PUNCTUATION, G_UNICODE_CLOSE_PUNCTUATION, - G_UNICODE_OPEN_PUNCTUATION, G_UNICODE_CLOSE_PUNCTUATION, - G_UNICODE_OPEN_PUNCTUATION, G_UNICODE_CLOSE_PUNCTUATION, - G_UNICODE_OPEN_PUNCTUATION, G_UNICODE_CLOSE_PUNCTUATION, - G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, - G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, - G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, - G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, - G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, - G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, - G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, - G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, - G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, - G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_UNASSIGNED, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_UNASSIGNED, G_UNICODE_MATH_SYMBOL, - G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, - G_UNICODE_MATH_SYMBOL, G_UNICODE_OPEN_PUNCTUATION, - G_UNICODE_CLOSE_PUNCTUATION, G_UNICODE_MATH_SYMBOL, - G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, - G_UNICODE_UNASSIGNED, G_UNICODE_MATH_SYMBOL, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_MATH_SYMBOL, - G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, - G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, - G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, - G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, - G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, - G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, - G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, - G_UNICODE_OPEN_PUNCTUATION, G_UNICODE_CLOSE_PUNCTUATION, - G_UNICODE_OPEN_PUNCTUATION, G_UNICODE_CLOSE_PUNCTUATION, - G_UNICODE_OPEN_PUNCTUATION, G_UNICODE_CLOSE_PUNCTUATION, - G_UNICODE_OPEN_PUNCTUATION, G_UNICODE_CLOSE_PUNCTUATION, - G_UNICODE_OPEN_PUNCTUATION, G_UNICODE_CLOSE_PUNCTUATION, - G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, - G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, - G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, - G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, - G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, - G_UNICODE_MATH_SYMBOL - }, - { /* page 41, index 37 */ - G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, - G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, - G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, - G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, - G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, - G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, - G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, - G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, - G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, - G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, - G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, - G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, - G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, - G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, - G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, - G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, - G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, - G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, - G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, - G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, - G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, - G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, - G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, - G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, - G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, - G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, - G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, - G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, - G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, - G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, - G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, - G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, - G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, - G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, - G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, - G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, - G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, - G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, - G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, - G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, - G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, - G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, - G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, - G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, G_UNICODE_OPEN_PUNCTUATION, - G_UNICODE_CLOSE_PUNCTUATION, G_UNICODE_OPEN_PUNCTUATION, - G_UNICODE_CLOSE_PUNCTUATION, G_UNICODE_OPEN_PUNCTUATION, - G_UNICODE_CLOSE_PUNCTUATION, G_UNICODE_OPEN_PUNCTUATION, - G_UNICODE_CLOSE_PUNCTUATION, G_UNICODE_OPEN_PUNCTUATION, - G_UNICODE_CLOSE_PUNCTUATION, G_UNICODE_OPEN_PUNCTUATION, - G_UNICODE_CLOSE_PUNCTUATION, G_UNICODE_OPEN_PUNCTUATION, - G_UNICODE_CLOSE_PUNCTUATION, G_UNICODE_OPEN_PUNCTUATION, - G_UNICODE_CLOSE_PUNCTUATION, G_UNICODE_OPEN_PUNCTUATION, - G_UNICODE_CLOSE_PUNCTUATION, G_UNICODE_OPEN_PUNCTUATION, - G_UNICODE_CLOSE_PUNCTUATION, G_UNICODE_OPEN_PUNCTUATION, - G_UNICODE_CLOSE_PUNCTUATION, G_UNICODE_MATH_SYMBOL, - G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, - G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, - G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, - G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, - G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, - G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, - G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, - G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, - G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, - G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, - G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, - G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, - G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, - G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, - G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, - G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, - G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, - G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, - G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, - G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, - G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, G_UNICODE_OPEN_PUNCTUATION, - G_UNICODE_CLOSE_PUNCTUATION, G_UNICODE_OPEN_PUNCTUATION, - G_UNICODE_CLOSE_PUNCTUATION, G_UNICODE_MATH_SYMBOL, - G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, - G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, - G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, - G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, - G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, - G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, - G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, - G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, - G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, - G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, - G_UNICODE_MATH_SYMBOL, G_UNICODE_OPEN_PUNCTUATION, - G_UNICODE_CLOSE_PUNCTUATION, G_UNICODE_MATH_SYMBOL, - G_UNICODE_MATH_SYMBOL - }, - { /* page 43, index 38 */ - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, - G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, - G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, - G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, - G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, - G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, - G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_MATH_SYMBOL, - G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, - G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED - }, - { /* page 44, index 39 */ - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UNASSIGNED, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_UNASSIGNED, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UNASSIGNED, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_MODIFIER_LETTER, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_OTHER_PUNCTUATION, - G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_OTHER_PUNCTUATION, - G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_OTHER_NUMBER, - G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_OTHER_PUNCTUATION - }, - { /* page 45, index 40 */ - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_MODIFIER_LETTER, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_UNASSIGNED, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_UNASSIGNED, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_UNASSIGNED, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_UNASSIGNED, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_UNASSIGNED, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_UNASSIGNED, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_UNASSIGNED, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_UNASSIGNED, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK - }, - { /* page 46, index 41 */ - G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_OTHER_PUNCTUATION, - G_UNICODE_INITIAL_PUNCTUATION, G_UNICODE_FINAL_PUNCTUATION, - G_UNICODE_INITIAL_PUNCTUATION, G_UNICODE_FINAL_PUNCTUATION, - G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_OTHER_PUNCTUATION, - G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_INITIAL_PUNCTUATION, - G_UNICODE_FINAL_PUNCTUATION, G_UNICODE_OTHER_PUNCTUATION, - G_UNICODE_INITIAL_PUNCTUATION, G_UNICODE_FINAL_PUNCTUATION, - G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_OTHER_PUNCTUATION, - G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_OTHER_PUNCTUATION, - G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_OTHER_PUNCTUATION, - G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_OTHER_PUNCTUATION, - G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_DASH_PUNCTUATION, - G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_OTHER_PUNCTUATION, - G_UNICODE_DASH_PUNCTUATION, G_UNICODE_OTHER_PUNCTUATION, - G_UNICODE_INITIAL_PUNCTUATION, G_UNICODE_FINAL_PUNCTUATION, - G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_OTHER_PUNCTUATION, - G_UNICODE_INITIAL_PUNCTUATION, G_UNICODE_FINAL_PUNCTUATION, - G_UNICODE_OPEN_PUNCTUATION, G_UNICODE_CLOSE_PUNCTUATION, - G_UNICODE_OPEN_PUNCTUATION, G_UNICODE_CLOSE_PUNCTUATION, - G_UNICODE_OPEN_PUNCTUATION, G_UNICODE_CLOSE_PUNCTUATION, - G_UNICODE_OPEN_PUNCTUATION, G_UNICODE_CLOSE_PUNCTUATION, - G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_OTHER_PUNCTUATION, - G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_OTHER_PUNCTUATION, - G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_MODIFIER_LETTER, - G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_UNASSIGNED, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED - }, - { /* page 47, index 42 */ - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED - }, - { /* page 48, index 43 */ - G_UNICODE_SPACE_SEPARATOR, G_UNICODE_OTHER_PUNCTUATION, - G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_OTHER_PUNCTUATION, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_MODIFIER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_LETTER_NUMBER, - G_UNICODE_OPEN_PUNCTUATION, G_UNICODE_CLOSE_PUNCTUATION, - G_UNICODE_OPEN_PUNCTUATION, G_UNICODE_CLOSE_PUNCTUATION, - G_UNICODE_OPEN_PUNCTUATION, G_UNICODE_CLOSE_PUNCTUATION, - G_UNICODE_OPEN_PUNCTUATION, G_UNICODE_CLOSE_PUNCTUATION, - G_UNICODE_OPEN_PUNCTUATION, G_UNICODE_CLOSE_PUNCTUATION, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OPEN_PUNCTUATION, G_UNICODE_CLOSE_PUNCTUATION, - G_UNICODE_OPEN_PUNCTUATION, G_UNICODE_CLOSE_PUNCTUATION, - G_UNICODE_OPEN_PUNCTUATION, G_UNICODE_CLOSE_PUNCTUATION, - G_UNICODE_OPEN_PUNCTUATION, G_UNICODE_CLOSE_PUNCTUATION, - G_UNICODE_DASH_PUNCTUATION, G_UNICODE_OPEN_PUNCTUATION, - G_UNICODE_CLOSE_PUNCTUATION, G_UNICODE_CLOSE_PUNCTUATION, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_LETTER_NUMBER, G_UNICODE_LETTER_NUMBER, - G_UNICODE_LETTER_NUMBER, G_UNICODE_LETTER_NUMBER, - G_UNICODE_LETTER_NUMBER, G_UNICODE_LETTER_NUMBER, - G_UNICODE_LETTER_NUMBER, G_UNICODE_LETTER_NUMBER, - G_UNICODE_LETTER_NUMBER, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_DASH_PUNCTUATION, - G_UNICODE_MODIFIER_LETTER, G_UNICODE_MODIFIER_LETTER, - G_UNICODE_MODIFIER_LETTER, G_UNICODE_MODIFIER_LETTER, - G_UNICODE_MODIFIER_LETTER, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_LETTER_NUMBER, G_UNICODE_LETTER_NUMBER, - G_UNICODE_LETTER_NUMBER, G_UNICODE_MODIFIER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_PUNCTUATION, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_UNASSIGNED, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_MODIFIER_SYMBOL, - G_UNICODE_MODIFIER_SYMBOL, G_UNICODE_MODIFIER_LETTER, - G_UNICODE_MODIFIER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_DASH_PUNCTUATION, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_MODIFIER_LETTER, - G_UNICODE_MODIFIER_LETTER, G_UNICODE_MODIFIER_LETTER, - G_UNICODE_OTHER_LETTER - }, - { /* page 49, index 44 */ - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_UNASSIGNED, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_NUMBER, - G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER - }, - { /* page 50, index 45 */ - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_UNASSIGNED, G_UNICODE_OTHER_NUMBER, - G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, - G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, - G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, - G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, - G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, - G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, - G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_NUMBER, - G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, - G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, - G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, - G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, - G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, - G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, - G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_UNASSIGNED - }, - { /* page 77, index 46 */ - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL - }, - { /* page 159, index 47 */ - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED - }, - { /* page 160, index 48 */ - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_MODIFIER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER - }, - { /* page 164, index 49 */ - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED - }, - { /* page 166, index 50 */ - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_MODIFIER_LETTER, G_UNICODE_OTHER_PUNCTUATION, - G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_OTHER_PUNCTUATION, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_DECIMAL_NUMBER, - G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER, - G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER, - G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER, - G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER, - G_UNICODE_DECIMAL_NUMBER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_ENCLOSING_MARK, G_UNICODE_ENCLOSING_MARK, - G_UNICODE_ENCLOSING_MARK, G_UNICODE_OTHER_PUNCTUATION, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_OTHER_PUNCTUATION, - G_UNICODE_MODIFIER_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED - }, - { /* page 167, index 51 */ - G_UNICODE_MODIFIER_SYMBOL, G_UNICODE_MODIFIER_SYMBOL, - G_UNICODE_MODIFIER_SYMBOL, G_UNICODE_MODIFIER_SYMBOL, - G_UNICODE_MODIFIER_SYMBOL, G_UNICODE_MODIFIER_SYMBOL, - G_UNICODE_MODIFIER_SYMBOL, G_UNICODE_MODIFIER_SYMBOL, - G_UNICODE_MODIFIER_SYMBOL, G_UNICODE_MODIFIER_SYMBOL, - G_UNICODE_MODIFIER_SYMBOL, G_UNICODE_MODIFIER_SYMBOL, - G_UNICODE_MODIFIER_SYMBOL, G_UNICODE_MODIFIER_SYMBOL, - G_UNICODE_MODIFIER_SYMBOL, G_UNICODE_MODIFIER_SYMBOL, - G_UNICODE_MODIFIER_SYMBOL, G_UNICODE_MODIFIER_SYMBOL, - G_UNICODE_MODIFIER_SYMBOL, G_UNICODE_MODIFIER_SYMBOL, - G_UNICODE_MODIFIER_SYMBOL, G_UNICODE_MODIFIER_SYMBOL, - G_UNICODE_MODIFIER_SYMBOL, G_UNICODE_MODIFIER_LETTER, - G_UNICODE_MODIFIER_LETTER, G_UNICODE_MODIFIER_LETTER, - G_UNICODE_MODIFIER_LETTER, G_UNICODE_MODIFIER_LETTER, - G_UNICODE_MODIFIER_LETTER, G_UNICODE_MODIFIER_LETTER, - G_UNICODE_MODIFIER_LETTER, G_UNICODE_MODIFIER_LETTER, - G_UNICODE_MODIFIER_SYMBOL, G_UNICODE_MODIFIER_SYMBOL, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_MODIFIER_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_MODIFIER_LETTER, G_UNICODE_MODIFIER_SYMBOL, - G_UNICODE_MODIFIER_SYMBOL, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER - }, - { /* page 168, index 52 */ - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_COMBINING_MARK, - G_UNICODE_COMBINING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_COMBINING_MARK, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_PUNCTUATION, - G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_OTHER_PUNCTUATION, - G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_COMBINING_MARK, G_UNICODE_COMBINING_MARK, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_COMBINING_MARK, - G_UNICODE_COMBINING_MARK, G_UNICODE_COMBINING_MARK, - G_UNICODE_COMBINING_MARK, G_UNICODE_COMBINING_MARK, - G_UNICODE_COMBINING_MARK, G_UNICODE_COMBINING_MARK, - G_UNICODE_COMBINING_MARK, G_UNICODE_COMBINING_MARK, - G_UNICODE_COMBINING_MARK, G_UNICODE_COMBINING_MARK, - G_UNICODE_COMBINING_MARK, G_UNICODE_COMBINING_MARK, - G_UNICODE_COMBINING_MARK, G_UNICODE_COMBINING_MARK, - G_UNICODE_COMBINING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_OTHER_PUNCTUATION, - G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER, - G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER, - G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER, - G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER, - G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED - }, - { /* page 169, index 53 */ - G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER, - G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER, - G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER, - G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER, - G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_OTHER_PUNCTUATION, - G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_COMBINING_MARK, G_UNICODE_COMBINING_MARK, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED - }, - { /* page 170, index 54 */ - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_COMBINING_MARK, G_UNICODE_COMBINING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_COMBINING_MARK, G_UNICODE_COMBINING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_COMBINING_MARK, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER, - G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER, - G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER, - G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER, - G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_OTHER_PUNCTUATION, - G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_OTHER_PUNCTUATION, - G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED - }, - { /* page 215, index 55 */ - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED - }, - { /* page 250, index 56 */ - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED - }, - { /* page 251, index 57 */ - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_OTHER_LETTER, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_MATH_SYMBOL, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_UNASSIGNED, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_UNASSIGNED, - G_UNICODE_OTHER_LETTER, G_UNICODE_UNASSIGNED, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_UNASSIGNED, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_UNASSIGNED, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER - }, - { /* page 253, index 58 */ - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OPEN_PUNCTUATION, G_UNICODE_CLOSE_PUNCTUATION, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_CURRENCY_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED - }, - { /* page 254, index 59 */ - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_OTHER_PUNCTUATION, - G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_OTHER_PUNCTUATION, - G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_OTHER_PUNCTUATION, - G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_OPEN_PUNCTUATION, - G_UNICODE_CLOSE_PUNCTUATION, G_UNICODE_OTHER_PUNCTUATION, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_OTHER_PUNCTUATION, - G_UNICODE_DASH_PUNCTUATION, G_UNICODE_DASH_PUNCTUATION, - G_UNICODE_CONNECT_PUNCTUATION, G_UNICODE_CONNECT_PUNCTUATION, - G_UNICODE_OPEN_PUNCTUATION, G_UNICODE_CLOSE_PUNCTUATION, - G_UNICODE_OPEN_PUNCTUATION, G_UNICODE_CLOSE_PUNCTUATION, - G_UNICODE_OPEN_PUNCTUATION, G_UNICODE_CLOSE_PUNCTUATION, - G_UNICODE_OPEN_PUNCTUATION, G_UNICODE_CLOSE_PUNCTUATION, - G_UNICODE_OPEN_PUNCTUATION, G_UNICODE_CLOSE_PUNCTUATION, - G_UNICODE_OPEN_PUNCTUATION, G_UNICODE_CLOSE_PUNCTUATION, - G_UNICODE_OPEN_PUNCTUATION, G_UNICODE_CLOSE_PUNCTUATION, - G_UNICODE_OPEN_PUNCTUATION, G_UNICODE_CLOSE_PUNCTUATION, - G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_OTHER_PUNCTUATION, - G_UNICODE_OPEN_PUNCTUATION, G_UNICODE_CLOSE_PUNCTUATION, - G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_OTHER_PUNCTUATION, - G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_OTHER_PUNCTUATION, - G_UNICODE_CONNECT_PUNCTUATION, G_UNICODE_CONNECT_PUNCTUATION, - G_UNICODE_CONNECT_PUNCTUATION, G_UNICODE_OTHER_PUNCTUATION, - G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_OTHER_PUNCTUATION, - G_UNICODE_UNASSIGNED, G_UNICODE_OTHER_PUNCTUATION, - G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_OTHER_PUNCTUATION, - G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_DASH_PUNCTUATION, - G_UNICODE_OPEN_PUNCTUATION, G_UNICODE_CLOSE_PUNCTUATION, - G_UNICODE_OPEN_PUNCTUATION, G_UNICODE_CLOSE_PUNCTUATION, - G_UNICODE_OPEN_PUNCTUATION, G_UNICODE_CLOSE_PUNCTUATION, - G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_OTHER_PUNCTUATION, - G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_MATH_SYMBOL, - G_UNICODE_DASH_PUNCTUATION, G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, - G_UNICODE_MATH_SYMBOL, G_UNICODE_UNASSIGNED, G_UNICODE_OTHER_PUNCTUATION, - G_UNICODE_CURRENCY_SYMBOL, G_UNICODE_OTHER_PUNCTUATION, - G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_UNASSIGNED, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_FORMAT - }, - { /* page 255, index 60 */ - G_UNICODE_UNASSIGNED, G_UNICODE_OTHER_PUNCTUATION, - G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_OTHER_PUNCTUATION, - G_UNICODE_CURRENCY_SYMBOL, G_UNICODE_OTHER_PUNCTUATION, - G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_OTHER_PUNCTUATION, - G_UNICODE_OPEN_PUNCTUATION, G_UNICODE_CLOSE_PUNCTUATION, - G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_MATH_SYMBOL, - G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_DASH_PUNCTUATION, - G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_OTHER_PUNCTUATION, - G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER, - G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER, - G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER, - G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER, - G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER, - G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_OTHER_PUNCTUATION, - G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, - G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_OTHER_PUNCTUATION, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_OPEN_PUNCTUATION, G_UNICODE_OTHER_PUNCTUATION, - G_UNICODE_CLOSE_PUNCTUATION, G_UNICODE_MODIFIER_SYMBOL, - G_UNICODE_CONNECT_PUNCTUATION, G_UNICODE_MODIFIER_SYMBOL, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_OPEN_PUNCTUATION, G_UNICODE_MATH_SYMBOL, - G_UNICODE_CLOSE_PUNCTUATION, G_UNICODE_MATH_SYMBOL, - G_UNICODE_OPEN_PUNCTUATION, G_UNICODE_CLOSE_PUNCTUATION, - G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_OPEN_PUNCTUATION, - G_UNICODE_CLOSE_PUNCTUATION, G_UNICODE_OTHER_PUNCTUATION, - G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_MODIFIER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_MODIFIER_LETTER, G_UNICODE_MODIFIER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_CURRENCY_SYMBOL, - G_UNICODE_CURRENCY_SYMBOL, G_UNICODE_MATH_SYMBOL, - G_UNICODE_MODIFIER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_CURRENCY_SYMBOL, G_UNICODE_CURRENCY_SYMBOL, - G_UNICODE_UNASSIGNED, G_UNICODE_OTHER_SYMBOL, G_UNICODE_MATH_SYMBOL, - G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_FORMAT, G_UNICODE_FORMAT, G_UNICODE_FORMAT, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED - }, - { /* page 256, index 61 */ - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_UNASSIGNED, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_UNASSIGNED, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_UNASSIGNED, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_UNASSIGNED, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED - }, - { /* page 257, index 62 */ - G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_OTHER_PUNCTUATION, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_OTHER_NUMBER, - G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, - G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, - G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, - G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, - G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, - G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, - G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, - G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, - G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, - G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, - G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, - G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, - G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, - G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, - G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_LETTER_NUMBER, - G_UNICODE_LETTER_NUMBER, G_UNICODE_LETTER_NUMBER, - G_UNICODE_LETTER_NUMBER, G_UNICODE_LETTER_NUMBER, - G_UNICODE_LETTER_NUMBER, G_UNICODE_LETTER_NUMBER, - G_UNICODE_LETTER_NUMBER, G_UNICODE_LETTER_NUMBER, - G_UNICODE_LETTER_NUMBER, G_UNICODE_LETTER_NUMBER, - G_UNICODE_LETTER_NUMBER, G_UNICODE_LETTER_NUMBER, - G_UNICODE_LETTER_NUMBER, G_UNICODE_LETTER_NUMBER, - G_UNICODE_LETTER_NUMBER, G_UNICODE_LETTER_NUMBER, - G_UNICODE_LETTER_NUMBER, G_UNICODE_LETTER_NUMBER, - G_UNICODE_LETTER_NUMBER, G_UNICODE_LETTER_NUMBER, - G_UNICODE_LETTER_NUMBER, G_UNICODE_LETTER_NUMBER, - G_UNICODE_LETTER_NUMBER, G_UNICODE_LETTER_NUMBER, - G_UNICODE_LETTER_NUMBER, G_UNICODE_LETTER_NUMBER, - G_UNICODE_LETTER_NUMBER, G_UNICODE_LETTER_NUMBER, - G_UNICODE_LETTER_NUMBER, G_UNICODE_LETTER_NUMBER, - G_UNICODE_LETTER_NUMBER, G_UNICODE_LETTER_NUMBER, - G_UNICODE_LETTER_NUMBER, G_UNICODE_LETTER_NUMBER, - G_UNICODE_LETTER_NUMBER, G_UNICODE_LETTER_NUMBER, - G_UNICODE_LETTER_NUMBER, G_UNICODE_LETTER_NUMBER, - G_UNICODE_LETTER_NUMBER, G_UNICODE_LETTER_NUMBER, - G_UNICODE_LETTER_NUMBER, G_UNICODE_LETTER_NUMBER, - G_UNICODE_LETTER_NUMBER, G_UNICODE_LETTER_NUMBER, - G_UNICODE_LETTER_NUMBER, G_UNICODE_LETTER_NUMBER, - G_UNICODE_LETTER_NUMBER, G_UNICODE_LETTER_NUMBER, - G_UNICODE_LETTER_NUMBER, G_UNICODE_LETTER_NUMBER, - G_UNICODE_LETTER_NUMBER, G_UNICODE_LETTER_NUMBER, G_UNICODE_OTHER_NUMBER, - G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_NUMBER, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED - }, - { /* page 258, index 63 */ - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED - }, - { /* page 259, index 64 */ - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_UNASSIGNED, G_UNICODE_OTHER_NUMBER, - G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_LETTER_NUMBER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_LETTER_NUMBER, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_UNASSIGNED, - G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_LETTER_NUMBER, - G_UNICODE_LETTER_NUMBER, G_UNICODE_LETTER_NUMBER, - G_UNICODE_LETTER_NUMBER, G_UNICODE_LETTER_NUMBER, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED - }, - { /* page 260, index 65 */ - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_DECIMAL_NUMBER, - G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER, - G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER, - G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER, - G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER, - G_UNICODE_DECIMAL_NUMBER, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED - }, - { /* page 264, index 66 */ - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_OTHER_LETTER, - G_UNICODE_UNASSIGNED, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_UNASSIGNED, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_OTHER_LETTER, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_OTHER_LETTER, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED - }, - { /* page 265, index 67 */ - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, - G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_OTHER_PUNCTUATION, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED - }, - { /* page 266, index 68 */ - G_UNICODE_OTHER_LETTER, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_UNASSIGNED, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_UNASSIGNED, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_UNASSIGNED, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_NON_SPACING_MARK, G_UNICODE_OTHER_NUMBER, - G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, - G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, - G_UNICODE_OTHER_NUMBER, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_OTHER_PUNCTUATION, - G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_OTHER_PUNCTUATION, - G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_OTHER_PUNCTUATION, - G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_OTHER_PUNCTUATION, - G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED - }, - { /* page 291, index 69 */ - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED - }, - { /* page 292, index 70 */ - G_UNICODE_LETTER_NUMBER, G_UNICODE_LETTER_NUMBER, - G_UNICODE_LETTER_NUMBER, G_UNICODE_LETTER_NUMBER, - G_UNICODE_LETTER_NUMBER, G_UNICODE_LETTER_NUMBER, - G_UNICODE_LETTER_NUMBER, G_UNICODE_LETTER_NUMBER, - G_UNICODE_LETTER_NUMBER, G_UNICODE_LETTER_NUMBER, - G_UNICODE_LETTER_NUMBER, G_UNICODE_LETTER_NUMBER, - G_UNICODE_LETTER_NUMBER, G_UNICODE_LETTER_NUMBER, - G_UNICODE_LETTER_NUMBER, G_UNICODE_LETTER_NUMBER, - G_UNICODE_LETTER_NUMBER, G_UNICODE_LETTER_NUMBER, - G_UNICODE_LETTER_NUMBER, G_UNICODE_LETTER_NUMBER, - G_UNICODE_LETTER_NUMBER, G_UNICODE_LETTER_NUMBER, - G_UNICODE_LETTER_NUMBER, G_UNICODE_LETTER_NUMBER, - G_UNICODE_LETTER_NUMBER, G_UNICODE_LETTER_NUMBER, - G_UNICODE_LETTER_NUMBER, G_UNICODE_LETTER_NUMBER, - G_UNICODE_LETTER_NUMBER, G_UNICODE_LETTER_NUMBER, - G_UNICODE_LETTER_NUMBER, G_UNICODE_LETTER_NUMBER, - G_UNICODE_LETTER_NUMBER, G_UNICODE_LETTER_NUMBER, - G_UNICODE_LETTER_NUMBER, G_UNICODE_LETTER_NUMBER, - G_UNICODE_LETTER_NUMBER, G_UNICODE_LETTER_NUMBER, - G_UNICODE_LETTER_NUMBER, G_UNICODE_LETTER_NUMBER, - G_UNICODE_LETTER_NUMBER, G_UNICODE_LETTER_NUMBER, - G_UNICODE_LETTER_NUMBER, G_UNICODE_LETTER_NUMBER, - G_UNICODE_LETTER_NUMBER, G_UNICODE_LETTER_NUMBER, - G_UNICODE_LETTER_NUMBER, G_UNICODE_LETTER_NUMBER, - G_UNICODE_LETTER_NUMBER, G_UNICODE_LETTER_NUMBER, - G_UNICODE_LETTER_NUMBER, G_UNICODE_LETTER_NUMBER, - G_UNICODE_LETTER_NUMBER, G_UNICODE_LETTER_NUMBER, - G_UNICODE_LETTER_NUMBER, G_UNICODE_LETTER_NUMBER, - G_UNICODE_LETTER_NUMBER, G_UNICODE_LETTER_NUMBER, - G_UNICODE_LETTER_NUMBER, G_UNICODE_LETTER_NUMBER, - G_UNICODE_LETTER_NUMBER, G_UNICODE_LETTER_NUMBER, - G_UNICODE_LETTER_NUMBER, G_UNICODE_LETTER_NUMBER, - G_UNICODE_LETTER_NUMBER, G_UNICODE_LETTER_NUMBER, - G_UNICODE_LETTER_NUMBER, G_UNICODE_LETTER_NUMBER, - G_UNICODE_LETTER_NUMBER, G_UNICODE_LETTER_NUMBER, - G_UNICODE_LETTER_NUMBER, G_UNICODE_LETTER_NUMBER, - G_UNICODE_LETTER_NUMBER, G_UNICODE_LETTER_NUMBER, - G_UNICODE_LETTER_NUMBER, G_UNICODE_LETTER_NUMBER, - G_UNICODE_LETTER_NUMBER, G_UNICODE_LETTER_NUMBER, - G_UNICODE_LETTER_NUMBER, G_UNICODE_LETTER_NUMBER, - G_UNICODE_LETTER_NUMBER, G_UNICODE_LETTER_NUMBER, - G_UNICODE_LETTER_NUMBER, G_UNICODE_LETTER_NUMBER, - G_UNICODE_LETTER_NUMBER, G_UNICODE_LETTER_NUMBER, - G_UNICODE_LETTER_NUMBER, G_UNICODE_LETTER_NUMBER, - G_UNICODE_LETTER_NUMBER, G_UNICODE_LETTER_NUMBER, - G_UNICODE_LETTER_NUMBER, G_UNICODE_LETTER_NUMBER, - G_UNICODE_LETTER_NUMBER, G_UNICODE_LETTER_NUMBER, - G_UNICODE_LETTER_NUMBER, G_UNICODE_LETTER_NUMBER, - G_UNICODE_LETTER_NUMBER, G_UNICODE_LETTER_NUMBER, - G_UNICODE_LETTER_NUMBER, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_OTHER_PUNCTUATION, - G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_OTHER_PUNCTUATION, - G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED - }, - { /* page 464, index 71 */ - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED - }, - { /* page 465, index 72 */ - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_COMBINING_MARK, - G_UNICODE_COMBINING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_COMBINING_MARK, G_UNICODE_COMBINING_MARK, - G_UNICODE_COMBINING_MARK, G_UNICODE_COMBINING_MARK, - G_UNICODE_COMBINING_MARK, G_UNICODE_COMBINING_MARK, G_UNICODE_FORMAT, - G_UNICODE_FORMAT, G_UNICODE_FORMAT, G_UNICODE_FORMAT, G_UNICODE_FORMAT, - G_UNICODE_FORMAT, G_UNICODE_FORMAT, G_UNICODE_FORMAT, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED - }, - { /* page 466, index 73 */ - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_OTHER_SYMBOL, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED - }, - { /* page 467, index 74 */ - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, - G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, - G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, - G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, - G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, - G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED - }, - { /* page 468, index 75 */ - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_UNASSIGNED, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UNASSIGNED, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UNASSIGNED, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_UNASSIGNED, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_UNASSIGNED, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_UNASSIGNED, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER - }, - { /* page 469, index 76 */ - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UNASSIGNED, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UNASSIGNED, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UNASSIGNED, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UNASSIGNED, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UNASSIGNED, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UNASSIGNED, G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UNASSIGNED, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER - }, - { /* page 470, index 77 */ - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_MATH_SYMBOL, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_MATH_SYMBOL, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_MATH_SYMBOL, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER - }, - { /* page 471, index 78 */ - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_MATH_SYMBOL, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_MATH_SYMBOL, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_MATH_SYMBOL, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_MATH_SYMBOL, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_MATH_SYMBOL, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_MATH_SYMBOL, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_MATH_SYMBOL, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_DECIMAL_NUMBER, - G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER, - G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER, - G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER, - G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER, - G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER, - G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER, - G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER, - G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER, - G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER, - G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER, - G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER, - G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER, - G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER, - G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER, - G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER, - G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER, - G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER, - G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER, - G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER, - G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER, - G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER, - G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER, - G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER, - G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER, - G_UNICODE_DECIMAL_NUMBER - }, - { /* page 496, index 79 */ - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL, - G_UNICODE_OTHER_SYMBOL, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED - }, - { /* page 678, index 80 */ - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED - }, - { /* page 762, index 81 */ - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED - }, - { /* page 3584, index 82 */ - G_UNICODE_UNASSIGNED, G_UNICODE_FORMAT, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_FORMAT, - G_UNICODE_FORMAT, G_UNICODE_FORMAT, G_UNICODE_FORMAT, G_UNICODE_FORMAT, - G_UNICODE_FORMAT, G_UNICODE_FORMAT, G_UNICODE_FORMAT, G_UNICODE_FORMAT, - G_UNICODE_FORMAT, G_UNICODE_FORMAT, G_UNICODE_FORMAT, G_UNICODE_FORMAT, - G_UNICODE_FORMAT, G_UNICODE_FORMAT, G_UNICODE_FORMAT, G_UNICODE_FORMAT, - G_UNICODE_FORMAT, G_UNICODE_FORMAT, G_UNICODE_FORMAT, G_UNICODE_FORMAT, - G_UNICODE_FORMAT, G_UNICODE_FORMAT, G_UNICODE_FORMAT, G_UNICODE_FORMAT, - G_UNICODE_FORMAT, G_UNICODE_FORMAT, G_UNICODE_FORMAT, G_UNICODE_FORMAT, - G_UNICODE_FORMAT, G_UNICODE_FORMAT, G_UNICODE_FORMAT, G_UNICODE_FORMAT, - G_UNICODE_FORMAT, G_UNICODE_FORMAT, G_UNICODE_FORMAT, G_UNICODE_FORMAT, - G_UNICODE_FORMAT, G_UNICODE_FORMAT, G_UNICODE_FORMAT, G_UNICODE_FORMAT, - G_UNICODE_FORMAT, G_UNICODE_FORMAT, G_UNICODE_FORMAT, G_UNICODE_FORMAT, - G_UNICODE_FORMAT, G_UNICODE_FORMAT, G_UNICODE_FORMAT, G_UNICODE_FORMAT, - G_UNICODE_FORMAT, G_UNICODE_FORMAT, G_UNICODE_FORMAT, G_UNICODE_FORMAT, - G_UNICODE_FORMAT, G_UNICODE_FORMAT, G_UNICODE_FORMAT, G_UNICODE_FORMAT, - G_UNICODE_FORMAT, G_UNICODE_FORMAT, G_UNICODE_FORMAT, G_UNICODE_FORMAT, - G_UNICODE_FORMAT, G_UNICODE_FORMAT, G_UNICODE_FORMAT, G_UNICODE_FORMAT, - G_UNICODE_FORMAT, G_UNICODE_FORMAT, G_UNICODE_FORMAT, G_UNICODE_FORMAT, - G_UNICODE_FORMAT, G_UNICODE_FORMAT, G_UNICODE_FORMAT, G_UNICODE_FORMAT, - G_UNICODE_FORMAT, G_UNICODE_FORMAT, G_UNICODE_FORMAT, G_UNICODE_FORMAT, - G_UNICODE_FORMAT, G_UNICODE_FORMAT, G_UNICODE_FORMAT, G_UNICODE_FORMAT, - G_UNICODE_FORMAT, G_UNICODE_FORMAT, G_UNICODE_FORMAT, G_UNICODE_FORMAT, - G_UNICODE_FORMAT, G_UNICODE_FORMAT, G_UNICODE_FORMAT, G_UNICODE_FORMAT, - G_UNICODE_FORMAT, G_UNICODE_FORMAT, G_UNICODE_FORMAT, G_UNICODE_FORMAT, - G_UNICODE_FORMAT, G_UNICODE_FORMAT, G_UNICODE_FORMAT, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED - }, - { /* page 3585, index 83 */ - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED - }, - { /* page 4095, index 84 */ - G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, - G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, - G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, - G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, - G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, - G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, - G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, - G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, - G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, - G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, - G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, - G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, - G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, - G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, - G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, - G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, - G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, - G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, - G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, - G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, - G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, - G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, - G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, - G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, - G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, - G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, - G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, - G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, - G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, - G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, - G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, - G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, - G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, - G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, - G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, - G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, - G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, - G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, - G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, - G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, - G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, - G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, - G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, - G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, - G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, - G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, - G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, - G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, - G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, - G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, - G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, - G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, - G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, - G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, - G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, - G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, - G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, - G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, - G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, - G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, - G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, - G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, - G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, - G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, - G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, - G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, - G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, - G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, - G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, - G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, - G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, - G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, - G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, - G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, - G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, - G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, - G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, - G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, - G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, - G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, - G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, - G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, - G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, - G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, - G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED - }, - { /* page 4351, index 85 */ - G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, - G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, - G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, - G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, - G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, - G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, - G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, - G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, - G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, - G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, - G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, - G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, - G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, - G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, - G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, - G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, - G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, - G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, - G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, - G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, - G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, - G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, - G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, - G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, - G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, - G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, - G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, - G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, - G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, - G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, - G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, - G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, - G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, - G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, - G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, - G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, - G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, - G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, - G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, - G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, - G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, - G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, - G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, - G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, - G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, - G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, - G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, - G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, - G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, - G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, - G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, - G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, - G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, - G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, - G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, - G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, - G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, - G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, - G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, - G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, - G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, - G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, - G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, - G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, - G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, - G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, - G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, - G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, - G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, - G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, - G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, - G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, - G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, - G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, - G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, - G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, - G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, - G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, - G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, - G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, - G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, - G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, - G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, - G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, - G_UNICODE_PRIVATE_USE, G_UNICODE_PRIVATE_USE, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED - } -}; - -/* U+0000 through U+2FAFF */ -static const gint16 type_table_part1[763] = { - 0 /* page 0 */, - 1 /* page 1 */, - 2 /* page 2 */, - 3 /* page 3 */, - 4 /* page 4 */, - 5 /* page 5 */, - 6 /* page 6 */, - 7 /* page 7 */, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - 8 /* page 9 */, - 9 /* page 10 */, - 10 /* page 11 */, - 11 /* page 12 */, - 12 /* page 13 */, - 13 /* page 14 */, - 14 /* page 15 */, - 15 /* page 16 */, - 16 /* page 17 */, - 17 /* page 18 */, - 18 /* page 19 */, - 19 /* page 20 */, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - 20 /* page 22 */, - 21 /* page 23 */, - 22 /* page 24 */, - 23 /* page 25 */, - 24 /* page 26 */, - 25 /* page 27 */, - 26 /* page 28 */, - 27 /* page 29 */, - 28 /* page 30 */, - 29 /* page 31 */, - 30 /* page 32 */, - 31 /* page 33 */, - G_UNICODE_MATH_SYMBOL + G_UNICODE_MAX_TABLE_INDEX, - 32 /* page 35 */, - 33 /* page 36 */, - 34 /* page 37 */, - 35 /* page 38 */, - 36 /* page 39 */, - G_UNICODE_OTHER_SYMBOL + G_UNICODE_MAX_TABLE_INDEX, - 37 /* page 41 */, - G_UNICODE_MATH_SYMBOL + G_UNICODE_MAX_TABLE_INDEX, - 38 /* page 43 */, - 39 /* page 44 */, - 40 /* page 45 */, - 41 /* page 46 */, - 42 /* page 47 */, - 43 /* page 48 */, - 44 /* page 49 */, - 45 /* page 50 */, - G_UNICODE_OTHER_SYMBOL + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - 46 /* page 77 */, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - 47 /* page 159 */, - 48 /* page 160 */, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - 49 /* page 164 */, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - 50 /* page 166 */, - 51 /* page 167 */, - 52 /* page 168 */, - 53 /* page 169 */, - 54 /* page 170 */, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - 55 /* page 215 */, - G_UNICODE_SURROGATE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_SURROGATE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_SURROGATE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_SURROGATE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_SURROGATE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_SURROGATE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_SURROGATE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_SURROGATE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - 56 /* page 250 */, - 57 /* page 251 */, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - 58 /* page 253 */, - 59 /* page 254 */, - 60 /* page 255 */, - 61 /* page 256 */, - 62 /* page 257 */, - 63 /* page 258 */, - 64 /* page 259 */, - 65 /* page 260 */, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - 66 /* page 264 */, - 67 /* page 265 */, - 68 /* page 266 */, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - 69 /* page 291 */, - 70 /* page 292 */, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - 71 /* page 464 */, - 72 /* page 465 */, - 73 /* page 466 */, - 74 /* page 467 */, - 75 /* page 468 */, - 76 /* page 469 */, - 77 /* page 470 */, - 78 /* page 471 */, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - 79 /* page 496 */, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - 80 /* page 678 */, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_OTHER_LETTER + G_UNICODE_MAX_TABLE_INDEX, - 81 /* page 762 */ -}; - -/* U+E0000 through U+10FFFF */ -static const gint16 type_table_part2[768] = { - 82 /* page 3584 */, - 83 /* page 3585 */, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_UNASSIGNED + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - 84 /* page 4095 */, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - G_UNICODE_PRIVATE_USE + G_UNICODE_MAX_TABLE_INDEX, - 85 /* page 4351 */ -}; - -static const gunichar attr_data[][256] = { - { /* page 0, index 0 */ - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, - 0x0006, 0x0007, 0x0008, 0x0009, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, - 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, - 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, - 0x007a, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0041, 0x0042, - 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004a, 0x004b, - 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, - 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x039c, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x00e0, 0x00e1, 0x00e2, 0x00e3, 0x00e4, 0x00e5, - 0x00e6, 0x00e7, 0x00e8, 0x00e9, 0x00ea, 0x00eb, 0x00ec, 0x00ed, 0x00ee, - 0x00ef, 0x00f0, 0x00f1, 0x00f2, 0x00f3, 0x00f4, 0x00f5, 0x00f6, 0x0000, - 0x00f8, 0x00f9, 0x00fa, 0x00fb, 0x00fc, 0x00fd, 0x00fe, 0x1000000, - 0x00c0, 0x00c1, 0x00c2, 0x00c3, 0x00c4, 0x00c5, 0x00c6, 0x00c7, 0x00c8, - 0x00c9, 0x00ca, 0x00cb, 0x00cc, 0x00cd, 0x00ce, 0x00cf, 0x00d0, 0x00d1, - 0x00d2, 0x00d3, 0x00d4, 0x00d5, 0x00d6, 0x0000, 0x00d8, 0x00d9, 0x00da, - 0x00db, 0x00dc, 0x00dd, 0x00de, 0x0178 - }, - { /* page 1, index 1 */ - 0x0101, 0x0100, 0x0103, 0x0102, 0x0105, 0x0104, 0x0107, 0x0106, 0x0109, - 0x0108, 0x010b, 0x010a, 0x010d, 0x010c, 0x010f, 0x010e, 0x0111, 0x0110, - 0x0113, 0x0112, 0x0115, 0x0114, 0x0117, 0x0116, 0x0119, 0x0118, 0x011b, - 0x011a, 0x011d, 0x011c, 0x011f, 0x011e, 0x0121, 0x0120, 0x0123, 0x0122, - 0x0125, 0x0124, 0x0127, 0x0126, 0x0129, 0x0128, 0x012b, 0x012a, 0x012d, - 0x012c, 0x012f, 0x012e, 0x1000007, 0x0049, 0x0133, 0x0132, 0x0135, - 0x0134, 0x0137, 0x0136, 0x0000, 0x013a, 0x0139, 0x013c, 0x013b, 0x013e, - 0x013d, 0x0140, 0x013f, 0x0142, 0x0141, 0x0144, 0x0143, 0x0146, 0x0145, - 0x0148, 0x0147, 0x1000086, 0x014b, 0x014a, 0x014d, 0x014c, 0x014f, - 0x014e, 0x0151, 0x0150, 0x0153, 0x0152, 0x0155, 0x0154, 0x0157, 0x0156, - 0x0159, 0x0158, 0x015b, 0x015a, 0x015d, 0x015c, 0x015f, 0x015e, 0x0161, - 0x0160, 0x0163, 0x0162, 0x0165, 0x0164, 0x0167, 0x0166, 0x0169, 0x0168, - 0x016b, 0x016a, 0x016d, 0x016c, 0x016f, 0x016e, 0x0171, 0x0170, 0x0173, - 0x0172, 0x0175, 0x0174, 0x0177, 0x0176, 0x00ff, 0x017a, 0x0179, 0x017c, - 0x017b, 0x017e, 0x017d, 0x0053, 0x0243, 0x0253, 0x0183, 0x0182, 0x0185, - 0x0184, 0x0254, 0x0188, 0x0187, 0x0256, 0x0257, 0x018c, 0x018b, 0x0000, - 0x01dd, 0x0259, 0x025b, 0x0192, 0x0191, 0x0260, 0x0263, 0x01f6, 0x0269, - 0x0268, 0x0199, 0x0198, 0x023d, 0x0000, 0x026f, 0x0272, 0x0220, 0x0275, - 0x01a1, 0x01a0, 0x01a3, 0x01a2, 0x01a5, 0x01a4, 0x0280, 0x01a8, 0x01a7, - 0x0283, 0x0000, 0x0000, 0x01ad, 0x01ac, 0x0288, 0x01b0, 0x01af, 0x028a, - 0x028b, 0x01b4, 0x01b3, 0x01b6, 0x01b5, 0x0292, 0x01b9, 0x01b8, 0x0000, - 0x0000, 0x01bd, 0x01bc, 0x0000, 0x01f7, 0x0000, 0x0000, 0x0000, 0x0000, - 0x01c6, 0x0000, 0x01c4, 0x01c9, 0x0000, 0x01c7, 0x01cc, 0x0000, 0x01ca, - 0x01ce, 0x01cd, 0x01d0, 0x01cf, 0x01d2, 0x01d1, 0x01d4, 0x01d3, 0x01d6, - 0x01d5, 0x01d8, 0x01d7, 0x01da, 0x01d9, 0x01dc, 0x01db, 0x018e, 0x01df, - 0x01de, 0x01e1, 0x01e0, 0x01e3, 0x01e2, 0x01e5, 0x01e4, 0x01e7, 0x01e6, - 0x01e9, 0x01e8, 0x01eb, 0x01ea, 0x01ed, 0x01ec, 0x01ef, 0x01ee, - 0x10000ad, 0x01f3, 0x0000, 0x01f1, 0x01f5, 0x01f4, 0x0195, 0x01bf, - 0x01f9, 0x01f8, 0x01fb, 0x01fa, 0x01fd, 0x01fc, 0x01ff, 0x01fe - }, - { /* page 2, index 2 */ - 0x0201, 0x0200, 0x0203, 0x0202, 0x0205, 0x0204, 0x0207, 0x0206, 0x0209, - 0x0208, 0x020b, 0x020a, 0x020d, 0x020c, 0x020f, 0x020e, 0x0211, 0x0210, - 0x0213, 0x0212, 0x0215, 0x0214, 0x0217, 0x0216, 0x0219, 0x0218, 0x021b, - 0x021a, 0x021d, 0x021c, 0x021f, 0x021e, 0x019e, 0x0000, 0x0223, 0x0222, - 0x0225, 0x0224, 0x0227, 0x0226, 0x0229, 0x0228, 0x022b, 0x022a, 0x022d, - 0x022c, 0x022f, 0x022e, 0x0231, 0x0230, 0x0233, 0x0232, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x2c65, 0x023c, 0x023b, 0x019a, 0x2c66, - 0x0000, 0x0000, 0x0242, 0x0241, 0x0180, 0x0289, 0x028c, 0x0247, 0x0246, - 0x0249, 0x0248, 0x024b, 0x024a, 0x024d, 0x024c, 0x024f, 0x024e, 0x2c6f, - 0x2c6d, 0x0000, 0x0181, 0x0186, 0x0000, 0x0189, 0x018a, 0x0000, 0x018f, - 0x0000, 0x0190, 0x0000, 0x0000, 0x0000, 0x0000, 0x0193, 0x0000, 0x0000, - 0x0194, 0x0000, 0x0000, 0x0000, 0x0000, 0x0197, 0x0196, 0x0000, 0x2c62, - 0x0000, 0x0000, 0x0000, 0x019c, 0x0000, 0x2c6e, 0x019d, 0x0000, 0x0000, - 0x019f, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x2c64, - 0x0000, 0x0000, 0x01a6, 0x0000, 0x0000, 0x01a9, 0x0000, 0x0000, 0x0000, - 0x0000, 0x01ae, 0x0244, 0x01b1, 0x01b2, 0x0245, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x01b7, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000 - }, - { /* page 3, index 3 */ - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0371, 0x0370, 0x0373, 0x0372, 0x0000, - 0x0000, 0x0377, 0x0376, 0x0000, 0x0000, 0x0000, 0x03fd, 0x03fe, 0x03ff, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x03ac, - 0x0000, 0x03ad, 0x03ae, 0x03af, 0x0000, 0x03cc, 0x0000, 0x03cd, 0x03ce, - 0x100008f, 0x03b1, 0x03b2, 0x03b3, 0x03b4, 0x03b5, 0x03b6, 0x03b7, - 0x03b8, 0x03b9, 0x03ba, 0x03bb, 0x03bc, 0x03bd, 0x03be, 0x03bf, 0x03c0, - 0x03c1, 0x0000, 0x03c3, 0x03c4, 0x03c5, 0x03c6, 0x03c7, 0x03c8, 0x03c9, - 0x03ca, 0x03cb, 0x0386, 0x0388, 0x0389, 0x038a, 0x100009e, 0x0391, - 0x0392, 0x0393, 0x0394, 0x0395, 0x0396, 0x0397, 0x0398, 0x0399, 0x039a, - 0x039b, 0x039c, 0x039d, 0x039e, 0x039f, 0x03a0, 0x03a1, 0x03a3, 0x03a3, - 0x03a4, 0x03a5, 0x03a6, 0x03a7, 0x03a8, 0x03a9, 0x03aa, 0x03ab, 0x038c, - 0x038e, 0x038f, 0x03d7, 0x0392, 0x0398, 0x0000, 0x0000, 0x0000, 0x03a6, - 0x03a0, 0x03cf, 0x03d9, 0x03d8, 0x03db, 0x03da, 0x03dd, 0x03dc, 0x03df, - 0x03de, 0x03e1, 0x03e0, 0x03e3, 0x03e2, 0x03e5, 0x03e4, 0x03e7, 0x03e6, - 0x03e9, 0x03e8, 0x03eb, 0x03ea, 0x03ed, 0x03ec, 0x03ef, 0x03ee, 0x039a, - 0x03a1, 0x03f9, 0x0000, 0x03b8, 0x0395, 0x0000, 0x03f8, 0x03f7, 0x03f2, - 0x03fb, 0x03fa, 0x0000, 0x037b, 0x037c, 0x037d - }, - { /* page 4, index 4 */ - 0x0450, 0x0451, 0x0452, 0x0453, 0x0454, 0x0455, 0x0456, 0x0457, 0x0458, - 0x0459, 0x045a, 0x045b, 0x045c, 0x045d, 0x045e, 0x045f, 0x0430, 0x0431, - 0x0432, 0x0433, 0x0434, 0x0435, 0x0436, 0x0437, 0x0438, 0x0439, 0x043a, - 0x043b, 0x043c, 0x043d, 0x043e, 0x043f, 0x0440, 0x0441, 0x0442, 0x0443, - 0x0444, 0x0445, 0x0446, 0x0447, 0x0448, 0x0449, 0x044a, 0x044b, 0x044c, - 0x044d, 0x044e, 0x044f, 0x0410, 0x0411, 0x0412, 0x0413, 0x0414, 0x0415, - 0x0416, 0x0417, 0x0418, 0x0419, 0x041a, 0x041b, 0x041c, 0x041d, 0x041e, - 0x041f, 0x0420, 0x0421, 0x0422, 0x0423, 0x0424, 0x0425, 0x0426, 0x0427, - 0x0428, 0x0429, 0x042a, 0x042b, 0x042c, 0x042d, 0x042e, 0x042f, 0x0400, - 0x0401, 0x0402, 0x0403, 0x0404, 0x0405, 0x0406, 0x0407, 0x0408, 0x0409, - 0x040a, 0x040b, 0x040c, 0x040d, 0x040e, 0x040f, 0x0461, 0x0460, 0x0463, - 0x0462, 0x0465, 0x0464, 0x0467, 0x0466, 0x0469, 0x0468, 0x046b, 0x046a, - 0x046d, 0x046c, 0x046f, 0x046e, 0x0471, 0x0470, 0x0473, 0x0472, 0x0475, - 0x0474, 0x0477, 0x0476, 0x0479, 0x0478, 0x047b, 0x047a, 0x047d, 0x047c, - 0x047f, 0x047e, 0x0481, 0x0480, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x048b, 0x048a, 0x048d, 0x048c, 0x048f, 0x048e, - 0x0491, 0x0490, 0x0493, 0x0492, 0x0495, 0x0494, 0x0497, 0x0496, 0x0499, - 0x0498, 0x049b, 0x049a, 0x049d, 0x049c, 0x049f, 0x049e, 0x04a1, 0x04a0, - 0x04a3, 0x04a2, 0x04a5, 0x04a4, 0x04a7, 0x04a6, 0x04a9, 0x04a8, 0x04ab, - 0x04aa, 0x04ad, 0x04ac, 0x04af, 0x04ae, 0x04b1, 0x04b0, 0x04b3, 0x04b2, - 0x04b5, 0x04b4, 0x04b7, 0x04b6, 0x04b9, 0x04b8, 0x04bb, 0x04ba, 0x04bd, - 0x04bc, 0x04bf, 0x04be, 0x04cf, 0x04c2, 0x04c1, 0x04c4, 0x04c3, 0x04c6, - 0x04c5, 0x04c8, 0x04c7, 0x04ca, 0x04c9, 0x04cc, 0x04cb, 0x04ce, 0x04cd, - 0x04c0, 0x04d1, 0x04d0, 0x04d3, 0x04d2, 0x04d5, 0x04d4, 0x04d7, 0x04d6, - 0x04d9, 0x04d8, 0x04db, 0x04da, 0x04dd, 0x04dc, 0x04df, 0x04de, 0x04e1, - 0x04e0, 0x04e3, 0x04e2, 0x04e5, 0x04e4, 0x04e7, 0x04e6, 0x04e9, 0x04e8, - 0x04eb, 0x04ea, 0x04ed, 0x04ec, 0x04ef, 0x04ee, 0x04f1, 0x04f0, 0x04f3, - 0x04f2, 0x04f5, 0x04f4, 0x04f7, 0x04f6, 0x04f9, 0x04f8, 0x04fb, 0x04fa, - 0x04fd, 0x04fc, 0x04ff, 0x04fe - }, - { /* page 5, index 5 */ - 0x0501, 0x0500, 0x0503, 0x0502, 0x0505, 0x0504, 0x0507, 0x0506, 0x0509, - 0x0508, 0x050b, 0x050a, 0x050d, 0x050c, 0x050f, 0x050e, 0x0511, 0x0510, - 0x0513, 0x0512, 0x0515, 0x0514, 0x0517, 0x0516, 0x0519, 0x0518, 0x051b, - 0x051a, 0x051d, 0x051c, 0x051f, 0x051e, 0x0521, 0x0520, 0x0523, 0x0522, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0561, 0x0562, 0x0563, 0x0564, 0x0565, - 0x0566, 0x0567, 0x0568, 0x0569, 0x056a, 0x056b, 0x056c, 0x056d, 0x056e, - 0x056f, 0x0570, 0x0571, 0x0572, 0x0573, 0x0574, 0x0575, 0x0576, 0x0577, - 0x0578, 0x0579, 0x057a, 0x057b, 0x057c, 0x057d, 0x057e, 0x057f, 0x0580, - 0x0581, 0x0582, 0x0583, 0x0584, 0x0585, 0x0586, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0531, 0x0532, - 0x0533, 0x0534, 0x0535, 0x0536, 0x0537, 0x0538, 0x0539, 0x053a, 0x053b, - 0x053c, 0x053d, 0x053e, 0x053f, 0x0540, 0x0541, 0x0542, 0x0543, 0x0544, - 0x0545, 0x0546, 0x0547, 0x0548, 0x0549, 0x054a, 0x054b, 0x054c, 0x054d, - 0x054e, 0x054f, 0x0550, 0x0551, 0x0552, 0x0553, 0x0554, 0x0555, 0x0556, - 0x1000044, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 - }, - { /* page 6, index 6 */ - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0001, 0x0002, - 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0001, 0x0002, - 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000 - }, - { /* page 7, index 7 */ - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, - 0x0006, 0x0007, 0x0008, 0x0009, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000 - }, - { /* page 9, index 8 */ - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, - 0x0006, 0x0007, 0x0008, 0x0009, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0001, 0x0002, 0x0003, - 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000 - }, - { /* page 10, index 9 */ - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, - 0x0006, 0x0007, 0x0008, 0x0009, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0001, 0x0002, 0x0003, - 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000 - }, - { /* page 11, index 10 */ - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, - 0x0006, 0x0007, 0x0008, 0x0009, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0001, 0x0002, 0x0003, - 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000 - }, - { /* page 12, index 11 */ - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, - 0x0006, 0x0007, 0x0008, 0x0009, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0001, 0x0002, 0x0003, - 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000 - }, - { /* page 13, index 12 */ - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, - 0x0006, 0x0007, 0x0008, 0x0009, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000 - }, - { /* page 14, index 13 */ - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, - 0x0008, 0x0009, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000 - }, - { /* page 15, index 14 */ - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0001, 0x0002, 0x0003, - 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000 - }, - { /* page 16, index 15 */ - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, - 0x0008, 0x0009, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, - 0x0009, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x2d00, 0x2d01, - 0x2d02, 0x2d03, 0x2d04, 0x2d05, 0x2d06, 0x2d07, 0x2d08, 0x2d09, 0x2d0a, - 0x2d0b, 0x2d0c, 0x2d0d, 0x2d0e, 0x2d0f, 0x2d10, 0x2d11, 0x2d12, 0x2d13, - 0x2d14, 0x2d15, 0x2d16, 0x2d17, 0x2d18, 0x2d19, 0x2d1a, 0x2d1b, 0x2d1c, - 0x2d1d, 0x2d1e, 0x2d1f, 0x2d20, 0x2d21, 0x2d22, 0x2d23, 0x2d24, 0x2d25, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000 - }, - { /* page 23, index 16 */ - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000 - }, - { /* page 24, index 17 */ - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0001, - 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000 - }, - { /* page 25, index 18 */ - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0001, - 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, - 0x0008, 0x0009, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000 - }, - { /* page 27, index 19 */ - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0001, 0x0002, 0x0003, - 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000 - }, - { /* page 28, index 20 */ - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, - 0x0008, 0x0009, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000 - }, - { /* page 29, index 21 */ - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0xa77d, 0x0000, 0x0000, 0x0000, 0x2c63, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000 - }, - { /* page 30, index 22 */ - 0x1e01, 0x1e00, 0x1e03, 0x1e02, 0x1e05, 0x1e04, 0x1e07, 0x1e06, 0x1e09, - 0x1e08, 0x1e0b, 0x1e0a, 0x1e0d, 0x1e0c, 0x1e0f, 0x1e0e, 0x1e11, 0x1e10, - 0x1e13, 0x1e12, 0x1e15, 0x1e14, 0x1e17, 0x1e16, 0x1e19, 0x1e18, 0x1e1b, - 0x1e1a, 0x1e1d, 0x1e1c, 0x1e1f, 0x1e1e, 0x1e21, 0x1e20, 0x1e23, 0x1e22, - 0x1e25, 0x1e24, 0x1e27, 0x1e26, 0x1e29, 0x1e28, 0x1e2b, 0x1e2a, 0x1e2d, - 0x1e2c, 0x1e2f, 0x1e2e, 0x1e31, 0x1e30, 0x1e33, 0x1e32, 0x1e35, 0x1e34, - 0x1e37, 0x1e36, 0x1e39, 0x1e38, 0x1e3b, 0x1e3a, 0x1e3d, 0x1e3c, 0x1e3f, - 0x1e3e, 0x1e41, 0x1e40, 0x1e43, 0x1e42, 0x1e45, 0x1e44, 0x1e47, 0x1e46, - 0x1e49, 0x1e48, 0x1e4b, 0x1e4a, 0x1e4d, 0x1e4c, 0x1e4f, 0x1e4e, 0x1e51, - 0x1e50, 0x1e53, 0x1e52, 0x1e55, 0x1e54, 0x1e57, 0x1e56, 0x1e59, 0x1e58, - 0x1e5b, 0x1e5a, 0x1e5d, 0x1e5c, 0x1e5f, 0x1e5e, 0x1e61, 0x1e60, 0x1e63, - 0x1e62, 0x1e65, 0x1e64, 0x1e67, 0x1e66, 0x1e69, 0x1e68, 0x1e6b, 0x1e6a, - 0x1e6d, 0x1e6c, 0x1e6f, 0x1e6e, 0x1e71, 0x1e70, 0x1e73, 0x1e72, 0x1e75, - 0x1e74, 0x1e77, 0x1e76, 0x1e79, 0x1e78, 0x1e7b, 0x1e7a, 0x1e7d, 0x1e7c, - 0x1e7f, 0x1e7e, 0x1e81, 0x1e80, 0x1e83, 0x1e82, 0x1e85, 0x1e84, 0x1e87, - 0x1e86, 0x1e89, 0x1e88, 0x1e8b, 0x1e8a, 0x1e8d, 0x1e8c, 0x1e8f, 0x1e8e, - 0x1e91, 0x1e90, 0x1e93, 0x1e92, 0x1e95, 0x1e94, 0x10000b6, 0x10000bf, - 0x10000c8, 0x10000d1, 0x10000da, 0x1e60, 0x0000, 0x0000, 0x00df, 0x0000, - 0x1ea1, 0x1ea0, 0x1ea3, 0x1ea2, 0x1ea5, 0x1ea4, 0x1ea7, 0x1ea6, 0x1ea9, - 0x1ea8, 0x1eab, 0x1eaa, 0x1ead, 0x1eac, 0x1eaf, 0x1eae, 0x1eb1, 0x1eb0, - 0x1eb3, 0x1eb2, 0x1eb5, 0x1eb4, 0x1eb7, 0x1eb6, 0x1eb9, 0x1eb8, 0x1ebb, - 0x1eba, 0x1ebd, 0x1ebc, 0x1ebf, 0x1ebe, 0x1ec1, 0x1ec0, 0x1ec3, 0x1ec2, - 0x1ec5, 0x1ec4, 0x1ec7, 0x1ec6, 0x1ec9, 0x1ec8, 0x1ecb, 0x1eca, 0x1ecd, - 0x1ecc, 0x1ecf, 0x1ece, 0x1ed1, 0x1ed0, 0x1ed3, 0x1ed2, 0x1ed5, 0x1ed4, - 0x1ed7, 0x1ed6, 0x1ed9, 0x1ed8, 0x1edb, 0x1eda, 0x1edd, 0x1edc, 0x1edf, - 0x1ede, 0x1ee1, 0x1ee0, 0x1ee3, 0x1ee2, 0x1ee5, 0x1ee4, 0x1ee7, 0x1ee6, - 0x1ee9, 0x1ee8, 0x1eeb, 0x1eea, 0x1eed, 0x1eec, 0x1eef, 0x1eee, 0x1ef1, - 0x1ef0, 0x1ef3, 0x1ef2, 0x1ef5, 0x1ef4, 0x1ef7, 0x1ef6, 0x1ef9, 0x1ef8, - 0x1efb, 0x1efa, 0x1efd, 0x1efc, 0x1eff, 0x1efe - }, - { /* page 31, index 23 */ - 0x1f08, 0x1f09, 0x1f0a, 0x1f0b, 0x1f0c, 0x1f0d, 0x1f0e, 0x1f0f, 0x1f00, - 0x1f01, 0x1f02, 0x1f03, 0x1f04, 0x1f05, 0x1f06, 0x1f07, 0x1f18, 0x1f19, - 0x1f1a, 0x1f1b, 0x1f1c, 0x1f1d, 0x0000, 0x0000, 0x1f10, 0x1f11, 0x1f12, - 0x1f13, 0x1f14, 0x1f15, 0x0000, 0x0000, 0x1f28, 0x1f29, 0x1f2a, 0x1f2b, - 0x1f2c, 0x1f2d, 0x1f2e, 0x1f2f, 0x1f20, 0x1f21, 0x1f22, 0x1f23, 0x1f24, - 0x1f25, 0x1f26, 0x1f27, 0x1f38, 0x1f39, 0x1f3a, 0x1f3b, 0x1f3c, 0x1f3d, - 0x1f3e, 0x1f3f, 0x1f30, 0x1f31, 0x1f32, 0x1f33, 0x1f34, 0x1f35, 0x1f36, - 0x1f37, 0x1f48, 0x1f49, 0x1f4a, 0x1f4b, 0x1f4c, 0x1f4d, 0x0000, 0x0000, - 0x1f40, 0x1f41, 0x1f42, 0x1f43, 0x1f44, 0x1f45, 0x0000, 0x0000, - 0x10000e3, 0x1f59, 0x10000ee, 0x1f5b, 0x10000fd, 0x1f5d, 0x100010c, - 0x1f5f, 0x0000, 0x1f51, 0x0000, 0x1f53, 0x0000, 0x1f55, 0x0000, 0x1f57, - 0x1f68, 0x1f69, 0x1f6a, 0x1f6b, 0x1f6c, 0x1f6d, 0x1f6e, 0x1f6f, 0x1f60, - 0x1f61, 0x1f62, 0x1f63, 0x1f64, 0x1f65, 0x1f66, 0x1f67, 0x1fba, 0x1fbb, - 0x1fc8, 0x1fc9, 0x1fca, 0x1fcb, 0x1fda, 0x1fdb, 0x1ff8, 0x1ff9, 0x1fea, - 0x1feb, 0x1ffa, 0x1ffb, 0x0000, 0x0000, 0x10001b7, 0x10001c4, 0x10001d1, - 0x10001de, 0x10001eb, 0x10001f8, 0x1000205, 0x1000212, 0x100021f, - 0x1000229, 0x1000233, 0x100023d, 0x1000247, 0x1000251, 0x100025b, - 0x1000265, 0x100026f, 0x100027c, 0x1000289, 0x1000296, 0x10002a3, - 0x10002b0, 0x10002bd, 0x10002ca, 0x10002d7, 0x10002e1, 0x10002eb, - 0x10002f5, 0x10002ff, 0x1000309, 0x1000313, 0x100031d, 0x1000327, - 0x1000334, 0x1000341, 0x100034e, 0x100035b, 0x1000368, 0x1000375, - 0x1000382, 0x100038f, 0x1000399, 0x10003a3, 0x10003ad, 0x10003b7, - 0x10003c1, 0x10003cb, 0x10003d5, 0x1fb8, 0x1fb9, 0x100041e, 0x10003df, - 0x100042b, 0x0000, 0x100011b, 0x1000466, 0x1fb0, 0x1fb1, 0x1f70, 0x1f71, - 0x10003eb, 0x0000, 0x0399, 0x0000, 0x0000, 0x0000, 0x1000436, 0x10003f4, - 0x1000443, 0x0000, 0x1000126, 0x1000475, 0x1f72, 0x1f73, 0x1f74, 0x1f75, - 0x1000400, 0x0000, 0x0000, 0x0000, 0x1fd8, 0x1fd9, 0x1000131, 0x1000140, - 0x0000, 0x0000, 0x100014f, 0x100015a, 0x1fd0, 0x1fd1, 0x1f76, 0x1f77, - 0x0000, 0x0000, 0x0000, 0x0000, 0x1fe8, 0x1fe9, 0x1000169, 0x1000178, - 0x1000187, 0x1fec, 0x1000192, 0x100019d, 0x1fe0, 0x1fe1, 0x1f7a, 0x1f7b, - 0x1fe5, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x100044e, 0x1000409, - 0x100045b, 0x0000, 0x10001ac, 0x1000484, 0x1f78, 0x1f79, 0x1f7c, 0x1f7d, - 0x1000415, 0x0000, 0x0000, 0x0000 - }, - { /* page 33, index 24 */ - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x03c9, 0x0000, 0x0000, 0x0000, 0x006b, 0x00e5, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x214e, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x2132, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x2184, 0x2183, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000 - }, - { /* page 44, index 25 */ - 0x2c30, 0x2c31, 0x2c32, 0x2c33, 0x2c34, 0x2c35, 0x2c36, 0x2c37, 0x2c38, - 0x2c39, 0x2c3a, 0x2c3b, 0x2c3c, 0x2c3d, 0x2c3e, 0x2c3f, 0x2c40, 0x2c41, - 0x2c42, 0x2c43, 0x2c44, 0x2c45, 0x2c46, 0x2c47, 0x2c48, 0x2c49, 0x2c4a, - 0x2c4b, 0x2c4c, 0x2c4d, 0x2c4e, 0x2c4f, 0x2c50, 0x2c51, 0x2c52, 0x2c53, - 0x2c54, 0x2c55, 0x2c56, 0x2c57, 0x2c58, 0x2c59, 0x2c5a, 0x2c5b, 0x2c5c, - 0x2c5d, 0x2c5e, 0x0000, 0x2c00, 0x2c01, 0x2c02, 0x2c03, 0x2c04, 0x2c05, - 0x2c06, 0x2c07, 0x2c08, 0x2c09, 0x2c0a, 0x2c0b, 0x2c0c, 0x2c0d, 0x2c0e, - 0x2c0f, 0x2c10, 0x2c11, 0x2c12, 0x2c13, 0x2c14, 0x2c15, 0x2c16, 0x2c17, - 0x2c18, 0x2c19, 0x2c1a, 0x2c1b, 0x2c1c, 0x2c1d, 0x2c1e, 0x2c1f, 0x2c20, - 0x2c21, 0x2c22, 0x2c23, 0x2c24, 0x2c25, 0x2c26, 0x2c27, 0x2c28, 0x2c29, - 0x2c2a, 0x2c2b, 0x2c2c, 0x2c2d, 0x2c2e, 0x0000, 0x2c61, 0x2c60, 0x026b, - 0x1d7d, 0x027d, 0x023a, 0x023e, 0x2c68, 0x2c67, 0x2c6a, 0x2c69, 0x2c6c, - 0x2c6b, 0x0251, 0x0271, 0x0250, 0x0000, 0x0000, 0x2c73, 0x2c72, 0x0000, - 0x2c76, 0x2c75, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x2c81, 0x2c80, 0x2c83, 0x2c82, 0x2c85, 0x2c84, 0x2c87, - 0x2c86, 0x2c89, 0x2c88, 0x2c8b, 0x2c8a, 0x2c8d, 0x2c8c, 0x2c8f, 0x2c8e, - 0x2c91, 0x2c90, 0x2c93, 0x2c92, 0x2c95, 0x2c94, 0x2c97, 0x2c96, 0x2c99, - 0x2c98, 0x2c9b, 0x2c9a, 0x2c9d, 0x2c9c, 0x2c9f, 0x2c9e, 0x2ca1, 0x2ca0, - 0x2ca3, 0x2ca2, 0x2ca5, 0x2ca4, 0x2ca7, 0x2ca6, 0x2ca9, 0x2ca8, 0x2cab, - 0x2caa, 0x2cad, 0x2cac, 0x2caf, 0x2cae, 0x2cb1, 0x2cb0, 0x2cb3, 0x2cb2, - 0x2cb5, 0x2cb4, 0x2cb7, 0x2cb6, 0x2cb9, 0x2cb8, 0x2cbb, 0x2cba, 0x2cbd, - 0x2cbc, 0x2cbf, 0x2cbe, 0x2cc1, 0x2cc0, 0x2cc3, 0x2cc2, 0x2cc5, 0x2cc4, - 0x2cc7, 0x2cc6, 0x2cc9, 0x2cc8, 0x2ccb, 0x2cca, 0x2ccd, 0x2ccc, 0x2ccf, - 0x2cce, 0x2cd1, 0x2cd0, 0x2cd3, 0x2cd2, 0x2cd5, 0x2cd4, 0x2cd7, 0x2cd6, - 0x2cd9, 0x2cd8, 0x2cdb, 0x2cda, 0x2cdd, 0x2cdc, 0x2cdf, 0x2cde, 0x2ce1, - 0x2ce0, 0x2ce3, 0x2ce2, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000 - }, - { /* page 45, index 26 */ - 0x10a0, 0x10a1, 0x10a2, 0x10a3, 0x10a4, 0x10a5, 0x10a6, 0x10a7, 0x10a8, - 0x10a9, 0x10aa, 0x10ab, 0x10ac, 0x10ad, 0x10ae, 0x10af, 0x10b0, 0x10b1, - 0x10b2, 0x10b3, 0x10b4, 0x10b5, 0x10b6, 0x10b7, 0x10b8, 0x10b9, 0x10ba, - 0x10bb, 0x10bc, 0x10bd, 0x10be, 0x10bf, 0x10c0, 0x10c1, 0x10c2, 0x10c3, - 0x10c4, 0x10c5, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000 - }, - { /* page 166, index 27 */ - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0001, 0x0002, 0x0003, - 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0xa641, 0xa640, 0xa643, 0xa642, 0xa645, 0xa644, 0xa647, 0xa646, - 0xa649, 0xa648, 0xa64b, 0xa64a, 0xa64d, 0xa64c, 0xa64f, 0xa64e, 0xa651, - 0xa650, 0xa653, 0xa652, 0xa655, 0xa654, 0xa657, 0xa656, 0xa659, 0xa658, - 0xa65b, 0xa65a, 0xa65d, 0xa65c, 0xa65f, 0xa65e, 0x0000, 0x0000, 0xa663, - 0xa662, 0xa665, 0xa664, 0xa667, 0xa666, 0xa669, 0xa668, 0xa66b, 0xa66a, - 0xa66d, 0xa66c, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0xa681, 0xa680, 0xa683, 0xa682, 0xa685, 0xa684, 0xa687, - 0xa686, 0xa689, 0xa688, 0xa68b, 0xa68a, 0xa68d, 0xa68c, 0xa68f, 0xa68e, - 0xa691, 0xa690, 0xa693, 0xa692, 0xa695, 0xa694, 0xa697, 0xa696, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000 - }, - { /* page 167, index 28 */ - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xa723, 0xa722, - 0xa725, 0xa724, 0xa727, 0xa726, 0xa729, 0xa728, 0xa72b, 0xa72a, 0xa72d, - 0xa72c, 0xa72f, 0xa72e, 0x0000, 0x0000, 0xa733, 0xa732, 0xa735, 0xa734, - 0xa737, 0xa736, 0xa739, 0xa738, 0xa73b, 0xa73a, 0xa73d, 0xa73c, 0xa73f, - 0xa73e, 0xa741, 0xa740, 0xa743, 0xa742, 0xa745, 0xa744, 0xa747, 0xa746, - 0xa749, 0xa748, 0xa74b, 0xa74a, 0xa74d, 0xa74c, 0xa74f, 0xa74e, 0xa751, - 0xa750, 0xa753, 0xa752, 0xa755, 0xa754, 0xa757, 0xa756, 0xa759, 0xa758, - 0xa75b, 0xa75a, 0xa75d, 0xa75c, 0xa75f, 0xa75e, 0xa761, 0xa760, 0xa763, - 0xa762, 0xa765, 0xa764, 0xa767, 0xa766, 0xa769, 0xa768, 0xa76b, 0xa76a, - 0xa76d, 0xa76c, 0xa76f, 0xa76e, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0xa77a, 0xa779, 0xa77c, 0xa77b, 0x1d79, - 0xa77f, 0xa77e, 0xa781, 0xa780, 0xa783, 0xa782, 0xa785, 0xa784, 0xa787, - 0xa786, 0x0000, 0x0000, 0x0000, 0xa78c, 0xa78b, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000 - }, - { /* page 168, index 29 */ - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, - 0x0008, 0x0009, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000 - }, - { /* page 169, index 30 */ - 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, - 0x0009, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000 - }, - { /* page 170, index 31 */ - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000 - }, - { /* page 251, index 32 */ - 0x100000f, 0x1000016, 0x100001d, 0x1000024, 0x100002d, 0x1000036, - 0x100003d, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x100004f, 0x100005a, 0x1000065, - 0x1000070, 0x100007b, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000 - }, - { /* page 255, index 33 */ - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0001, - 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xff41, 0xff42, 0xff43, - 0xff44, 0xff45, 0xff46, 0xff47, 0xff48, 0xff49, 0xff4a, 0xff4b, 0xff4c, - 0xff4d, 0xff4e, 0xff4f, 0xff50, 0xff51, 0xff52, 0xff53, 0xff54, 0xff55, - 0xff56, 0xff57, 0xff58, 0xff59, 0xff5a, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0xff21, 0xff22, 0xff23, 0xff24, 0xff25, 0xff26, 0xff27, - 0xff28, 0xff29, 0xff2a, 0xff2b, 0xff2c, 0xff2d, 0xff2e, 0xff2f, 0xff30, - 0xff31, 0xff32, 0xff33, 0xff34, 0xff35, 0xff36, 0xff37, 0xff38, 0xff39, - 0xff3a, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000 - }, - { /* page 260, index 34 */ - 0x10428, 0x10429, 0x1042a, 0x1042b, 0x1042c, 0x1042d, 0x1042e, 0x1042f, - 0x10430, 0x10431, 0x10432, 0x10433, 0x10434, 0x10435, 0x10436, 0x10437, - 0x10438, 0x10439, 0x1043a, 0x1043b, 0x1043c, 0x1043d, 0x1043e, 0x1043f, - 0x10440, 0x10441, 0x10442, 0x10443, 0x10444, 0x10445, 0x10446, 0x10447, - 0x10448, 0x10449, 0x1044a, 0x1044b, 0x1044c, 0x1044d, 0x1044e, 0x1044f, - 0x10400, 0x10401, 0x10402, 0x10403, 0x10404, 0x10405, 0x10406, 0x10407, - 0x10408, 0x10409, 0x1040a, 0x1040b, 0x1040c, 0x1040d, 0x1040e, 0x1040f, - 0x10410, 0x10411, 0x10412, 0x10413, 0x10414, 0x10415, 0x10416, 0x10417, - 0x10418, 0x10419, 0x1041a, 0x1041b, 0x1041c, 0x1041d, 0x1041e, 0x1041f, - 0x10420, 0x10421, 0x10422, 0x10423, 0x10424, 0x10425, 0x10426, 0x10427, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 - }, - { /* page 471, index 35 */ - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, - 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, - 0x0009, 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, - 0x0008, 0x0009, 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, - 0x0007, 0x0008, 0x0009, 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, - 0x0006, 0x0007, 0x0008, 0x0009 - } -}; - -/* U+0000 through U+2FAFF */ -static const gint16 attr_table_part1[763] = { - 0 /* page 0 */, - 1 /* page 1 */, - 2 /* page 2 */, - 3 /* page 3 */, - 4 /* page 4 */, - 5 /* page 5 */, - 6 /* page 6 */, - 7 /* page 7 */, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 8 /* page 9 */, - 9 /* page 10 */, - 10 /* page 11 */, - 11 /* page 12 */, - 12 /* page 13 */, - 13 /* page 14 */, - 14 /* page 15 */, - 15 /* page 16 */, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 16 /* page 23 */, - 17 /* page 24 */, - 18 /* page 25 */, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 19 /* page 27 */, - 20 /* page 28 */, - 21 /* page 29 */, - 22 /* page 30 */, - 23 /* page 31 */, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 24 /* page 33 */, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 25 /* page 44 */, - 26 /* page 45 */, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 27 /* page 166 */, - 28 /* page 167 */, - 29 /* page 168 */, - 30 /* page 169 */, - 31 /* page 170 */, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 32 /* page 251 */, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 33 /* page 255 */, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 34 /* page 260 */, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 35 /* page 471 */, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX -}; - -/* U+E0000 through U+10FFFF */ -static const gint16 attr_table_part2[768] = { - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX, - 0x0000 + G_UNICODE_MAX_TABLE_INDEX -}; - -static const gunichar title_table[][3] = { - { 0x01c5, 0x01c4, 0x01c6 }, - { 0x01c8, 0x01c7, 0x01c9 }, - { 0x01cb, 0x01ca, 0x01cc }, - { 0x01f2, 0x01f1, 0x01f3 }, - { 0x1f88, 0x0000, 0x1f80 }, - { 0x1f89, 0x0000, 0x1f81 }, - { 0x1f8a, 0x0000, 0x1f82 }, - { 0x1f8b, 0x0000, 0x1f83 }, - { 0x1f8c, 0x0000, 0x1f84 }, - { 0x1f8d, 0x0000, 0x1f85 }, - { 0x1f8e, 0x0000, 0x1f86 }, - { 0x1f8f, 0x0000, 0x1f87 }, - { 0x1f98, 0x0000, 0x1f90 }, - { 0x1f99, 0x0000, 0x1f91 }, - { 0x1f9a, 0x0000, 0x1f92 }, - { 0x1f9b, 0x0000, 0x1f93 }, - { 0x1f9c, 0x0000, 0x1f94 }, - { 0x1f9d, 0x0000, 0x1f95 }, - { 0x1f9e, 0x0000, 0x1f96 }, - { 0x1f9f, 0x0000, 0x1f97 }, - { 0x1fa8, 0x0000, 0x1fa0 }, - { 0x1fa9, 0x0000, 0x1fa1 }, - { 0x1faa, 0x0000, 0x1fa2 }, - { 0x1fab, 0x0000, 0x1fa3 }, - { 0x1fac, 0x0000, 0x1fa4 }, - { 0x1fad, 0x0000, 0x1fa5 }, - { 0x1fae, 0x0000, 0x1fa6 }, - { 0x1faf, 0x0000, 0x1fa7 }, - { 0x1fbc, 0x0000, 0x1fb3 }, - { 0x1fcc, 0x0000, 0x1fc3 }, - { 0x1ffc, 0x0000, 0x1ff3 } -}; - - -/* Table of special cases for case conversion; each record contains - * First, the best single character mapping to lowercase if Lu, - * and to uppercase if Ll, followed by the output mapping for the two cases - * other than the case of the codepoint, in the order [Ll],[Lu],[Lt], - * encoded in UTF-8, separated and terminated by a null character. - */ -static const gchar special_case_table[] = { - "\x00\x53\x53\x00\x53\x73\0" /* offset 0 */ - "\x69\x69\xcc\x87\x00\xc4\xb0\0" /* offset 7 */ - "\x00\x46\x46\x00\x46\x66\0" /* offset 15 */ - "\x00\x46\x49\x00\x46\x69\0" /* offset 22 */ - "\x00\x46\x4c\x00\x46\x6c\0" /* offset 29 */ - "\x00\x46\x46\x49\x00\x46\x66\x69\0" /* offset 36 */ - "\x00\x46\x46\x4c\x00\x46\x66\x6c\0" /* offset 45 */ - "\x00\x53\x54\x00\x53\x74\0" /* offset 54 */ - "\x00\x53\x54\x00\x53\x74\0" /* offset 61 */ - "\x00\xd4\xb5\xd5\x92\x00\xd4\xb5\xd6\x82\0" /* offset 68 */ - "\x00\xd5\x84\xd5\x86\x00\xd5\x84\xd5\xb6\0" /* offset 79 */ - "\x00\xd5\x84\xd4\xb5\x00\xd5\x84\xd5\xa5\0" /* offset 90 */ - "\x00\xd5\x84\xd4\xbb\x00\xd5\x84\xd5\xab\0" /* offset 101 */ - "\x00\xd5\x8e\xd5\x86\x00\xd5\x8e\xd5\xb6\0" /* offset 112 */ - "\x00\xd5\x84\xd4\xbd\x00\xd5\x84\xd5\xad\0" /* offset 123 */ - "\x00\xca\xbc\x4e\x00\xca\xbc\x4e\0" /* offset 134 */ - "\x00\xce\x99\xcc\x88\xcc\x81\x00\xce\x99\xcc\x88\xcc\x81\0" /* offset 143 */ - "\x00\xce\xa5\xcc\x88\xcc\x81\x00\xce\xa5\xcc\x88\xcc\x81\0" /* offset 158 */ - "\x00\x4a\xcc\x8c\x00\x4a\xcc\x8c\0" /* offset 173 */ - "\x00\x48\xcc\xb1\x00\x48\xcc\xb1\0" /* offset 182 */ - "\x00\x54\xcc\x88\x00\x54\xcc\x88\0" /* offset 191 */ - "\x00\x57\xcc\x8a\x00\x57\xcc\x8a\0" /* offset 200 */ - "\x00\x59\xcc\x8a\x00\x59\xcc\x8a\0" /* offset 209 */ - "\x00\x41\xca\xbe\x00\x41\xca\xbe\0" /* offset 218 */ - "\x00\xce\xa5\xcc\x93\x00\xce\xa5\xcc\x93\0" /* offset 227 */ - "\x00\xce\xa5\xcc\x93\xcc\x80\x00\xce\xa5\xcc\x93\xcc\x80\0" /* offset 238 */ - "\x00\xce\xa5\xcc\x93\xcc\x81\x00\xce\xa5\xcc\x93\xcc\x81\0" /* offset 253 */ - "\x00\xce\xa5\xcc\x93\xcd\x82\x00\xce\xa5\xcc\x93\xcd\x82\0" /* offset 268 */ - "\x00\xce\x91\xcd\x82\x00\xce\x91\xcd\x82\0" /* offset 283 */ - "\x00\xce\x97\xcd\x82\x00\xce\x97\xcd\x82\0" /* offset 294 */ - "\x00\xce\x99\xcc\x88\xcc\x80\x00\xce\x99\xcc\x88\xcc\x80\0" /* offset 305 */ - "\x00\xce\x99\xcc\x88\xcc\x81\x00\xce\x99\xcc\x88\xcc\x81\0" /* offset 320 */ - "\x00\xce\x99\xcd\x82\x00\xce\x99\xcd\x82\0" /* offset 335 */ - "\x00\xce\x99\xcc\x88\xcd\x82\x00\xce\x99\xcc\x88\xcd\x82\0" /* offset 346 */ - "\x00\xce\xa5\xcc\x88\xcc\x80\x00\xce\xa5\xcc\x88\xcc\x80\0" /* offset 361 */ - "\x00\xce\xa5\xcc\x88\xcc\x81\x00\xce\xa5\xcc\x88\xcc\x81\0" /* offset 376 */ - "\x00\xce\xa1\xcc\x93\x00\xce\xa1\xcc\x93\0" /* offset 391 */ - "\x00\xce\xa5\xcd\x82\x00\xce\xa5\xcd\x82\0" /* offset 402 */ - "\x00\xce\xa5\xcc\x88\xcd\x82\x00\xce\xa5\xcc\x88\xcd\x82\0" /* offset 413 */ - "\x00\xce\xa9\xcd\x82\x00\xce\xa9\xcd\x82\0" /* offset 428 */ - "\xe1\xbe\x88\xe1\xbc\x88\xce\x99\x00\xe1\xbe\x88\0" /* offset 439 */ - "\xe1\xbe\x89\xe1\xbc\x89\xce\x99\x00\xe1\xbe\x89\0" /* offset 452 */ - "\xe1\xbe\x8a\xe1\xbc\x8a\xce\x99\x00\xe1\xbe\x8a\0" /* offset 465 */ - "\xe1\xbe\x8b\xe1\xbc\x8b\xce\x99\x00\xe1\xbe\x8b\0" /* offset 478 */ - "\xe1\xbe\x8c\xe1\xbc\x8c\xce\x99\x00\xe1\xbe\x8c\0" /* offset 491 */ - "\xe1\xbe\x8d\xe1\xbc\x8d\xce\x99\x00\xe1\xbe\x8d\0" /* offset 504 */ - "\xe1\xbe\x8e\xe1\xbc\x8e\xce\x99\x00\xe1\xbe\x8e\0" /* offset 517 */ - "\xe1\xbe\x8f\xe1\xbc\x8f\xce\x99\x00\xe1\xbe\x8f\0" /* offset 530 */ - "\xe1\xbe\x80\x00\xe1\xbc\x88\xce\x99\0" /* offset 543 */ - "\xe1\xbe\x81\x00\xe1\xbc\x89\xce\x99\0" /* offset 553 */ - "\xe1\xbe\x82\x00\xe1\xbc\x8a\xce\x99\0" /* offset 563 */ - "\xe1\xbe\x83\x00\xe1\xbc\x8b\xce\x99\0" /* offset 573 */ - "\xe1\xbe\x84\x00\xe1\xbc\x8c\xce\x99\0" /* offset 583 */ - "\xe1\xbe\x85\x00\xe1\xbc\x8d\xce\x99\0" /* offset 593 */ - "\xe1\xbe\x86\x00\xe1\xbc\x8e\xce\x99\0" /* offset 603 */ - "\xe1\xbe\x87\x00\xe1\xbc\x8f\xce\x99\0" /* offset 613 */ - "\xe1\xbe\x98\xe1\xbc\xa8\xce\x99\x00\xe1\xbe\x98\0" /* offset 623 */ - "\xe1\xbe\x99\xe1\xbc\xa9\xce\x99\x00\xe1\xbe\x99\0" /* offset 636 */ - "\xe1\xbe\x9a\xe1\xbc\xaa\xce\x99\x00\xe1\xbe\x9a\0" /* offset 649 */ - "\xe1\xbe\x9b\xe1\xbc\xab\xce\x99\x00\xe1\xbe\x9b\0" /* offset 662 */ - "\xe1\xbe\x9c\xe1\xbc\xac\xce\x99\x00\xe1\xbe\x9c\0" /* offset 675 */ - "\xe1\xbe\x9d\xe1\xbc\xad\xce\x99\x00\xe1\xbe\x9d\0" /* offset 688 */ - "\xe1\xbe\x9e\xe1\xbc\xae\xce\x99\x00\xe1\xbe\x9e\0" /* offset 701 */ - "\xe1\xbe\x9f\xe1\xbc\xaf\xce\x99\x00\xe1\xbe\x9f\0" /* offset 714 */ - "\xe1\xbe\x90\x00\xe1\xbc\xa8\xce\x99\0" /* offset 727 */ - "\xe1\xbe\x91\x00\xe1\xbc\xa9\xce\x99\0" /* offset 737 */ - "\xe1\xbe\x92\x00\xe1\xbc\xaa\xce\x99\0" /* offset 747 */ - "\xe1\xbe\x93\x00\xe1\xbc\xab\xce\x99\0" /* offset 757 */ - "\xe1\xbe\x94\x00\xe1\xbc\xac\xce\x99\0" /* offset 767 */ - "\xe1\xbe\x95\x00\xe1\xbc\xad\xce\x99\0" /* offset 777 */ - "\xe1\xbe\x96\x00\xe1\xbc\xae\xce\x99\0" /* offset 787 */ - "\xe1\xbe\x97\x00\xe1\xbc\xaf\xce\x99\0" /* offset 797 */ - "\xe1\xbe\xa8\xe1\xbd\xa8\xce\x99\x00\xe1\xbe\xa8\0" /* offset 807 */ - "\xe1\xbe\xa9\xe1\xbd\xa9\xce\x99\x00\xe1\xbe\xa9\0" /* offset 820 */ - "\xe1\xbe\xaa\xe1\xbd\xaa\xce\x99\x00\xe1\xbe\xaa\0" /* offset 833 */ - "\xe1\xbe\xab\xe1\xbd\xab\xce\x99\x00\xe1\xbe\xab\0" /* offset 846 */ - "\xe1\xbe\xac\xe1\xbd\xac\xce\x99\x00\xe1\xbe\xac\0" /* offset 859 */ - "\xe1\xbe\xad\xe1\xbd\xad\xce\x99\x00\xe1\xbe\xad\0" /* offset 872 */ - "\xe1\xbe\xae\xe1\xbd\xae\xce\x99\x00\xe1\xbe\xae\0" /* offset 885 */ - "\xe1\xbe\xaf\xe1\xbd\xaf\xce\x99\x00\xe1\xbe\xaf\0" /* offset 898 */ - "\xe1\xbe\xa0\x00\xe1\xbd\xa8\xce\x99\0" /* offset 911 */ - "\xe1\xbe\xa1\x00\xe1\xbd\xa9\xce\x99\0" /* offset 921 */ - "\xe1\xbe\xa2\x00\xe1\xbd\xaa\xce\x99\0" /* offset 931 */ - "\xe1\xbe\xa3\x00\xe1\xbd\xab\xce\x99\0" /* offset 941 */ - "\xe1\xbe\xa4\x00\xe1\xbd\xac\xce\x99\0" /* offset 951 */ - "\xe1\xbe\xa5\x00\xe1\xbd\xad\xce\x99\0" /* offset 961 */ - "\xe1\xbe\xa6\x00\xe1\xbd\xae\xce\x99\0" /* offset 971 */ - "\xe1\xbe\xa7\x00\xe1\xbd\xaf\xce\x99\0" /* offset 981 */ - "\xe1\xbe\xbc\xce\x91\xce\x99\x00\xe1\xbe\xbc\0" /* offset 991 */ - "\xe1\xbe\xb3\x00\xce\x91\xce\x99\0" /* offset 1003 */ - "\xe1\xbf\x8c\xce\x97\xce\x99\x00\xe1\xbf\x8c\0" /* offset 1012 */ - "\xe1\xbf\x83\x00\xce\x97\xce\x99\0" /* offset 1024 */ - "\xe1\xbf\xbc\xce\xa9\xce\x99\x00\xe1\xbf\xbc\0" /* offset 1033 */ - "\xe1\xbf\xb3\x00\xce\xa9\xce\x99\0" /* offset 1045 */ - "\x00\xe1\xbe\xba\xce\x99\x00\xe1\xbe\xba\xcd\x85\0" /* offset 1054 */ - "\x00\xce\x86\xce\x99\x00\xce\x86\xcd\x85\0" /* offset 1067 */ - "\x00\xe1\xbf\x8a\xce\x99\x00\xe1\xbf\x8a\xcd\x85\0" /* offset 1078 */ - "\x00\xce\x89\xce\x99\x00\xce\x89\xcd\x85\0" /* offset 1091 */ - "\x00\xe1\xbf\xba\xce\x99\x00\xe1\xbf\xba\xcd\x85\0" /* offset 1102 */ - "\x00\xce\x8f\xce\x99\x00\xce\x8f\xcd\x85\0" /* offset 1115 */ - "\x00\xce\x91\xcd\x82\xce\x99\x00\xce\x91\xcd\x82\xcd\x85\0" /* offset 1126 */ - "\x00\xce\x97\xcd\x82\xce\x99\x00\xce\x97\xcd\x82\xcd\x85\0" /* offset 1141 */ - "\x00\xce\xa9\xcd\x82\xce\x99\x00\xce\xa9\xcd\x82\xcd\x85\0" /* offset 1156 */ -}; - - -/* Table of casefolding cases that can't be derived by lowercasing - */ -static const struct { - guint16 ch; - gchar data[7]; -} casefold_table[] = { - { 0x00b5, "\xce\xbc" }, - { 0x00df, "\x73\x73" }, - { 0x0130, "\x69\xcc\x87" }, - { 0x0149, "\xca\xbc\x6e" }, - { 0x017f, "\x73" }, - { 0x01f0, "\x6a\xcc\x8c" }, - { 0x0345, "\xce\xb9" }, - { 0x0390, "\xce\xb9\xcc\x88\xcc\x81" }, - { 0x03b0, "\xcf\x85\xcc\x88\xcc\x81" }, - { 0x03c2, "\xcf\x83" }, - { 0x03d0, "\xce\xb2" }, - { 0x03d1, "\xce\xb8" }, - { 0x03d5, "\xcf\x86" }, - { 0x03d6, "\xcf\x80" }, - { 0x03f0, "\xce\xba" }, - { 0x03f1, "\xcf\x81" }, - { 0x03f5, "\xce\xb5" }, - { 0x0587, "\xd5\xa5\xd6\x82" }, - { 0x1e96, "\x68\xcc\xb1" }, - { 0x1e97, "\x74\xcc\x88" }, - { 0x1e98, "\x77\xcc\x8a" }, - { 0x1e99, "\x79\xcc\x8a" }, - { 0x1e9a, "\x61\xca\xbe" }, - { 0x1e9b, "\xe1\xb9\xa1" }, - { 0x1e9e, "\x73\x73" }, - { 0x1f50, "\xcf\x85\xcc\x93" }, - { 0x1f52, "\xcf\x85\xcc\x93\xcc\x80" }, - { 0x1f54, "\xcf\x85\xcc\x93\xcc\x81" }, - { 0x1f56, "\xcf\x85\xcc\x93\xcd\x82" }, - { 0x1f80, "\xe1\xbc\x80\xce\xb9" }, - { 0x1f81, "\xe1\xbc\x81\xce\xb9" }, - { 0x1f82, "\xe1\xbc\x82\xce\xb9" }, - { 0x1f83, "\xe1\xbc\x83\xce\xb9" }, - { 0x1f84, "\xe1\xbc\x84\xce\xb9" }, - { 0x1f85, "\xe1\xbc\x85\xce\xb9" }, - { 0x1f86, "\xe1\xbc\x86\xce\xb9" }, - { 0x1f87, "\xe1\xbc\x87\xce\xb9" }, - { 0x1f88, "\xe1\xbc\x80\xce\xb9" }, - { 0x1f89, "\xe1\xbc\x81\xce\xb9" }, - { 0x1f8a, "\xe1\xbc\x82\xce\xb9" }, - { 0x1f8b, "\xe1\xbc\x83\xce\xb9" }, - { 0x1f8c, "\xe1\xbc\x84\xce\xb9" }, - { 0x1f8d, "\xe1\xbc\x85\xce\xb9" }, - { 0x1f8e, "\xe1\xbc\x86\xce\xb9" }, - { 0x1f8f, "\xe1\xbc\x87\xce\xb9" }, - { 0x1f90, "\xe1\xbc\xa0\xce\xb9" }, - { 0x1f91, "\xe1\xbc\xa1\xce\xb9" }, - { 0x1f92, "\xe1\xbc\xa2\xce\xb9" }, - { 0x1f93, "\xe1\xbc\xa3\xce\xb9" }, - { 0x1f94, "\xe1\xbc\xa4\xce\xb9" }, - { 0x1f95, "\xe1\xbc\xa5\xce\xb9" }, - { 0x1f96, "\xe1\xbc\xa6\xce\xb9" }, - { 0x1f97, "\xe1\xbc\xa7\xce\xb9" }, - { 0x1f98, "\xe1\xbc\xa0\xce\xb9" }, - { 0x1f99, "\xe1\xbc\xa1\xce\xb9" }, - { 0x1f9a, "\xe1\xbc\xa2\xce\xb9" }, - { 0x1f9b, "\xe1\xbc\xa3\xce\xb9" }, - { 0x1f9c, "\xe1\xbc\xa4\xce\xb9" }, - { 0x1f9d, "\xe1\xbc\xa5\xce\xb9" }, - { 0x1f9e, "\xe1\xbc\xa6\xce\xb9" }, - { 0x1f9f, "\xe1\xbc\xa7\xce\xb9" }, - { 0x1fa0, "\xe1\xbd\xa0\xce\xb9" }, - { 0x1fa1, "\xe1\xbd\xa1\xce\xb9" }, - { 0x1fa2, "\xe1\xbd\xa2\xce\xb9" }, - { 0x1fa3, "\xe1\xbd\xa3\xce\xb9" }, - { 0x1fa4, "\xe1\xbd\xa4\xce\xb9" }, - { 0x1fa5, "\xe1\xbd\xa5\xce\xb9" }, - { 0x1fa6, "\xe1\xbd\xa6\xce\xb9" }, - { 0x1fa7, "\xe1\xbd\xa7\xce\xb9" }, - { 0x1fa8, "\xe1\xbd\xa0\xce\xb9" }, - { 0x1fa9, "\xe1\xbd\xa1\xce\xb9" }, - { 0x1faa, "\xe1\xbd\xa2\xce\xb9" }, - { 0x1fab, "\xe1\xbd\xa3\xce\xb9" }, - { 0x1fac, "\xe1\xbd\xa4\xce\xb9" }, - { 0x1fad, "\xe1\xbd\xa5\xce\xb9" }, - { 0x1fae, "\xe1\xbd\xa6\xce\xb9" }, - { 0x1faf, "\xe1\xbd\xa7\xce\xb9" }, - { 0x1fb2, "\xe1\xbd\xb0\xce\xb9" }, - { 0x1fb3, "\xce\xb1\xce\xb9" }, - { 0x1fb4, "\xce\xac\xce\xb9" }, - { 0x1fb6, "\xce\xb1\xcd\x82" }, - { 0x1fb7, "\xce\xb1\xcd\x82\xce\xb9" }, - { 0x1fbc, "\xce\xb1\xce\xb9" }, - { 0x1fbe, "\xce\xb9" }, - { 0x1fc2, "\xe1\xbd\xb4\xce\xb9" }, - { 0x1fc3, "\xce\xb7\xce\xb9" }, - { 0x1fc4, "\xce\xae\xce\xb9" }, - { 0x1fc6, "\xce\xb7\xcd\x82" }, - { 0x1fc7, "\xce\xb7\xcd\x82\xce\xb9" }, - { 0x1fcc, "\xce\xb7\xce\xb9" }, - { 0x1fd2, "\xce\xb9\xcc\x88\xcc\x80" }, - { 0x1fd3, "\xce\xb9\xcc\x88\xcc\x81" }, - { 0x1fd6, "\xce\xb9\xcd\x82" }, - { 0x1fd7, "\xce\xb9\xcc\x88\xcd\x82" }, - { 0x1fe2, "\xcf\x85\xcc\x88\xcc\x80" }, - { 0x1fe3, "\xcf\x85\xcc\x88\xcc\x81" }, - { 0x1fe4, "\xcf\x81\xcc\x93" }, - { 0x1fe6, "\xcf\x85\xcd\x82" }, - { 0x1fe7, "\xcf\x85\xcc\x88\xcd\x82" }, - { 0x1ff2, "\xe1\xbd\xbc\xce\xb9" }, - { 0x1ff3, "\xcf\x89\xce\xb9" }, - { 0x1ff4, "\xcf\x8e\xce\xb9" }, - { 0x1ff6, "\xcf\x89\xcd\x82" }, - { 0x1ff7, "\xcf\x89\xcd\x82\xce\xb9" }, - { 0x1ffc, "\xcf\x89\xce\xb9" }, - { 0x2160, "\xe2\x85\xb0" }, - { 0x2161, "\xe2\x85\xb1" }, - { 0x2162, "\xe2\x85\xb2" }, - { 0x2163, "\xe2\x85\xb3" }, - { 0x2164, "\xe2\x85\xb4" }, - { 0x2165, "\xe2\x85\xb5" }, - { 0x2166, "\xe2\x85\xb6" }, - { 0x2167, "\xe2\x85\xb7" }, - { 0x2168, "\xe2\x85\xb8" }, - { 0x2169, "\xe2\x85\xb9" }, - { 0x216a, "\xe2\x85\xba" }, - { 0x216b, "\xe2\x85\xbb" }, - { 0x216c, "\xe2\x85\xbc" }, - { 0x216d, "\xe2\x85\xbd" }, - { 0x216e, "\xe2\x85\xbe" }, - { 0x216f, "\xe2\x85\xbf" }, - { 0x24b6, "\xe2\x93\x90" }, - { 0x24b7, "\xe2\x93\x91" }, - { 0x24b8, "\xe2\x93\x92" }, - { 0x24b9, "\xe2\x93\x93" }, - { 0x24ba, "\xe2\x93\x94" }, - { 0x24bb, "\xe2\x93\x95" }, - { 0x24bc, "\xe2\x93\x96" }, - { 0x24bd, "\xe2\x93\x97" }, - { 0x24be, "\xe2\x93\x98" }, - { 0x24bf, "\xe2\x93\x99" }, - { 0x24c0, "\xe2\x93\x9a" }, - { 0x24c1, "\xe2\x93\x9b" }, - { 0x24c2, "\xe2\x93\x9c" }, - { 0x24c3, "\xe2\x93\x9d" }, - { 0x24c4, "\xe2\x93\x9e" }, - { 0x24c5, "\xe2\x93\x9f" }, - { 0x24c6, "\xe2\x93\xa0" }, - { 0x24c7, "\xe2\x93\xa1" }, - { 0x24c8, "\xe2\x93\xa2" }, - { 0x24c9, "\xe2\x93\xa3" }, - { 0x24ca, "\xe2\x93\xa4" }, - { 0x24cb, "\xe2\x93\xa5" }, - { 0x24cc, "\xe2\x93\xa6" }, - { 0x24cd, "\xe2\x93\xa7" }, - { 0x24ce, "\xe2\x93\xa8" }, - { 0x24cf, "\xe2\x93\xa9" }, - { 0xfb00, "\x66\x66" }, - { 0xfb01, "\x66\x69" }, - { 0xfb02, "\x66\x6c" }, - { 0xfb03, "\x66\x66\x69" }, - { 0xfb04, "\x66\x66\x6c" }, - { 0xfb05, "\x73\x74" }, - { 0xfb06, "\x73\x74" }, - { 0xfb13, "\xd5\xb4\xd5\xb6" }, - { 0xfb14, "\xd5\xb4\xd5\xa5" }, - { 0xfb15, "\xd5\xb4\xd5\xab" }, - { 0xfb16, "\xd5\xbe\xd5\xb6" }, - { 0xfb17, "\xd5\xb4\xd5\xad" }, -}; - -#endif /* CHARTABLES_H */ diff --git a/lib/win32/glib-2.20.4/glib/gunicode.h b/lib/win32/glib-2.20.4/glib/gunicode.h deleted file mode 100644 index 78b259e444066..0000000000000 --- a/lib/win32/glib-2.20.4/glib/gunicode.h +++ /dev/null @@ -1,404 +0,0 @@ -/* gunicode.h - Unicode manipulation functions - * - * Copyright (C) 1999, 2000 Tom Tromey - * Copyright 2000, 2005 Red Hat, Inc. - * - * The Gnome Library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or (at your option) any later version. - * - * The Gnome Library 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 - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with the Gnome Library; see the file COPYING.LIB. If not, - * write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ - -#if defined(G_DISABLE_SINGLE_INCLUDES) && !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION) -#error "Only can be included directly." -#endif - -#ifndef __G_UNICODE_H__ -#define __G_UNICODE_H__ - -#include -#include - -G_BEGIN_DECLS - -typedef guint32 gunichar; -typedef guint16 gunichar2; - -/* These are the possible character classifications. - * See http://www.unicode.org/Public/UNIDATA/UCD.html#General_Category_Values - */ -typedef enum -{ - G_UNICODE_CONTROL, - G_UNICODE_FORMAT, - G_UNICODE_UNASSIGNED, - G_UNICODE_PRIVATE_USE, - G_UNICODE_SURROGATE, - G_UNICODE_LOWERCASE_LETTER, - G_UNICODE_MODIFIER_LETTER, - G_UNICODE_OTHER_LETTER, - G_UNICODE_TITLECASE_LETTER, - G_UNICODE_UPPERCASE_LETTER, - G_UNICODE_COMBINING_MARK, - G_UNICODE_ENCLOSING_MARK, - G_UNICODE_NON_SPACING_MARK, - G_UNICODE_DECIMAL_NUMBER, - G_UNICODE_LETTER_NUMBER, - G_UNICODE_OTHER_NUMBER, - G_UNICODE_CONNECT_PUNCTUATION, - G_UNICODE_DASH_PUNCTUATION, - G_UNICODE_CLOSE_PUNCTUATION, - G_UNICODE_FINAL_PUNCTUATION, - G_UNICODE_INITIAL_PUNCTUATION, - G_UNICODE_OTHER_PUNCTUATION, - G_UNICODE_OPEN_PUNCTUATION, - G_UNICODE_CURRENCY_SYMBOL, - G_UNICODE_MODIFIER_SYMBOL, - G_UNICODE_MATH_SYMBOL, - G_UNICODE_OTHER_SYMBOL, - G_UNICODE_LINE_SEPARATOR, - G_UNICODE_PARAGRAPH_SEPARATOR, - G_UNICODE_SPACE_SEPARATOR -} GUnicodeType; - -/* These are the possible line break classifications. - * Note that new types may be added in the future. - * Implementations may regard unknown values like G_UNICODE_BREAK_UNKNOWN - * See http://www.unicode.org/unicode/reports/tr14/ - */ -typedef enum -{ - G_UNICODE_BREAK_MANDATORY, - G_UNICODE_BREAK_CARRIAGE_RETURN, - G_UNICODE_BREAK_LINE_FEED, - G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_SURROGATE, - G_UNICODE_BREAK_ZERO_WIDTH_SPACE, - G_UNICODE_BREAK_INSEPARABLE, - G_UNICODE_BREAK_NON_BREAKING_GLUE, - G_UNICODE_BREAK_CONTINGENT, - G_UNICODE_BREAK_SPACE, - G_UNICODE_BREAK_AFTER, - G_UNICODE_BREAK_BEFORE, - G_UNICODE_BREAK_BEFORE_AND_AFTER, - G_UNICODE_BREAK_HYPHEN, - G_UNICODE_BREAK_NON_STARTER, - G_UNICODE_BREAK_OPEN_PUNCTUATION, - G_UNICODE_BREAK_CLOSE_PUNCTUATION, - G_UNICODE_BREAK_QUOTATION, - G_UNICODE_BREAK_EXCLAMATION, - G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_NUMERIC, - G_UNICODE_BREAK_INFIX_SEPARATOR, - G_UNICODE_BREAK_SYMBOL, - G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_PREFIX, - G_UNICODE_BREAK_POSTFIX, - G_UNICODE_BREAK_COMPLEX_CONTEXT, - G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_NEXT_LINE, - G_UNICODE_BREAK_WORD_JOINER, - G_UNICODE_BREAK_HANGUL_L_JAMO, - G_UNICODE_BREAK_HANGUL_V_JAMO, - G_UNICODE_BREAK_HANGUL_T_JAMO, - G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, - G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE -} GUnicodeBreakType; - -typedef enum -{ /* ISO 15924 code */ - G_UNICODE_SCRIPT_INVALID_CODE = -1, - G_UNICODE_SCRIPT_COMMON = 0, /* Zyyy */ - G_UNICODE_SCRIPT_INHERITED, /* Qaai */ - G_UNICODE_SCRIPT_ARABIC, /* Arab */ - G_UNICODE_SCRIPT_ARMENIAN, /* Armn */ - G_UNICODE_SCRIPT_BENGALI, /* Beng */ - G_UNICODE_SCRIPT_BOPOMOFO, /* Bopo */ - G_UNICODE_SCRIPT_CHEROKEE, /* Cher */ - G_UNICODE_SCRIPT_COPTIC, /* Qaac */ - G_UNICODE_SCRIPT_CYRILLIC, /* Cyrl (Cyrs) */ - G_UNICODE_SCRIPT_DESERET, /* Dsrt */ - G_UNICODE_SCRIPT_DEVANAGARI, /* Deva */ - G_UNICODE_SCRIPT_ETHIOPIC, /* Ethi */ - G_UNICODE_SCRIPT_GEORGIAN, /* Geor (Geon, Geoa) */ - G_UNICODE_SCRIPT_GOTHIC, /* Goth */ - G_UNICODE_SCRIPT_GREEK, /* Grek */ - G_UNICODE_SCRIPT_GUJARATI, /* Gujr */ - G_UNICODE_SCRIPT_GURMUKHI, /* Guru */ - G_UNICODE_SCRIPT_HAN, /* Hani */ - G_UNICODE_SCRIPT_HANGUL, /* Hang */ - G_UNICODE_SCRIPT_HEBREW, /* Hebr */ - G_UNICODE_SCRIPT_HIRAGANA, /* Hira */ - G_UNICODE_SCRIPT_KANNADA, /* Knda */ - G_UNICODE_SCRIPT_KATAKANA, /* Kana */ - G_UNICODE_SCRIPT_KHMER, /* Khmr */ - G_UNICODE_SCRIPT_LAO, /* Laoo */ - G_UNICODE_SCRIPT_LATIN, /* Latn (Latf, Latg) */ - G_UNICODE_SCRIPT_MALAYALAM, /* Mlym */ - G_UNICODE_SCRIPT_MONGOLIAN, /* Mong */ - G_UNICODE_SCRIPT_MYANMAR, /* Mymr */ - G_UNICODE_SCRIPT_OGHAM, /* Ogam */ - G_UNICODE_SCRIPT_OLD_ITALIC, /* Ital */ - G_UNICODE_SCRIPT_ORIYA, /* Orya */ - G_UNICODE_SCRIPT_RUNIC, /* Runr */ - G_UNICODE_SCRIPT_SINHALA, /* Sinh */ - G_UNICODE_SCRIPT_SYRIAC, /* Syrc (Syrj, Syrn, Syre) */ - G_UNICODE_SCRIPT_TAMIL, /* Taml */ - G_UNICODE_SCRIPT_TELUGU, /* Telu */ - G_UNICODE_SCRIPT_THAANA, /* Thaa */ - G_UNICODE_SCRIPT_THAI, /* Thai */ - G_UNICODE_SCRIPT_TIBETAN, /* Tibt */ - G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, /* Cans */ - G_UNICODE_SCRIPT_YI, /* Yiii */ - G_UNICODE_SCRIPT_TAGALOG, /* Tglg */ - G_UNICODE_SCRIPT_HANUNOO, /* Hano */ - G_UNICODE_SCRIPT_BUHID, /* Buhd */ - G_UNICODE_SCRIPT_TAGBANWA, /* Tagb */ - - /* Unicode-4.0 additions */ - G_UNICODE_SCRIPT_BRAILLE, /* Brai */ - G_UNICODE_SCRIPT_CYPRIOT, /* Cprt */ - G_UNICODE_SCRIPT_LIMBU, /* Limb */ - G_UNICODE_SCRIPT_OSMANYA, /* Osma */ - G_UNICODE_SCRIPT_SHAVIAN, /* Shaw */ - G_UNICODE_SCRIPT_LINEAR_B, /* Linb */ - G_UNICODE_SCRIPT_TAI_LE, /* Tale */ - G_UNICODE_SCRIPT_UGARITIC, /* Ugar */ - - /* Unicode-4.1 additions */ - G_UNICODE_SCRIPT_NEW_TAI_LUE, /* Talu */ - G_UNICODE_SCRIPT_BUGINESE, /* Bugi */ - G_UNICODE_SCRIPT_GLAGOLITIC, /* Glag */ - G_UNICODE_SCRIPT_TIFINAGH, /* Tfng */ - G_UNICODE_SCRIPT_SYLOTI_NAGRI, /* Sylo */ - G_UNICODE_SCRIPT_OLD_PERSIAN, /* Xpeo */ - G_UNICODE_SCRIPT_KHAROSHTHI, /* Khar */ - - /* Unicode-5.0 additions */ - G_UNICODE_SCRIPT_UNKNOWN, /* Zzzz */ - G_UNICODE_SCRIPT_BALINESE, /* Bali */ - G_UNICODE_SCRIPT_CUNEIFORM, /* Xsux */ - G_UNICODE_SCRIPT_PHOENICIAN, /* Phnx */ - G_UNICODE_SCRIPT_PHAGS_PA, /* Phag */ - G_UNICODE_SCRIPT_NKO, /* Nkoo */ - - /* Unicode-5.1 additions */ - G_UNICODE_SCRIPT_KAYAH_LI, /* Kali */ - G_UNICODE_SCRIPT_LEPCHA, /* Lepc */ - G_UNICODE_SCRIPT_REJANG, /* Rjng */ - G_UNICODE_SCRIPT_SUNDANESE, /* Sund */ - G_UNICODE_SCRIPT_SAURASHTRA, /* Saur */ - G_UNICODE_SCRIPT_CHAM, /* Cham */ - G_UNICODE_SCRIPT_OL_CHIKI, /* Olck */ - G_UNICODE_SCRIPT_VAI, /* Vaii */ - G_UNICODE_SCRIPT_CARIAN, /* Cari */ - G_UNICODE_SCRIPT_LYCIAN, /* Lyci */ - G_UNICODE_SCRIPT_LYDIAN /* Lydi */ -} GUnicodeScript; - -/* Returns TRUE if current locale uses UTF-8 charset. If CHARSET is - * not null, sets *CHARSET to the name of the current locale's - * charset. This value is statically allocated, and should be copied - * in case the locale's charset will be changed later using setlocale() - * or in some other way. - */ -gboolean g_get_charset (G_CONST_RETURN char **charset); - -/* These are all analogs of the functions. - */ -gboolean g_unichar_isalnum (gunichar c) G_GNUC_CONST; -gboolean g_unichar_isalpha (gunichar c) G_GNUC_CONST; -gboolean g_unichar_iscntrl (gunichar c) G_GNUC_CONST; -gboolean g_unichar_isdigit (gunichar c) G_GNUC_CONST; -gboolean g_unichar_isgraph (gunichar c) G_GNUC_CONST; -gboolean g_unichar_islower (gunichar c) G_GNUC_CONST; -gboolean g_unichar_isprint (gunichar c) G_GNUC_CONST; -gboolean g_unichar_ispunct (gunichar c) G_GNUC_CONST; -gboolean g_unichar_isspace (gunichar c) G_GNUC_CONST; -gboolean g_unichar_isupper (gunichar c) G_GNUC_CONST; -gboolean g_unichar_isxdigit (gunichar c) G_GNUC_CONST; -gboolean g_unichar_istitle (gunichar c) G_GNUC_CONST; -gboolean g_unichar_isdefined (gunichar c) G_GNUC_CONST; -gboolean g_unichar_iswide (gunichar c) G_GNUC_CONST; -gboolean g_unichar_iswide_cjk(gunichar c) G_GNUC_CONST; -gboolean g_unichar_iszerowidth(gunichar c) G_GNUC_CONST; -gboolean g_unichar_ismark (gunichar c) G_GNUC_CONST; - -/* More functions. These convert between the three cases. - * See the Unicode book to understand title case. */ -gunichar g_unichar_toupper (gunichar c) G_GNUC_CONST; -gunichar g_unichar_tolower (gunichar c) G_GNUC_CONST; -gunichar g_unichar_totitle (gunichar c) G_GNUC_CONST; - -/* If C is a digit (according to `g_unichar_isdigit'), then return its - numeric value. Otherwise return -1. */ -gint g_unichar_digit_value (gunichar c) G_GNUC_CONST; - -gint g_unichar_xdigit_value (gunichar c) G_GNUC_CONST; - -/* Return the Unicode character type of a given character. */ -GUnicodeType g_unichar_type (gunichar c) G_GNUC_CONST; - -/* Return the line break property for a given character */ -GUnicodeBreakType g_unichar_break_type (gunichar c) G_GNUC_CONST; - -/* Returns the combining class for a given character */ -gint g_unichar_combining_class (gunichar uc) G_GNUC_CONST; - - -/* Compute canonical ordering of a string in-place. This rearranges - decomposed characters in the string according to their combining - classes. See the Unicode manual for more information. */ -void g_unicode_canonical_ordering (gunichar *string, - gsize len); - -/* Compute canonical decomposition of a character. Returns g_malloc()d - string of Unicode characters. RESULT_LEN is set to the resulting - length of the string. */ -gunichar *g_unicode_canonical_decomposition (gunichar ch, - gsize *result_len) G_GNUC_MALLOC; - -/* Array of skip-bytes-per-initial character. - */ -GLIB_VAR const gchar * const g_utf8_skip; - -#define g_utf8_next_char(p) (char *)((p) + g_utf8_skip[*(const guchar *)(p)]) - -gunichar g_utf8_get_char (const gchar *p) G_GNUC_PURE; -gunichar g_utf8_get_char_validated (const gchar *p, - gssize max_len) G_GNUC_PURE; - -gchar* g_utf8_offset_to_pointer (const gchar *str, - glong offset) G_GNUC_PURE; -glong g_utf8_pointer_to_offset (const gchar *str, - const gchar *pos) G_GNUC_PURE; -gchar* g_utf8_prev_char (const gchar *p) G_GNUC_PURE; -gchar* g_utf8_find_next_char (const gchar *p, - const gchar *end) G_GNUC_PURE; -gchar* g_utf8_find_prev_char (const gchar *str, - const gchar *p) G_GNUC_PURE; - -glong g_utf8_strlen (const gchar *p, - gssize max) G_GNUC_PURE; - -/* Copies n characters from src to dest */ -gchar* g_utf8_strncpy (gchar *dest, - const gchar *src, - gsize n); - -/* Find the UTF-8 character corresponding to ch, in string p. These - functions are equivalants to strchr and strrchr */ -gchar* g_utf8_strchr (const gchar *p, - gssize len, - gunichar c); -gchar* g_utf8_strrchr (const gchar *p, - gssize len, - gunichar c); -gchar* g_utf8_strreverse (const gchar *str, - gssize len); - -gunichar2 *g_utf8_to_utf16 (const gchar *str, - glong len, - glong *items_read, - glong *items_written, - GError **error) G_GNUC_MALLOC; -gunichar * g_utf8_to_ucs4 (const gchar *str, - glong len, - glong *items_read, - glong *items_written, - GError **error) G_GNUC_MALLOC; -gunichar * g_utf8_to_ucs4_fast (const gchar *str, - glong len, - glong *items_written) G_GNUC_MALLOC; -gunichar * g_utf16_to_ucs4 (const gunichar2 *str, - glong len, - glong *items_read, - glong *items_written, - GError **error) G_GNUC_MALLOC; -gchar* g_utf16_to_utf8 (const gunichar2 *str, - glong len, - glong *items_read, - glong *items_written, - GError **error) G_GNUC_MALLOC; -gunichar2 *g_ucs4_to_utf16 (const gunichar *str, - glong len, - glong *items_read, - glong *items_written, - GError **error) G_GNUC_MALLOC; -gchar* g_ucs4_to_utf8 (const gunichar *str, - glong len, - glong *items_read, - glong *items_written, - GError **error) G_GNUC_MALLOC; - -/* Convert a single character into UTF-8. outbuf must have at - * least 6 bytes of space. Returns the number of bytes in the - * result. - */ -gint g_unichar_to_utf8 (gunichar c, - gchar *outbuf); - -/* Validate a UTF8 string, return TRUE if valid, put pointer to - * first invalid char in **end - */ - -gboolean g_utf8_validate (const gchar *str, - gssize max_len, - const gchar **end); - -/* Validate a Unicode character */ -gboolean g_unichar_validate (gunichar ch) G_GNUC_CONST; - -gchar *g_utf8_strup (const gchar *str, - gssize len) G_GNUC_MALLOC; -gchar *g_utf8_strdown (const gchar *str, - gssize len) G_GNUC_MALLOC; -gchar *g_utf8_casefold (const gchar *str, - gssize len) G_GNUC_MALLOC; - -typedef enum { - G_NORMALIZE_DEFAULT, - G_NORMALIZE_NFD = G_NORMALIZE_DEFAULT, - G_NORMALIZE_DEFAULT_COMPOSE, - G_NORMALIZE_NFC = G_NORMALIZE_DEFAULT_COMPOSE, - G_NORMALIZE_ALL, - G_NORMALIZE_NFKD = G_NORMALIZE_ALL, - G_NORMALIZE_ALL_COMPOSE, - G_NORMALIZE_NFKC = G_NORMALIZE_ALL_COMPOSE -} GNormalizeMode; - -gchar *g_utf8_normalize (const gchar *str, - gssize len, - GNormalizeMode mode) G_GNUC_MALLOC; - -gint g_utf8_collate (const gchar *str1, - const gchar *str2) G_GNUC_PURE; -gchar *g_utf8_collate_key (const gchar *str, - gssize len) G_GNUC_MALLOC; -gchar *g_utf8_collate_key_for_filename (const gchar *str, - gssize len) G_GNUC_MALLOC; - -gboolean g_unichar_get_mirror_char (gunichar ch, - gunichar *mirrored_ch); - -GUnicodeScript g_unichar_get_script (gunichar ch) G_GNUC_CONST; - - -/* private */ - -gchar *_g_utf8_make_valid (const gchar *name); - -G_END_DECLS - -#endif /* __G_UNICODE_H__ */ diff --git a/lib/win32/glib-2.20.4/glib/gunicodeprivate.h b/lib/win32/glib-2.20.4/glib/gunicodeprivate.h deleted file mode 100644 index 70539d4fc67be..0000000000000 --- a/lib/win32/glib-2.20.4/glib/gunicodeprivate.h +++ /dev/null @@ -1,35 +0,0 @@ -/* gunicodeprivate.h - * - * Copyright (C) 2003 Noah Levitt - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library 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 - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ - -#ifndef __G_UNICODE_PRIVATE_H__ -#define __G_UNICODE_PRIVATE_H__ - -#include "glib.h" - -G_BEGIN_DECLS - -G_GNUC_INTERNAL gunichar *_g_utf8_normalize_wc - (const gchar *str, - gssize max_len, - GNormalizeMode mode); - -G_END_DECLS - -#endif /* __G_UNICODE_PRIVATE_H__ */ diff --git a/lib/win32/glib-2.20.4/glib/gunicollate.c b/lib/win32/glib-2.20.4/glib/gunicollate.c deleted file mode 100644 index 2bf579ecaebfc..0000000000000 --- a/lib/win32/glib-2.20.4/glib/gunicollate.c +++ /dev/null @@ -1,679 +0,0 @@ -/* gunicollate.c - Collation - * - * Copyright 2001,2005 Red Hat, Inc. - * - * The Gnome Library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or (at your option) any later version. - * - * The Gnome Library 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 - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with the Gnome Library; see the file COPYING.LIB. If not, - * write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ - -#include "config.h" - -#include -#include -#ifdef __STDC_ISO_10646__ -#include -#endif - -#ifdef HAVE_CARBON -#include -#endif - -#include "glib.h" -#include "gunicodeprivate.h" -#include "galias.h" - -#ifdef _MSC_VER -/* Workaround for bug in MSVCR80.DLL */ -static gsize -msc_strxfrm_wrapper (char *string1, - const char *string2, - gsize count) -{ - if (!string1 || count <= 0) - { - char tmp; - - return strxfrm (&tmp, string2, 1); - } - return strxfrm (string1, string2, count); -} -#define strxfrm msc_strxfrm_wrapper -#endif - -/** - * g_utf8_collate: - * @str1: a UTF-8 encoded string - * @str2: a UTF-8 encoded string - * - * Compares two strings for ordering using the linguistically - * correct rules for the current locale. - * When sorting a large number of strings, it will be significantly - * faster to obtain collation keys with g_utf8_collate_key() and - * compare the keys with strcmp() when sorting instead of sorting - * the original strings. - * - * Return value: < 0 if @str1 compares before @str2, - * 0 if they compare equal, > 0 if @str1 compares after @str2. - **/ -gint -g_utf8_collate (const gchar *str1, - const gchar *str2) -{ - gint result; - -#ifdef HAVE_CARBON - - UniChar *str1_utf16; - UniChar *str2_utf16; - glong len1; - glong len2; - SInt32 retval = 0; - - g_return_val_if_fail (str1 != NULL, 0); - g_return_val_if_fail (str2 != NULL, 0); - - str1_utf16 = g_utf8_to_utf16 (str1, -1, NULL, &len1, NULL); - str2_utf16 = g_utf8_to_utf16 (str2, -1, NULL, &len2, NULL); - - UCCompareTextDefault (kUCCollateStandardOptions, - str1_utf16, len1, str2_utf16, len2, - NULL, &retval); - result = retval; - - g_free (str2_utf16); - g_free (str1_utf16); - -#elif defined(__STDC_ISO_10646__) - - gunichar *str1_norm; - gunichar *str2_norm; - - g_return_val_if_fail (str1 != NULL, 0); - g_return_val_if_fail (str2 != NULL, 0); - - str1_norm = _g_utf8_normalize_wc (str1, -1, G_NORMALIZE_ALL_COMPOSE); - str2_norm = _g_utf8_normalize_wc (str2, -1, G_NORMALIZE_ALL_COMPOSE); - - result = wcscoll ((wchar_t *)str1_norm, (wchar_t *)str2_norm); - - g_free (str1_norm); - g_free (str2_norm); - -#else /* !__STDC_ISO_10646__ */ - - const gchar *charset; - gchar *str1_norm; - gchar *str2_norm; - - g_return_val_if_fail (str1 != NULL, 0); - g_return_val_if_fail (str2 != NULL, 0); - - str1_norm = g_utf8_normalize (str1, -1, G_NORMALIZE_ALL_COMPOSE); - str2_norm = g_utf8_normalize (str2, -1, G_NORMALIZE_ALL_COMPOSE); - - if (g_get_charset (&charset)) - { - result = strcoll (str1_norm, str2_norm); - } - else - { - gchar *str1_locale = g_convert (str1_norm, -1, charset, "UTF-8", NULL, NULL, NULL); - gchar *str2_locale = g_convert (str2_norm, -1, charset, "UTF-8", NULL, NULL, NULL); - - if (str1_locale && str2_locale) - result = strcoll (str1_locale, str2_locale); - else if (str1_locale) - result = -1; - else if (str2_locale) - result = 1; - else - result = strcmp (str1_norm, str2_norm); - - g_free (str1_locale); - g_free (str2_locale); - } - - g_free (str1_norm); - g_free (str2_norm); - -#endif /* __STDC_ISO_10646__ */ - - return result; -} - -#if defined(__STDC_ISO_10646__) || defined(HAVE_CARBON) -/* We need UTF-8 encoding of numbers to encode the weights if - * we are using wcsxfrm. However, we aren't encoding Unicode - * characters, so we can't simply use g_unichar_to_utf8. - * - * The following routine is taken (with modification) from GNU - * libc's strxfrm routine: - * - * Copyright (C) 1995-1999,2000,2001 Free Software Foundation, Inc. - * Written by Ulrich Drepper , 1995. - */ -static inline int -utf8_encode (char *buf, wchar_t val) -{ - int retval; - - if (val < 0x80) - { - if (buf) - *buf++ = (char) val; - retval = 1; - } - else - { - int step; - - for (step = 2; step < 6; ++step) - if ((val & (~(guint32)0 << (5 * step + 1))) == 0) - break; - retval = step; - - if (buf) - { - *buf = (unsigned char) (~0xff >> step); - --step; - do - { - buf[step] = 0x80 | (val & 0x3f); - val >>= 6; - } - while (--step > 0); - *buf |= val; - } - } - - return retval; -} -#endif /* __STDC_ISO_10646__ || HAVE_CARBON */ - -#ifdef HAVE_CARBON - -static gchar * -collate_key_to_string (UCCollationValue *key, - gsize key_len) -{ - gchar *result; - gsize result_len; - gsize i; - - /* Pretty smart algorithm here: ignore first eight bytes of the - * collation key. It doesn't produce results equivalent to - * UCCompareCollationKeys's, but the difference seems to be only - * that UCCompareCollationKeys in some cases produces 0 where our - * comparison gets -1 or 1. */ - - if (key_len * sizeof (UCCollationValue) <= 8) - return g_strdup (""); - - result_len = 0; - for (i = 8; i < key_len * sizeof (UCCollationValue); i++) - /* there may be nul bytes, encode byteval+1 */ - result_len += utf8_encode (NULL, *((guchar*)key + i) + 1); - - result = g_malloc (result_len + 1); - result_len = 0; - for (i = 8; i < key_len * sizeof (UCCollationValue); i++) - result_len += utf8_encode (result + result_len, *((guchar*)key + i) + 1); - - result[result_len] = 0; - return result; -} - -static gchar * -carbon_collate_key_with_collator (const gchar *str, - gssize len, - CollatorRef collator) -{ - UniChar *str_utf16 = NULL; - glong len_utf16; - OSStatus ret; - UCCollationValue staticbuf[512]; - UCCollationValue *freeme = NULL; - UCCollationValue *buf; - ItemCount buf_len; - ItemCount key_len; - ItemCount try_len; - gchar *result = NULL; - - str_utf16 = g_utf8_to_utf16 (str, len, NULL, &len_utf16, NULL); - try_len = len_utf16 * 5 + 2; - - if (try_len <= sizeof staticbuf) - { - buf = staticbuf; - buf_len = sizeof staticbuf; - } - else - { - freeme = g_new (UCCollationValue, try_len); - buf = freeme; - buf_len = try_len; - } - - ret = UCGetCollationKey (collator, str_utf16, len_utf16, - buf_len, &key_len, buf); - - if (ret == kCollateBufferTooSmall) - { - freeme = g_renew (UCCollationValue, freeme, try_len * 2); - buf = freeme; - buf_len = try_len * 2; - ret = UCGetCollationKey (collator, str_utf16, len_utf16, - buf_len, &key_len, buf); - } - - if (ret == 0) - result = collate_key_to_string (buf, key_len); - else - result = g_strdup (""); - - g_free (freeme); - g_free (str_utf16); - return result; -} - -static gchar * -carbon_collate_key (const gchar *str, - gssize len) -{ - static CollatorRef collator; - - if (G_UNLIKELY (!collator)) - { - UCCreateCollator (NULL, 0, kUCCollateStandardOptions, &collator); - - if (!collator) - { - static gboolean been_here; - if (!been_here) - g_warning ("%s: UCCreateCollator failed", G_STRLOC); - been_here = TRUE; - return g_strdup (""); - } - } - - return carbon_collate_key_with_collator (str, len, collator); -} - -static gchar * -carbon_collate_key_for_filename (const gchar *str, - gssize len) -{ - static CollatorRef collator; - - if (G_UNLIKELY (!collator)) - { - /* http://developer.apple.com/qa/qa2004/qa1159.html */ - UCCreateCollator (NULL, 0, - kUCCollateComposeInsensitiveMask - | kUCCollateWidthInsensitiveMask - | kUCCollateCaseInsensitiveMask - | kUCCollateDigitsOverrideMask - | kUCCollateDigitsAsNumberMask - | kUCCollatePunctuationSignificantMask, - &collator); - - if (!collator) - { - static gboolean been_here; - if (!been_here) - g_warning ("%s: UCCreateCollator failed", G_STRLOC); - been_here = TRUE; - return g_strdup (""); - } - } - - return carbon_collate_key_with_collator (str, len, collator); -} - -#endif /* HAVE_CARBON */ - -/** - * g_utf8_collate_key: - * @str: a UTF-8 encoded string. - * @len: length of @str, in bytes, or -1 if @str is nul-terminated. - * - * Converts a string into a collation key that can be compared - * with other collation keys produced by the same function using - * strcmp(). - * - * The results of comparing the collation keys of two strings - * with strcmp() will always be the same as comparing the two - * original keys with g_utf8_collate(). - * - * Note that this function depends on the - * current locale. - * - * Return value: a newly allocated string. This string should - * be freed with g_free() when you are done with it. - **/ -gchar * -g_utf8_collate_key (const gchar *str, - gssize len) -{ - gchar *result; - -#ifdef HAVE_CARBON - - g_return_val_if_fail (str != NULL, NULL); - result = carbon_collate_key (str, len); - -#elif defined(__STDC_ISO_10646__) - - gsize xfrm_len; - gunichar *str_norm; - wchar_t *result_wc; - gsize i; - gsize result_len = 0; - - g_return_val_if_fail (str != NULL, NULL); - - str_norm = _g_utf8_normalize_wc (str, len, G_NORMALIZE_ALL_COMPOSE); - - xfrm_len = wcsxfrm (NULL, (wchar_t *)str_norm, 0); - result_wc = g_new (wchar_t, xfrm_len + 1); - wcsxfrm (result_wc, (wchar_t *)str_norm, xfrm_len + 1); - - for (i=0; i < xfrm_len; i++) - result_len += utf8_encode (NULL, result_wc[i]); - - result = g_malloc (result_len + 1); - result_len = 0; - for (i=0; i < xfrm_len; i++) - result_len += utf8_encode (result + result_len, result_wc[i]); - - result[result_len] = '\0'; - - g_free (result_wc); - g_free (str_norm); - - return result; -#else /* !__STDC_ISO_10646__ */ - - gsize xfrm_len; - const gchar *charset; - gchar *str_norm; - - g_return_val_if_fail (str != NULL, NULL); - - str_norm = g_utf8_normalize (str, len, G_NORMALIZE_ALL_COMPOSE); - - result = NULL; - - if (g_get_charset (&charset)) - { - xfrm_len = strxfrm (NULL, str_norm, 0); - if (xfrm_len >= 0 && xfrm_len < G_MAXINT - 2) - { - result = g_malloc (xfrm_len + 1); - strxfrm (result, str_norm, xfrm_len + 1); - } - } - else - { - gchar *str_locale = g_convert (str_norm, -1, charset, "UTF-8", NULL, NULL, NULL); - - if (str_locale) - { - xfrm_len = strxfrm (NULL, str_locale, 0); - if (xfrm_len < 0 || xfrm_len >= G_MAXINT - 2) - { - g_free (str_locale); - str_locale = NULL; - } - } - if (str_locale) - { - result = g_malloc (xfrm_len + 2); - result[0] = 'A'; - strxfrm (result + 1, str_locale, xfrm_len + 1); - - g_free (str_locale); - } - } - - if (!result) - { - xfrm_len = strlen (str_norm); - result = g_malloc (xfrm_len + 2); - result[0] = 'B'; - memcpy (result + 1, str_norm, xfrm_len); - result[xfrm_len+1] = '\0'; - } - - g_free (str_norm); -#endif /* __STDC_ISO_10646__ */ - - return result; -} - -/* This is a collation key that is very very likely to sort before any - collation key that libc strxfrm generates. We use this before any - special case (dot or number) to make sure that its sorted before - anything else. - */ -#define COLLATION_SENTINEL "\1\1\1" - -/** - * g_utf8_collate_key_for_filename: - * @str: a UTF-8 encoded string. - * @len: length of @str, in bytes, or -1 if @str is nul-terminated. - * - * Converts a string into a collation key that can be compared - * with other collation keys produced by the same function using strcmp(). - * - * In order to sort filenames correctly, this function treats the dot '.' - * as a special case. Most dictionary orderings seem to consider it - * insignificant, thus producing the ordering "event.c" "eventgenerator.c" - * "event.h" instead of "event.c" "event.h" "eventgenerator.c". Also, we - * would like to treat numbers intelligently so that "file1" "file10" "file5" - * is sorted as "file1" "file5" "file10". - * - * Note that this function depends on the - * current locale. - * - * Return value: a newly allocated string. This string should - * be freed with g_free() when you are done with it. - * - * Since: 2.8 - */ -gchar* -g_utf8_collate_key_for_filename (const gchar *str, - gssize len) -{ -#ifndef HAVE_CARBON - GString *result; - GString *append; - const gchar *p; - const gchar *prev; - const gchar *end; - gchar *collate_key; - gint digits; - gint leading_zeros; - - /* - * How it works: - * - * Split the filename into collatable substrings which do - * not contain [.0-9] and special-cased substrings. The collatable - * substrings are run through the normal g_utf8_collate_key() and the - * resulting keys are concatenated with keys generated from the - * special-cased substrings. - * - * Special cases: Dots are handled by replacing them with '\1' which - * implies that short dot-delimited substrings are before long ones, - * e.g. - * - * a\1a (a.a) - * a-\1a (a-.a) - * aa\1a (aa.a) - * - * Numbers are handled by prepending to each number d-1 superdigits - * where d = number of digits in the number and SUPERDIGIT is a - * character with an integer value higher than any digit (for instance - * ':'). This ensures that single-digit numbers are sorted before - * double-digit numbers which in turn are sorted separately from - * triple-digit numbers, etc. To avoid strange side-effects when - * sorting strings that already contain SUPERDIGITs, a '\2' - * is also prepended, like this - * - * file\21 (file1) - * file\25 (file5) - * file\2:10 (file10) - * file\2:26 (file26) - * file\2::100 (file100) - * file:foo (file:foo) - * - * This has the side-effect of sorting numbers before everything else (except - * dots), but this is probably OK. - * - * Leading digits are ignored when doing the above. To discriminate - * numbers which differ only in the number of leading digits, we append - * the number of leading digits as a byte at the very end of the collation - * key. - * - * To try avoid conflict with any collation key sequence generated by libc we - * start each switch to a special cased part with a sentinel that hopefully - * will sort before anything libc will generate. - */ - - if (len < 0) - len = strlen (str); - - result = g_string_sized_new (len * 2); - append = g_string_sized_new (0); - - end = str + len; - - /* No need to use utf8 functions, since we're only looking for ascii chars */ - for (prev = p = str; p < end; p++) - { - switch (*p) - { - case '.': - if (prev != p) - { - collate_key = g_utf8_collate_key (prev, p - prev); - g_string_append (result, collate_key); - g_free (collate_key); - } - - g_string_append (result, COLLATION_SENTINEL "\1"); - - /* skip the dot */ - prev = p + 1; - break; - - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': - if (prev != p) - { - collate_key = g_utf8_collate_key (prev, p - prev); - g_string_append (result, collate_key); - g_free (collate_key); - } - - g_string_append (result, COLLATION_SENTINEL "\2"); - - prev = p; - - /* write d-1 colons */ - if (*p == '0') - { - leading_zeros = 1; - digits = 0; - } - else - { - leading_zeros = 0; - digits = 1; - } - - while (++p < end) - { - if (*p == '0' && !digits) - ++leading_zeros; - else if (g_ascii_isdigit(*p)) - ++digits; - else - { - /* count an all-zero sequence as - * one digit plus leading zeros - */ - if (!digits) - { - ++digits; - --leading_zeros; - } - break; - } - } - - while (digits > 1) - { - g_string_append_c (result, ':'); - --digits; - } - - if (leading_zeros > 0) - { - g_string_append_c (append, (char)leading_zeros); - prev += leading_zeros; - } - - /* write the number itself */ - g_string_append_len (result, prev, p - prev); - - prev = p; - --p; /* go one step back to avoid disturbing outer loop */ - break; - - default: - /* other characters just accumulate */ - break; - } - } - - if (prev != p) - { - collate_key = g_utf8_collate_key (prev, p - prev); - g_string_append (result, collate_key); - g_free (collate_key); - } - - g_string_append (result, append->str); - g_string_free (append, TRUE); - - return g_string_free (result, FALSE); -#else /* HAVE_CARBON */ - return carbon_collate_key_for_filename (str, len); -#endif -} - - -#define __G_UNICOLLATE_C__ -#include "galiasdef.c" diff --git a/lib/win32/glib-2.20.4/glib/gunicomp.h b/lib/win32/glib-2.20.4/glib/gunicomp.h deleted file mode 100644 index 23a9087b7f923..0000000000000 --- a/lib/win32/glib-2.20.4/glib/gunicomp.h +++ /dev/null @@ -1,682 +0,0 @@ -#define COMPOSE_FIRST_START 1 -#define COMPOSE_FIRST_SINGLE_START 147 -#define COMPOSE_SECOND_START 368 -#define COMPOSE_SECOND_SINGLE_START 399 - -#define COMPOSE_TABLE_LAST 48 - -static const guint16 compose_data[][256] = { - { /* page 0, index 0 */ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 147, 148, 149, 0, 0, 1, 2, 3, 4, 5, - 150, 6, 7, 8, 151, 9, 10, 11, 12, 13, 14, 0, 15, 16, 17, 18, 19, 20, 21, - 22, 23, 0, 0, 0, 0, 0, 0, 24, 25, 26, 27, 28, 152, 29, 30, 31, 32, 33, - 34, 35, 36, 37, 38, 0, 39, 40, 41, 42, 43, 44, 45, 46, 47, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 49, 0, 153, 154, - 50, 155, 0, 0, 51, 0, 0, 0, 0, 156, 0, 0, 0, 0, 52, 53, 157, 0, 158, 0, - 0, 0, 54, 0, 0, 0, 0, 0, 55, 0, 159, 160, 56, 161, 0, 0, 57, 0, 0, 0, 0, - 162, 0, 0, 0, 0, 58, 59, 163, 0, 164, 0, 0, 0, 60, 0, 0, 0 - }, - { /* page 1, index 1 */ - 0, 0, 61, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 64, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 65, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 165, 166, 0, - 0, 0, 0, 167, 168, 0, 0, 0, 0, 0, 0, 169, 170, 171, 172, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 173, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, - 68, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 69, 70, 0, 0, 0, 0, 0, 0, 174, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 175, 176, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0 - }, - { /* page 2, index 2 */ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 177, 178, 179, 180, 0, 0, 0, 0, - 181, 182, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 183, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 - }, - { /* page 3, index 3 */ - 368, 369, 370, 371, 372, 0, 373, 374, 375, 376, 377, 378, 379, 0, 0, 380, - 0, 381, 0, 382, 383, 0, 0, 0, 0, 0, 0, 384, 0, 0, 0, 0, 0, 0, 0, 385, - 386, 387, 388, 389, 390, 0, 0, 0, 0, 391, 392, 0, 393, 394, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 395, 0, 0, 396, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 71, 0, 0, 0, - 72, 0, 73, 0, 74, 0, 0, 0, 0, 0, 75, 0, 184, 0, 0, 0, 76, 0, 0, 0, 77, 0, - 0, 185, 0, 186, 0, 0, 78, 0, 0, 0, 79, 0, 80, 0, 81, 0, 0, 0, 0, 0, 82, - 0, 83, 0, 0, 0, 84, 0, 0, 0, 85, 86, 87, 0, 0, 187, 0, 0, 0, 88, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 - }, - { /* page 4, index 4 */ - 0, 0, 0, 0, 0, 0, 188, 0, 0, 0, 0, 0, 0, 0, 0, 0, 89, 0, 0, 189, 0, 90, - 91, 190, 92, 0, 191, 0, 0, 0, 192, 0, 0, 0, 0, 93, 0, 0, 0, 193, 0, 0, 0, - 194, 0, 195, 0, 0, 94, 0, 0, 196, 0, 95, 96, 197, 97, 0, 198, 0, 0, 0, - 199, 0, 0, 0, 0, 98, 0, 0, 0, 200, 0, 0, 0, 201, 0, 202, 0, 0, 0, 0, 0, - 0, 0, 0, 203, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 204, 205, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 206, 207, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 208, 209, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0 - }, - { /* page 6, index 5 */ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 99, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 210, 0, 211, 0, 0, 0, 0, 0, 0, 0, 0, 399, 400, 401, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 212, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 213, 0, - 0, 214, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 - }, - { /* page 9, index 6 */ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 215, 0, 0, 0, 0, 0, 0, 0, - 216, 0, 0, 217, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 402, - 0, 0, 0, 0, 0, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 403, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 - }, - { /* page 11, index 7 */ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 404, 0, 0, 0, 0, 0, 0, 0, 0, - 101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 405, 406, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 218, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 407, 0, 0, 0, 0, 0, 0, 0, 102, 219, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 408, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 - }, - { /* page 12, index 8 */ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 220, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 221, - 0, 0, 409, 0, 0, 0, 103, 0, 0, 0, 222, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 410, - 411, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 - }, - { /* page 13, index 9 */ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 412, 0, 0, 0, 0, 0, 0, 0, 104, - 223, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 413, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 414, 0, 0, 0, 0, 415, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 105, 0, 0, 224, 0, 0, 416, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 - }, - { /* page 16, index 10 */ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 225, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 - }, - { /* page 27, index 11 */ - 0, 0, 0, 0, 0, 226, 0, 227, 0, 228, 0, 229, 0, 230, 0, 0, 0, 231, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 232, 0, 233, 0, 234, 235, 0, 0, - 236, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 - }, - { /* page 30, index 12 */ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 237, 238, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 239, 240, 0, 0, - 0, 0, 0, 0, 241, 242, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 106, 107, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 243, 244, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 245, 246, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 - }, - { /* page 31, index 13 */ - 108, 109, 247, 248, 249, 250, 251, 252, 110, 111, 253, 254, 255, 256, - 257, 258, 112, 113, 0, 0, 0, 0, 0, 0, 114, 115, 0, 0, 0, 0, 0, 0, 116, - 117, 259, 260, 261, 262, 263, 264, 118, 119, 265, 266, 267, 268, 269, - 270, 120, 121, 0, 0, 0, 0, 0, 0, 122, 123, 0, 0, 0, 0, 0, 0, 124, 125, 0, - 0, 0, 0, 0, 0, 126, 127, 0, 0, 0, 0, 0, 0, 128, 129, 0, 0, 0, 0, 0, 0, 0, - 130, 0, 0, 0, 0, 0, 0, 131, 132, 271, 272, 273, 274, 275, 276, 133, 134, - 277, 278, 279, 280, 281, 282, 283, 0, 0, 0, 284, 0, 0, 0, 0, 0, 0, 0, - 285, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 286, 0, 0, 0, 0, 0, 0, 0, 0, 135, 0, 0, 0, - 0, 0, 0, 287, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 288, 0, 0, 0, 0, 0, 0, 0, 136, 0 - }, - { /* page 33, index 14 */ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 289, 0, 290, 0, 291, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 292, 0, 293, 0, - 294, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 - }, - { /* page 34, index 15 */ - 0, 0, 0, 295, 0, 0, 0, 0, 296, 0, 0, 297, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 298, 0, 299, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 300, 0, 0, 0, 0, 0, 0, 301, - 0, 302, 0, 0, 303, 0, 0, 0, 0, 304, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 305, 0, 0, 306, 307, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 308, 309, 0, 0, 310, 311, 0, 0, 312, 313, 314, 315, 0, 0, 0, 0, - 316, 317, 0, 0, 318, 319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 320, 321, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 322, 0, 0, 0, 0, 0, 323, 324, 0, 325, - 0, 0, 0, 0, 0, 0, 326, 327, 328, 329, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 - }, - { /* page 48, index 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 330, 0, - 0, 0, 0, 331, 0, 332, 0, 333, 0, 334, 0, 335, 0, 336, 0, 337, 0, 338, 0, - 339, 0, 340, 0, 341, 0, 342, 0, 0, 343, 0, 344, 0, 345, 0, 0, 0, 0, 0, 0, - 137, 0, 0, 138, 0, 0, 139, 0, 0, 140, 0, 0, 141, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 397, 398, - 0, 0, 346, 0, 0, 0, 0, 0, 0, 0, 0, 347, 0, 0, 0, 0, 348, 0, 349, 0, 350, - 0, 351, 0, 352, 0, 353, 0, 354, 0, 355, 0, 356, 0, 357, 0, 358, 0, 359, - 0, 0, 360, 0, 361, 0, 362, 0, 0, 0, 0, 0, 0, 142, 0, 0, 143, 0, 0, 144, - 0, 0, 145, 0, 0, 146, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 363, 364, 365, 366, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 367, 0, 0 - } -}; - -static const gint16 compose_table[COMPOSE_TABLE_LAST + 1] = { - 0 /* page 0 */, - 1 /* page 1 */, - 2 /* page 2 */, - 3 /* page 3 */, - 4 /* page 4 */, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 5 /* page 6 */, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 6 /* page 9 */, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 7 /* page 11 */, - 8 /* page 12 */, - 9 /* page 13 */, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 10 /* page 16 */, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 11 /* page 27 */, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 12 /* page 30 */, - 13 /* page 31 */, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 14 /* page 33 */, - 15 /* page 34 */, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 16 /* page 48 */ -}; - -static const guint16 compose_first_single[][2] = { - { 0x0338, 0x226e }, - { 0x0338, 0x2260 }, - { 0x0338, 0x226f }, - { 0x0307, 0x1e1e }, - { 0x0302, 0x0134 }, - { 0x0307, 0x1e1f }, - { 0x0304, 0x01de }, - { 0x0301, 0x01fa }, - { 0x0301, 0x1e08 }, - { 0x0301, 0x1e2e }, - { 0x0304, 0x022a }, - { 0x0301, 0x01fe }, - { 0x0304, 0x01df }, - { 0x0301, 0x01fb }, - { 0x0301, 0x1e09 }, - { 0x0301, 0x1e2f }, - { 0x0304, 0x022b }, - { 0x0301, 0x01ff }, - { 0x0307, 0x1e64 }, - { 0x0307, 0x1e65 }, - { 0x0307, 0x1e66 }, - { 0x0307, 0x1e67 }, - { 0x0301, 0x1e78 }, - { 0x0301, 0x1e79 }, - { 0x0308, 0x1e7a }, - { 0x0308, 0x1e7b }, - { 0x0307, 0x1e9b }, - { 0x030c, 0x01ee }, - { 0x0304, 0x01ec }, - { 0x0304, 0x01ed }, - { 0x0304, 0x01e0 }, - { 0x0304, 0x01e1 }, - { 0x0306, 0x1e1c }, - { 0x0306, 0x1e1d }, - { 0x0304, 0x0230 }, - { 0x0304, 0x0231 }, - { 0x030c, 0x01ef }, - { 0x0314, 0x1fec }, - { 0x0345, 0x1fb4 }, - { 0x0345, 0x1fc4 }, - { 0x0345, 0x1ff4 }, - { 0x0308, 0x0407 }, - { 0x0301, 0x0403 }, - { 0x0308, 0x04de }, - { 0x0301, 0x040c }, - { 0x0308, 0x04e6 }, - { 0x0308, 0x04f4 }, - { 0x0308, 0x04f8 }, - { 0x0308, 0x04ec }, - { 0x0301, 0x0453 }, - { 0x0308, 0x04df }, - { 0x0301, 0x045c }, - { 0x0308, 0x04e7 }, - { 0x0308, 0x04f5 }, - { 0x0308, 0x04f9 }, - { 0x0308, 0x04ed }, - { 0x0308, 0x0457 }, - { 0x030f, 0x0476 }, - { 0x030f, 0x0477 }, - { 0x0308, 0x04da }, - { 0x0308, 0x04db }, - { 0x0308, 0x04ea }, - { 0x0308, 0x04eb }, - { 0x0654, 0x0624 }, - { 0x0654, 0x0626 }, - { 0x0654, 0x06c2 }, - { 0x0654, 0x06d3 }, - { 0x0654, 0x06c0 }, - { 0x093c, 0x0929 }, - { 0x093c, 0x0931 }, - { 0x093c, 0x0934 }, - { 0x0bd7, 0x0b94 }, - { 0x0bbe, 0x0bcb }, - { 0x0c56, 0x0c48 }, - { 0x0cd5, 0x0cc0 }, - { 0x0cd5, 0x0ccb }, - { 0x0d3e, 0x0d4b }, - { 0x0dca, 0x0ddd }, - { 0x102e, 0x1026 }, - { 0x1b35, 0x1b06 }, - { 0x1b35, 0x1b08 }, - { 0x1b35, 0x1b0a }, - { 0x1b35, 0x1b0c }, - { 0x1b35, 0x1b0e }, - { 0x1b35, 0x1b12 }, - { 0x1b35, 0x1b3b }, - { 0x1b35, 0x1b3d }, - { 0x1b35, 0x1b40 }, - { 0x1b35, 0x1b41 }, - { 0x1b35, 0x1b43 }, - { 0x0304, 0x1e38 }, - { 0x0304, 0x1e39 }, - { 0x0304, 0x1e5c }, - { 0x0304, 0x1e5d }, - { 0x0307, 0x1e68 }, - { 0x0307, 0x1e69 }, - { 0x0302, 0x1ec6 }, - { 0x0302, 0x1ec7 }, - { 0x0302, 0x1ed8 }, - { 0x0302, 0x1ed9 }, - { 0x0345, 0x1f82 }, - { 0x0345, 0x1f83 }, - { 0x0345, 0x1f84 }, - { 0x0345, 0x1f85 }, - { 0x0345, 0x1f86 }, - { 0x0345, 0x1f87 }, - { 0x0345, 0x1f8a }, - { 0x0345, 0x1f8b }, - { 0x0345, 0x1f8c }, - { 0x0345, 0x1f8d }, - { 0x0345, 0x1f8e }, - { 0x0345, 0x1f8f }, - { 0x0345, 0x1f92 }, - { 0x0345, 0x1f93 }, - { 0x0345, 0x1f94 }, - { 0x0345, 0x1f95 }, - { 0x0345, 0x1f96 }, - { 0x0345, 0x1f97 }, - { 0x0345, 0x1f9a }, - { 0x0345, 0x1f9b }, - { 0x0345, 0x1f9c }, - { 0x0345, 0x1f9d }, - { 0x0345, 0x1f9e }, - { 0x0345, 0x1f9f }, - { 0x0345, 0x1fa2 }, - { 0x0345, 0x1fa3 }, - { 0x0345, 0x1fa4 }, - { 0x0345, 0x1fa5 }, - { 0x0345, 0x1fa6 }, - { 0x0345, 0x1fa7 }, - { 0x0345, 0x1faa }, - { 0x0345, 0x1fab }, - { 0x0345, 0x1fac }, - { 0x0345, 0x1fad }, - { 0x0345, 0x1fae }, - { 0x0345, 0x1faf }, - { 0x0345, 0x1fb2 }, - { 0x0345, 0x1fc2 }, - { 0x0345, 0x1ff2 }, - { 0x0345, 0x1fb7 }, - { 0x0345, 0x1fc7 }, - { 0x0345, 0x1ff7 }, - { 0x0338, 0x219a }, - { 0x0338, 0x219b }, - { 0x0338, 0x21ae }, - { 0x0338, 0x21cd }, - { 0x0338, 0x21cf }, - { 0x0338, 0x21ce }, - { 0x0338, 0x2204 }, - { 0x0338, 0x2209 }, - { 0x0338, 0x220c }, - { 0x0338, 0x2224 }, - { 0x0338, 0x2226 }, - { 0x0338, 0x2241 }, - { 0x0338, 0x2244 }, - { 0x0338, 0x2247 }, - { 0x0338, 0x2249 }, - { 0x0338, 0x226d }, - { 0x0338, 0x2262 }, - { 0x0338, 0x2270 }, - { 0x0338, 0x2271 }, - { 0x0338, 0x2274 }, - { 0x0338, 0x2275 }, - { 0x0338, 0x2278 }, - { 0x0338, 0x2279 }, - { 0x0338, 0x2280 }, - { 0x0338, 0x2281 }, - { 0x0338, 0x22e0 }, - { 0x0338, 0x22e1 }, - { 0x0338, 0x2284 }, - { 0x0338, 0x2285 }, - { 0x0338, 0x2288 }, - { 0x0338, 0x2289 }, - { 0x0338, 0x22e2 }, - { 0x0338, 0x22e3 }, - { 0x0338, 0x22ac }, - { 0x0338, 0x22ad }, - { 0x0338, 0x22ae }, - { 0x0338, 0x22af }, - { 0x0338, 0x22ea }, - { 0x0338, 0x22eb }, - { 0x0338, 0x22ec }, - { 0x0338, 0x22ed }, - { 0x3099, 0x3094 }, - { 0x3099, 0x304c }, - { 0x3099, 0x304e }, - { 0x3099, 0x3050 }, - { 0x3099, 0x3052 }, - { 0x3099, 0x3054 }, - { 0x3099, 0x3056 }, - { 0x3099, 0x3058 }, - { 0x3099, 0x305a }, - { 0x3099, 0x305c }, - { 0x3099, 0x305e }, - { 0x3099, 0x3060 }, - { 0x3099, 0x3062 }, - { 0x3099, 0x3065 }, - { 0x3099, 0x3067 }, - { 0x3099, 0x3069 }, - { 0x3099, 0x309e }, - { 0x3099, 0x30f4 }, - { 0x3099, 0x30ac }, - { 0x3099, 0x30ae }, - { 0x3099, 0x30b0 }, - { 0x3099, 0x30b2 }, - { 0x3099, 0x30b4 }, - { 0x3099, 0x30b6 }, - { 0x3099, 0x30b8 }, - { 0x3099, 0x30ba }, - { 0x3099, 0x30bc }, - { 0x3099, 0x30be }, - { 0x3099, 0x30c0 }, - { 0x3099, 0x30c2 }, - { 0x3099, 0x30c5 }, - { 0x3099, 0x30c7 }, - { 0x3099, 0x30c9 }, - { 0x3099, 0x30f7 }, - { 0x3099, 0x30f8 }, - { 0x3099, 0x30f9 }, - { 0x3099, 0x30fa }, - { 0x3099, 0x30fe } -}; -static const guint16 compose_second_single[][2] = { - { 0x0627, 0x0622 }, - { 0x0627, 0x0623 }, - { 0x0627, 0x0625 }, - { 0x09c7, 0x09cb }, - { 0x09c7, 0x09cc }, - { 0x0b47, 0x0b4b }, - { 0x0b47, 0x0b48 }, - { 0x0b47, 0x0b4c }, - { 0x0bc6, 0x0bca }, - { 0x0bc6, 0x0bcc }, - { 0x0cc6, 0x0cca }, - { 0x0cc6, 0x0cc7 }, - { 0x0cc6, 0x0cc8 }, - { 0x0d46, 0x0d4a }, - { 0x0d46, 0x0d4c }, - { 0x0dd9, 0x0dda }, - { 0x0dd9, 0x0ddc }, - { 0x0dd9, 0x0dde } -}; -static const guint16 compose_array[146][31] = { - { 0x00c0, 0x00c1, 0x00c2, 0x00c3, 0x0100, 0x0102, 0x0226, 0x00c4, 0x1ea2, 0x00c5, 0, 0x01cd, 0x0200, 0x0202, 0, 0, 0, 0x1ea0, 0, 0x1e00, 0, 0, 0x0104, 0, 0, 0, 0, 0, 0, 0, 0 }, - { 0, 0, 0, 0, 0, 0, 0x1e02, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1e04, 0, 0, 0, 0, 0, 0, 0, 0, 0x1e06, 0, 0, 0, 0 }, - { 0, 0x0106, 0x0108, 0, 0, 0, 0x010a, 0, 0, 0, 0, 0x010c, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x00c7, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, - { 0, 0, 0, 0, 0, 0, 0x1e0a, 0, 0, 0, 0, 0x010e, 0, 0, 0, 0, 0, 0x1e0c, 0, 0, 0, 0x1e10, 0, 0x1e12, 0, 0, 0x1e0e, 0, 0, 0, 0 }, - { 0x00c8, 0x00c9, 0x00ca, 0x1ebc, 0x0112, 0x0114, 0x0116, 0x00cb, 0x1eba, 0, 0, 0x011a, 0x0204, 0x0206, 0, 0, 0, 0x1eb8, 0, 0, 0, 0x0228, 0x0118, 0x1e18, 0, 0x1e1a, 0, 0, 0, 0, 0 }, - { 0, 0x01f4, 0x011c, 0, 0x1e20, 0x011e, 0x0120, 0, 0, 0, 0, 0x01e6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x0122, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, - { 0, 0, 0x0124, 0, 0, 0, 0x1e22, 0x1e26, 0, 0, 0, 0x021e, 0, 0, 0, 0, 0, 0x1e24, 0, 0, 0, 0x1e28, 0, 0, 0x1e2a, 0, 0, 0, 0, 0, 0 }, - { 0x00cc, 0x00cd, 0x00ce, 0x0128, 0x012a, 0x012c, 0x0130, 0x00cf, 0x1ec8, 0, 0, 0x01cf, 0x0208, 0x020a, 0, 0, 0, 0x1eca, 0, 0, 0, 0, 0x012e, 0, 0, 0x1e2c, 0, 0, 0, 0, 0 }, - { 0, 0x1e30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x01e8, 0, 0, 0, 0, 0, 0x1e32, 0, 0, 0, 0x0136, 0, 0, 0, 0, 0x1e34, 0, 0, 0, 0 }, - { 0, 0x0139, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x013d, 0, 0, 0, 0, 0, 0x1e36, 0, 0, 0, 0x013b, 0, 0x1e3c, 0, 0, 0x1e3a, 0, 0, 0, 0 }, - { 0, 0x1e3e, 0, 0, 0, 0, 0x1e40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1e42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, - { 0x01f8, 0x0143, 0, 0x00d1, 0, 0, 0x1e44, 0, 0, 0, 0, 0x0147, 0, 0, 0, 0, 0, 0x1e46, 0, 0, 0, 0x0145, 0, 0x1e4a, 0, 0, 0x1e48, 0, 0, 0, 0 }, - { 0x00d2, 0x00d3, 0x00d4, 0x00d5, 0x014c, 0x014e, 0x022e, 0x00d6, 0x1ece, 0, 0x0150, 0x01d1, 0x020c, 0x020e, 0, 0, 0x01a0, 0x1ecc, 0, 0, 0, 0, 0x01ea, 0, 0, 0, 0, 0, 0, 0, 0 }, - { 0, 0x1e54, 0, 0, 0, 0, 0x1e56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, - { 0, 0x0154, 0, 0, 0, 0, 0x1e58, 0, 0, 0, 0, 0x0158, 0x0210, 0x0212, 0, 0, 0, 0x1e5a, 0, 0, 0, 0x0156, 0, 0, 0, 0, 0x1e5e, 0, 0, 0, 0 }, - { 0, 0x015a, 0x015c, 0, 0, 0, 0x1e60, 0, 0, 0, 0, 0x0160, 0, 0, 0, 0, 0, 0x1e62, 0, 0, 0x0218, 0x015e, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, - { 0, 0, 0, 0, 0, 0, 0x1e6a, 0, 0, 0, 0, 0x0164, 0, 0, 0, 0, 0, 0x1e6c, 0, 0, 0x021a, 0x0162, 0, 0x1e70, 0, 0, 0x1e6e, 0, 0, 0, 0 }, - { 0x00d9, 0x00da, 0x00db, 0x0168, 0x016a, 0x016c, 0, 0x00dc, 0x1ee6, 0x016e, 0x0170, 0x01d3, 0x0214, 0x0216, 0, 0, 0x01af, 0x1ee4, 0x1e72, 0, 0, 0, 0x0172, 0x1e76, 0, 0x1e74, 0, 0, 0, 0, 0 }, - { 0, 0, 0, 0x1e7c, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1e7e, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, - { 0x1e80, 0x1e82, 0x0174, 0, 0, 0, 0x1e86, 0x1e84, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1e88, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, - { 0, 0, 0, 0, 0, 0, 0x1e8a, 0x1e8c, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, - { 0x1ef2, 0x00dd, 0x0176, 0x1ef8, 0x0232, 0, 0x1e8e, 0x0178, 0x1ef6, 0, 0, 0, 0, 0, 0, 0, 0, 0x1ef4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, - { 0, 0x0179, 0x1e90, 0, 0, 0, 0x017b, 0, 0, 0, 0, 0x017d, 0, 0, 0, 0, 0, 0x1e92, 0, 0, 0, 0, 0, 0, 0, 0, 0x1e94, 0, 0, 0, 0 }, - { 0x00e0, 0x00e1, 0x00e2, 0x00e3, 0x0101, 0x0103, 0x0227, 0x00e4, 0x1ea3, 0x00e5, 0, 0x01ce, 0x0201, 0x0203, 0, 0, 0, 0x1ea1, 0, 0x1e01, 0, 0, 0x0105, 0, 0, 0, 0, 0, 0, 0, 0 }, - { 0, 0, 0, 0, 0, 0, 0x1e03, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1e05, 0, 0, 0, 0, 0, 0, 0, 0, 0x1e07, 0, 0, 0, 0 }, - { 0, 0x0107, 0x0109, 0, 0, 0, 0x010b, 0, 0, 0, 0, 0x010d, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x00e7, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, - { 0, 0, 0, 0, 0, 0, 0x1e0b, 0, 0, 0, 0, 0x010f, 0, 0, 0, 0, 0, 0x1e0d, 0, 0, 0, 0x1e11, 0, 0x1e13, 0, 0, 0x1e0f, 0, 0, 0, 0 }, - { 0x00e8, 0x00e9, 0x00ea, 0x1ebd, 0x0113, 0x0115, 0x0117, 0x00eb, 0x1ebb, 0, 0, 0x011b, 0x0205, 0x0207, 0, 0, 0, 0x1eb9, 0, 0, 0, 0x0229, 0x0119, 0x1e19, 0, 0x1e1b, 0, 0, 0, 0, 0 }, - { 0, 0x01f5, 0x011d, 0, 0x1e21, 0x011f, 0x0121, 0, 0, 0, 0, 0x01e7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x0123, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, - { 0, 0, 0x0125, 0, 0, 0, 0x1e23, 0x1e27, 0, 0, 0, 0x021f, 0, 0, 0, 0, 0, 0x1e25, 0, 0, 0, 0x1e29, 0, 0, 0x1e2b, 0, 0x1e96, 0, 0, 0, 0 }, - { 0x00ec, 0x00ed, 0x00ee, 0x0129, 0x012b, 0x012d, 0, 0x00ef, 0x1ec9, 0, 0, 0x01d0, 0x0209, 0x020b, 0, 0, 0, 0x1ecb, 0, 0, 0, 0, 0x012f, 0, 0, 0x1e2d, 0, 0, 0, 0, 0 }, - { 0, 0, 0x0135, 0, 0, 0, 0, 0, 0, 0, 0, 0x01f0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, - { 0, 0x1e31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x01e9, 0, 0, 0, 0, 0, 0x1e33, 0, 0, 0, 0x0137, 0, 0, 0, 0, 0x1e35, 0, 0, 0, 0 }, - { 0, 0x013a, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x013e, 0, 0, 0, 0, 0, 0x1e37, 0, 0, 0, 0x013c, 0, 0x1e3d, 0, 0, 0x1e3b, 0, 0, 0, 0 }, - { 0, 0x1e3f, 0, 0, 0, 0, 0x1e41, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1e43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, - { 0x01f9, 0x0144, 0, 0x00f1, 0, 0, 0x1e45, 0, 0, 0, 0, 0x0148, 0, 0, 0, 0, 0, 0x1e47, 0, 0, 0, 0x0146, 0, 0x1e4b, 0, 0, 0x1e49, 0, 0, 0, 0 }, - { 0x00f2, 0x00f3, 0x00f4, 0x00f5, 0x014d, 0x014f, 0x022f, 0x00f6, 0x1ecf, 0, 0x0151, 0x01d2, 0x020d, 0x020f, 0, 0, 0x01a1, 0x1ecd, 0, 0, 0, 0, 0x01eb, 0, 0, 0, 0, 0, 0, 0, 0 }, - { 0, 0x1e55, 0, 0, 0, 0, 0x1e57, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, - { 0, 0x0155, 0, 0, 0, 0, 0x1e59, 0, 0, 0, 0, 0x0159, 0x0211, 0x0213, 0, 0, 0, 0x1e5b, 0, 0, 0, 0x0157, 0, 0, 0, 0, 0x1e5f, 0, 0, 0, 0 }, - { 0, 0x015b, 0x015d, 0, 0, 0, 0x1e61, 0, 0, 0, 0, 0x0161, 0, 0, 0, 0, 0, 0x1e63, 0, 0, 0x0219, 0x015f, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, - { 0, 0, 0, 0, 0, 0, 0x1e6b, 0x1e97, 0, 0, 0, 0x0165, 0, 0, 0, 0, 0, 0x1e6d, 0, 0, 0x021b, 0x0163, 0, 0x1e71, 0, 0, 0x1e6f, 0, 0, 0, 0 }, - { 0x00f9, 0x00fa, 0x00fb, 0x0169, 0x016b, 0x016d, 0, 0x00fc, 0x1ee7, 0x016f, 0x0171, 0x01d4, 0x0215, 0x0217, 0, 0, 0x01b0, 0x1ee5, 0x1e73, 0, 0, 0, 0x0173, 0x1e77, 0, 0x1e75, 0, 0, 0, 0, 0 }, - { 0, 0, 0, 0x1e7d, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1e7f, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, - { 0x1e81, 0x1e83, 0x0175, 0, 0, 0, 0x1e87, 0x1e85, 0, 0x1e98, 0, 0, 0, 0, 0, 0, 0, 0x1e89, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, - { 0, 0, 0, 0, 0, 0, 0x1e8b, 0x1e8d, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, - { 0x1ef3, 0x00fd, 0x0177, 0x1ef9, 0x0233, 0, 0x1e8f, 0x00ff, 0x1ef7, 0x1e99, 0, 0, 0, 0, 0, 0, 0, 0x1ef5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, - { 0, 0x017a, 0x1e91, 0, 0, 0, 0x017c, 0, 0, 0, 0, 0x017e, 0, 0, 0, 0, 0, 0x1e93, 0, 0, 0, 0, 0, 0, 0, 0, 0x1e95, 0, 0, 0, 0 }, - { 0x1fed, 0x0385, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1fc1, 0, 0, 0 }, - { 0x1ea6, 0x1ea4, 0, 0x1eaa, 0, 0, 0, 0, 0x1ea8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, - { 0, 0x01fc, 0, 0, 0x01e2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, - { 0x1ec0, 0x1ebe, 0, 0x1ec4, 0, 0, 0, 0, 0x1ec2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, - { 0x1ed2, 0x1ed0, 0, 0x1ed6, 0, 0, 0, 0, 0x1ed4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, - { 0, 0x1e4c, 0, 0, 0x022c, 0, 0, 0x1e4e, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, - { 0x01db, 0x01d7, 0, 0, 0x01d5, 0, 0, 0, 0, 0, 0, 0x01d9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, - { 0x1ea7, 0x1ea5, 0, 0x1eab, 0, 0, 0, 0, 0x1ea9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, - { 0, 0x01fd, 0, 0, 0x01e3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, - { 0x1ec1, 0x1ebf, 0, 0x1ec5, 0, 0, 0, 0, 0x1ec3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, - { 0x1ed3, 0x1ed1, 0, 0x1ed7, 0, 0, 0, 0, 0x1ed5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, - { 0, 0x1e4d, 0, 0, 0x022d, 0, 0, 0x1e4f, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, - { 0x01dc, 0x01d8, 0, 0, 0x01d6, 0, 0, 0, 0, 0, 0, 0x01da, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, - { 0x1eb0, 0x1eae, 0, 0x1eb4, 0, 0, 0, 0, 0x1eb2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, - { 0x1eb1, 0x1eaf, 0, 0x1eb5, 0, 0, 0, 0, 0x1eb3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, - { 0x1e14, 0x1e16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, - { 0x1e15, 0x1e17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, - { 0x1e50, 0x1e52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, - { 0x1e51, 0x1e53, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, - { 0x1edc, 0x1eda, 0, 0x1ee0, 0, 0, 0, 0, 0x1ede, 0, 0, 0, 0, 0, 0, 0, 0, 0x1ee2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, - { 0x1edd, 0x1edb, 0, 0x1ee1, 0, 0, 0, 0, 0x1edf, 0, 0, 0, 0, 0, 0, 0, 0, 0x1ee3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, - { 0x1eea, 0x1ee8, 0, 0x1eee, 0, 0, 0, 0, 0x1eec, 0, 0, 0, 0, 0, 0, 0, 0, 0x1ef0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, - { 0x1eeb, 0x1ee9, 0, 0x1eef, 0, 0, 0, 0, 0x1eed, 0, 0, 0, 0, 0, 0, 0, 0, 0x1ef1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, - { 0x1fba, 0x0386, 0, 0, 0x1fb9, 0x1fb8, 0, 0, 0, 0, 0, 0, 0, 0, 0x1f08, 0x1f09, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1fbc, 0, 0 }, - { 0x1fc8, 0x0388, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1f18, 0x1f19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, - { 0x1fca, 0x0389, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1f28, 0x1f29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1fcc, 0, 0 }, - { 0x1fda, 0x038a, 0, 0, 0x1fd9, 0x1fd8, 0, 0x03aa, 0, 0, 0, 0, 0, 0, 0x1f38, 0x1f39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, - { 0x1ff8, 0x038c, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1f48, 0x1f49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, - { 0x1fea, 0x038e, 0, 0, 0x1fe9, 0x1fe8, 0, 0x03ab, 0, 0, 0, 0, 0, 0, 0, 0x1f59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, - { 0x1ffa, 0x038f, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1f68, 0x1f69, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1ffc, 0, 0 }, - { 0x1f70, 0x03ac, 0, 0, 0x1fb1, 0x1fb0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1f00, 0x1f01, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1fb6, 0x1fb3, 0, 0 }, - { 0x1f72, 0x03ad, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1f10, 0x1f11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, - { 0x1f74, 0x03ae, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1f20, 0x1f21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1fc6, 0x1fc3, 0, 0 }, - { 0x1f76, 0x03af, 0, 0, 0x1fd1, 0x1fd0, 0, 0x03ca, 0, 0, 0, 0, 0, 0, 0x1f30, 0x1f31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1fd6, 0, 0, 0 }, - { 0x1f78, 0x03cc, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1f40, 0x1f41, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, - { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1fe4, 0x1fe5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, - { 0x1f7a, 0x03cd, 0, 0, 0x1fe1, 0x1fe0, 0, 0x03cb, 0, 0, 0, 0, 0, 0, 0x1f50, 0x1f51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1fe6, 0, 0, 0 }, - { 0x1f7c, 0x03ce, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1f60, 0x1f61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1ff6, 0x1ff3, 0, 0 }, - { 0x1fd2, 0x0390, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1fd7, 0, 0, 0 }, - { 0x1fe2, 0x03b0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1fe7, 0, 0, 0 }, - { 0, 0x03d3, 0, 0, 0, 0, 0, 0x03d4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, - { 0, 0, 0, 0, 0, 0x04d0, 0, 0x04d2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, - { 0x0400, 0, 0, 0, 0, 0x04d6, 0, 0x0401, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, - { 0, 0, 0, 0, 0, 0x04c1, 0, 0x04dc, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, - { 0x040d, 0, 0, 0, 0x04e2, 0x0419, 0, 0x04e4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, - { 0, 0, 0, 0, 0x04ee, 0x040e, 0, 0x04f0, 0, 0, 0x04f2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, - { 0, 0, 0, 0, 0, 0x04d1, 0, 0x04d3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, - { 0x0450, 0, 0, 0, 0, 0x04d7, 0, 0x0451, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, - { 0, 0, 0, 0, 0, 0x04c2, 0, 0x04dd, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, - { 0x045d, 0, 0, 0, 0x04e3, 0x0439, 0, 0x04e5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, - { 0, 0, 0, 0, 0x04ef, 0x045e, 0, 0x04f1, 0, 0, 0x04f3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, - { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, - { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, - { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, - { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, - { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, - { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, - { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, - { 0, 0, 0x1eac, 0, 0, 0x1eb6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, - { 0, 0, 0x1ead, 0, 0, 0x1eb7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, - { 0x1f02, 0x1f04, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1f06, 0x1f80, 0, 0 }, - { 0x1f03, 0x1f05, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1f07, 0x1f81, 0, 0 }, - { 0x1f0a, 0x1f0c, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1f0e, 0x1f88, 0, 0 }, - { 0x1f0b, 0x1f0d, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1f0f, 0x1f89, 0, 0 }, - { 0x1f12, 0x1f14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, - { 0x1f13, 0x1f15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, - { 0x1f1a, 0x1f1c, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, - { 0x1f1b, 0x1f1d, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, - { 0x1f22, 0x1f24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1f26, 0x1f90, 0, 0 }, - { 0x1f23, 0x1f25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1f27, 0x1f91, 0, 0 }, - { 0x1f2a, 0x1f2c, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1f2e, 0x1f98, 0, 0 }, - { 0x1f2b, 0x1f2d, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1f2f, 0x1f99, 0, 0 }, - { 0x1f32, 0x1f34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1f36, 0, 0, 0 }, - { 0x1f33, 0x1f35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1f37, 0, 0, 0 }, - { 0x1f3a, 0x1f3c, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1f3e, 0, 0, 0 }, - { 0x1f3b, 0x1f3d, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1f3f, 0, 0, 0 }, - { 0x1f42, 0x1f44, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, - { 0x1f43, 0x1f45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, - { 0x1f4a, 0x1f4c, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, - { 0x1f4b, 0x1f4d, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, - { 0x1f52, 0x1f54, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1f56, 0, 0, 0 }, - { 0x1f53, 0x1f55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1f57, 0, 0, 0 }, - { 0x1f5b, 0x1f5d, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1f5f, 0, 0, 0 }, - { 0x1f62, 0x1f64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1f66, 0x1fa0, 0, 0 }, - { 0x1f63, 0x1f65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1f67, 0x1fa1, 0, 0 }, - { 0x1f6a, 0x1f6c, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1f6e, 0x1fa8, 0, 0 }, - { 0x1f6b, 0x1f6d, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1f6f, 0x1fa9, 0, 0 }, - { 0x1fcd, 0x1fce, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1fcf, 0, 0, 0 }, - { 0x1fdd, 0x1fde, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1fdf, 0, 0, 0 }, - { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x3070, 0x3071 }, - { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x3073, 0x3074 }, - { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x3076, 0x3077 }, - { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x3079, 0x307a }, - { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x307c, 0x307d }, - { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x30d0, 0x30d1 }, - { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x30d3, 0x30d4 }, - { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x30d6, 0x30d7 }, - { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x30d9, 0x30da }, - { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x30dc, 0x30dd } -}; diff --git a/lib/win32/glib-2.20.4/glib/gunidecomp.c b/lib/win32/glib-2.20.4/glib/gunidecomp.c deleted file mode 100644 index d0fa97e24848d..0000000000000 --- a/lib/win32/glib-2.20.4/glib/gunidecomp.c +++ /dev/null @@ -1,535 +0,0 @@ -/* decomp.c - Character decomposition. - * - * Copyright (C) 1999, 2000 Tom Tromey - * Copyright 2000 Red Hat, Inc. - * - * The Gnome Library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or (at your option) any later version. - * - * The Gnome Library 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 - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with the Gnome Library; see the file COPYING.LIB. If not, - * write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ - -#include "config.h" - -#include - -#include "glib.h" -#include "gunidecomp.h" -#include "gunicomp.h" -#include "gunicodeprivate.h" -#include "galias.h" - - -#define CC_PART1(Page, Char) \ - ((combining_class_table_part1[Page] >= G_UNICODE_MAX_TABLE_INDEX) \ - ? (combining_class_table_part1[Page] - G_UNICODE_MAX_TABLE_INDEX) \ - : (cclass_data[combining_class_table_part1[Page]][Char])) - -#define CC_PART2(Page, Char) \ - ((combining_class_table_part2[Page] >= G_UNICODE_MAX_TABLE_INDEX) \ - ? (combining_class_table_part2[Page] - G_UNICODE_MAX_TABLE_INDEX) \ - : (cclass_data[combining_class_table_part2[Page]][Char])) - -#define COMBINING_CLASS(Char) \ - (((Char) <= G_UNICODE_LAST_CHAR_PART1) \ - ? CC_PART1 ((Char) >> 8, (Char) & 0xff) \ - : (((Char) >= 0xe0000 && (Char) <= G_UNICODE_LAST_CHAR) \ - ? CC_PART2 (((Char) - 0xe0000) >> 8, (Char) & 0xff) \ - : 0)) - -/** - * g_unichar_combining_class: - * @uc: a Unicode character - * - * Determines the canonical combining class of a Unicode character. - * - * Return value: the combining class of the character - * - * Since: 2.14 - **/ -gint -g_unichar_combining_class (gunichar uc) -{ - return COMBINING_CLASS (uc); -} - -/* constants for hangul syllable [de]composition */ -#define SBase 0xAC00 -#define LBase 0x1100 -#define VBase 0x1161 -#define TBase 0x11A7 -#define LCount 19 -#define VCount 21 -#define TCount 28 -#define NCount (VCount * TCount) -#define SCount (LCount * NCount) - -/** - * g_unicode_canonical_ordering: - * @string: a UCS-4 encoded string. - * @len: the maximum length of @string to use. - * - * Computes the canonical ordering of a string in-place. - * This rearranges decomposed characters in the string - * according to their combining classes. See the Unicode - * manual for more information. - **/ -void -g_unicode_canonical_ordering (gunichar *string, - gsize len) -{ - gsize i; - int swap = 1; - - while (swap) - { - int last; - swap = 0; - last = COMBINING_CLASS (string[0]); - for (i = 0; i < len - 1; ++i) - { - int next = COMBINING_CLASS (string[i + 1]); - if (next != 0 && last > next) - { - gsize j; - /* Percolate item leftward through string. */ - for (j = i + 1; j > 0; --j) - { - gunichar t; - if (COMBINING_CLASS (string[j - 1]) <= next) - break; - t = string[j]; - string[j] = string[j - 1]; - string[j - 1] = t; - swap = 1; - } - /* We're re-entering the loop looking at the old - character again. */ - next = last; - } - last = next; - } - } -} - -/* http://www.unicode.org/unicode/reports/tr15/#Hangul - * r should be null or have sufficient space. Calling with r == NULL will - * only calculate the result_len; however, a buffer with space for three - * characters will always be big enough. */ -static void -decompose_hangul (gunichar s, - gunichar *r, - gsize *result_len) -{ - gint SIndex = s - SBase; - - /* not a hangul syllable */ - if (SIndex < 0 || SIndex >= SCount) - { - if (r) - r[0] = s; - *result_len = 1; - } - else - { - gunichar L = LBase + SIndex / NCount; - gunichar V = VBase + (SIndex % NCount) / TCount; - gunichar T = TBase + SIndex % TCount; - - if (r) - { - r[0] = L; - r[1] = V; - } - - if (T != TBase) - { - if (r) - r[2] = T; - *result_len = 3; - } - else - *result_len = 2; - } -} - -/* returns a pointer to a null-terminated UTF-8 string */ -static const gchar * -find_decomposition (gunichar ch, - gboolean compat) -{ - int start = 0; - int end = G_N_ELEMENTS (decomp_table); - - if (ch >= decomp_table[start].ch && - ch <= decomp_table[end - 1].ch) - { - while (TRUE) - { - int half = (start + end) / 2; - if (ch == decomp_table[half].ch) - { - int offset; - - if (compat) - { - offset = decomp_table[half].compat_offset; - if (offset == G_UNICODE_NOT_PRESENT_OFFSET) - offset = decomp_table[half].canon_offset; - } - else - { - offset = decomp_table[half].canon_offset; - if (offset == G_UNICODE_NOT_PRESENT_OFFSET) - return NULL; - } - - return &(decomp_expansion_string[offset]); - } - else if (half == start) - break; - else if (ch > decomp_table[half].ch) - start = half; - else - end = half; - } - } - - return NULL; -} - -/** - * g_unicode_canonical_decomposition: - * @ch: a Unicode character. - * @result_len: location to store the length of the return value. - * - * Computes the canonical decomposition of a Unicode character. - * - * Return value: a newly allocated string of Unicode characters. - * @result_len is set to the resulting length of the string. - **/ -gunichar * -g_unicode_canonical_decomposition (gunichar ch, - gsize *result_len) -{ - const gchar *decomp; - const gchar *p; - gunichar *r; - - /* Hangul syllable */ - if (ch >= 0xac00 && ch <= 0xd7a3) - { - decompose_hangul (ch, NULL, result_len); - r = g_malloc (*result_len * sizeof (gunichar)); - decompose_hangul (ch, r, result_len); - } - else if ((decomp = find_decomposition (ch, FALSE)) != NULL) - { - /* Found it. */ - int i; - - *result_len = g_utf8_strlen (decomp, -1); - r = g_malloc (*result_len * sizeof (gunichar)); - - for (p = decomp, i = 0; *p != '\0'; p = g_utf8_next_char (p), i++) - r[i] = g_utf8_get_char (p); - } - else - { - /* Not in our table. */ - r = g_malloc (sizeof (gunichar)); - *r = ch; - *result_len = 1; - } - - /* Supposedly following the Unicode 2.1.9 table means that the - decompositions come out in canonical order. I haven't tested - this, but we rely on it here. */ - return r; -} - -/* L,V => LV and LV,T => LVT */ -static gboolean -combine_hangul (gunichar a, - gunichar b, - gunichar *result) -{ - gint LIndex = a - LBase; - gint SIndex = a - SBase; - - gint VIndex = b - VBase; - gint TIndex = b - TBase; - - if (0 <= LIndex && LIndex < LCount - && 0 <= VIndex && VIndex < VCount) - { - *result = SBase + (LIndex * VCount + VIndex) * TCount; - return TRUE; - } - else if (0 <= SIndex && SIndex < SCount && (SIndex % TCount) == 0 - && 0 < TIndex && TIndex < TCount) - { - *result = a + TIndex; - return TRUE; - } - - return FALSE; -} - -#define CI(Page, Char) \ - ((compose_table[Page] >= G_UNICODE_MAX_TABLE_INDEX) \ - ? (compose_table[Page] - G_UNICODE_MAX_TABLE_INDEX) \ - : (compose_data[compose_table[Page]][Char])) - -#define COMPOSE_INDEX(Char) \ - (((Char >> 8) > (COMPOSE_TABLE_LAST)) ? 0 : CI((Char) >> 8, (Char) & 0xff)) - -static gboolean -combine (gunichar a, - gunichar b, - gunichar *result) -{ - gushort index_a, index_b; - - if (combine_hangul (a, b, result)) - return TRUE; - - index_a = COMPOSE_INDEX(a); - - if (index_a >= COMPOSE_FIRST_SINGLE_START && index_a < COMPOSE_SECOND_START) - { - if (b == compose_first_single[index_a - COMPOSE_FIRST_SINGLE_START][0]) - { - *result = compose_first_single[index_a - COMPOSE_FIRST_SINGLE_START][1]; - return TRUE; - } - else - return FALSE; - } - - index_b = COMPOSE_INDEX(b); - - if (index_b >= COMPOSE_SECOND_SINGLE_START) - { - if (a == compose_second_single[index_b - COMPOSE_SECOND_SINGLE_START][0]) - { - *result = compose_second_single[index_b - COMPOSE_SECOND_SINGLE_START][1]; - return TRUE; - } - else - return FALSE; - } - - if (index_a >= COMPOSE_FIRST_START && index_a < COMPOSE_FIRST_SINGLE_START && - index_b >= COMPOSE_SECOND_START && index_b < COMPOSE_SECOND_SINGLE_START) - { - gunichar res = compose_array[index_a - COMPOSE_FIRST_START][index_b - COMPOSE_SECOND_START]; - - if (res) - { - *result = res; - return TRUE; - } - } - - return FALSE; -} - -gunichar * -_g_utf8_normalize_wc (const gchar *str, - gssize max_len, - GNormalizeMode mode) -{ - gsize n_wc; - gunichar *wc_buffer; - const char *p; - gsize last_start; - gboolean do_compat = (mode == G_NORMALIZE_NFKC || - mode == G_NORMALIZE_NFKD); - gboolean do_compose = (mode == G_NORMALIZE_NFC || - mode == G_NORMALIZE_NFKC); - - n_wc = 0; - p = str; - while ((max_len < 0 || p < str + max_len) && *p) - { - const gchar *decomp; - gunichar wc = g_utf8_get_char (p); - - if (wc >= 0xac00 && wc <= 0xd7a3) - { - gsize result_len; - decompose_hangul (wc, NULL, &result_len); - n_wc += result_len; - } - else - { - decomp = find_decomposition (wc, do_compat); - - if (decomp) - n_wc += g_utf8_strlen (decomp, -1); - else - n_wc++; - } - - p = g_utf8_next_char (p); - } - - wc_buffer = g_new (gunichar, n_wc + 1); - - last_start = 0; - n_wc = 0; - p = str; - while ((max_len < 0 || p < str + max_len) && *p) - { - gunichar wc = g_utf8_get_char (p); - const gchar *decomp; - int cc; - gsize old_n_wc = n_wc; - - if (wc >= 0xac00 && wc <= 0xd7a3) - { - gsize result_len; - decompose_hangul (wc, wc_buffer + n_wc, &result_len); - n_wc += result_len; - } - else - { - decomp = find_decomposition (wc, do_compat); - - if (decomp) - { - const char *pd; - for (pd = decomp; *pd != '\0'; pd = g_utf8_next_char (pd)) - wc_buffer[n_wc++] = g_utf8_get_char (pd); - } - else - wc_buffer[n_wc++] = wc; - } - - if (n_wc > 0) - { - cc = COMBINING_CLASS (wc_buffer[old_n_wc]); - - if (cc == 0) - { - g_unicode_canonical_ordering (wc_buffer + last_start, n_wc - last_start); - last_start = old_n_wc; - } - } - - p = g_utf8_next_char (p); - } - - if (n_wc > 0) - { - g_unicode_canonical_ordering (wc_buffer + last_start, n_wc - last_start); - last_start = n_wc; - } - - wc_buffer[n_wc] = 0; - - /* All decomposed and reordered */ - - if (do_compose && n_wc > 0) - { - gsize i, j; - int last_cc = 0; - last_start = 0; - - for (i = 0; i < n_wc; i++) - { - int cc = COMBINING_CLASS (wc_buffer[i]); - - if (i > 0 && - (last_cc == 0 || last_cc < cc) && - combine (wc_buffer[last_start], wc_buffer[i], - &wc_buffer[last_start])) - { - for (j = i + 1; j < n_wc; j++) - wc_buffer[j-1] = wc_buffer[j]; - n_wc--; - i--; - - if (i == last_start) - last_cc = 0; - else - last_cc = COMBINING_CLASS (wc_buffer[i-1]); - - continue; - } - - if (cc == 0) - last_start = i; - - last_cc = cc; - } - } - - wc_buffer[n_wc] = 0; - - return wc_buffer; -} - -/** - * g_utf8_normalize: - * @str: a UTF-8 encoded string. - * @len: length of @str, in bytes, or -1 if @str is nul-terminated. - * @mode: the type of normalization to perform. - * - * Converts a string into canonical form, standardizing - * such issues as whether a character with an accent - * is represented as a base character and combining - * accent or as a single precomposed character. The - * string has to be valid UTF-8, otherwise %NULL is - * returned. You should generally call g_utf8_normalize() - * before comparing two Unicode strings. - * - * The normalization mode %G_NORMALIZE_DEFAULT only - * standardizes differences that do not affect the - * text content, such as the above-mentioned accent - * representation. %G_NORMALIZE_ALL also standardizes - * the "compatibility" characters in Unicode, such - * as SUPERSCRIPT THREE to the standard forms - * (in this case DIGIT THREE). Formatting information - * may be lost but for most text operations such - * characters should be considered the same. - * - * %G_NORMALIZE_DEFAULT_COMPOSE and %G_NORMALIZE_ALL_COMPOSE - * are like %G_NORMALIZE_DEFAULT and %G_NORMALIZE_ALL, - * but returned a result with composed forms rather - * than a maximally decomposed form. This is often - * useful if you intend to convert the string to - * a legacy encoding or pass it to a system with - * less capable Unicode handling. - * - * Return value: a newly allocated string, that is the - * normalized form of @str, or %NULL if @str is not - * valid UTF-8. - **/ -gchar * -g_utf8_normalize (const gchar *str, - gssize len, - GNormalizeMode mode) -{ - gunichar *result_wc = _g_utf8_normalize_wc (str, len, mode); - gchar *result; - - result = g_ucs4_to_utf8 (result_wc, -1, NULL, NULL, NULL); - g_free (result_wc); - - return result; -} - -#define __G_UNIDECOMP_C__ -#include "galiasdef.c" diff --git a/lib/win32/glib-2.20.4/glib/gunidecomp.h b/lib/win32/glib-2.20.4/glib/gunidecomp.h deleted file mode 100644 index 135d10742e407..0000000000000 --- a/lib/win32/glib-2.20.4/glib/gunidecomp.h +++ /dev/null @@ -1,10870 +0,0 @@ -/* This file is automatically generated. DO NOT EDIT! */ - -#ifndef DECOMP_H -#define DECOMP_H - -#define G_UNICODE_LAST_CHAR 0x10ffff - -#define G_UNICODE_MAX_TABLE_INDEX (0x110000 / 256) - -#define G_UNICODE_LAST_CHAR_PART1 0x2FAFF - -#define G_UNICODE_LAST_PAGE_PART1 762 - -#define G_UNICODE_NOT_PRESENT_OFFSET 65535 - -static const guchar cclass_data[][256] = { - { /* page 3, index 0 */ - 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, - 230, 230, 230, 230, 230, 230, 230, 232, 220, 220, 220, 220, 232, 216, - 220, 220, 220, 220, 220, 202, 202, 220, 220, 220, 220, 202, 202, 220, - 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 1, 1, 1, 1, 1, 220, - 220, 220, 220, 230, 230, 230, 230, 230, 230, 230, 230, 240, 230, 220, - 220, 220, 230, 230, 230, 220, 220, 0, 230, 230, 230, 220, 220, 220, 220, - 230, 232, 220, 220, 230, 233, 234, 234, 233, 234, 234, 233, 230, 230, - 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 - }, - { /* page 4, index 1 */ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 230, 230, 230, 230, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 - }, - { /* page 5, index 2 */ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 220, 230, 230, 230, 230, 220, 230, 230, 230, 222, 220, 230, 230, 230, - 230, 230, 230, 220, 220, 220, 220, 220, 220, 230, 230, 220, 230, 230, - 222, 228, 230, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 19, 20, 21, 22, 0, - 23, 0, 24, 25, 0, 230, 220, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 - }, - { /* page 6, index 3 */ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 230, 230, 230, 230, 230, - 230, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 27, 28, 29, 30, 31, 32, 33, 34, 230, 230, 220, 220, - 230, 230, 230, 230, 230, 220, 230, 230, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 230, 230, 230, 230, 230, 230, 230, 0, - 0, 230, 230, 230, 230, 220, 230, 0, 0, 230, 230, 0, 220, 230, 230, 220, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 - }, - { /* page 7, index 4 */ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 230, 220, 230, 230, 220, 230, 230, 220, 220, 220, 230, 220, 220, 230, - 220, 230, 230, 230, 220, 230, 220, 230, 220, 230, 220, 230, 230, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 230, 230, 230, 230, 230, 230, 230, - 220, 230, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 - }, - { /* page 9, index 5 */ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 9, 0, 0, 0, 230, 220, 230, 230, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 - }, - { /* page 10, index 6 */ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 - }, - { /* page 11, index 7 */ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 - }, - { /* page 12, index 8 */ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 84, 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 - }, - { /* page 13, index 9 */ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 - }, - { /* page 14, index 10 */ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 103, 103, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 107, 107, 107, 107, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 118, 118, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 122, 122, 122, 122, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 - }, - { /* page 15, index 11 */ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 220, 220, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 220, 0, 220, 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 129, 130, 0, - 132, 0, 0, 0, 0, 0, 130, 130, 130, 130, 0, 0, 130, 0, 230, 230, 9, 0, - 230, 230, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 220, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0 - }, - { /* page 16, index 12 */ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 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, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 - }, - { /* page 19, index 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 230, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 - }, - { /* page 23, index 14 */ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 230, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 - }, - { /* page 24, index 15 */ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 228, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 - }, - { /* page 25, index 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 222, 230, 220, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 - }, - { /* page 26, index 17 */ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 230, - 220, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 - }, - { /* page 27, index 18 */ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 230, 220, 230, 230, 230, 230, 230, 230, - 230, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 - }, - { /* page 29, index 19 */ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 230, 230, 220, 230, 230, 230, 230, 230, 230, 230, 220, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 230, 220 - }, - { /* page 32, index 20 */ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 230, 230, 1, 1, 230, 230, - 230, 230, 1, 1, 1, 230, 230, 0, 0, 0, 0, 230, 0, 0, 0, 1, 1, 230, 220, - 230, 1, 1, 220, 220, 220, 220, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0 - }, - { /* page 48, index 21 */ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 218, 228, 232, 222, - 224, 224, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 - }, - { /* page 168, index 22 */ - 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 - }, - { /* page 251, index 23 */ - 0, 0, 0, 0, 0, 0, 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, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 - }, - { /* page 254, index 24 */ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 230, 230, 230, 230, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 - }, - { /* page 266, index 25 */ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 220, 0, 230, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 230, 1, 220, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 - }, - { /* page 465, index 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 216, 216, 1, 1, 1, 0, 0, 0, 226, 216, 216, 216, 216, 216, - 0, 0, 0, 0, 0, 0, 0, 0, 220, 220, 220, 220, 220, 220, 220, 220, 0, 0, - 230, 230, 230, 230, 230, 220, 220, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 230, 230, 230, 230, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0 - }, - { /* page 466, index 27 */ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 230, 230, 230, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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 gint16 combining_class_table_part1[763] = { - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 /* page 3 */, - 1 /* page 4 */, - 2 /* page 5 */, - 3 /* page 6 */, - 4 /* page 7 */, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 5 /* page 9 */, - 6 /* page 10 */, - 7 /* page 11 */, - 8 /* page 12 */, - 9 /* page 13 */, - 10 /* page 14 */, - 11 /* page 15 */, - 12 /* page 16 */, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 13 /* page 19 */, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 14 /* page 23 */, - 15 /* page 24 */, - 16 /* page 25 */, - 17 /* page 26 */, - 18 /* page 27 */, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 19 /* page 29 */, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 20 /* page 32 */, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 21 /* page 48 */, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 22 /* page 168 */, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 23 /* page 251 */, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 24 /* page 254 */, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 25 /* page 266 */, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 26 /* page 465 */, - 27 /* page 466 */, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX -}; - -static const gint16 combining_class_table_part2[768] = { - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX, - 0 + G_UNICODE_MAX_TABLE_INDEX -}; - -typedef struct -{ - gunichar ch; - guint16 canon_offset; - guint16 compat_offset; -} decomposition; - -static const decomposition decomp_table[] = -{ - { 0x00a0, G_UNICODE_NOT_PRESENT_OFFSET, 0 }, - { 0x00a8, G_UNICODE_NOT_PRESENT_OFFSET, 2 }, - { 0x00aa, G_UNICODE_NOT_PRESENT_OFFSET, 6 }, - { 0x00af, G_UNICODE_NOT_PRESENT_OFFSET, 8 }, - { 0x00b2, G_UNICODE_NOT_PRESENT_OFFSET, 12 }, - { 0x00b3, G_UNICODE_NOT_PRESENT_OFFSET, 14 }, - { 0x00b4, G_UNICODE_NOT_PRESENT_OFFSET, 16 }, - { 0x00b5, G_UNICODE_NOT_PRESENT_OFFSET, 20 }, - { 0x00b8, G_UNICODE_NOT_PRESENT_OFFSET, 23 }, - { 0x00b9, G_UNICODE_NOT_PRESENT_OFFSET, 27 }, - { 0x00ba, G_UNICODE_NOT_PRESENT_OFFSET, 29 }, - { 0x00bc, G_UNICODE_NOT_PRESENT_OFFSET, 31 }, - { 0x00bd, G_UNICODE_NOT_PRESENT_OFFSET, 37 }, - { 0x00be, G_UNICODE_NOT_PRESENT_OFFSET, 43 }, - { 0x00c0, 49, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x00c1, 53, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x00c2, 57, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x00c3, 61, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x00c4, 65, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x00c5, 69, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x00c7, 73, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x00c8, 77, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x00c9, 81, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x00ca, 85, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x00cb, 89, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x00cc, 93, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x00cd, 97, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x00ce, 101, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x00cf, 105, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x00d1, 109, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x00d2, 113, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x00d3, 117, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x00d4, 121, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x00d5, 125, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x00d6, 129, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x00d9, 133, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x00da, 137, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x00db, 141, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x00dc, 145, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x00dd, 149, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x00e0, 153, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x00e1, 157, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x00e2, 161, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x00e3, 165, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x00e4, 169, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x00e5, 173, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x00e7, 177, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x00e8, 181, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x00e9, 185, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x00ea, 189, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x00eb, 193, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x00ec, 197, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x00ed, 201, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x00ee, 205, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x00ef, 209, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x00f1, 213, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x00f2, 217, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x00f3, 221, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x00f4, 225, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x00f5, 229, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x00f6, 233, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x00f9, 237, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x00fa, 241, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x00fb, 245, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x00fc, 249, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x00fd, 253, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x00ff, 257, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x0100, 261, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x0101, 265, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x0102, 269, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x0103, 273, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x0104, 277, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x0105, 281, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x0106, 285, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x0107, 289, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x0108, 293, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x0109, 297, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x010a, 301, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x010b, 305, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x010c, 309, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x010d, 313, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x010e, 317, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x010f, 321, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x0112, 325, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x0113, 329, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x0114, 333, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x0115, 337, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x0116, 341, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x0117, 345, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x0118, 349, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x0119, 353, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x011a, 357, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x011b, 361, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x011c, 365, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x011d, 369, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x011e, 373, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x011f, 377, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x0120, 381, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x0121, 385, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x0122, 389, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x0123, 393, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x0124, 397, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x0125, 401, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x0128, 405, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x0129, 409, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x012a, 413, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x012b, 417, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x012c, 421, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x012d, 425, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x012e, 429, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x012f, 433, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x0130, 437, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x0132, G_UNICODE_NOT_PRESENT_OFFSET, 441 }, - { 0x0133, G_UNICODE_NOT_PRESENT_OFFSET, 444 }, - { 0x0134, 447, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x0135, 451, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x0136, 455, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x0137, 459, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x0139, 463, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x013a, 467, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x013b, 471, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x013c, 475, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x013d, 479, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x013e, 483, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x013f, G_UNICODE_NOT_PRESENT_OFFSET, 487 }, - { 0x0140, G_UNICODE_NOT_PRESENT_OFFSET, 491 }, - { 0x0143, 495, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x0144, 499, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x0145, 503, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x0146, 507, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x0147, 511, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x0148, 515, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x0149, G_UNICODE_NOT_PRESENT_OFFSET, 519 }, - { 0x014c, 523, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x014d, 527, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x014e, 531, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x014f, 535, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x0150, 539, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x0151, 543, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x0154, 547, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x0155, 551, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x0156, 555, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x0157, 559, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x0158, 563, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x0159, 567, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x015a, 571, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x015b, 575, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x015c, 579, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x015d, 583, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x015e, 587, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x015f, 591, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x0160, 595, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x0161, 599, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x0162, 603, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x0163, 607, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x0164, 611, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x0165, 615, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x0168, 619, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x0169, 623, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x016a, 627, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x016b, 631, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x016c, 635, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x016d, 639, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x016e, 643, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x016f, 647, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x0170, 651, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x0171, 655, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x0172, 659, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x0173, 663, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x0174, 667, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x0175, 671, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x0176, 675, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x0177, 679, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x0178, 683, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x0179, 687, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x017a, 691, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x017b, 695, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x017c, 699, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x017d, 703, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x017e, 707, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x017f, G_UNICODE_NOT_PRESENT_OFFSET, 711 }, - { 0x01a0, 713, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x01a1, 717, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x01af, 721, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x01b0, 725, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x01c4, G_UNICODE_NOT_PRESENT_OFFSET, 729 }, - { 0x01c5, G_UNICODE_NOT_PRESENT_OFFSET, 734 }, - { 0x01c6, G_UNICODE_NOT_PRESENT_OFFSET, 739 }, - { 0x01c7, G_UNICODE_NOT_PRESENT_OFFSET, 744 }, - { 0x01c8, G_UNICODE_NOT_PRESENT_OFFSET, 747 }, - { 0x01c9, G_UNICODE_NOT_PRESENT_OFFSET, 750 }, - { 0x01ca, G_UNICODE_NOT_PRESENT_OFFSET, 753 }, - { 0x01cb, G_UNICODE_NOT_PRESENT_OFFSET, 756 }, - { 0x01cc, G_UNICODE_NOT_PRESENT_OFFSET, 759 }, - { 0x01cd, 762, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x01ce, 766, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x01cf, 770, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x01d0, 774, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x01d1, 778, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x01d2, 782, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x01d3, 786, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x01d4, 790, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x01d5, 794, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x01d6, 800, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x01d7, 806, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x01d8, 812, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x01d9, 818, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x01da, 824, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x01db, 830, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x01dc, 836, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x01de, 842, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x01df, 848, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x01e0, 854, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x01e1, 860, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x01e2, 866, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x01e3, 871, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x01e6, 876, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x01e7, 880, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x01e8, 884, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x01e9, 888, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x01ea, 892, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x01eb, 896, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x01ec, 900, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x01ed, 906, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x01ee, 912, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x01ef, 917, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x01f0, 922, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x01f1, G_UNICODE_NOT_PRESENT_OFFSET, 926 }, - { 0x01f2, G_UNICODE_NOT_PRESENT_OFFSET, 929 }, - { 0x01f3, G_UNICODE_NOT_PRESENT_OFFSET, 932 }, - { 0x01f4, 935, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x01f5, 939, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x01f8, 943, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x01f9, 947, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x01fa, 951, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x01fb, 957, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x01fc, 963, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x01fd, 968, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x01fe, 973, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x01ff, 978, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x0200, 983, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x0201, 987, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x0202, 991, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x0203, 995, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x0204, 999, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x0205, 1003, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x0206, 1007, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x0207, 1011, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x0208, 1015, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x0209, 1019, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x020a, 1023, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x020b, 1027, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x020c, 1031, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x020d, 1035, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x020e, 1039, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x020f, 1043, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x0210, 1047, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x0211, 1051, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x0212, 1055, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x0213, 1059, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x0214, 1063, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x0215, 1067, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x0216, 1071, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x0217, 1075, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x0218, 1079, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x0219, 1083, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x021a, 1087, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x021b, 1091, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x021e, 1095, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x021f, 1099, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x0226, 1103, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x0227, 1107, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x0228, 1111, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x0229, 1115, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x022a, 1119, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x022b, 1125, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x022c, 1131, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x022d, 1137, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x022e, 1143, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x022f, 1147, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x0230, 1151, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x0231, 1157, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x0232, 1163, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x0233, 1167, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x02b0, G_UNICODE_NOT_PRESENT_OFFSET, 1171 }, - { 0x02b1, G_UNICODE_NOT_PRESENT_OFFSET, 1173 }, - { 0x02b2, G_UNICODE_NOT_PRESENT_OFFSET, 1176 }, - { 0x02b3, G_UNICODE_NOT_PRESENT_OFFSET, 1178 }, - { 0x02b4, G_UNICODE_NOT_PRESENT_OFFSET, 1180 }, - { 0x02b5, G_UNICODE_NOT_PRESENT_OFFSET, 1183 }, - { 0x02b6, G_UNICODE_NOT_PRESENT_OFFSET, 1186 }, - { 0x02b7, G_UNICODE_NOT_PRESENT_OFFSET, 1189 }, - { 0x02b8, G_UNICODE_NOT_PRESENT_OFFSET, 1191 }, - { 0x02d8, G_UNICODE_NOT_PRESENT_OFFSET, 1193 }, - { 0x02d9, G_UNICODE_NOT_PRESENT_OFFSET, 1197 }, - { 0x02da, G_UNICODE_NOT_PRESENT_OFFSET, 1201 }, - { 0x02db, G_UNICODE_NOT_PRESENT_OFFSET, 1205 }, - { 0x02dc, G_UNICODE_NOT_PRESENT_OFFSET, 1209 }, - { 0x02dd, G_UNICODE_NOT_PRESENT_OFFSET, 1213 }, - { 0x02e0, G_UNICODE_NOT_PRESENT_OFFSET, 1217 }, - { 0x02e1, G_UNICODE_NOT_PRESENT_OFFSET, 1220 }, - { 0x02e2, G_UNICODE_NOT_PRESENT_OFFSET, 711 }, - { 0x02e3, G_UNICODE_NOT_PRESENT_OFFSET, 1222 }, - { 0x02e4, G_UNICODE_NOT_PRESENT_OFFSET, 1224 }, - { 0x0340, 1227, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x0341, 1230, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x0343, 1233, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x0344, 1236, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x0374, 1241, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x037a, G_UNICODE_NOT_PRESENT_OFFSET, 1244 }, - { 0x037e, 1248, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x0384, G_UNICODE_NOT_PRESENT_OFFSET, 16 }, - { 0x0385, 1250, 1255 }, - { 0x0386, 1261, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x0387, 1266, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x0388, 1269, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x0389, 1274, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x038a, 1279, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x038c, 1284, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x038e, 1289, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x038f, 1294, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x0390, 1299, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x03aa, 1306, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x03ab, 1311, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x03ac, 1316, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x03ad, 1321, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x03ae, 1326, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x03af, 1331, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x03b0, 1336, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x03ca, 1343, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x03cb, 1348, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x03cc, 1353, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x03cd, 1358, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x03ce, 1363, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x03d0, G_UNICODE_NOT_PRESENT_OFFSET, 1368 }, - { 0x03d1, G_UNICODE_NOT_PRESENT_OFFSET, 1371 }, - { 0x03d2, G_UNICODE_NOT_PRESENT_OFFSET, 1374 }, - { 0x03d3, 1377, 1289 }, - { 0x03d4, 1382, 1311 }, - { 0x03d5, G_UNICODE_NOT_PRESENT_OFFSET, 1387 }, - { 0x03d6, G_UNICODE_NOT_PRESENT_OFFSET, 1390 }, - { 0x03f0, G_UNICODE_NOT_PRESENT_OFFSET, 1393 }, - { 0x03f1, G_UNICODE_NOT_PRESENT_OFFSET, 1396 }, - { 0x03f2, G_UNICODE_NOT_PRESENT_OFFSET, 1399 }, - { 0x03f4, G_UNICODE_NOT_PRESENT_OFFSET, 1402 }, - { 0x03f5, G_UNICODE_NOT_PRESENT_OFFSET, 1405 }, - { 0x03f9, G_UNICODE_NOT_PRESENT_OFFSET, 1408 }, - { 0x0400, 1411, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x0401, 1416, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x0403, 1421, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x0407, 1426, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x040c, 1431, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x040d, 1436, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x040e, 1441, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x0419, 1446, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x0439, 1451, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x0450, 1456, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x0451, 1461, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x0453, 1466, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x0457, 1471, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x045c, 1476, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x045d, 1481, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x045e, 1486, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x0476, 1491, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x0477, 1496, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x04c1, 1501, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x04c2, 1506, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x04d0, 1511, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x04d1, 1516, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x04d2, 1521, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x04d3, 1526, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x04d6, 1531, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x04d7, 1536, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x04da, 1541, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x04db, 1546, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x04dc, 1551, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x04dd, 1556, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x04de, 1561, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x04df, 1566, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x04e2, 1571, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x04e3, 1576, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x04e4, 1581, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x04e5, 1586, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x04e6, 1591, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x04e7, 1596, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x04ea, 1601, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x04eb, 1606, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x04ec, 1611, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x04ed, 1616, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x04ee, 1621, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x04ef, 1626, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x04f0, 1631, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x04f1, 1636, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x04f2, 1641, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x04f3, 1646, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x04f4, 1651, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x04f5, 1656, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x04f8, 1661, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x04f9, 1666, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x0587, G_UNICODE_NOT_PRESENT_OFFSET, 1671 }, - { 0x0622, 1676, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x0623, 1681, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x0624, 1686, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x0625, 1691, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x0626, 1696, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x0675, G_UNICODE_NOT_PRESENT_OFFSET, 1701 }, - { 0x0676, G_UNICODE_NOT_PRESENT_OFFSET, 1706 }, - { 0x0677, G_UNICODE_NOT_PRESENT_OFFSET, 1711 }, - { 0x0678, G_UNICODE_NOT_PRESENT_OFFSET, 1716 }, - { 0x06c0, 1721, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x06c2, 1726, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x06d3, 1731, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x0929, 1736, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x0931, 1743, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x0934, 1750, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x0958, 1757, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x0959, 1764, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x095a, 1771, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x095b, 1778, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x095c, 1785, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x095d, 1792, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x095e, 1799, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x095f, 1806, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x09cb, 1813, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x09cc, 1820, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x09dc, 1827, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x09dd, 1834, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x09df, 1841, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x0a33, 1848, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x0a36, 1855, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x0a59, 1862, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x0a5a, 1869, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x0a5b, 1876, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x0a5e, 1883, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x0b48, 1890, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x0b4b, 1897, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x0b4c, 1904, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x0b5c, 1911, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x0b5d, 1918, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x0b94, 1925, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x0bca, 1932, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x0bcb, 1939, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x0bcc, 1946, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x0c48, 1953, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x0cc0, 1960, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x0cc7, 1967, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x0cc8, 1974, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x0cca, 1981, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x0ccb, 1988, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x0d4a, 1998, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x0d4b, 2005, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x0d4c, 2012, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x0dda, 2019, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x0ddc, 2026, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x0ddd, 2033, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x0dde, 2043, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x0e33, G_UNICODE_NOT_PRESENT_OFFSET, 2050 }, - { 0x0eb3, G_UNICODE_NOT_PRESENT_OFFSET, 2057 }, - { 0x0edc, G_UNICODE_NOT_PRESENT_OFFSET, 2064 }, - { 0x0edd, G_UNICODE_NOT_PRESENT_OFFSET, 2071 }, - { 0x0f0c, G_UNICODE_NOT_PRESENT_OFFSET, 2078 }, - { 0x0f43, 2082, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x0f4d, 2089, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x0f52, 2096, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x0f57, 2103, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x0f5c, 2110, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x0f69, 2117, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x0f73, 2124, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x0f75, 2131, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x0f76, 2138, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x0f77, G_UNICODE_NOT_PRESENT_OFFSET, 2145 }, - { 0x0f78, 2155, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x0f79, G_UNICODE_NOT_PRESENT_OFFSET, 2162 }, - { 0x0f81, 2172, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x0f93, 2179, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x0f9d, 2186, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x0fa2, 2193, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x0fa7, 2200, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x0fac, 2207, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x0fb9, 2214, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1026, 2221, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x10fc, G_UNICODE_NOT_PRESENT_OFFSET, 2228 }, - { 0x1b06, 2232, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1b08, 2239, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1b0a, 2246, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1b0c, 2253, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1b0e, 2260, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1b12, 2267, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1b3b, 2274, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1b3d, 2281, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1b40, 2288, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1b41, 2295, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1b43, 2302, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1d2c, G_UNICODE_NOT_PRESENT_OFFSET, 2309 }, - { 0x1d2d, G_UNICODE_NOT_PRESENT_OFFSET, 2311 }, - { 0x1d2e, G_UNICODE_NOT_PRESENT_OFFSET, 2314 }, - { 0x1d30, G_UNICODE_NOT_PRESENT_OFFSET, 2316 }, - { 0x1d31, G_UNICODE_NOT_PRESENT_OFFSET, 2318 }, - { 0x1d32, G_UNICODE_NOT_PRESENT_OFFSET, 2320 }, - { 0x1d33, G_UNICODE_NOT_PRESENT_OFFSET, 2323 }, - { 0x1d34, G_UNICODE_NOT_PRESENT_OFFSET, 2325 }, - { 0x1d35, G_UNICODE_NOT_PRESENT_OFFSET, 2327 }, - { 0x1d36, G_UNICODE_NOT_PRESENT_OFFSET, 2329 }, - { 0x1d37, G_UNICODE_NOT_PRESENT_OFFSET, 2331 }, - { 0x1d38, G_UNICODE_NOT_PRESENT_OFFSET, 2333 }, - { 0x1d39, G_UNICODE_NOT_PRESENT_OFFSET, 2335 }, - { 0x1d3a, G_UNICODE_NOT_PRESENT_OFFSET, 2337 }, - { 0x1d3c, G_UNICODE_NOT_PRESENT_OFFSET, 2339 }, - { 0x1d3d, G_UNICODE_NOT_PRESENT_OFFSET, 2341 }, - { 0x1d3e, G_UNICODE_NOT_PRESENT_OFFSET, 2344 }, - { 0x1d3f, G_UNICODE_NOT_PRESENT_OFFSET, 2346 }, - { 0x1d40, G_UNICODE_NOT_PRESENT_OFFSET, 2348 }, - { 0x1d41, G_UNICODE_NOT_PRESENT_OFFSET, 2350 }, - { 0x1d42, G_UNICODE_NOT_PRESENT_OFFSET, 2352 }, - { 0x1d43, G_UNICODE_NOT_PRESENT_OFFSET, 6 }, - { 0x1d44, G_UNICODE_NOT_PRESENT_OFFSET, 2354 }, - { 0x1d45, G_UNICODE_NOT_PRESENT_OFFSET, 2357 }, - { 0x1d46, G_UNICODE_NOT_PRESENT_OFFSET, 2360 }, - { 0x1d47, G_UNICODE_NOT_PRESENT_OFFSET, 2364 }, - { 0x1d48, G_UNICODE_NOT_PRESENT_OFFSET, 2366 }, - { 0x1d49, G_UNICODE_NOT_PRESENT_OFFSET, 2368 }, - { 0x1d4a, G_UNICODE_NOT_PRESENT_OFFSET, 2370 }, - { 0x1d4b, G_UNICODE_NOT_PRESENT_OFFSET, 2373 }, - { 0x1d4c, G_UNICODE_NOT_PRESENT_OFFSET, 2376 }, - { 0x1d4d, G_UNICODE_NOT_PRESENT_OFFSET, 2379 }, - { 0x1d4f, G_UNICODE_NOT_PRESENT_OFFSET, 2381 }, - { 0x1d50, G_UNICODE_NOT_PRESENT_OFFSET, 2383 }, - { 0x1d51, G_UNICODE_NOT_PRESENT_OFFSET, 2385 }, - { 0x1d52, G_UNICODE_NOT_PRESENT_OFFSET, 29 }, - { 0x1d53, G_UNICODE_NOT_PRESENT_OFFSET, 2388 }, - { 0x1d54, G_UNICODE_NOT_PRESENT_OFFSET, 2391 }, - { 0x1d55, G_UNICODE_NOT_PRESENT_OFFSET, 2395 }, - { 0x1d56, G_UNICODE_NOT_PRESENT_OFFSET, 2399 }, - { 0x1d57, G_UNICODE_NOT_PRESENT_OFFSET, 2401 }, - { 0x1d58, G_UNICODE_NOT_PRESENT_OFFSET, 2403 }, - { 0x1d59, G_UNICODE_NOT_PRESENT_OFFSET, 2405 }, - { 0x1d5a, G_UNICODE_NOT_PRESENT_OFFSET, 2409 }, - { 0x1d5b, G_UNICODE_NOT_PRESENT_OFFSET, 2412 }, - { 0x1d5c, G_UNICODE_NOT_PRESENT_OFFSET, 2414 }, - { 0x1d5d, G_UNICODE_NOT_PRESENT_OFFSET, 1368 }, - { 0x1d5e, G_UNICODE_NOT_PRESENT_OFFSET, 2418 }, - { 0x1d5f, G_UNICODE_NOT_PRESENT_OFFSET, 2421 }, - { 0x1d60, G_UNICODE_NOT_PRESENT_OFFSET, 1387 }, - { 0x1d61, G_UNICODE_NOT_PRESENT_OFFSET, 2424 }, - { 0x1d62, G_UNICODE_NOT_PRESENT_OFFSET, 2427 }, - { 0x1d63, G_UNICODE_NOT_PRESENT_OFFSET, 1178 }, - { 0x1d64, G_UNICODE_NOT_PRESENT_OFFSET, 2403 }, - { 0x1d65, G_UNICODE_NOT_PRESENT_OFFSET, 2412 }, - { 0x1d66, G_UNICODE_NOT_PRESENT_OFFSET, 1368 }, - { 0x1d67, G_UNICODE_NOT_PRESENT_OFFSET, 2418 }, - { 0x1d68, G_UNICODE_NOT_PRESENT_OFFSET, 1396 }, - { 0x1d69, G_UNICODE_NOT_PRESENT_OFFSET, 1387 }, - { 0x1d6a, G_UNICODE_NOT_PRESENT_OFFSET, 2424 }, - { 0x1d78, G_UNICODE_NOT_PRESENT_OFFSET, 2429 }, - { 0x1d9b, G_UNICODE_NOT_PRESENT_OFFSET, 2432 }, - { 0x1d9c, G_UNICODE_NOT_PRESENT_OFFSET, 2435 }, - { 0x1d9d, G_UNICODE_NOT_PRESENT_OFFSET, 2437 }, - { 0x1d9e, G_UNICODE_NOT_PRESENT_OFFSET, 2440 }, - { 0x1d9f, G_UNICODE_NOT_PRESENT_OFFSET, 2376 }, - { 0x1da0, G_UNICODE_NOT_PRESENT_OFFSET, 2443 }, - { 0x1da1, G_UNICODE_NOT_PRESENT_OFFSET, 2445 }, - { 0x1da2, G_UNICODE_NOT_PRESENT_OFFSET, 2448 }, - { 0x1da3, G_UNICODE_NOT_PRESENT_OFFSET, 2451 }, - { 0x1da4, G_UNICODE_NOT_PRESENT_OFFSET, 2454 }, - { 0x1da5, G_UNICODE_NOT_PRESENT_OFFSET, 2457 }, - { 0x1da6, G_UNICODE_NOT_PRESENT_OFFSET, 2460 }, - { 0x1da7, G_UNICODE_NOT_PRESENT_OFFSET, 2463 }, - { 0x1da8, G_UNICODE_NOT_PRESENT_OFFSET, 2467 }, - { 0x1da9, G_UNICODE_NOT_PRESENT_OFFSET, 2470 }, - { 0x1daa, G_UNICODE_NOT_PRESENT_OFFSET, 2473 }, - { 0x1dab, G_UNICODE_NOT_PRESENT_OFFSET, 2477 }, - { 0x1dac, G_UNICODE_NOT_PRESENT_OFFSET, 2480 }, - { 0x1dad, G_UNICODE_NOT_PRESENT_OFFSET, 2483 }, - { 0x1dae, G_UNICODE_NOT_PRESENT_OFFSET, 2486 }, - { 0x1daf, G_UNICODE_NOT_PRESENT_OFFSET, 2489 }, - { 0x1db0, G_UNICODE_NOT_PRESENT_OFFSET, 2492 }, - { 0x1db1, G_UNICODE_NOT_PRESENT_OFFSET, 2495 }, - { 0x1db2, G_UNICODE_NOT_PRESENT_OFFSET, 2498 }, - { 0x1db3, G_UNICODE_NOT_PRESENT_OFFSET, 2501 }, - { 0x1db4, G_UNICODE_NOT_PRESENT_OFFSET, 2504 }, - { 0x1db5, G_UNICODE_NOT_PRESENT_OFFSET, 2507 }, - { 0x1db6, G_UNICODE_NOT_PRESENT_OFFSET, 2510 }, - { 0x1db7, G_UNICODE_NOT_PRESENT_OFFSET, 2513 }, - { 0x1db8, G_UNICODE_NOT_PRESENT_OFFSET, 2516 }, - { 0x1db9, G_UNICODE_NOT_PRESENT_OFFSET, 2520 }, - { 0x1dba, G_UNICODE_NOT_PRESENT_OFFSET, 2523 }, - { 0x1dbb, G_UNICODE_NOT_PRESENT_OFFSET, 2526 }, - { 0x1dbc, G_UNICODE_NOT_PRESENT_OFFSET, 2528 }, - { 0x1dbd, G_UNICODE_NOT_PRESENT_OFFSET, 2531 }, - { 0x1dbe, G_UNICODE_NOT_PRESENT_OFFSET, 2534 }, - { 0x1dbf, G_UNICODE_NOT_PRESENT_OFFSET, 1371 }, - { 0x1e00, 2537, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1e01, 2541, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1e02, 2545, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1e03, 2549, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1e04, 2553, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1e05, 2557, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1e06, 2561, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1e07, 2565, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1e08, 2569, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1e09, 2575, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1e0a, 2581, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1e0b, 2585, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1e0c, 2589, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1e0d, 2593, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1e0e, 2597, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1e0f, 2601, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1e10, 2605, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1e11, 2609, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1e12, 2613, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1e13, 2617, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1e14, 2621, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1e15, 2627, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1e16, 2633, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1e17, 2639, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1e18, 2645, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1e19, 2649, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1e1a, 2653, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1e1b, 2657, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1e1c, 2661, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1e1d, 2667, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1e1e, 2673, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1e1f, 2677, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1e20, 2681, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1e21, 2685, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1e22, 2689, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1e23, 2693, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1e24, 2697, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1e25, 2701, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1e26, 2705, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1e27, 2709, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1e28, 2713, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1e29, 2717, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1e2a, 2721, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1e2b, 2725, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1e2c, 2729, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1e2d, 2733, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1e2e, 2737, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1e2f, 2743, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1e30, 2749, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1e31, 2753, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1e32, 2757, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1e33, 2761, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1e34, 2765, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1e35, 2769, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1e36, 2773, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1e37, 2777, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1e38, 2781, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1e39, 2787, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1e3a, 2793, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1e3b, 2797, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1e3c, 2801, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1e3d, 2805, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1e3e, 2809, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1e3f, 2813, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1e40, 2817, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1e41, 2821, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1e42, 2825, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1e43, 2829, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1e44, 2833, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1e45, 2837, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1e46, 2841, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1e47, 2845, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1e48, 2849, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1e49, 2853, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1e4a, 2857, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1e4b, 2861, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1e4c, 2865, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1e4d, 2871, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1e4e, 2877, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1e4f, 2883, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1e50, 2889, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1e51, 2895, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1e52, 2901, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1e53, 2907, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1e54, 2913, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1e55, 2917, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1e56, 2921, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1e57, 2925, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1e58, 2929, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1e59, 2933, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1e5a, 2937, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1e5b, 2941, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1e5c, 2945, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1e5d, 2951, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1e5e, 2957, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1e5f, 2961, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1e60, 2965, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1e61, 2969, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1e62, 2973, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1e63, 2977, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1e64, 2981, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1e65, 2987, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1e66, 2993, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1e67, 2999, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1e68, 3005, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1e69, 3011, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1e6a, 3017, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1e6b, 3021, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1e6c, 3025, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1e6d, 3029, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1e6e, 3033, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1e6f, 3037, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1e70, 3041, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1e71, 3045, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1e72, 3049, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1e73, 3053, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1e74, 3057, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1e75, 3061, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1e76, 3065, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1e77, 3069, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1e78, 3073, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1e79, 3079, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1e7a, 3085, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1e7b, 3091, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1e7c, 3097, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1e7d, 3101, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1e7e, 3105, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1e7f, 3109, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1e80, 3113, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1e81, 3117, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1e82, 3121, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1e83, 3125, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1e84, 3129, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1e85, 3133, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1e86, 3137, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1e87, 3141, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1e88, 3145, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1e89, 3149, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1e8a, 3153, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1e8b, 3157, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1e8c, 3161, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1e8d, 3165, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1e8e, 3169, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1e8f, 3173, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1e90, 3177, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1e91, 3181, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1e92, 3185, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1e93, 3189, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1e94, 3193, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1e95, 3197, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1e96, 3201, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1e97, 3205, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1e98, 3209, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1e99, 3213, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1e9a, G_UNICODE_NOT_PRESENT_OFFSET, 3217 }, - { 0x1e9b, 3221, 2969 }, - { 0x1ea0, 3226, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1ea1, 3230, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1ea2, 3234, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1ea3, 3238, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1ea4, 3242, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1ea5, 3248, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1ea6, 3254, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1ea7, 3260, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1ea8, 3266, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1ea9, 3272, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1eaa, 3278, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1eab, 3284, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1eac, 3290, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1ead, 3296, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1eae, 3302, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1eaf, 3308, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1eb0, 3314, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1eb1, 3320, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1eb2, 3326, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1eb3, 3332, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1eb4, 3338, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1eb5, 3344, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1eb6, 3350, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1eb7, 3356, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1eb8, 3362, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1eb9, 3366, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1eba, 3370, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1ebb, 3374, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1ebc, 3378, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1ebd, 3382, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1ebe, 3386, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1ebf, 3392, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1ec0, 3398, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1ec1, 3404, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1ec2, 3410, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1ec3, 3416, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1ec4, 3422, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1ec5, 3428, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1ec6, 3434, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1ec7, 3440, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1ec8, 3446, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1ec9, 3450, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1eca, 3454, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1ecb, 3458, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1ecc, 3462, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1ecd, 3466, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1ece, 3470, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1ecf, 3474, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1ed0, 3478, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1ed1, 3484, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1ed2, 3490, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1ed3, 3496, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1ed4, 3502, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1ed5, 3508, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1ed6, 3514, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1ed7, 3520, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1ed8, 3526, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1ed9, 3532, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1eda, 3538, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1edb, 3544, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1edc, 3550, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1edd, 3556, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1ede, 3562, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1edf, 3568, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1ee0, 3574, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1ee1, 3580, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1ee2, 3586, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1ee3, 3592, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1ee4, 3598, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1ee5, 3602, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1ee6, 3606, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1ee7, 3610, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1ee8, 3614, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1ee9, 3620, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1eea, 3626, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1eeb, 3632, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1eec, 3638, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1eed, 3644, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1eee, 3650, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1eef, 3656, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1ef0, 3662, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1ef1, 3668, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1ef2, 3674, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1ef3, 3678, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1ef4, 3682, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1ef5, 3686, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1ef6, 3690, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1ef7, 3694, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1ef8, 3698, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1ef9, 3702, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1f00, 3706, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1f01, 3711, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1f02, 3716, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1f03, 3723, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1f04, 3730, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1f05, 3737, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1f06, 3744, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1f07, 3751, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1f08, 3758, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1f09, 3763, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1f0a, 3768, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1f0b, 3775, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1f0c, 3782, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1f0d, 3789, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1f0e, 3796, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1f0f, 3803, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1f10, 3810, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1f11, 3815, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1f12, 3820, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1f13, 3827, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1f14, 3834, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1f15, 3841, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1f18, 3848, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1f19, 3853, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1f1a, 3858, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1f1b, 3865, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1f1c, 3872, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1f1d, 3879, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1f20, 3886, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1f21, 3891, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1f22, 3896, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1f23, 3903, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1f24, 3910, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1f25, 3917, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1f26, 3924, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1f27, 3931, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1f28, 3938, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1f29, 3943, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1f2a, 3948, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1f2b, 3955, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1f2c, 3962, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1f2d, 3969, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1f2e, 3976, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1f2f, 3983, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1f30, 3990, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1f31, 3995, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1f32, 4000, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1f33, 4007, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1f34, 4014, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1f35, 4021, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1f36, 4028, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1f37, 4035, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1f38, 4042, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1f39, 4047, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1f3a, 4052, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1f3b, 4059, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1f3c, 4066, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1f3d, 4073, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1f3e, 4080, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1f3f, 4087, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1f40, 4094, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1f41, 4099, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1f42, 4104, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1f43, 4111, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1f44, 4118, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1f45, 4125, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1f48, 4132, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1f49, 4137, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1f4a, 4142, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1f4b, 4149, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1f4c, 4156, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1f4d, 4163, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1f50, 4170, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1f51, 4175, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1f52, 4180, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1f53, 4187, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1f54, 4194, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1f55, 4201, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1f56, 4208, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1f57, 4215, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1f59, 4222, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1f5b, 4227, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1f5d, 4234, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1f5f, 4241, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1f60, 4248, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1f61, 4253, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1f62, 4258, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1f63, 4265, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1f64, 4272, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1f65, 4279, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1f66, 4286, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1f67, 4293, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1f68, 4300, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1f69, 4305, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1f6a, 4310, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1f6b, 4317, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1f6c, 4324, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1f6d, 4331, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1f6e, 4338, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1f6f, 4345, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1f70, 4352, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1f71, 1316, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1f72, 4357, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1f73, 1321, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1f74, 4362, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1f75, 1326, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1f76, 4367, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1f77, 1331, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1f78, 4372, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1f79, 1353, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1f7a, 4377, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1f7b, 1358, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1f7c, 4382, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1f7d, 1363, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1f80, 4387, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1f81, 4394, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1f82, 4401, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1f83, 4410, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1f84, 4419, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1f85, 4428, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1f86, 4437, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1f87, 4446, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1f88, 4455, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1f89, 4462, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1f8a, 4469, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1f8b, 4478, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1f8c, 4487, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1f8d, 4496, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1f8e, 4505, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1f8f, 4514, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1f90, 4523, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1f91, 4530, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1f92, 4537, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1f93, 4546, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1f94, 4555, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1f95, 4564, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1f96, 4573, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1f97, 4582, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1f98, 4591, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1f99, 4598, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1f9a, 4605, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1f9b, 4614, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1f9c, 4623, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1f9d, 4632, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1f9e, 4641, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1f9f, 4650, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1fa0, 4659, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1fa1, 4666, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1fa2, 4673, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1fa3, 4682, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1fa4, 4691, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1fa5, 4700, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1fa6, 4709, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1fa7, 4718, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1fa8, 4727, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1fa9, 4734, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1faa, 4741, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1fab, 4750, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1fac, 4759, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1fad, 4768, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1fae, 4777, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1faf, 4786, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1fb0, 4795, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1fb1, 4800, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1fb2, 4805, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1fb3, 4812, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1fb4, 4817, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1fb6, 4824, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1fb7, 4829, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1fb8, 4836, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1fb9, 4841, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1fba, 4846, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1fbb, 1261, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1fbc, 4851, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1fbd, G_UNICODE_NOT_PRESENT_OFFSET, 4856 }, - { 0x1fbe, 4860, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1fbf, G_UNICODE_NOT_PRESENT_OFFSET, 4856 }, - { 0x1fc0, G_UNICODE_NOT_PRESENT_OFFSET, 4863 }, - { 0x1fc1, 4867, 4872 }, - { 0x1fc2, 4878, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1fc3, 4885, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1fc4, 4890, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1fc6, 4897, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1fc7, 4902, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1fc8, 4909, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1fc9, 1269, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1fca, 4914, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1fcb, 1274, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1fcc, 4919, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1fcd, 4924, 4930 }, - { 0x1fce, 4936, 4942 }, - { 0x1fcf, 4948, 4954 }, - { 0x1fd0, 4960, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1fd1, 4965, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1fd2, 4970, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1fd3, 1299, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1fd6, 4977, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1fd7, 4982, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1fd8, 4989, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1fd9, 4994, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1fda, 4999, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1fdb, 1279, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1fdd, 5004, 5010 }, - { 0x1fde, 5016, 5022 }, - { 0x1fdf, 5028, 5034 }, - { 0x1fe0, 5040, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1fe1, 5045, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1fe2, 5050, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1fe3, 1336, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1fe4, 5057, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1fe5, 5062, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1fe6, 5067, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1fe7, 5072, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1fe8, 5079, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1fe9, 5084, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1fea, 5089, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1feb, 1289, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1fec, 5094, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1fed, 5099, 5104 }, - { 0x1fee, 1250, 1255 }, - { 0x1fef, 5110, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1ff2, 5112, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1ff3, 5119, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1ff4, 5124, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1ff6, 5131, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1ff7, 5136, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1ff8, 5143, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1ff9, 1284, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1ffa, 5148, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1ffb, 1294, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1ffc, 5153, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1ffd, 5158, 16 }, - { 0x1ffe, G_UNICODE_NOT_PRESENT_OFFSET, 5161 }, - { 0x2000, 5165, 0 }, - { 0x2001, 5169, 0 }, - { 0x2002, G_UNICODE_NOT_PRESENT_OFFSET, 0 }, - { 0x2003, G_UNICODE_NOT_PRESENT_OFFSET, 0 }, - { 0x2004, G_UNICODE_NOT_PRESENT_OFFSET, 0 }, - { 0x2005, G_UNICODE_NOT_PRESENT_OFFSET, 0 }, - { 0x2006, G_UNICODE_NOT_PRESENT_OFFSET, 0 }, - { 0x2007, G_UNICODE_NOT_PRESENT_OFFSET, 0 }, - { 0x2008, G_UNICODE_NOT_PRESENT_OFFSET, 0 }, - { 0x2009, G_UNICODE_NOT_PRESENT_OFFSET, 0 }, - { 0x200a, G_UNICODE_NOT_PRESENT_OFFSET, 0 }, - { 0x2011, G_UNICODE_NOT_PRESENT_OFFSET, 5173 }, - { 0x2017, G_UNICODE_NOT_PRESENT_OFFSET, 5177 }, - { 0x2024, G_UNICODE_NOT_PRESENT_OFFSET, 5181 }, - { 0x2025, G_UNICODE_NOT_PRESENT_OFFSET, 5183 }, - { 0x2026, G_UNICODE_NOT_PRESENT_OFFSET, 5186 }, - { 0x202f, G_UNICODE_NOT_PRESENT_OFFSET, 0 }, - { 0x2033, G_UNICODE_NOT_PRESENT_OFFSET, 5190 }, - { 0x2034, G_UNICODE_NOT_PRESENT_OFFSET, 5197 }, - { 0x2036, G_UNICODE_NOT_PRESENT_OFFSET, 5207 }, - { 0x2037, G_UNICODE_NOT_PRESENT_OFFSET, 5214 }, - { 0x203c, G_UNICODE_NOT_PRESENT_OFFSET, 5224 }, - { 0x203e, G_UNICODE_NOT_PRESENT_OFFSET, 5227 }, - { 0x2047, G_UNICODE_NOT_PRESENT_OFFSET, 5231 }, - { 0x2048, G_UNICODE_NOT_PRESENT_OFFSET, 5234 }, - { 0x2049, G_UNICODE_NOT_PRESENT_OFFSET, 5237 }, - { 0x2057, G_UNICODE_NOT_PRESENT_OFFSET, 5240 }, - { 0x205f, G_UNICODE_NOT_PRESENT_OFFSET, 0 }, - { 0x2070, G_UNICODE_NOT_PRESENT_OFFSET, 5253 }, - { 0x2071, G_UNICODE_NOT_PRESENT_OFFSET, 2427 }, - { 0x2074, G_UNICODE_NOT_PRESENT_OFFSET, 5255 }, - { 0x2075, G_UNICODE_NOT_PRESENT_OFFSET, 5257 }, - { 0x2076, G_UNICODE_NOT_PRESENT_OFFSET, 5259 }, - { 0x2077, G_UNICODE_NOT_PRESENT_OFFSET, 5261 }, - { 0x2078, G_UNICODE_NOT_PRESENT_OFFSET, 5263 }, - { 0x2079, G_UNICODE_NOT_PRESENT_OFFSET, 5265 }, - { 0x207a, G_UNICODE_NOT_PRESENT_OFFSET, 5267 }, - { 0x207b, G_UNICODE_NOT_PRESENT_OFFSET, 5269 }, - { 0x207c, G_UNICODE_NOT_PRESENT_OFFSET, 5273 }, - { 0x207d, G_UNICODE_NOT_PRESENT_OFFSET, 5275 }, - { 0x207e, G_UNICODE_NOT_PRESENT_OFFSET, 5277 }, - { 0x207f, G_UNICODE_NOT_PRESENT_OFFSET, 5279 }, - { 0x2080, G_UNICODE_NOT_PRESENT_OFFSET, 5253 }, - { 0x2081, G_UNICODE_NOT_PRESENT_OFFSET, 27 }, - { 0x2082, G_UNICODE_NOT_PRESENT_OFFSET, 12 }, - { 0x2083, G_UNICODE_NOT_PRESENT_OFFSET, 14 }, - { 0x2084, G_UNICODE_NOT_PRESENT_OFFSET, 5255 }, - { 0x2085, G_UNICODE_NOT_PRESENT_OFFSET, 5257 }, - { 0x2086, G_UNICODE_NOT_PRESENT_OFFSET, 5259 }, - { 0x2087, G_UNICODE_NOT_PRESENT_OFFSET, 5261 }, - { 0x2088, G_UNICODE_NOT_PRESENT_OFFSET, 5263 }, - { 0x2089, G_UNICODE_NOT_PRESENT_OFFSET, 5265 }, - { 0x208a, G_UNICODE_NOT_PRESENT_OFFSET, 5267 }, - { 0x208b, G_UNICODE_NOT_PRESENT_OFFSET, 5269 }, - { 0x208c, G_UNICODE_NOT_PRESENT_OFFSET, 5273 }, - { 0x208d, G_UNICODE_NOT_PRESENT_OFFSET, 5275 }, - { 0x208e, G_UNICODE_NOT_PRESENT_OFFSET, 5277 }, - { 0x2090, G_UNICODE_NOT_PRESENT_OFFSET, 6 }, - { 0x2091, G_UNICODE_NOT_PRESENT_OFFSET, 2368 }, - { 0x2092, G_UNICODE_NOT_PRESENT_OFFSET, 29 }, - { 0x2093, G_UNICODE_NOT_PRESENT_OFFSET, 1222 }, - { 0x2094, G_UNICODE_NOT_PRESENT_OFFSET, 2370 }, - { 0x20a8, G_UNICODE_NOT_PRESENT_OFFSET, 5281 }, - { 0x2100, G_UNICODE_NOT_PRESENT_OFFSET, 5284 }, - { 0x2101, G_UNICODE_NOT_PRESENT_OFFSET, 5288 }, - { 0x2102, G_UNICODE_NOT_PRESENT_OFFSET, 5292 }, - { 0x2103, G_UNICODE_NOT_PRESENT_OFFSET, 5294 }, - { 0x2105, G_UNICODE_NOT_PRESENT_OFFSET, 5298 }, - { 0x2106, G_UNICODE_NOT_PRESENT_OFFSET, 5302 }, - { 0x2107, G_UNICODE_NOT_PRESENT_OFFSET, 5306 }, - { 0x2109, G_UNICODE_NOT_PRESENT_OFFSET, 5309 }, - { 0x210a, G_UNICODE_NOT_PRESENT_OFFSET, 2379 }, - { 0x210b, G_UNICODE_NOT_PRESENT_OFFSET, 2325 }, - { 0x210c, G_UNICODE_NOT_PRESENT_OFFSET, 2325 }, - { 0x210d, G_UNICODE_NOT_PRESENT_OFFSET, 2325 }, - { 0x210e, G_UNICODE_NOT_PRESENT_OFFSET, 1171 }, - { 0x210f, G_UNICODE_NOT_PRESENT_OFFSET, 5313 }, - { 0x2110, G_UNICODE_NOT_PRESENT_OFFSET, 2327 }, - { 0x2111, G_UNICODE_NOT_PRESENT_OFFSET, 2327 }, - { 0x2112, G_UNICODE_NOT_PRESENT_OFFSET, 2333 }, - { 0x2113, G_UNICODE_NOT_PRESENT_OFFSET, 1220 }, - { 0x2115, G_UNICODE_NOT_PRESENT_OFFSET, 2337 }, - { 0x2116, G_UNICODE_NOT_PRESENT_OFFSET, 5316 }, - { 0x2119, G_UNICODE_NOT_PRESENT_OFFSET, 2344 }, - { 0x211a, G_UNICODE_NOT_PRESENT_OFFSET, 5319 }, - { 0x211b, G_UNICODE_NOT_PRESENT_OFFSET, 2346 }, - { 0x211c, G_UNICODE_NOT_PRESENT_OFFSET, 2346 }, - { 0x211d, G_UNICODE_NOT_PRESENT_OFFSET, 2346 }, - { 0x2120, G_UNICODE_NOT_PRESENT_OFFSET, 5321 }, - { 0x2121, G_UNICODE_NOT_PRESENT_OFFSET, 5324 }, - { 0x2122, G_UNICODE_NOT_PRESENT_OFFSET, 5328 }, - { 0x2124, G_UNICODE_NOT_PRESENT_OFFSET, 5331 }, - { 0x2126, 5333, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2128, G_UNICODE_NOT_PRESENT_OFFSET, 5331 }, - { 0x212a, 2331, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x212b, 69, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x212c, G_UNICODE_NOT_PRESENT_OFFSET, 2314 }, - { 0x212d, G_UNICODE_NOT_PRESENT_OFFSET, 5292 }, - { 0x212f, G_UNICODE_NOT_PRESENT_OFFSET, 2368 }, - { 0x2130, G_UNICODE_NOT_PRESENT_OFFSET, 2318 }, - { 0x2131, G_UNICODE_NOT_PRESENT_OFFSET, 5336 }, - { 0x2133, G_UNICODE_NOT_PRESENT_OFFSET, 2335 }, - { 0x2134, G_UNICODE_NOT_PRESENT_OFFSET, 29 }, - { 0x2135, G_UNICODE_NOT_PRESENT_OFFSET, 5338 }, - { 0x2136, G_UNICODE_NOT_PRESENT_OFFSET, 5341 }, - { 0x2137, G_UNICODE_NOT_PRESENT_OFFSET, 5344 }, - { 0x2138, G_UNICODE_NOT_PRESENT_OFFSET, 5347 }, - { 0x2139, G_UNICODE_NOT_PRESENT_OFFSET, 2427 }, - { 0x213b, G_UNICODE_NOT_PRESENT_OFFSET, 5350 }, - { 0x213c, G_UNICODE_NOT_PRESENT_OFFSET, 1390 }, - { 0x213d, G_UNICODE_NOT_PRESENT_OFFSET, 2418 }, - { 0x213e, G_UNICODE_NOT_PRESENT_OFFSET, 5354 }, - { 0x213f, G_UNICODE_NOT_PRESENT_OFFSET, 5357 }, - { 0x2140, G_UNICODE_NOT_PRESENT_OFFSET, 5360 }, - { 0x2145, G_UNICODE_NOT_PRESENT_OFFSET, 2316 }, - { 0x2146, G_UNICODE_NOT_PRESENT_OFFSET, 2366 }, - { 0x2147, G_UNICODE_NOT_PRESENT_OFFSET, 2368 }, - { 0x2148, G_UNICODE_NOT_PRESENT_OFFSET, 2427 }, - { 0x2149, G_UNICODE_NOT_PRESENT_OFFSET, 1176 }, - { 0x2153, G_UNICODE_NOT_PRESENT_OFFSET, 5364 }, - { 0x2154, G_UNICODE_NOT_PRESENT_OFFSET, 5370 }, - { 0x2155, G_UNICODE_NOT_PRESENT_OFFSET, 5376 }, - { 0x2156, G_UNICODE_NOT_PRESENT_OFFSET, 5382 }, - { 0x2157, G_UNICODE_NOT_PRESENT_OFFSET, 5388 }, - { 0x2158, G_UNICODE_NOT_PRESENT_OFFSET, 5394 }, - { 0x2159, G_UNICODE_NOT_PRESENT_OFFSET, 5400 }, - { 0x215a, G_UNICODE_NOT_PRESENT_OFFSET, 5406 }, - { 0x215b, G_UNICODE_NOT_PRESENT_OFFSET, 5412 }, - { 0x215c, G_UNICODE_NOT_PRESENT_OFFSET, 5418 }, - { 0x215d, G_UNICODE_NOT_PRESENT_OFFSET, 5424 }, - { 0x215e, G_UNICODE_NOT_PRESENT_OFFSET, 5430 }, - { 0x215f, G_UNICODE_NOT_PRESENT_OFFSET, 5436 }, - { 0x2160, G_UNICODE_NOT_PRESENT_OFFSET, 2327 }, - { 0x2161, G_UNICODE_NOT_PRESENT_OFFSET, 5441 }, - { 0x2162, G_UNICODE_NOT_PRESENT_OFFSET, 5444 }, - { 0x2163, G_UNICODE_NOT_PRESENT_OFFSET, 5448 }, - { 0x2164, G_UNICODE_NOT_PRESENT_OFFSET, 5451 }, - { 0x2165, G_UNICODE_NOT_PRESENT_OFFSET, 5453 }, - { 0x2166, G_UNICODE_NOT_PRESENT_OFFSET, 5456 }, - { 0x2167, G_UNICODE_NOT_PRESENT_OFFSET, 5460 }, - { 0x2168, G_UNICODE_NOT_PRESENT_OFFSET, 5465 }, - { 0x2169, G_UNICODE_NOT_PRESENT_OFFSET, 5468 }, - { 0x216a, G_UNICODE_NOT_PRESENT_OFFSET, 5470 }, - { 0x216b, G_UNICODE_NOT_PRESENT_OFFSET, 5473 }, - { 0x216c, G_UNICODE_NOT_PRESENT_OFFSET, 2333 }, - { 0x216d, G_UNICODE_NOT_PRESENT_OFFSET, 5292 }, - { 0x216e, G_UNICODE_NOT_PRESENT_OFFSET, 2316 }, - { 0x216f, G_UNICODE_NOT_PRESENT_OFFSET, 2335 }, - { 0x2170, G_UNICODE_NOT_PRESENT_OFFSET, 2427 }, - { 0x2171, G_UNICODE_NOT_PRESENT_OFFSET, 5477 }, - { 0x2172, G_UNICODE_NOT_PRESENT_OFFSET, 5480 }, - { 0x2173, G_UNICODE_NOT_PRESENT_OFFSET, 5484 }, - { 0x2174, G_UNICODE_NOT_PRESENT_OFFSET, 2412 }, - { 0x2175, G_UNICODE_NOT_PRESENT_OFFSET, 5487 }, - { 0x2176, G_UNICODE_NOT_PRESENT_OFFSET, 5490 }, - { 0x2177, G_UNICODE_NOT_PRESENT_OFFSET, 5494 }, - { 0x2178, G_UNICODE_NOT_PRESENT_OFFSET, 5499 }, - { 0x2179, G_UNICODE_NOT_PRESENT_OFFSET, 1222 }, - { 0x217a, G_UNICODE_NOT_PRESENT_OFFSET, 5502 }, - { 0x217b, G_UNICODE_NOT_PRESENT_OFFSET, 5505 }, - { 0x217c, G_UNICODE_NOT_PRESENT_OFFSET, 1220 }, - { 0x217d, G_UNICODE_NOT_PRESENT_OFFSET, 2435 }, - { 0x217e, G_UNICODE_NOT_PRESENT_OFFSET, 2366 }, - { 0x217f, G_UNICODE_NOT_PRESENT_OFFSET, 2383 }, - { 0x219a, 5509, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x219b, 5515, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x21ae, 5521, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x21cd, 5527, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x21ce, 5533, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x21cf, 5539, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2204, 5545, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2209, 5551, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x220c, 5557, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2224, 5563, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2226, 5569, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x222c, G_UNICODE_NOT_PRESENT_OFFSET, 5575 }, - { 0x222d, G_UNICODE_NOT_PRESENT_OFFSET, 5582 }, - { 0x222f, G_UNICODE_NOT_PRESENT_OFFSET, 5592 }, - { 0x2230, G_UNICODE_NOT_PRESENT_OFFSET, 5599 }, - { 0x2241, 5609, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2244, 5615, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2247, 5621, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2249, 5627, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2260, 5633, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2262, 5637, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x226d, 5643, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x226e, 5649, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x226f, 5653, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2270, 5657, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2271, 5663, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2274, 5669, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2275, 5675, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2278, 5681, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2279, 5687, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2280, 5693, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2281, 5699, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2284, 5705, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2285, 5711, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2288, 5717, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2289, 5723, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x22ac, 5729, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x22ad, 5735, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x22ae, 5741, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x22af, 5747, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x22e0, 5753, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x22e1, 5759, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x22e2, 5765, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x22e3, 5771, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x22ea, 5777, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x22eb, 5783, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x22ec, 5789, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x22ed, 5795, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2329, 5801, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x232a, 5805, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2460, G_UNICODE_NOT_PRESENT_OFFSET, 27 }, - { 0x2461, G_UNICODE_NOT_PRESENT_OFFSET, 12 }, - { 0x2462, G_UNICODE_NOT_PRESENT_OFFSET, 14 }, - { 0x2463, G_UNICODE_NOT_PRESENT_OFFSET, 5255 }, - { 0x2464, G_UNICODE_NOT_PRESENT_OFFSET, 5257 }, - { 0x2465, G_UNICODE_NOT_PRESENT_OFFSET, 5259 }, - { 0x2466, G_UNICODE_NOT_PRESENT_OFFSET, 5261 }, - { 0x2467, G_UNICODE_NOT_PRESENT_OFFSET, 5263 }, - { 0x2468, G_UNICODE_NOT_PRESENT_OFFSET, 5265 }, - { 0x2469, G_UNICODE_NOT_PRESENT_OFFSET, 5809 }, - { 0x246a, G_UNICODE_NOT_PRESENT_OFFSET, 5812 }, - { 0x246b, G_UNICODE_NOT_PRESENT_OFFSET, 5815 }, - { 0x246c, G_UNICODE_NOT_PRESENT_OFFSET, 5818 }, - { 0x246d, G_UNICODE_NOT_PRESENT_OFFSET, 5821 }, - { 0x246e, G_UNICODE_NOT_PRESENT_OFFSET, 5824 }, - { 0x246f, G_UNICODE_NOT_PRESENT_OFFSET, 5827 }, - { 0x2470, G_UNICODE_NOT_PRESENT_OFFSET, 5830 }, - { 0x2471, G_UNICODE_NOT_PRESENT_OFFSET, 5833 }, - { 0x2472, G_UNICODE_NOT_PRESENT_OFFSET, 5836 }, - { 0x2473, G_UNICODE_NOT_PRESENT_OFFSET, 5839 }, - { 0x2474, G_UNICODE_NOT_PRESENT_OFFSET, 5842 }, - { 0x2475, G_UNICODE_NOT_PRESENT_OFFSET, 5846 }, - { 0x2476, G_UNICODE_NOT_PRESENT_OFFSET, 5850 }, - { 0x2477, G_UNICODE_NOT_PRESENT_OFFSET, 5854 }, - { 0x2478, G_UNICODE_NOT_PRESENT_OFFSET, 5858 }, - { 0x2479, G_UNICODE_NOT_PRESENT_OFFSET, 5862 }, - { 0x247a, G_UNICODE_NOT_PRESENT_OFFSET, 5866 }, - { 0x247b, G_UNICODE_NOT_PRESENT_OFFSET, 5870 }, - { 0x247c, G_UNICODE_NOT_PRESENT_OFFSET, 5874 }, - { 0x247d, G_UNICODE_NOT_PRESENT_OFFSET, 5878 }, - { 0x247e, G_UNICODE_NOT_PRESENT_OFFSET, 5883 }, - { 0x247f, G_UNICODE_NOT_PRESENT_OFFSET, 5888 }, - { 0x2480, G_UNICODE_NOT_PRESENT_OFFSET, 5893 }, - { 0x2481, G_UNICODE_NOT_PRESENT_OFFSET, 5898 }, - { 0x2482, G_UNICODE_NOT_PRESENT_OFFSET, 5903 }, - { 0x2483, G_UNICODE_NOT_PRESENT_OFFSET, 5908 }, - { 0x2484, G_UNICODE_NOT_PRESENT_OFFSET, 5913 }, - { 0x2485, G_UNICODE_NOT_PRESENT_OFFSET, 5918 }, - { 0x2486, G_UNICODE_NOT_PRESENT_OFFSET, 5923 }, - { 0x2487, G_UNICODE_NOT_PRESENT_OFFSET, 5928 }, - { 0x2488, G_UNICODE_NOT_PRESENT_OFFSET, 5933 }, - { 0x2489, G_UNICODE_NOT_PRESENT_OFFSET, 5936 }, - { 0x248a, G_UNICODE_NOT_PRESENT_OFFSET, 5939 }, - { 0x248b, G_UNICODE_NOT_PRESENT_OFFSET, 5942 }, - { 0x248c, G_UNICODE_NOT_PRESENT_OFFSET, 5945 }, - { 0x248d, G_UNICODE_NOT_PRESENT_OFFSET, 5948 }, - { 0x248e, G_UNICODE_NOT_PRESENT_OFFSET, 5951 }, - { 0x248f, G_UNICODE_NOT_PRESENT_OFFSET, 5954 }, - { 0x2490, G_UNICODE_NOT_PRESENT_OFFSET, 5957 }, - { 0x2491, G_UNICODE_NOT_PRESENT_OFFSET, 5960 }, - { 0x2492, G_UNICODE_NOT_PRESENT_OFFSET, 5964 }, - { 0x2493, G_UNICODE_NOT_PRESENT_OFFSET, 5968 }, - { 0x2494, G_UNICODE_NOT_PRESENT_OFFSET, 5972 }, - { 0x2495, G_UNICODE_NOT_PRESENT_OFFSET, 5976 }, - { 0x2496, G_UNICODE_NOT_PRESENT_OFFSET, 5980 }, - { 0x2497, G_UNICODE_NOT_PRESENT_OFFSET, 5984 }, - { 0x2498, G_UNICODE_NOT_PRESENT_OFFSET, 5988 }, - { 0x2499, G_UNICODE_NOT_PRESENT_OFFSET, 5992 }, - { 0x249a, G_UNICODE_NOT_PRESENT_OFFSET, 5996 }, - { 0x249b, G_UNICODE_NOT_PRESENT_OFFSET, 6000 }, - { 0x249c, G_UNICODE_NOT_PRESENT_OFFSET, 6004 }, - { 0x249d, G_UNICODE_NOT_PRESENT_OFFSET, 6008 }, - { 0x249e, G_UNICODE_NOT_PRESENT_OFFSET, 6012 }, - { 0x249f, G_UNICODE_NOT_PRESENT_OFFSET, 6016 }, - { 0x24a0, G_UNICODE_NOT_PRESENT_OFFSET, 6020 }, - { 0x24a1, G_UNICODE_NOT_PRESENT_OFFSET, 6024 }, - { 0x24a2, G_UNICODE_NOT_PRESENT_OFFSET, 6028 }, - { 0x24a3, G_UNICODE_NOT_PRESENT_OFFSET, 6032 }, - { 0x24a4, G_UNICODE_NOT_PRESENT_OFFSET, 6036 }, - { 0x24a5, G_UNICODE_NOT_PRESENT_OFFSET, 6040 }, - { 0x24a6, G_UNICODE_NOT_PRESENT_OFFSET, 6044 }, - { 0x24a7, G_UNICODE_NOT_PRESENT_OFFSET, 6048 }, - { 0x24a8, G_UNICODE_NOT_PRESENT_OFFSET, 6052 }, - { 0x24a9, G_UNICODE_NOT_PRESENT_OFFSET, 6056 }, - { 0x24aa, G_UNICODE_NOT_PRESENT_OFFSET, 6060 }, - { 0x24ab, G_UNICODE_NOT_PRESENT_OFFSET, 6064 }, - { 0x24ac, G_UNICODE_NOT_PRESENT_OFFSET, 6068 }, - { 0x24ad, G_UNICODE_NOT_PRESENT_OFFSET, 6072 }, - { 0x24ae, G_UNICODE_NOT_PRESENT_OFFSET, 6076 }, - { 0x24af, G_UNICODE_NOT_PRESENT_OFFSET, 6080 }, - { 0x24b0, G_UNICODE_NOT_PRESENT_OFFSET, 6084 }, - { 0x24b1, G_UNICODE_NOT_PRESENT_OFFSET, 6088 }, - { 0x24b2, G_UNICODE_NOT_PRESENT_OFFSET, 6092 }, - { 0x24b3, G_UNICODE_NOT_PRESENT_OFFSET, 6096 }, - { 0x24b4, G_UNICODE_NOT_PRESENT_OFFSET, 6100 }, - { 0x24b5, G_UNICODE_NOT_PRESENT_OFFSET, 6104 }, - { 0x24b6, G_UNICODE_NOT_PRESENT_OFFSET, 2309 }, - { 0x24b7, G_UNICODE_NOT_PRESENT_OFFSET, 2314 }, - { 0x24b8, G_UNICODE_NOT_PRESENT_OFFSET, 5292 }, - { 0x24b9, G_UNICODE_NOT_PRESENT_OFFSET, 2316 }, - { 0x24ba, G_UNICODE_NOT_PRESENT_OFFSET, 2318 }, - { 0x24bb, G_UNICODE_NOT_PRESENT_OFFSET, 5336 }, - { 0x24bc, G_UNICODE_NOT_PRESENT_OFFSET, 2323 }, - { 0x24bd, G_UNICODE_NOT_PRESENT_OFFSET, 2325 }, - { 0x24be, G_UNICODE_NOT_PRESENT_OFFSET, 2327 }, - { 0x24bf, G_UNICODE_NOT_PRESENT_OFFSET, 2329 }, - { 0x24c0, G_UNICODE_NOT_PRESENT_OFFSET, 2331 }, - { 0x24c1, G_UNICODE_NOT_PRESENT_OFFSET, 2333 }, - { 0x24c2, G_UNICODE_NOT_PRESENT_OFFSET, 2335 }, - { 0x24c3, G_UNICODE_NOT_PRESENT_OFFSET, 2337 }, - { 0x24c4, G_UNICODE_NOT_PRESENT_OFFSET, 2339 }, - { 0x24c5, G_UNICODE_NOT_PRESENT_OFFSET, 2344 }, - { 0x24c6, G_UNICODE_NOT_PRESENT_OFFSET, 5319 }, - { 0x24c7, G_UNICODE_NOT_PRESENT_OFFSET, 2346 }, - { 0x24c8, G_UNICODE_NOT_PRESENT_OFFSET, 6108 }, - { 0x24c9, G_UNICODE_NOT_PRESENT_OFFSET, 2348 }, - { 0x24ca, G_UNICODE_NOT_PRESENT_OFFSET, 2350 }, - { 0x24cb, G_UNICODE_NOT_PRESENT_OFFSET, 5451 }, - { 0x24cc, G_UNICODE_NOT_PRESENT_OFFSET, 2352 }, - { 0x24cd, G_UNICODE_NOT_PRESENT_OFFSET, 5468 }, - { 0x24ce, G_UNICODE_NOT_PRESENT_OFFSET, 6110 }, - { 0x24cf, G_UNICODE_NOT_PRESENT_OFFSET, 5331 }, - { 0x24d0, G_UNICODE_NOT_PRESENT_OFFSET, 6 }, - { 0x24d1, G_UNICODE_NOT_PRESENT_OFFSET, 2364 }, - { 0x24d2, G_UNICODE_NOT_PRESENT_OFFSET, 2435 }, - { 0x24d3, G_UNICODE_NOT_PRESENT_OFFSET, 2366 }, - { 0x24d4, G_UNICODE_NOT_PRESENT_OFFSET, 2368 }, - { 0x24d5, G_UNICODE_NOT_PRESENT_OFFSET, 2443 }, - { 0x24d6, G_UNICODE_NOT_PRESENT_OFFSET, 2379 }, - { 0x24d7, G_UNICODE_NOT_PRESENT_OFFSET, 1171 }, - { 0x24d8, G_UNICODE_NOT_PRESENT_OFFSET, 2427 }, - { 0x24d9, G_UNICODE_NOT_PRESENT_OFFSET, 1176 }, - { 0x24da, G_UNICODE_NOT_PRESENT_OFFSET, 2381 }, - { 0x24db, G_UNICODE_NOT_PRESENT_OFFSET, 1220 }, - { 0x24dc, G_UNICODE_NOT_PRESENT_OFFSET, 2383 }, - { 0x24dd, G_UNICODE_NOT_PRESENT_OFFSET, 5279 }, - { 0x24de, G_UNICODE_NOT_PRESENT_OFFSET, 29 }, - { 0x24df, G_UNICODE_NOT_PRESENT_OFFSET, 2399 }, - { 0x24e0, G_UNICODE_NOT_PRESENT_OFFSET, 6112 }, - { 0x24e1, G_UNICODE_NOT_PRESENT_OFFSET, 1178 }, - { 0x24e2, G_UNICODE_NOT_PRESENT_OFFSET, 711 }, - { 0x24e3, G_UNICODE_NOT_PRESENT_OFFSET, 2401 }, - { 0x24e4, G_UNICODE_NOT_PRESENT_OFFSET, 2403 }, - { 0x24e5, G_UNICODE_NOT_PRESENT_OFFSET, 2412 }, - { 0x24e6, G_UNICODE_NOT_PRESENT_OFFSET, 1189 }, - { 0x24e7, G_UNICODE_NOT_PRESENT_OFFSET, 1222 }, - { 0x24e8, G_UNICODE_NOT_PRESENT_OFFSET, 1191 }, - { 0x24e9, G_UNICODE_NOT_PRESENT_OFFSET, 2526 }, - { 0x24ea, G_UNICODE_NOT_PRESENT_OFFSET, 5253 }, - { 0x2a0c, G_UNICODE_NOT_PRESENT_OFFSET, 6114 }, - { 0x2a74, G_UNICODE_NOT_PRESENT_OFFSET, 6127 }, - { 0x2a75, G_UNICODE_NOT_PRESENT_OFFSET, 6131 }, - { 0x2a76, G_UNICODE_NOT_PRESENT_OFFSET, 6134 }, - { 0x2adc, 6138, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2d6f, G_UNICODE_NOT_PRESENT_OFFSET, 6144 }, - { 0x2e9f, G_UNICODE_NOT_PRESENT_OFFSET, 6148 }, - { 0x2ef3, G_UNICODE_NOT_PRESENT_OFFSET, 6152 }, - { 0x2f00, G_UNICODE_NOT_PRESENT_OFFSET, 6156 }, - { 0x2f01, G_UNICODE_NOT_PRESENT_OFFSET, 6160 }, - { 0x2f02, G_UNICODE_NOT_PRESENT_OFFSET, 6164 }, - { 0x2f03, G_UNICODE_NOT_PRESENT_OFFSET, 6168 }, - { 0x2f04, G_UNICODE_NOT_PRESENT_OFFSET, 6172 }, - { 0x2f05, G_UNICODE_NOT_PRESENT_OFFSET, 6176 }, - { 0x2f06, G_UNICODE_NOT_PRESENT_OFFSET, 6180 }, - { 0x2f07, G_UNICODE_NOT_PRESENT_OFFSET, 6184 }, - { 0x2f08, G_UNICODE_NOT_PRESENT_OFFSET, 6188 }, - { 0x2f09, G_UNICODE_NOT_PRESENT_OFFSET, 6192 }, - { 0x2f0a, G_UNICODE_NOT_PRESENT_OFFSET, 6196 }, - { 0x2f0b, G_UNICODE_NOT_PRESENT_OFFSET, 6200 }, - { 0x2f0c, G_UNICODE_NOT_PRESENT_OFFSET, 6204 }, - { 0x2f0d, G_UNICODE_NOT_PRESENT_OFFSET, 6208 }, - { 0x2f0e, G_UNICODE_NOT_PRESENT_OFFSET, 6212 }, - { 0x2f0f, G_UNICODE_NOT_PRESENT_OFFSET, 6216 }, - { 0x2f10, G_UNICODE_NOT_PRESENT_OFFSET, 6220 }, - { 0x2f11, G_UNICODE_NOT_PRESENT_OFFSET, 6224 }, - { 0x2f12, G_UNICODE_NOT_PRESENT_OFFSET, 6228 }, - { 0x2f13, G_UNICODE_NOT_PRESENT_OFFSET, 6232 }, - { 0x2f14, G_UNICODE_NOT_PRESENT_OFFSET, 6236 }, - { 0x2f15, G_UNICODE_NOT_PRESENT_OFFSET, 6240 }, - { 0x2f16, G_UNICODE_NOT_PRESENT_OFFSET, 6244 }, - { 0x2f17, G_UNICODE_NOT_PRESENT_OFFSET, 6248 }, - { 0x2f18, G_UNICODE_NOT_PRESENT_OFFSET, 6252 }, - { 0x2f19, G_UNICODE_NOT_PRESENT_OFFSET, 6256 }, - { 0x2f1a, G_UNICODE_NOT_PRESENT_OFFSET, 6260 }, - { 0x2f1b, G_UNICODE_NOT_PRESENT_OFFSET, 6264 }, - { 0x2f1c, G_UNICODE_NOT_PRESENT_OFFSET, 6268 }, - { 0x2f1d, G_UNICODE_NOT_PRESENT_OFFSET, 6272 }, - { 0x2f1e, G_UNICODE_NOT_PRESENT_OFFSET, 6276 }, - { 0x2f1f, G_UNICODE_NOT_PRESENT_OFFSET, 6280 }, - { 0x2f20, G_UNICODE_NOT_PRESENT_OFFSET, 6284 }, - { 0x2f21, G_UNICODE_NOT_PRESENT_OFFSET, 6288 }, - { 0x2f22, G_UNICODE_NOT_PRESENT_OFFSET, 6292 }, - { 0x2f23, G_UNICODE_NOT_PRESENT_OFFSET, 6296 }, - { 0x2f24, G_UNICODE_NOT_PRESENT_OFFSET, 6300 }, - { 0x2f25, G_UNICODE_NOT_PRESENT_OFFSET, 6304 }, - { 0x2f26, G_UNICODE_NOT_PRESENT_OFFSET, 6308 }, - { 0x2f27, G_UNICODE_NOT_PRESENT_OFFSET, 6312 }, - { 0x2f28, G_UNICODE_NOT_PRESENT_OFFSET, 6316 }, - { 0x2f29, G_UNICODE_NOT_PRESENT_OFFSET, 6320 }, - { 0x2f2a, G_UNICODE_NOT_PRESENT_OFFSET, 6324 }, - { 0x2f2b, G_UNICODE_NOT_PRESENT_OFFSET, 6328 }, - { 0x2f2c, G_UNICODE_NOT_PRESENT_OFFSET, 6332 }, - { 0x2f2d, G_UNICODE_NOT_PRESENT_OFFSET, 6336 }, - { 0x2f2e, G_UNICODE_NOT_PRESENT_OFFSET, 6340 }, - { 0x2f2f, G_UNICODE_NOT_PRESENT_OFFSET, 6344 }, - { 0x2f30, G_UNICODE_NOT_PRESENT_OFFSET, 6348 }, - { 0x2f31, G_UNICODE_NOT_PRESENT_OFFSET, 6352 }, - { 0x2f32, G_UNICODE_NOT_PRESENT_OFFSET, 6356 }, - { 0x2f33, G_UNICODE_NOT_PRESENT_OFFSET, 6360 }, - { 0x2f34, G_UNICODE_NOT_PRESENT_OFFSET, 6364 }, - { 0x2f35, G_UNICODE_NOT_PRESENT_OFFSET, 6368 }, - { 0x2f36, G_UNICODE_NOT_PRESENT_OFFSET, 6372 }, - { 0x2f37, G_UNICODE_NOT_PRESENT_OFFSET, 6376 }, - { 0x2f38, G_UNICODE_NOT_PRESENT_OFFSET, 6380 }, - { 0x2f39, G_UNICODE_NOT_PRESENT_OFFSET, 6384 }, - { 0x2f3a, G_UNICODE_NOT_PRESENT_OFFSET, 6388 }, - { 0x2f3b, G_UNICODE_NOT_PRESENT_OFFSET, 6392 }, - { 0x2f3c, G_UNICODE_NOT_PRESENT_OFFSET, 6396 }, - { 0x2f3d, G_UNICODE_NOT_PRESENT_OFFSET, 6400 }, - { 0x2f3e, G_UNICODE_NOT_PRESENT_OFFSET, 6404 }, - { 0x2f3f, G_UNICODE_NOT_PRESENT_OFFSET, 6408 }, - { 0x2f40, G_UNICODE_NOT_PRESENT_OFFSET, 6412 }, - { 0x2f41, G_UNICODE_NOT_PRESENT_OFFSET, 6416 }, - { 0x2f42, G_UNICODE_NOT_PRESENT_OFFSET, 6420 }, - { 0x2f43, G_UNICODE_NOT_PRESENT_OFFSET, 6424 }, - { 0x2f44, G_UNICODE_NOT_PRESENT_OFFSET, 6428 }, - { 0x2f45, G_UNICODE_NOT_PRESENT_OFFSET, 6432 }, - { 0x2f46, G_UNICODE_NOT_PRESENT_OFFSET, 6436 }, - { 0x2f47, G_UNICODE_NOT_PRESENT_OFFSET, 6440 }, - { 0x2f48, G_UNICODE_NOT_PRESENT_OFFSET, 6444 }, - { 0x2f49, G_UNICODE_NOT_PRESENT_OFFSET, 6448 }, - { 0x2f4a, G_UNICODE_NOT_PRESENT_OFFSET, 6452 }, - { 0x2f4b, G_UNICODE_NOT_PRESENT_OFFSET, 6456 }, - { 0x2f4c, G_UNICODE_NOT_PRESENT_OFFSET, 6460 }, - { 0x2f4d, G_UNICODE_NOT_PRESENT_OFFSET, 6464 }, - { 0x2f4e, G_UNICODE_NOT_PRESENT_OFFSET, 6468 }, - { 0x2f4f, G_UNICODE_NOT_PRESENT_OFFSET, 6472 }, - { 0x2f50, G_UNICODE_NOT_PRESENT_OFFSET, 6476 }, - { 0x2f51, G_UNICODE_NOT_PRESENT_OFFSET, 6480 }, - { 0x2f52, G_UNICODE_NOT_PRESENT_OFFSET, 6484 }, - { 0x2f53, G_UNICODE_NOT_PRESENT_OFFSET, 6488 }, - { 0x2f54, G_UNICODE_NOT_PRESENT_OFFSET, 6492 }, - { 0x2f55, G_UNICODE_NOT_PRESENT_OFFSET, 6496 }, - { 0x2f56, G_UNICODE_NOT_PRESENT_OFFSET, 6500 }, - { 0x2f57, G_UNICODE_NOT_PRESENT_OFFSET, 6504 }, - { 0x2f58, G_UNICODE_NOT_PRESENT_OFFSET, 6508 }, - { 0x2f59, G_UNICODE_NOT_PRESENT_OFFSET, 6512 }, - { 0x2f5a, G_UNICODE_NOT_PRESENT_OFFSET, 6516 }, - { 0x2f5b, G_UNICODE_NOT_PRESENT_OFFSET, 6520 }, - { 0x2f5c, G_UNICODE_NOT_PRESENT_OFFSET, 6524 }, - { 0x2f5d, G_UNICODE_NOT_PRESENT_OFFSET, 6528 }, - { 0x2f5e, G_UNICODE_NOT_PRESENT_OFFSET, 6532 }, - { 0x2f5f, G_UNICODE_NOT_PRESENT_OFFSET, 6536 }, - { 0x2f60, G_UNICODE_NOT_PRESENT_OFFSET, 6540 }, - { 0x2f61, G_UNICODE_NOT_PRESENT_OFFSET, 6544 }, - { 0x2f62, G_UNICODE_NOT_PRESENT_OFFSET, 6548 }, - { 0x2f63, G_UNICODE_NOT_PRESENT_OFFSET, 6552 }, - { 0x2f64, G_UNICODE_NOT_PRESENT_OFFSET, 6556 }, - { 0x2f65, G_UNICODE_NOT_PRESENT_OFFSET, 6560 }, - { 0x2f66, G_UNICODE_NOT_PRESENT_OFFSET, 6564 }, - { 0x2f67, G_UNICODE_NOT_PRESENT_OFFSET, 6568 }, - { 0x2f68, G_UNICODE_NOT_PRESENT_OFFSET, 6572 }, - { 0x2f69, G_UNICODE_NOT_PRESENT_OFFSET, 6576 }, - { 0x2f6a, G_UNICODE_NOT_PRESENT_OFFSET, 6580 }, - { 0x2f6b, G_UNICODE_NOT_PRESENT_OFFSET, 6584 }, - { 0x2f6c, G_UNICODE_NOT_PRESENT_OFFSET, 6588 }, - { 0x2f6d, G_UNICODE_NOT_PRESENT_OFFSET, 6592 }, - { 0x2f6e, G_UNICODE_NOT_PRESENT_OFFSET, 6596 }, - { 0x2f6f, G_UNICODE_NOT_PRESENT_OFFSET, 6600 }, - { 0x2f70, G_UNICODE_NOT_PRESENT_OFFSET, 6604 }, - { 0x2f71, G_UNICODE_NOT_PRESENT_OFFSET, 6608 }, - { 0x2f72, G_UNICODE_NOT_PRESENT_OFFSET, 6612 }, - { 0x2f73, G_UNICODE_NOT_PRESENT_OFFSET, 6616 }, - { 0x2f74, G_UNICODE_NOT_PRESENT_OFFSET, 6620 }, - { 0x2f75, G_UNICODE_NOT_PRESENT_OFFSET, 6624 }, - { 0x2f76, G_UNICODE_NOT_PRESENT_OFFSET, 6628 }, - { 0x2f77, G_UNICODE_NOT_PRESENT_OFFSET, 6632 }, - { 0x2f78, G_UNICODE_NOT_PRESENT_OFFSET, 6636 }, - { 0x2f79, G_UNICODE_NOT_PRESENT_OFFSET, 6640 }, - { 0x2f7a, G_UNICODE_NOT_PRESENT_OFFSET, 6644 }, - { 0x2f7b, G_UNICODE_NOT_PRESENT_OFFSET, 6648 }, - { 0x2f7c, G_UNICODE_NOT_PRESENT_OFFSET, 6652 }, - { 0x2f7d, G_UNICODE_NOT_PRESENT_OFFSET, 6656 }, - { 0x2f7e, G_UNICODE_NOT_PRESENT_OFFSET, 6660 }, - { 0x2f7f, G_UNICODE_NOT_PRESENT_OFFSET, 6664 }, - { 0x2f80, G_UNICODE_NOT_PRESENT_OFFSET, 6668 }, - { 0x2f81, G_UNICODE_NOT_PRESENT_OFFSET, 6672 }, - { 0x2f82, G_UNICODE_NOT_PRESENT_OFFSET, 6676 }, - { 0x2f83, G_UNICODE_NOT_PRESENT_OFFSET, 6680 }, - { 0x2f84, G_UNICODE_NOT_PRESENT_OFFSET, 6684 }, - { 0x2f85, G_UNICODE_NOT_PRESENT_OFFSET, 6688 }, - { 0x2f86, G_UNICODE_NOT_PRESENT_OFFSET, 6692 }, - { 0x2f87, G_UNICODE_NOT_PRESENT_OFFSET, 6696 }, - { 0x2f88, G_UNICODE_NOT_PRESENT_OFFSET, 6700 }, - { 0x2f89, G_UNICODE_NOT_PRESENT_OFFSET, 6704 }, - { 0x2f8a, G_UNICODE_NOT_PRESENT_OFFSET, 6708 }, - { 0x2f8b, G_UNICODE_NOT_PRESENT_OFFSET, 6712 }, - { 0x2f8c, G_UNICODE_NOT_PRESENT_OFFSET, 6716 }, - { 0x2f8d, G_UNICODE_NOT_PRESENT_OFFSET, 6720 }, - { 0x2f8e, G_UNICODE_NOT_PRESENT_OFFSET, 6724 }, - { 0x2f8f, G_UNICODE_NOT_PRESENT_OFFSET, 6728 }, - { 0x2f90, G_UNICODE_NOT_PRESENT_OFFSET, 6732 }, - { 0x2f91, G_UNICODE_NOT_PRESENT_OFFSET, 6736 }, - { 0x2f92, G_UNICODE_NOT_PRESENT_OFFSET, 6740 }, - { 0x2f93, G_UNICODE_NOT_PRESENT_OFFSET, 6744 }, - { 0x2f94, G_UNICODE_NOT_PRESENT_OFFSET, 6748 }, - { 0x2f95, G_UNICODE_NOT_PRESENT_OFFSET, 6752 }, - { 0x2f96, G_UNICODE_NOT_PRESENT_OFFSET, 6756 }, - { 0x2f97, G_UNICODE_NOT_PRESENT_OFFSET, 6760 }, - { 0x2f98, G_UNICODE_NOT_PRESENT_OFFSET, 6764 }, - { 0x2f99, G_UNICODE_NOT_PRESENT_OFFSET, 6768 }, - { 0x2f9a, G_UNICODE_NOT_PRESENT_OFFSET, 6772 }, - { 0x2f9b, G_UNICODE_NOT_PRESENT_OFFSET, 6776 }, - { 0x2f9c, G_UNICODE_NOT_PRESENT_OFFSET, 6780 }, - { 0x2f9d, G_UNICODE_NOT_PRESENT_OFFSET, 6784 }, - { 0x2f9e, G_UNICODE_NOT_PRESENT_OFFSET, 6788 }, - { 0x2f9f, G_UNICODE_NOT_PRESENT_OFFSET, 6792 }, - { 0x2fa0, G_UNICODE_NOT_PRESENT_OFFSET, 6796 }, - { 0x2fa1, G_UNICODE_NOT_PRESENT_OFFSET, 6800 }, - { 0x2fa2, G_UNICODE_NOT_PRESENT_OFFSET, 6804 }, - { 0x2fa3, G_UNICODE_NOT_PRESENT_OFFSET, 6808 }, - { 0x2fa4, G_UNICODE_NOT_PRESENT_OFFSET, 6812 }, - { 0x2fa5, G_UNICODE_NOT_PRESENT_OFFSET, 6816 }, - { 0x2fa6, G_UNICODE_NOT_PRESENT_OFFSET, 6820 }, - { 0x2fa7, G_UNICODE_NOT_PRESENT_OFFSET, 6824 }, - { 0x2fa8, G_UNICODE_NOT_PRESENT_OFFSET, 6828 }, - { 0x2fa9, G_UNICODE_NOT_PRESENT_OFFSET, 6832 }, - { 0x2faa, G_UNICODE_NOT_PRESENT_OFFSET, 6836 }, - { 0x2fab, G_UNICODE_NOT_PRESENT_OFFSET, 6840 }, - { 0x2fac, G_UNICODE_NOT_PRESENT_OFFSET, 6844 }, - { 0x2fad, G_UNICODE_NOT_PRESENT_OFFSET, 6848 }, - { 0x2fae, G_UNICODE_NOT_PRESENT_OFFSET, 6852 }, - { 0x2faf, G_UNICODE_NOT_PRESENT_OFFSET, 6856 }, - { 0x2fb0, G_UNICODE_NOT_PRESENT_OFFSET, 6860 }, - { 0x2fb1, G_UNICODE_NOT_PRESENT_OFFSET, 6864 }, - { 0x2fb2, G_UNICODE_NOT_PRESENT_OFFSET, 6868 }, - { 0x2fb3, G_UNICODE_NOT_PRESENT_OFFSET, 6872 }, - { 0x2fb4, G_UNICODE_NOT_PRESENT_OFFSET, 6876 }, - { 0x2fb5, G_UNICODE_NOT_PRESENT_OFFSET, 6880 }, - { 0x2fb6, G_UNICODE_NOT_PRESENT_OFFSET, 6884 }, - { 0x2fb7, G_UNICODE_NOT_PRESENT_OFFSET, 6888 }, - { 0x2fb8, G_UNICODE_NOT_PRESENT_OFFSET, 6892 }, - { 0x2fb9, G_UNICODE_NOT_PRESENT_OFFSET, 6896 }, - { 0x2fba, G_UNICODE_NOT_PRESENT_OFFSET, 6900 }, - { 0x2fbb, G_UNICODE_NOT_PRESENT_OFFSET, 6904 }, - { 0x2fbc, G_UNICODE_NOT_PRESENT_OFFSET, 6908 }, - { 0x2fbd, G_UNICODE_NOT_PRESENT_OFFSET, 6912 }, - { 0x2fbe, G_UNICODE_NOT_PRESENT_OFFSET, 6916 }, - { 0x2fbf, G_UNICODE_NOT_PRESENT_OFFSET, 6920 }, - { 0x2fc0, G_UNICODE_NOT_PRESENT_OFFSET, 6924 }, - { 0x2fc1, G_UNICODE_NOT_PRESENT_OFFSET, 6928 }, - { 0x2fc2, G_UNICODE_NOT_PRESENT_OFFSET, 6932 }, - { 0x2fc3, G_UNICODE_NOT_PRESENT_OFFSET, 6936 }, - { 0x2fc4, G_UNICODE_NOT_PRESENT_OFFSET, 6940 }, - { 0x2fc5, G_UNICODE_NOT_PRESENT_OFFSET, 6944 }, - { 0x2fc6, G_UNICODE_NOT_PRESENT_OFFSET, 6948 }, - { 0x2fc7, G_UNICODE_NOT_PRESENT_OFFSET, 6952 }, - { 0x2fc8, G_UNICODE_NOT_PRESENT_OFFSET, 6956 }, - { 0x2fc9, G_UNICODE_NOT_PRESENT_OFFSET, 6960 }, - { 0x2fca, G_UNICODE_NOT_PRESENT_OFFSET, 6964 }, - { 0x2fcb, G_UNICODE_NOT_PRESENT_OFFSET, 6968 }, - { 0x2fcc, G_UNICODE_NOT_PRESENT_OFFSET, 6972 }, - { 0x2fcd, G_UNICODE_NOT_PRESENT_OFFSET, 6976 }, - { 0x2fce, G_UNICODE_NOT_PRESENT_OFFSET, 6980 }, - { 0x2fcf, G_UNICODE_NOT_PRESENT_OFFSET, 6984 }, - { 0x2fd0, G_UNICODE_NOT_PRESENT_OFFSET, 6988 }, - { 0x2fd1, G_UNICODE_NOT_PRESENT_OFFSET, 6992 }, - { 0x2fd2, G_UNICODE_NOT_PRESENT_OFFSET, 6996 }, - { 0x2fd3, G_UNICODE_NOT_PRESENT_OFFSET, 7000 }, - { 0x2fd4, G_UNICODE_NOT_PRESENT_OFFSET, 7004 }, - { 0x2fd5, G_UNICODE_NOT_PRESENT_OFFSET, 7008 }, - { 0x3000, G_UNICODE_NOT_PRESENT_OFFSET, 0 }, - { 0x3036, G_UNICODE_NOT_PRESENT_OFFSET, 7012 }, - { 0x3038, G_UNICODE_NOT_PRESENT_OFFSET, 6248 }, - { 0x3039, G_UNICODE_NOT_PRESENT_OFFSET, 7016 }, - { 0x303a, G_UNICODE_NOT_PRESENT_OFFSET, 7020 }, - { 0x304c, 7024, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x304e, 7031, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x3050, 7038, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x3052, 7045, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x3054, 7052, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x3056, 7059, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x3058, 7066, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x305a, 7073, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x305c, 7080, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x305e, 7087, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x3060, 7094, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x3062, 7101, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x3065, 7108, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x3067, 7115, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x3069, 7122, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x3070, 7129, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x3071, 7136, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x3073, 7143, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x3074, 7150, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x3076, 7157, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x3077, 7164, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x3079, 7171, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x307a, 7178, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x307c, 7185, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x307d, 7192, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x3094, 7199, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x309b, G_UNICODE_NOT_PRESENT_OFFSET, 7206 }, - { 0x309c, G_UNICODE_NOT_PRESENT_OFFSET, 7211 }, - { 0x309e, 7216, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x309f, G_UNICODE_NOT_PRESENT_OFFSET, 7223 }, - { 0x30ac, 7230, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x30ae, 7237, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x30b0, 7244, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x30b2, 7251, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x30b4, 7258, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x30b6, 7265, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x30b8, 7272, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x30ba, 7279, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x30bc, 7286, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x30be, 7293, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x30c0, 7300, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x30c2, 7307, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x30c5, 7314, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x30c7, 7321, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x30c9, 7328, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x30d0, 7335, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x30d1, 7342, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x30d3, 7349, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x30d4, 7356, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x30d6, 7363, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x30d7, 7370, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x30d9, 7377, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x30da, 7384, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x30dc, 7391, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x30dd, 7398, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x30f4, 7405, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x30f7, 7412, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x30f8, 7419, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x30f9, 7426, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x30fa, 7433, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x30fe, 7440, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x30ff, G_UNICODE_NOT_PRESENT_OFFSET, 7447 }, - { 0x3131, G_UNICODE_NOT_PRESENT_OFFSET, 7454 }, - { 0x3132, G_UNICODE_NOT_PRESENT_OFFSET, 7458 }, - { 0x3133, G_UNICODE_NOT_PRESENT_OFFSET, 7462 }, - { 0x3134, G_UNICODE_NOT_PRESENT_OFFSET, 7466 }, - { 0x3135, G_UNICODE_NOT_PRESENT_OFFSET, 7470 }, - { 0x3136, G_UNICODE_NOT_PRESENT_OFFSET, 7474 }, - { 0x3137, G_UNICODE_NOT_PRESENT_OFFSET, 7478 }, - { 0x3138, G_UNICODE_NOT_PRESENT_OFFSET, 7482 }, - { 0x3139, G_UNICODE_NOT_PRESENT_OFFSET, 7486 }, - { 0x313a, G_UNICODE_NOT_PRESENT_OFFSET, 7490 }, - { 0x313b, G_UNICODE_NOT_PRESENT_OFFSET, 7494 }, - { 0x313c, G_UNICODE_NOT_PRESENT_OFFSET, 7498 }, - { 0x313d, G_UNICODE_NOT_PRESENT_OFFSET, 7502 }, - { 0x313e, G_UNICODE_NOT_PRESENT_OFFSET, 7506 }, - { 0x313f, G_UNICODE_NOT_PRESENT_OFFSET, 7510 }, - { 0x3140, G_UNICODE_NOT_PRESENT_OFFSET, 7514 }, - { 0x3141, G_UNICODE_NOT_PRESENT_OFFSET, 7518 }, - { 0x3142, G_UNICODE_NOT_PRESENT_OFFSET, 7522 }, - { 0x3143, G_UNICODE_NOT_PRESENT_OFFSET, 7526 }, - { 0x3144, G_UNICODE_NOT_PRESENT_OFFSET, 7530 }, - { 0x3145, G_UNICODE_NOT_PRESENT_OFFSET, 7534 }, - { 0x3146, G_UNICODE_NOT_PRESENT_OFFSET, 7538 }, - { 0x3147, G_UNICODE_NOT_PRESENT_OFFSET, 7542 }, - { 0x3148, G_UNICODE_NOT_PRESENT_OFFSET, 7546 }, - { 0x3149, G_UNICODE_NOT_PRESENT_OFFSET, 7550 }, - { 0x314a, G_UNICODE_NOT_PRESENT_OFFSET, 7554 }, - { 0x314b, G_UNICODE_NOT_PRESENT_OFFSET, 7558 }, - { 0x314c, G_UNICODE_NOT_PRESENT_OFFSET, 7562 }, - { 0x314d, G_UNICODE_NOT_PRESENT_OFFSET, 7566 }, - { 0x314e, G_UNICODE_NOT_PRESENT_OFFSET, 7570 }, - { 0x314f, G_UNICODE_NOT_PRESENT_OFFSET, 7574 }, - { 0x3150, G_UNICODE_NOT_PRESENT_OFFSET, 7578 }, - { 0x3151, G_UNICODE_NOT_PRESENT_OFFSET, 7582 }, - { 0x3152, G_UNICODE_NOT_PRESENT_OFFSET, 7586 }, - { 0x3153, G_UNICODE_NOT_PRESENT_OFFSET, 7590 }, - { 0x3154, G_UNICODE_NOT_PRESENT_OFFSET, 7594 }, - { 0x3155, G_UNICODE_NOT_PRESENT_OFFSET, 7598 }, - { 0x3156, G_UNICODE_NOT_PRESENT_OFFSET, 7602 }, - { 0x3157, G_UNICODE_NOT_PRESENT_OFFSET, 7606 }, - { 0x3158, G_UNICODE_NOT_PRESENT_OFFSET, 7610 }, - { 0x3159, G_UNICODE_NOT_PRESENT_OFFSET, 7614 }, - { 0x315a, G_UNICODE_NOT_PRESENT_OFFSET, 7618 }, - { 0x315b, G_UNICODE_NOT_PRESENT_OFFSET, 7622 }, - { 0x315c, G_UNICODE_NOT_PRESENT_OFFSET, 7626 }, - { 0x315d, G_UNICODE_NOT_PRESENT_OFFSET, 7630 }, - { 0x315e, G_UNICODE_NOT_PRESENT_OFFSET, 7634 }, - { 0x315f, G_UNICODE_NOT_PRESENT_OFFSET, 7638 }, - { 0x3160, G_UNICODE_NOT_PRESENT_OFFSET, 7642 }, - { 0x3161, G_UNICODE_NOT_PRESENT_OFFSET, 7646 }, - { 0x3162, G_UNICODE_NOT_PRESENT_OFFSET, 7650 }, - { 0x3163, G_UNICODE_NOT_PRESENT_OFFSET, 7654 }, - { 0x3164, G_UNICODE_NOT_PRESENT_OFFSET, 7658 }, - { 0x3165, G_UNICODE_NOT_PRESENT_OFFSET, 7662 }, - { 0x3166, G_UNICODE_NOT_PRESENT_OFFSET, 7666 }, - { 0x3167, G_UNICODE_NOT_PRESENT_OFFSET, 7670 }, - { 0x3168, G_UNICODE_NOT_PRESENT_OFFSET, 7674 }, - { 0x3169, G_UNICODE_NOT_PRESENT_OFFSET, 7678 }, - { 0x316a, G_UNICODE_NOT_PRESENT_OFFSET, 7682 }, - { 0x316b, G_UNICODE_NOT_PRESENT_OFFSET, 7686 }, - { 0x316c, G_UNICODE_NOT_PRESENT_OFFSET, 7690 }, - { 0x316d, G_UNICODE_NOT_PRESENT_OFFSET, 7694 }, - { 0x316e, G_UNICODE_NOT_PRESENT_OFFSET, 7698 }, - { 0x316f, G_UNICODE_NOT_PRESENT_OFFSET, 7702 }, - { 0x3170, G_UNICODE_NOT_PRESENT_OFFSET, 7706 }, - { 0x3171, G_UNICODE_NOT_PRESENT_OFFSET, 7710 }, - { 0x3172, G_UNICODE_NOT_PRESENT_OFFSET, 7714 }, - { 0x3173, G_UNICODE_NOT_PRESENT_OFFSET, 7718 }, - { 0x3174, G_UNICODE_NOT_PRESENT_OFFSET, 7722 }, - { 0x3175, G_UNICODE_NOT_PRESENT_OFFSET, 7726 }, - { 0x3176, G_UNICODE_NOT_PRESENT_OFFSET, 7730 }, - { 0x3177, G_UNICODE_NOT_PRESENT_OFFSET, 7734 }, - { 0x3178, G_UNICODE_NOT_PRESENT_OFFSET, 7738 }, - { 0x3179, G_UNICODE_NOT_PRESENT_OFFSET, 7742 }, - { 0x317a, G_UNICODE_NOT_PRESENT_OFFSET, 7746 }, - { 0x317b, G_UNICODE_NOT_PRESENT_OFFSET, 7750 }, - { 0x317c, G_UNICODE_NOT_PRESENT_OFFSET, 7754 }, - { 0x317d, G_UNICODE_NOT_PRESENT_OFFSET, 7758 }, - { 0x317e, G_UNICODE_NOT_PRESENT_OFFSET, 7762 }, - { 0x317f, G_UNICODE_NOT_PRESENT_OFFSET, 7766 }, - { 0x3180, G_UNICODE_NOT_PRESENT_OFFSET, 7770 }, - { 0x3181, G_UNICODE_NOT_PRESENT_OFFSET, 7774 }, - { 0x3182, G_UNICODE_NOT_PRESENT_OFFSET, 7778 }, - { 0x3183, G_UNICODE_NOT_PRESENT_OFFSET, 7782 }, - { 0x3184, G_UNICODE_NOT_PRESENT_OFFSET, 7786 }, - { 0x3185, G_UNICODE_NOT_PRESENT_OFFSET, 7790 }, - { 0x3186, G_UNICODE_NOT_PRESENT_OFFSET, 7794 }, - { 0x3187, G_UNICODE_NOT_PRESENT_OFFSET, 7798 }, - { 0x3188, G_UNICODE_NOT_PRESENT_OFFSET, 7802 }, - { 0x3189, G_UNICODE_NOT_PRESENT_OFFSET, 7806 }, - { 0x318a, G_UNICODE_NOT_PRESENT_OFFSET, 7810 }, - { 0x318b, G_UNICODE_NOT_PRESENT_OFFSET, 7814 }, - { 0x318c, G_UNICODE_NOT_PRESENT_OFFSET, 7818 }, - { 0x318d, G_UNICODE_NOT_PRESENT_OFFSET, 7822 }, - { 0x318e, G_UNICODE_NOT_PRESENT_OFFSET, 7826 }, - { 0x3192, G_UNICODE_NOT_PRESENT_OFFSET, 6156 }, - { 0x3193, G_UNICODE_NOT_PRESENT_OFFSET, 6180 }, - { 0x3194, G_UNICODE_NOT_PRESENT_OFFSET, 7830 }, - { 0x3195, G_UNICODE_NOT_PRESENT_OFFSET, 7834 }, - { 0x3196, G_UNICODE_NOT_PRESENT_OFFSET, 7838 }, - { 0x3197, G_UNICODE_NOT_PRESENT_OFFSET, 7842 }, - { 0x3198, G_UNICODE_NOT_PRESENT_OFFSET, 7846 }, - { 0x3199, G_UNICODE_NOT_PRESENT_OFFSET, 7850 }, - { 0x319a, G_UNICODE_NOT_PRESENT_OFFSET, 6172 }, - { 0x319b, G_UNICODE_NOT_PRESENT_OFFSET, 7854 }, - { 0x319c, G_UNICODE_NOT_PRESENT_OFFSET, 7858 }, - { 0x319d, G_UNICODE_NOT_PRESENT_OFFSET, 7862 }, - { 0x319e, G_UNICODE_NOT_PRESENT_OFFSET, 7866 }, - { 0x319f, G_UNICODE_NOT_PRESENT_OFFSET, 6188 }, - { 0x3200, G_UNICODE_NOT_PRESENT_OFFSET, 7870 }, - { 0x3201, G_UNICODE_NOT_PRESENT_OFFSET, 7876 }, - { 0x3202, G_UNICODE_NOT_PRESENT_OFFSET, 7882 }, - { 0x3203, G_UNICODE_NOT_PRESENT_OFFSET, 7888 }, - { 0x3204, G_UNICODE_NOT_PRESENT_OFFSET, 7894 }, - { 0x3205, G_UNICODE_NOT_PRESENT_OFFSET, 7900 }, - { 0x3206, G_UNICODE_NOT_PRESENT_OFFSET, 7906 }, - { 0x3207, G_UNICODE_NOT_PRESENT_OFFSET, 7912 }, - { 0x3208, G_UNICODE_NOT_PRESENT_OFFSET, 7918 }, - { 0x3209, G_UNICODE_NOT_PRESENT_OFFSET, 7924 }, - { 0x320a, G_UNICODE_NOT_PRESENT_OFFSET, 7930 }, - { 0x320b, G_UNICODE_NOT_PRESENT_OFFSET, 7936 }, - { 0x320c, G_UNICODE_NOT_PRESENT_OFFSET, 7942 }, - { 0x320d, G_UNICODE_NOT_PRESENT_OFFSET, 7948 }, - { 0x320e, G_UNICODE_NOT_PRESENT_OFFSET, 7954 }, - { 0x320f, G_UNICODE_NOT_PRESENT_OFFSET, 7963 }, - { 0x3210, G_UNICODE_NOT_PRESENT_OFFSET, 7972 }, - { 0x3211, G_UNICODE_NOT_PRESENT_OFFSET, 7981 }, - { 0x3212, G_UNICODE_NOT_PRESENT_OFFSET, 7990 }, - { 0x3213, G_UNICODE_NOT_PRESENT_OFFSET, 7999 }, - { 0x3214, G_UNICODE_NOT_PRESENT_OFFSET, 8008 }, - { 0x3215, G_UNICODE_NOT_PRESENT_OFFSET, 8017 }, - { 0x3216, G_UNICODE_NOT_PRESENT_OFFSET, 8026 }, - { 0x3217, G_UNICODE_NOT_PRESENT_OFFSET, 8035 }, - { 0x3218, G_UNICODE_NOT_PRESENT_OFFSET, 8044 }, - { 0x3219, G_UNICODE_NOT_PRESENT_OFFSET, 8053 }, - { 0x321a, G_UNICODE_NOT_PRESENT_OFFSET, 8062 }, - { 0x321b, G_UNICODE_NOT_PRESENT_OFFSET, 8071 }, - { 0x321c, G_UNICODE_NOT_PRESENT_OFFSET, 8080 }, - { 0x321d, G_UNICODE_NOT_PRESENT_OFFSET, 8089 }, - { 0x321e, G_UNICODE_NOT_PRESENT_OFFSET, 8107 }, - { 0x3220, G_UNICODE_NOT_PRESENT_OFFSET, 8122 }, - { 0x3221, G_UNICODE_NOT_PRESENT_OFFSET, 8128 }, - { 0x3222, G_UNICODE_NOT_PRESENT_OFFSET, 8134 }, - { 0x3223, G_UNICODE_NOT_PRESENT_OFFSET, 8140 }, - { 0x3224, G_UNICODE_NOT_PRESENT_OFFSET, 8146 }, - { 0x3225, G_UNICODE_NOT_PRESENT_OFFSET, 8152 }, - { 0x3226, G_UNICODE_NOT_PRESENT_OFFSET, 8158 }, - { 0x3227, G_UNICODE_NOT_PRESENT_OFFSET, 8164 }, - { 0x3228, G_UNICODE_NOT_PRESENT_OFFSET, 8170 }, - { 0x3229, G_UNICODE_NOT_PRESENT_OFFSET, 8176 }, - { 0x322a, G_UNICODE_NOT_PRESENT_OFFSET, 8182 }, - { 0x322b, G_UNICODE_NOT_PRESENT_OFFSET, 8188 }, - { 0x322c, G_UNICODE_NOT_PRESENT_OFFSET, 8194 }, - { 0x322d, G_UNICODE_NOT_PRESENT_OFFSET, 8200 }, - { 0x322e, G_UNICODE_NOT_PRESENT_OFFSET, 8206 }, - { 0x322f, G_UNICODE_NOT_PRESENT_OFFSET, 8212 }, - { 0x3230, G_UNICODE_NOT_PRESENT_OFFSET, 8218 }, - { 0x3231, G_UNICODE_NOT_PRESENT_OFFSET, 8224 }, - { 0x3232, G_UNICODE_NOT_PRESENT_OFFSET, 8230 }, - { 0x3233, G_UNICODE_NOT_PRESENT_OFFSET, 8236 }, - { 0x3234, G_UNICODE_NOT_PRESENT_OFFSET, 8242 }, - { 0x3235, G_UNICODE_NOT_PRESENT_OFFSET, 8248 }, - { 0x3236, G_UNICODE_NOT_PRESENT_OFFSET, 8254 }, - { 0x3237, G_UNICODE_NOT_PRESENT_OFFSET, 8260 }, - { 0x3238, G_UNICODE_NOT_PRESENT_OFFSET, 8266 }, - { 0x3239, G_UNICODE_NOT_PRESENT_OFFSET, 8272 }, - { 0x323a, G_UNICODE_NOT_PRESENT_OFFSET, 8278 }, - { 0x323b, G_UNICODE_NOT_PRESENT_OFFSET, 8284 }, - { 0x323c, G_UNICODE_NOT_PRESENT_OFFSET, 8290 }, - { 0x323d, G_UNICODE_NOT_PRESENT_OFFSET, 8296 }, - { 0x323e, G_UNICODE_NOT_PRESENT_OFFSET, 8302 }, - { 0x323f, G_UNICODE_NOT_PRESENT_OFFSET, 8308 }, - { 0x3240, G_UNICODE_NOT_PRESENT_OFFSET, 8314 }, - { 0x3241, G_UNICODE_NOT_PRESENT_OFFSET, 8320 }, - { 0x3242, G_UNICODE_NOT_PRESENT_OFFSET, 8326 }, - { 0x3243, G_UNICODE_NOT_PRESENT_OFFSET, 8332 }, - { 0x3250, G_UNICODE_NOT_PRESENT_OFFSET, 8338 }, - { 0x3251, G_UNICODE_NOT_PRESENT_OFFSET, 8342 }, - { 0x3252, G_UNICODE_NOT_PRESENT_OFFSET, 8345 }, - { 0x3253, G_UNICODE_NOT_PRESENT_OFFSET, 8348 }, - { 0x3254, G_UNICODE_NOT_PRESENT_OFFSET, 8351 }, - { 0x3255, G_UNICODE_NOT_PRESENT_OFFSET, 8354 }, - { 0x3256, G_UNICODE_NOT_PRESENT_OFFSET, 8357 }, - { 0x3257, G_UNICODE_NOT_PRESENT_OFFSET, 8360 }, - { 0x3258, G_UNICODE_NOT_PRESENT_OFFSET, 8363 }, - { 0x3259, G_UNICODE_NOT_PRESENT_OFFSET, 8366 }, - { 0x325a, G_UNICODE_NOT_PRESENT_OFFSET, 8369 }, - { 0x325b, G_UNICODE_NOT_PRESENT_OFFSET, 8372 }, - { 0x325c, G_UNICODE_NOT_PRESENT_OFFSET, 8375 }, - { 0x325d, G_UNICODE_NOT_PRESENT_OFFSET, 8378 }, - { 0x325e, G_UNICODE_NOT_PRESENT_OFFSET, 8381 }, - { 0x325f, G_UNICODE_NOT_PRESENT_OFFSET, 8384 }, - { 0x3260, G_UNICODE_NOT_PRESENT_OFFSET, 7454 }, - { 0x3261, G_UNICODE_NOT_PRESENT_OFFSET, 7466 }, - { 0x3262, G_UNICODE_NOT_PRESENT_OFFSET, 7478 }, - { 0x3263, G_UNICODE_NOT_PRESENT_OFFSET, 7486 }, - { 0x3264, G_UNICODE_NOT_PRESENT_OFFSET, 7518 }, - { 0x3265, G_UNICODE_NOT_PRESENT_OFFSET, 7522 }, - { 0x3266, G_UNICODE_NOT_PRESENT_OFFSET, 7534 }, - { 0x3267, G_UNICODE_NOT_PRESENT_OFFSET, 7542 }, - { 0x3268, G_UNICODE_NOT_PRESENT_OFFSET, 7546 }, - { 0x3269, G_UNICODE_NOT_PRESENT_OFFSET, 7554 }, - { 0x326a, G_UNICODE_NOT_PRESENT_OFFSET, 7558 }, - { 0x326b, G_UNICODE_NOT_PRESENT_OFFSET, 7562 }, - { 0x326c, G_UNICODE_NOT_PRESENT_OFFSET, 7566 }, - { 0x326d, G_UNICODE_NOT_PRESENT_OFFSET, 7570 }, - { 0x326e, G_UNICODE_NOT_PRESENT_OFFSET, 8387 }, - { 0x326f, G_UNICODE_NOT_PRESENT_OFFSET, 8394 }, - { 0x3270, G_UNICODE_NOT_PRESENT_OFFSET, 8401 }, - { 0x3271, G_UNICODE_NOT_PRESENT_OFFSET, 8408 }, - { 0x3272, G_UNICODE_NOT_PRESENT_OFFSET, 8415 }, - { 0x3273, G_UNICODE_NOT_PRESENT_OFFSET, 8422 }, - { 0x3274, G_UNICODE_NOT_PRESENT_OFFSET, 8429 }, - { 0x3275, G_UNICODE_NOT_PRESENT_OFFSET, 8436 }, - { 0x3276, G_UNICODE_NOT_PRESENT_OFFSET, 8443 }, - { 0x3277, G_UNICODE_NOT_PRESENT_OFFSET, 8450 }, - { 0x3278, G_UNICODE_NOT_PRESENT_OFFSET, 8457 }, - { 0x3279, G_UNICODE_NOT_PRESENT_OFFSET, 8464 }, - { 0x327a, G_UNICODE_NOT_PRESENT_OFFSET, 8471 }, - { 0x327b, G_UNICODE_NOT_PRESENT_OFFSET, 8478 }, - { 0x327c, G_UNICODE_NOT_PRESENT_OFFSET, 8485 }, - { 0x327d, G_UNICODE_NOT_PRESENT_OFFSET, 8501 }, - { 0x327e, G_UNICODE_NOT_PRESENT_OFFSET, 8514 }, - { 0x3280, G_UNICODE_NOT_PRESENT_OFFSET, 6156 }, - { 0x3281, G_UNICODE_NOT_PRESENT_OFFSET, 6180 }, - { 0x3282, G_UNICODE_NOT_PRESENT_OFFSET, 7830 }, - { 0x3283, G_UNICODE_NOT_PRESENT_OFFSET, 7834 }, - { 0x3284, G_UNICODE_NOT_PRESENT_OFFSET, 8521 }, - { 0x3285, G_UNICODE_NOT_PRESENT_OFFSET, 8525 }, - { 0x3286, G_UNICODE_NOT_PRESENT_OFFSET, 8529 }, - { 0x3287, G_UNICODE_NOT_PRESENT_OFFSET, 6200 }, - { 0x3288, G_UNICODE_NOT_PRESENT_OFFSET, 8533 }, - { 0x3289, G_UNICODE_NOT_PRESENT_OFFSET, 6248 }, - { 0x328a, G_UNICODE_NOT_PRESENT_OFFSET, 6448 }, - { 0x328b, G_UNICODE_NOT_PRESENT_OFFSET, 6496 }, - { 0x328c, G_UNICODE_NOT_PRESENT_OFFSET, 6492 }, - { 0x328d, G_UNICODE_NOT_PRESENT_OFFSET, 6452 }, - { 0x328e, G_UNICODE_NOT_PRESENT_OFFSET, 6820 }, - { 0x328f, G_UNICODE_NOT_PRESENT_OFFSET, 6280 }, - { 0x3290, G_UNICODE_NOT_PRESENT_OFFSET, 6440 }, - { 0x3291, G_UNICODE_NOT_PRESENT_OFFSET, 8537 }, - { 0x3292, G_UNICODE_NOT_PRESENT_OFFSET, 8541 }, - { 0x3293, G_UNICODE_NOT_PRESENT_OFFSET, 8545 }, - { 0x3294, G_UNICODE_NOT_PRESENT_OFFSET, 8549 }, - { 0x3295, G_UNICODE_NOT_PRESENT_OFFSET, 8553 }, - { 0x3296, G_UNICODE_NOT_PRESENT_OFFSET, 8557 }, - { 0x3297, G_UNICODE_NOT_PRESENT_OFFSET, 8561 }, - { 0x3298, G_UNICODE_NOT_PRESENT_OFFSET, 8565 }, - { 0x3299, G_UNICODE_NOT_PRESENT_OFFSET, 8569 }, - { 0x329a, G_UNICODE_NOT_PRESENT_OFFSET, 8573 }, - { 0x329b, G_UNICODE_NOT_PRESENT_OFFSET, 6304 }, - { 0x329c, G_UNICODE_NOT_PRESENT_OFFSET, 8577 }, - { 0x329d, G_UNICODE_NOT_PRESENT_OFFSET, 8581 }, - { 0x329e, G_UNICODE_NOT_PRESENT_OFFSET, 8585 }, - { 0x329f, G_UNICODE_NOT_PRESENT_OFFSET, 8589 }, - { 0x32a0, G_UNICODE_NOT_PRESENT_OFFSET, 8593 }, - { 0x32a1, G_UNICODE_NOT_PRESENT_OFFSET, 8597 }, - { 0x32a2, G_UNICODE_NOT_PRESENT_OFFSET, 8601 }, - { 0x32a3, G_UNICODE_NOT_PRESENT_OFFSET, 8605 }, - { 0x32a4, G_UNICODE_NOT_PRESENT_OFFSET, 7838 }, - { 0x32a5, G_UNICODE_NOT_PRESENT_OFFSET, 7842 }, - { 0x32a6, G_UNICODE_NOT_PRESENT_OFFSET, 7846 }, - { 0x32a7, G_UNICODE_NOT_PRESENT_OFFSET, 8609 }, - { 0x32a8, G_UNICODE_NOT_PRESENT_OFFSET, 8613 }, - { 0x32a9, G_UNICODE_NOT_PRESENT_OFFSET, 8617 }, - { 0x32aa, G_UNICODE_NOT_PRESENT_OFFSET, 8621 }, - { 0x32ab, G_UNICODE_NOT_PRESENT_OFFSET, 8625 }, - { 0x32ac, G_UNICODE_NOT_PRESENT_OFFSET, 8629 }, - { 0x32ad, G_UNICODE_NOT_PRESENT_OFFSET, 8633 }, - { 0x32ae, G_UNICODE_NOT_PRESENT_OFFSET, 8637 }, - { 0x32af, G_UNICODE_NOT_PRESENT_OFFSET, 8641 }, - { 0x32b0, G_UNICODE_NOT_PRESENT_OFFSET, 8645 }, - { 0x32b1, G_UNICODE_NOT_PRESENT_OFFSET, 8649 }, - { 0x32b2, G_UNICODE_NOT_PRESENT_OFFSET, 8652 }, - { 0x32b3, G_UNICODE_NOT_PRESENT_OFFSET, 8655 }, - { 0x32b4, G_UNICODE_NOT_PRESENT_OFFSET, 8658 }, - { 0x32b5, G_UNICODE_NOT_PRESENT_OFFSET, 8661 }, - { 0x32b6, G_UNICODE_NOT_PRESENT_OFFSET, 8664 }, - { 0x32b7, G_UNICODE_NOT_PRESENT_OFFSET, 8667 }, - { 0x32b8, G_UNICODE_NOT_PRESENT_OFFSET, 8670 }, - { 0x32b9, G_UNICODE_NOT_PRESENT_OFFSET, 8673 }, - { 0x32ba, G_UNICODE_NOT_PRESENT_OFFSET, 8676 }, - { 0x32bb, G_UNICODE_NOT_PRESENT_OFFSET, 8679 }, - { 0x32bc, G_UNICODE_NOT_PRESENT_OFFSET, 8682 }, - { 0x32bd, G_UNICODE_NOT_PRESENT_OFFSET, 8685 }, - { 0x32be, G_UNICODE_NOT_PRESENT_OFFSET, 8688 }, - { 0x32bf, G_UNICODE_NOT_PRESENT_OFFSET, 8691 }, - { 0x32c0, G_UNICODE_NOT_PRESENT_OFFSET, 8694 }, - { 0x32c1, G_UNICODE_NOT_PRESENT_OFFSET, 8699 }, - { 0x32c2, G_UNICODE_NOT_PRESENT_OFFSET, 8704 }, - { 0x32c3, G_UNICODE_NOT_PRESENT_OFFSET, 8709 }, - { 0x32c4, G_UNICODE_NOT_PRESENT_OFFSET, 8714 }, - { 0x32c5, G_UNICODE_NOT_PRESENT_OFFSET, 8719 }, - { 0x32c6, G_UNICODE_NOT_PRESENT_OFFSET, 8724 }, - { 0x32c7, G_UNICODE_NOT_PRESENT_OFFSET, 8729 }, - { 0x32c8, G_UNICODE_NOT_PRESENT_OFFSET, 8734 }, - { 0x32c9, G_UNICODE_NOT_PRESENT_OFFSET, 8739 }, - { 0x32ca, G_UNICODE_NOT_PRESENT_OFFSET, 8745 }, - { 0x32cb, G_UNICODE_NOT_PRESENT_OFFSET, 8751 }, - { 0x32cc, G_UNICODE_NOT_PRESENT_OFFSET, 8757 }, - { 0x32cd, G_UNICODE_NOT_PRESENT_OFFSET, 8760 }, - { 0x32ce, G_UNICODE_NOT_PRESENT_OFFSET, 8764 }, - { 0x32cf, G_UNICODE_NOT_PRESENT_OFFSET, 8767 }, - { 0x32d0, G_UNICODE_NOT_PRESENT_OFFSET, 8771 }, - { 0x32d1, G_UNICODE_NOT_PRESENT_OFFSET, 8775 }, - { 0x32d2, G_UNICODE_NOT_PRESENT_OFFSET, 8779 }, - { 0x32d3, G_UNICODE_NOT_PRESENT_OFFSET, 8783 }, - { 0x32d4, G_UNICODE_NOT_PRESENT_OFFSET, 8787 }, - { 0x32d5, G_UNICODE_NOT_PRESENT_OFFSET, 8791 }, - { 0x32d6, G_UNICODE_NOT_PRESENT_OFFSET, 8795 }, - { 0x32d7, G_UNICODE_NOT_PRESENT_OFFSET, 8799 }, - { 0x32d8, G_UNICODE_NOT_PRESENT_OFFSET, 8803 }, - { 0x32d9, G_UNICODE_NOT_PRESENT_OFFSET, 8807 }, - { 0x32da, G_UNICODE_NOT_PRESENT_OFFSET, 8811 }, - { 0x32db, G_UNICODE_NOT_PRESENT_OFFSET, 8815 }, - { 0x32dc, G_UNICODE_NOT_PRESENT_OFFSET, 8819 }, - { 0x32dd, G_UNICODE_NOT_PRESENT_OFFSET, 8823 }, - { 0x32de, G_UNICODE_NOT_PRESENT_OFFSET, 8827 }, - { 0x32df, G_UNICODE_NOT_PRESENT_OFFSET, 8831 }, - { 0x32e0, G_UNICODE_NOT_PRESENT_OFFSET, 8835 }, - { 0x32e1, G_UNICODE_NOT_PRESENT_OFFSET, 8839 }, - { 0x32e2, G_UNICODE_NOT_PRESENT_OFFSET, 8843 }, - { 0x32e3, G_UNICODE_NOT_PRESENT_OFFSET, 8847 }, - { 0x32e4, G_UNICODE_NOT_PRESENT_OFFSET, 8851 }, - { 0x32e5, G_UNICODE_NOT_PRESENT_OFFSET, 8855 }, - { 0x32e6, G_UNICODE_NOT_PRESENT_OFFSET, 8859 }, - { 0x32e7, G_UNICODE_NOT_PRESENT_OFFSET, 8863 }, - { 0x32e8, G_UNICODE_NOT_PRESENT_OFFSET, 8867 }, - { 0x32e9, G_UNICODE_NOT_PRESENT_OFFSET, 8871 }, - { 0x32ea, G_UNICODE_NOT_PRESENT_OFFSET, 8875 }, - { 0x32eb, G_UNICODE_NOT_PRESENT_OFFSET, 8879 }, - { 0x32ec, G_UNICODE_NOT_PRESENT_OFFSET, 8883 }, - { 0x32ed, G_UNICODE_NOT_PRESENT_OFFSET, 8887 }, - { 0x32ee, G_UNICODE_NOT_PRESENT_OFFSET, 8891 }, - { 0x32ef, G_UNICODE_NOT_PRESENT_OFFSET, 8895 }, - { 0x32f0, G_UNICODE_NOT_PRESENT_OFFSET, 8899 }, - { 0x32f1, G_UNICODE_NOT_PRESENT_OFFSET, 8903 }, - { 0x32f2, G_UNICODE_NOT_PRESENT_OFFSET, 8907 }, - { 0x32f3, G_UNICODE_NOT_PRESENT_OFFSET, 8911 }, - { 0x32f4, G_UNICODE_NOT_PRESENT_OFFSET, 8915 }, - { 0x32f5, G_UNICODE_NOT_PRESENT_OFFSET, 8919 }, - { 0x32f6, G_UNICODE_NOT_PRESENT_OFFSET, 8923 }, - { 0x32f7, G_UNICODE_NOT_PRESENT_OFFSET, 8927 }, - { 0x32f8, G_UNICODE_NOT_PRESENT_OFFSET, 8931 }, - { 0x32f9, G_UNICODE_NOT_PRESENT_OFFSET, 8935 }, - { 0x32fa, G_UNICODE_NOT_PRESENT_OFFSET, 8939 }, - { 0x32fb, G_UNICODE_NOT_PRESENT_OFFSET, 8943 }, - { 0x32fc, G_UNICODE_NOT_PRESENT_OFFSET, 8947 }, - { 0x32fd, G_UNICODE_NOT_PRESENT_OFFSET, 8951 }, - { 0x32fe, G_UNICODE_NOT_PRESENT_OFFSET, 8955 }, - { 0x3300, G_UNICODE_NOT_PRESENT_OFFSET, 8959 }, - { 0x3301, G_UNICODE_NOT_PRESENT_OFFSET, 8975 }, - { 0x3302, G_UNICODE_NOT_PRESENT_OFFSET, 8988 }, - { 0x3303, G_UNICODE_NOT_PRESENT_OFFSET, 9004 }, - { 0x3304, G_UNICODE_NOT_PRESENT_OFFSET, 9014 }, - { 0x3305, G_UNICODE_NOT_PRESENT_OFFSET, 9030 }, - { 0x3306, G_UNICODE_NOT_PRESENT_OFFSET, 9040 }, - { 0x3307, G_UNICODE_NOT_PRESENT_OFFSET, 9050 }, - { 0x3308, G_UNICODE_NOT_PRESENT_OFFSET, 9069 }, - { 0x3309, G_UNICODE_NOT_PRESENT_OFFSET, 9082 }, - { 0x330a, G_UNICODE_NOT_PRESENT_OFFSET, 9092 }, - { 0x330b, G_UNICODE_NOT_PRESENT_OFFSET, 9102 }, - { 0x330c, G_UNICODE_NOT_PRESENT_OFFSET, 9112 }, - { 0x330d, G_UNICODE_NOT_PRESENT_OFFSET, 9125 }, - { 0x330e, G_UNICODE_NOT_PRESENT_OFFSET, 9138 }, - { 0x330f, G_UNICODE_NOT_PRESENT_OFFSET, 9151 }, - { 0x3310, G_UNICODE_NOT_PRESENT_OFFSET, 9164 }, - { 0x3311, G_UNICODE_NOT_PRESENT_OFFSET, 9177 }, - { 0x3312, G_UNICODE_NOT_PRESENT_OFFSET, 9190 }, - { 0x3313, G_UNICODE_NOT_PRESENT_OFFSET, 9203 }, - { 0x3314, G_UNICODE_NOT_PRESENT_OFFSET, 9222 }, - { 0x3315, G_UNICODE_NOT_PRESENT_OFFSET, 9229 }, - { 0x3316, G_UNICODE_NOT_PRESENT_OFFSET, 9248 }, - { 0x3317, G_UNICODE_NOT_PRESENT_OFFSET, 9267 }, - { 0x3318, G_UNICODE_NOT_PRESENT_OFFSET, 9283 }, - { 0x3319, G_UNICODE_NOT_PRESENT_OFFSET, 9296 }, - { 0x331a, G_UNICODE_NOT_PRESENT_OFFSET, 9315 }, - { 0x331b, G_UNICODE_NOT_PRESENT_OFFSET, 9334 }, - { 0x331c, G_UNICODE_NOT_PRESENT_OFFSET, 9347 }, - { 0x331d, G_UNICODE_NOT_PRESENT_OFFSET, 9357 }, - { 0x331e, G_UNICODE_NOT_PRESENT_OFFSET, 9367 }, - { 0x331f, G_UNICODE_NOT_PRESENT_OFFSET, 9380 }, - { 0x3320, G_UNICODE_NOT_PRESENT_OFFSET, 9393 }, - { 0x3321, G_UNICODE_NOT_PRESENT_OFFSET, 9409 }, - { 0x3322, G_UNICODE_NOT_PRESENT_OFFSET, 9425 }, - { 0x3323, G_UNICODE_NOT_PRESENT_OFFSET, 9435 }, - { 0x3324, G_UNICODE_NOT_PRESENT_OFFSET, 9445 }, - { 0x3325, G_UNICODE_NOT_PRESENT_OFFSET, 9458 }, - { 0x3326, G_UNICODE_NOT_PRESENT_OFFSET, 9468 }, - { 0x3327, G_UNICODE_NOT_PRESENT_OFFSET, 9478 }, - { 0x3328, G_UNICODE_NOT_PRESENT_OFFSET, 9485 }, - { 0x3329, G_UNICODE_NOT_PRESENT_OFFSET, 9492 }, - { 0x332a, G_UNICODE_NOT_PRESENT_OFFSET, 9502 }, - { 0x332b, G_UNICODE_NOT_PRESENT_OFFSET, 9512 }, - { 0x332c, G_UNICODE_NOT_PRESENT_OFFSET, 9531 }, - { 0x332d, G_UNICODE_NOT_PRESENT_OFFSET, 9544 }, - { 0x332e, G_UNICODE_NOT_PRESENT_OFFSET, 9560 }, - { 0x332f, G_UNICODE_NOT_PRESENT_OFFSET, 9579 }, - { 0x3330, G_UNICODE_NOT_PRESENT_OFFSET, 9592 }, - { 0x3331, G_UNICODE_NOT_PRESENT_OFFSET, 9602 }, - { 0x3332, G_UNICODE_NOT_PRESENT_OFFSET, 9612 }, - { 0x3333, G_UNICODE_NOT_PRESENT_OFFSET, 9631 }, - { 0x3334, G_UNICODE_NOT_PRESENT_OFFSET, 9644 }, - { 0x3335, G_UNICODE_NOT_PRESENT_OFFSET, 9663 }, - { 0x3336, G_UNICODE_NOT_PRESENT_OFFSET, 9673 }, - { 0x3337, G_UNICODE_NOT_PRESENT_OFFSET, 9689 }, - { 0x3338, G_UNICODE_NOT_PRESENT_OFFSET, 9699 }, - { 0x3339, G_UNICODE_NOT_PRESENT_OFFSET, 9712 }, - { 0x333a, G_UNICODE_NOT_PRESENT_OFFSET, 9722 }, - { 0x333b, G_UNICODE_NOT_PRESENT_OFFSET, 9735 }, - { 0x333c, G_UNICODE_NOT_PRESENT_OFFSET, 9751 }, - { 0x333d, G_UNICODE_NOT_PRESENT_OFFSET, 9764 }, - { 0x333e, G_UNICODE_NOT_PRESENT_OFFSET, 9780 }, - { 0x333f, G_UNICODE_NOT_PRESENT_OFFSET, 9793 }, - { 0x3340, G_UNICODE_NOT_PRESENT_OFFSET, 9800 }, - { 0x3341, G_UNICODE_NOT_PRESENT_OFFSET, 9816 }, - { 0x3342, G_UNICODE_NOT_PRESENT_OFFSET, 9826 }, - { 0x3343, G_UNICODE_NOT_PRESENT_OFFSET, 9836 }, - { 0x3344, G_UNICODE_NOT_PRESENT_OFFSET, 9849 }, - { 0x3345, G_UNICODE_NOT_PRESENT_OFFSET, 9859 }, - { 0x3346, G_UNICODE_NOT_PRESENT_OFFSET, 9869 }, - { 0x3347, G_UNICODE_NOT_PRESENT_OFFSET, 9879 }, - { 0x3348, G_UNICODE_NOT_PRESENT_OFFSET, 9895 }, - { 0x3349, G_UNICODE_NOT_PRESENT_OFFSET, 9908 }, - { 0x334a, G_UNICODE_NOT_PRESENT_OFFSET, 9915 }, - { 0x334b, G_UNICODE_NOT_PRESENT_OFFSET, 9934 }, - { 0x334c, G_UNICODE_NOT_PRESENT_OFFSET, 9944 }, - { 0x334d, G_UNICODE_NOT_PRESENT_OFFSET, 9960 }, - { 0x334e, G_UNICODE_NOT_PRESENT_OFFSET, 9973 }, - { 0x334f, G_UNICODE_NOT_PRESENT_OFFSET, 9986 }, - { 0x3350, G_UNICODE_NOT_PRESENT_OFFSET, 9996 }, - { 0x3351, G_UNICODE_NOT_PRESENT_OFFSET, 10006 }, - { 0x3352, G_UNICODE_NOT_PRESENT_OFFSET, 10019 }, - { 0x3353, G_UNICODE_NOT_PRESENT_OFFSET, 10026 }, - { 0x3354, G_UNICODE_NOT_PRESENT_OFFSET, 10039 }, - { 0x3355, G_UNICODE_NOT_PRESENT_OFFSET, 10055 }, - { 0x3356, G_UNICODE_NOT_PRESENT_OFFSET, 10062 }, - { 0x3357, G_UNICODE_NOT_PRESENT_OFFSET, 10081 }, - { 0x3358, G_UNICODE_NOT_PRESENT_OFFSET, 10091 }, - { 0x3359, G_UNICODE_NOT_PRESENT_OFFSET, 10096 }, - { 0x335a, G_UNICODE_NOT_PRESENT_OFFSET, 10101 }, - { 0x335b, G_UNICODE_NOT_PRESENT_OFFSET, 10106 }, - { 0x335c, G_UNICODE_NOT_PRESENT_OFFSET, 10111 }, - { 0x335d, G_UNICODE_NOT_PRESENT_OFFSET, 10116 }, - { 0x335e, G_UNICODE_NOT_PRESENT_OFFSET, 10121 }, - { 0x335f, G_UNICODE_NOT_PRESENT_OFFSET, 10126 }, - { 0x3360, G_UNICODE_NOT_PRESENT_OFFSET, 10131 }, - { 0x3361, G_UNICODE_NOT_PRESENT_OFFSET, 10136 }, - { 0x3362, G_UNICODE_NOT_PRESENT_OFFSET, 10141 }, - { 0x3363, G_UNICODE_NOT_PRESENT_OFFSET, 10147 }, - { 0x3364, G_UNICODE_NOT_PRESENT_OFFSET, 10153 }, - { 0x3365, G_UNICODE_NOT_PRESENT_OFFSET, 10159 }, - { 0x3366, G_UNICODE_NOT_PRESENT_OFFSET, 10165 }, - { 0x3367, G_UNICODE_NOT_PRESENT_OFFSET, 10171 }, - { 0x3368, G_UNICODE_NOT_PRESENT_OFFSET, 10177 }, - { 0x3369, G_UNICODE_NOT_PRESENT_OFFSET, 10183 }, - { 0x336a, G_UNICODE_NOT_PRESENT_OFFSET, 10189 }, - { 0x336b, G_UNICODE_NOT_PRESENT_OFFSET, 10195 }, - { 0x336c, G_UNICODE_NOT_PRESENT_OFFSET, 10201 }, - { 0x336d, G_UNICODE_NOT_PRESENT_OFFSET, 10207 }, - { 0x336e, G_UNICODE_NOT_PRESENT_OFFSET, 10213 }, - { 0x336f, G_UNICODE_NOT_PRESENT_OFFSET, 10219 }, - { 0x3370, G_UNICODE_NOT_PRESENT_OFFSET, 10225 }, - { 0x3371, G_UNICODE_NOT_PRESENT_OFFSET, 10231 }, - { 0x3372, G_UNICODE_NOT_PRESENT_OFFSET, 10235 }, - { 0x3373, G_UNICODE_NOT_PRESENT_OFFSET, 10238 }, - { 0x3374, G_UNICODE_NOT_PRESENT_OFFSET, 10241 }, - { 0x3375, G_UNICODE_NOT_PRESENT_OFFSET, 10245 }, - { 0x3376, G_UNICODE_NOT_PRESENT_OFFSET, 10248 }, - { 0x3377, G_UNICODE_NOT_PRESENT_OFFSET, 10251 }, - { 0x3378, G_UNICODE_NOT_PRESENT_OFFSET, 10254 }, - { 0x3379, G_UNICODE_NOT_PRESENT_OFFSET, 10258 }, - { 0x337a, G_UNICODE_NOT_PRESENT_OFFSET, 10262 }, - { 0x337b, G_UNICODE_NOT_PRESENT_OFFSET, 10265 }, - { 0x337c, G_UNICODE_NOT_PRESENT_OFFSET, 10272 }, - { 0x337d, G_UNICODE_NOT_PRESENT_OFFSET, 10279 }, - { 0x337e, G_UNICODE_NOT_PRESENT_OFFSET, 10286 }, - { 0x337f, G_UNICODE_NOT_PRESENT_OFFSET, 10293 }, - { 0x3380, G_UNICODE_NOT_PRESENT_OFFSET, 10306 }, - { 0x3381, G_UNICODE_NOT_PRESENT_OFFSET, 10309 }, - { 0x3382, G_UNICODE_NOT_PRESENT_OFFSET, 10312 }, - { 0x3383, G_UNICODE_NOT_PRESENT_OFFSET, 10316 }, - { 0x3384, G_UNICODE_NOT_PRESENT_OFFSET, 10319 }, - { 0x3385, G_UNICODE_NOT_PRESENT_OFFSET, 10322 }, - { 0x3386, G_UNICODE_NOT_PRESENT_OFFSET, 10325 }, - { 0x3387, G_UNICODE_NOT_PRESENT_OFFSET, 10328 }, - { 0x3388, G_UNICODE_NOT_PRESENT_OFFSET, 10331 }, - { 0x3389, G_UNICODE_NOT_PRESENT_OFFSET, 10335 }, - { 0x338a, G_UNICODE_NOT_PRESENT_OFFSET, 10340 }, - { 0x338b, G_UNICODE_NOT_PRESENT_OFFSET, 10343 }, - { 0x338c, G_UNICODE_NOT_PRESENT_OFFSET, 10346 }, - { 0x338d, G_UNICODE_NOT_PRESENT_OFFSET, 10350 }, - { 0x338e, G_UNICODE_NOT_PRESENT_OFFSET, 10354 }, - { 0x338f, G_UNICODE_NOT_PRESENT_OFFSET, 10357 }, - { 0x3390, G_UNICODE_NOT_PRESENT_OFFSET, 10360 }, - { 0x3391, G_UNICODE_NOT_PRESENT_OFFSET, 10363 }, - { 0x3392, G_UNICODE_NOT_PRESENT_OFFSET, 10367 }, - { 0x3393, G_UNICODE_NOT_PRESENT_OFFSET, 10371 }, - { 0x3394, G_UNICODE_NOT_PRESENT_OFFSET, 10375 }, - { 0x3395, G_UNICODE_NOT_PRESENT_OFFSET, 10379 }, - { 0x3396, G_UNICODE_NOT_PRESENT_OFFSET, 10383 }, - { 0x3397, G_UNICODE_NOT_PRESENT_OFFSET, 10386 }, - { 0x3398, G_UNICODE_NOT_PRESENT_OFFSET, 10389 }, - { 0x3399, G_UNICODE_NOT_PRESENT_OFFSET, 10392 }, - { 0x339a, G_UNICODE_NOT_PRESENT_OFFSET, 10395 }, - { 0x339b, G_UNICODE_NOT_PRESENT_OFFSET, 10398 }, - { 0x339c, G_UNICODE_NOT_PRESENT_OFFSET, 10402 }, - { 0x339d, G_UNICODE_NOT_PRESENT_OFFSET, 10405 }, - { 0x339e, G_UNICODE_NOT_PRESENT_OFFSET, 10408 }, - { 0x339f, G_UNICODE_NOT_PRESENT_OFFSET, 10411 }, - { 0x33a0, G_UNICODE_NOT_PRESENT_OFFSET, 10415 }, - { 0x33a1, G_UNICODE_NOT_PRESENT_OFFSET, 10419 }, - { 0x33a2, G_UNICODE_NOT_PRESENT_OFFSET, 10422 }, - { 0x33a3, G_UNICODE_NOT_PRESENT_OFFSET, 10426 }, - { 0x33a4, G_UNICODE_NOT_PRESENT_OFFSET, 10430 }, - { 0x33a5, G_UNICODE_NOT_PRESENT_OFFSET, 10434 }, - { 0x33a6, G_UNICODE_NOT_PRESENT_OFFSET, 10437 }, - { 0x33a7, G_UNICODE_NOT_PRESENT_OFFSET, 10441 }, - { 0x33a8, G_UNICODE_NOT_PRESENT_OFFSET, 10447 }, - { 0x33a9, G_UNICODE_NOT_PRESENT_OFFSET, 10454 }, - { 0x33aa, G_UNICODE_NOT_PRESENT_OFFSET, 10457 }, - { 0x33ab, G_UNICODE_NOT_PRESENT_OFFSET, 10461 }, - { 0x33ac, G_UNICODE_NOT_PRESENT_OFFSET, 10465 }, - { 0x33ad, G_UNICODE_NOT_PRESENT_OFFSET, 10469 }, - { 0x33ae, G_UNICODE_NOT_PRESENT_OFFSET, 10473 }, - { 0x33af, G_UNICODE_NOT_PRESENT_OFFSET, 10481 }, - { 0x33b0, G_UNICODE_NOT_PRESENT_OFFSET, 10490 }, - { 0x33b1, G_UNICODE_NOT_PRESENT_OFFSET, 10493 }, - { 0x33b2, G_UNICODE_NOT_PRESENT_OFFSET, 10496 }, - { 0x33b3, G_UNICODE_NOT_PRESENT_OFFSET, 10500 }, - { 0x33b4, G_UNICODE_NOT_PRESENT_OFFSET, 10503 }, - { 0x33b5, G_UNICODE_NOT_PRESENT_OFFSET, 10506 }, - { 0x33b6, G_UNICODE_NOT_PRESENT_OFFSET, 10509 }, - { 0x33b7, G_UNICODE_NOT_PRESENT_OFFSET, 10513 }, - { 0x33b8, G_UNICODE_NOT_PRESENT_OFFSET, 10516 }, - { 0x33b9, G_UNICODE_NOT_PRESENT_OFFSET, 10519 }, - { 0x33ba, G_UNICODE_NOT_PRESENT_OFFSET, 10522 }, - { 0x33bb, G_UNICODE_NOT_PRESENT_OFFSET, 10525 }, - { 0x33bc, G_UNICODE_NOT_PRESENT_OFFSET, 10528 }, - { 0x33bd, G_UNICODE_NOT_PRESENT_OFFSET, 10532 }, - { 0x33be, G_UNICODE_NOT_PRESENT_OFFSET, 10535 }, - { 0x33bf, G_UNICODE_NOT_PRESENT_OFFSET, 10538 }, - { 0x33c0, G_UNICODE_NOT_PRESENT_OFFSET, 10541 }, - { 0x33c1, G_UNICODE_NOT_PRESENT_OFFSET, 10545 }, - { 0x33c2, G_UNICODE_NOT_PRESENT_OFFSET, 10549 }, - { 0x33c3, G_UNICODE_NOT_PRESENT_OFFSET, 10554 }, - { 0x33c4, G_UNICODE_NOT_PRESENT_OFFSET, 10557 }, - { 0x33c5, G_UNICODE_NOT_PRESENT_OFFSET, 10560 }, - { 0x33c6, G_UNICODE_NOT_PRESENT_OFFSET, 10563 }, - { 0x33c7, G_UNICODE_NOT_PRESENT_OFFSET, 10570 }, - { 0x33c8, G_UNICODE_NOT_PRESENT_OFFSET, 10574 }, - { 0x33c9, G_UNICODE_NOT_PRESENT_OFFSET, 10577 }, - { 0x33ca, G_UNICODE_NOT_PRESENT_OFFSET, 10580 }, - { 0x33cb, G_UNICODE_NOT_PRESENT_OFFSET, 10583 }, - { 0x33cc, G_UNICODE_NOT_PRESENT_OFFSET, 10586 }, - { 0x33cd, G_UNICODE_NOT_PRESENT_OFFSET, 10589 }, - { 0x33ce, G_UNICODE_NOT_PRESENT_OFFSET, 10592 }, - { 0x33cf, G_UNICODE_NOT_PRESENT_OFFSET, 10595 }, - { 0x33d0, G_UNICODE_NOT_PRESENT_OFFSET, 10598 }, - { 0x33d1, G_UNICODE_NOT_PRESENT_OFFSET, 10601 }, - { 0x33d2, G_UNICODE_NOT_PRESENT_OFFSET, 10604 }, - { 0x33d3, G_UNICODE_NOT_PRESENT_OFFSET, 10608 }, - { 0x33d4, G_UNICODE_NOT_PRESENT_OFFSET, 10611 }, - { 0x33d5, G_UNICODE_NOT_PRESENT_OFFSET, 10614 }, - { 0x33d6, G_UNICODE_NOT_PRESENT_OFFSET, 10618 }, - { 0x33d7, G_UNICODE_NOT_PRESENT_OFFSET, 10622 }, - { 0x33d8, G_UNICODE_NOT_PRESENT_OFFSET, 10625 }, - { 0x33d9, G_UNICODE_NOT_PRESENT_OFFSET, 10630 }, - { 0x33da, G_UNICODE_NOT_PRESENT_OFFSET, 10634 }, - { 0x33db, G_UNICODE_NOT_PRESENT_OFFSET, 10637 }, - { 0x33dc, G_UNICODE_NOT_PRESENT_OFFSET, 10640 }, - { 0x33dd, G_UNICODE_NOT_PRESENT_OFFSET, 10643 }, - { 0x33de, G_UNICODE_NOT_PRESENT_OFFSET, 10646 }, - { 0x33df, G_UNICODE_NOT_PRESENT_OFFSET, 10652 }, - { 0x33e0, G_UNICODE_NOT_PRESENT_OFFSET, 10658 }, - { 0x33e1, G_UNICODE_NOT_PRESENT_OFFSET, 10663 }, - { 0x33e2, G_UNICODE_NOT_PRESENT_OFFSET, 10668 }, - { 0x33e3, G_UNICODE_NOT_PRESENT_OFFSET, 10673 }, - { 0x33e4, G_UNICODE_NOT_PRESENT_OFFSET, 10678 }, - { 0x33e5, G_UNICODE_NOT_PRESENT_OFFSET, 10683 }, - { 0x33e6, G_UNICODE_NOT_PRESENT_OFFSET, 10688 }, - { 0x33e7, G_UNICODE_NOT_PRESENT_OFFSET, 10693 }, - { 0x33e8, G_UNICODE_NOT_PRESENT_OFFSET, 10698 }, - { 0x33e9, G_UNICODE_NOT_PRESENT_OFFSET, 10703 }, - { 0x33ea, G_UNICODE_NOT_PRESENT_OFFSET, 10709 }, - { 0x33eb, G_UNICODE_NOT_PRESENT_OFFSET, 10715 }, - { 0x33ec, G_UNICODE_NOT_PRESENT_OFFSET, 10721 }, - { 0x33ed, G_UNICODE_NOT_PRESENT_OFFSET, 10727 }, - { 0x33ee, G_UNICODE_NOT_PRESENT_OFFSET, 10733 }, - { 0x33ef, G_UNICODE_NOT_PRESENT_OFFSET, 10739 }, - { 0x33f0, G_UNICODE_NOT_PRESENT_OFFSET, 10745 }, - { 0x33f1, G_UNICODE_NOT_PRESENT_OFFSET, 10751 }, - { 0x33f2, G_UNICODE_NOT_PRESENT_OFFSET, 10757 }, - { 0x33f3, G_UNICODE_NOT_PRESENT_OFFSET, 10763 }, - { 0x33f4, G_UNICODE_NOT_PRESENT_OFFSET, 10769 }, - { 0x33f5, G_UNICODE_NOT_PRESENT_OFFSET, 10775 }, - { 0x33f6, G_UNICODE_NOT_PRESENT_OFFSET, 10781 }, - { 0x33f7, G_UNICODE_NOT_PRESENT_OFFSET, 10787 }, - { 0x33f8, G_UNICODE_NOT_PRESENT_OFFSET, 10793 }, - { 0x33f9, G_UNICODE_NOT_PRESENT_OFFSET, 10799 }, - { 0x33fa, G_UNICODE_NOT_PRESENT_OFFSET, 10805 }, - { 0x33fb, G_UNICODE_NOT_PRESENT_OFFSET, 10811 }, - { 0x33fc, G_UNICODE_NOT_PRESENT_OFFSET, 10817 }, - { 0x33fd, G_UNICODE_NOT_PRESENT_OFFSET, 10823 }, - { 0x33fe, G_UNICODE_NOT_PRESENT_OFFSET, 10829 }, - { 0x33ff, G_UNICODE_NOT_PRESENT_OFFSET, 10835 }, - { 0xf900, 10839, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf901, 10843, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf902, 6788, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf903, 10847, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf904, 10851, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf905, 10855, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf906, 10859, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf907, 7004, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf908, 7004, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf909, 10863, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf90a, 6820, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf90b, 10867, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf90c, 10871, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf90d, 10875, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf90e, 10879, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf90f, 10883, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf910, 10887, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf911, 10891, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf912, 10895, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf913, 10899, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf914, 10903, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf915, 10907, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf916, 10911, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf917, 10915, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf918, 10919, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf919, 10923, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf91a, 10927, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf91b, 10931, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf91c, 10935, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf91d, 10939, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf91e, 10943, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf91f, 10947, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf920, 10951, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf921, 10955, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf922, 10959, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf923, 10963, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf924, 10967, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf925, 10971, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf926, 10975, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf927, 10979, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf928, 10983, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf929, 10987, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf92a, 10991, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf92b, 10995, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf92c, 10999, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf92d, 11003, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf92e, 11007, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf92f, 11011, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf930, 11015, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf931, 11019, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf932, 11023, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf933, 11027, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf934, 6652, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf935, 11031, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf936, 11035, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf937, 11039, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf938, 11043, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf939, 11047, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf93a, 11051, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf93b, 11055, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf93c, 11059, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf93d, 11063, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf93e, 11067, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf93f, 11071, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf940, 6944, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf941, 11075, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf942, 11079, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf943, 11083, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf944, 11087, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf945, 11091, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf946, 11095, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf947, 11099, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf948, 11103, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf949, 11107, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf94a, 11111, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf94b, 11115, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf94c, 11119, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf94d, 11123, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf94e, 11127, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf94f, 11131, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf950, 11135, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf951, 11139, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf952, 11143, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf953, 11147, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf954, 11151, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf955, 11155, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf956, 11159, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf957, 11163, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf958, 11167, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf959, 11171, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf95a, 11175, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf95b, 11179, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf95c, 10903, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf95d, 11183, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf95e, 11187, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf95f, 11191, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf960, 11195, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf961, 11199, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf962, 11203, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf963, 11207, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf964, 11211, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf965, 11215, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf966, 11219, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf967, 11223, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf968, 11227, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf969, 11231, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf96a, 11235, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf96b, 11239, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf96c, 11243, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf96d, 11247, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf96e, 11251, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf96f, 11255, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf970, 11259, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf971, 6796, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf972, 11263, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf973, 11267, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf974, 11271, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf975, 11275, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf976, 11279, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf977, 11283, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf978, 11287, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf979, 11291, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf97a, 11295, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf97b, 11299, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf97c, 11303, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf97d, 11307, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf97e, 11311, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf97f, 11315, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf980, 11319, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf981, 6304, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf982, 11323, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf983, 11327, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf984, 11331, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf985, 11335, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf986, 11339, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf987, 11343, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf988, 11347, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf989, 11351, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf98a, 6228, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf98b, 11355, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf98c, 11359, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf98d, 11363, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf98e, 11367, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf98f, 11371, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf990, 11375, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf991, 11379, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf992, 11383, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf993, 11387, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf994, 11391, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf995, 11395, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf996, 11399, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf997, 11403, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf998, 11407, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf999, 11411, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf99a, 11415, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf99b, 11419, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf99c, 11423, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf99d, 11427, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf99e, 11431, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf99f, 11435, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf9a0, 11439, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf9a1, 11255, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf9a2, 11443, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf9a3, 11447, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf9a4, 11451, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf9a5, 11455, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf9a6, 11459, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf9a7, 11463, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf9a8, 11467, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf9a9, 11471, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf9aa, 11191, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf9ab, 11475, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf9ac, 11479, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf9ad, 11483, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf9ae, 11487, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf9af, 11491, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf9b0, 11495, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf9b1, 11499, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf9b2, 11503, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf9b3, 11507, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf9b4, 11511, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf9b5, 11515, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf9b6, 11519, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf9b7, 11523, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf9b8, 11527, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf9b9, 11531, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf9ba, 11535, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf9bb, 11539, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf9bc, 11543, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf9bd, 11547, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf9be, 11551, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf9bf, 10903, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf9c0, 11555, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf9c1, 11559, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf9c2, 11563, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf9c3, 11567, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf9c4, 7000, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf9c5, 11571, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf9c6, 11575, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf9c7, 11579, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf9c8, 11583, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf9c9, 11587, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf9ca, 11591, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf9cb, 11595, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf9cc, 11599, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf9cd, 11603, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf9ce, 11607, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf9cf, 11611, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf9d0, 11615, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf9d1, 8525, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf9d2, 11619, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf9d3, 11623, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf9d4, 11627, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf9d5, 11631, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf9d6, 11635, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf9d7, 11639, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf9d8, 11643, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf9d9, 11647, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf9da, 11651, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf9db, 11199, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf9dc, 11655, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf9dd, 11659, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf9de, 11663, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf9df, 11667, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf9e0, 11671, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf9e1, 11675, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf9e2, 11679, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf9e3, 11683, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf9e4, 11687, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf9e5, 11691, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf9e6, 11695, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf9e7, 11699, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf9e8, 11703, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf9e9, 6816, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf9ea, 11707, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf9eb, 11711, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf9ec, 11715, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf9ed, 11719, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf9ee, 11723, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf9ef, 11727, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf9f0, 11731, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf9f1, 11735, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf9f2, 11739, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf9f3, 11743, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf9f4, 11747, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf9f5, 11751, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf9f6, 11755, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf9f7, 6620, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf9f8, 11759, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf9f9, 11763, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf9fa, 11767, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf9fb, 11771, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf9fc, 11775, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf9fd, 11779, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf9fe, 11783, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xf9ff, 11787, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfa00, 11791, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfa01, 11795, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfa02, 11799, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfa03, 11803, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfa04, 11807, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfa05, 11811, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfa06, 11815, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfa07, 11819, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfa08, 6728, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfa09, 11823, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfa0a, 6740, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfa0b, 11827, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfa0c, 11831, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfa0d, 11835, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfa10, 11839, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfa12, 11843, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfa15, 11847, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfa16, 11851, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfa17, 11855, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfa18, 11859, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfa19, 11863, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfa1a, 11867, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfa1b, 11871, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfa1c, 11875, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfa1d, 11879, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfa1e, 6648, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfa20, 11883, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfa22, 11887, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfa25, 11891, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfa26, 11895, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfa2a, 11899, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfa2b, 11903, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfa2c, 11907, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfa2d, 11911, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfa30, 11915, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfa31, 11919, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfa32, 11923, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfa33, 11927, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfa34, 11931, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfa35, 11935, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfa36, 11939, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfa37, 11943, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfa38, 11947, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfa39, 11951, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfa3a, 11955, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfa3b, 11959, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfa3c, 6332, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfa3d, 11963, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfa3e, 11967, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfa3f, 11971, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfa40, 11975, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfa41, 11979, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfa42, 11983, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfa43, 11987, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfa44, 11991, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfa45, 11995, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfa46, 11999, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfa47, 12003, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfa48, 12007, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfa49, 12011, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfa4a, 12015, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfa4b, 12019, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfa4c, 8545, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfa4d, 12023, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfa4e, 12027, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfa4f, 12031, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfa50, 12035, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfa51, 8561, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfa52, 12039, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfa53, 12043, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfa54, 12047, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfa55, 12051, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfa56, 12055, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfa57, 11399, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfa58, 12059, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfa59, 12063, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfa5a, 12067, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfa5b, 12071, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfa5c, 12075, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfa5d, 12079, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfa5e, 12079, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfa5f, 12083, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfa60, 12087, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfa61, 12091, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfa62, 12095, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfa63, 12099, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfa64, 12103, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfa65, 12107, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfa66, 12111, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfa67, 11891, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfa68, 12115, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfa69, 12119, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfa6a, 12123, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfa70, 12127, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfa71, 12131, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfa72, 12135, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfa73, 12139, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfa74, 12143, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfa75, 12147, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfa76, 12151, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfa77, 12155, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfa78, 11939, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfa79, 12159, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfa7a, 12163, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfa7b, 12167, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfa7c, 11839, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfa7d, 12171, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfa7e, 12175, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfa7f, 12179, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfa80, 12183, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfa81, 12187, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfa82, 12191, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfa83, 12195, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfa84, 12199, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfa85, 12203, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfa86, 12207, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfa87, 12211, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfa88, 12215, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfa89, 11971, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfa8a, 12219, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfa8b, 11975, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfa8c, 12223, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfa8d, 12227, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfa8e, 12231, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfa8f, 12235, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfa90, 12239, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfa91, 11843, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfa92, 10987, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfa93, 12243, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfa94, 12247, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfa95, 6464, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfa96, 11259, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfa97, 11591, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfa98, 12251, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfa99, 12255, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfa9a, 12003, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfa9b, 12259, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfa9c, 12007, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfa9d, 12263, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfa9e, 12267, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfa9f, 12271, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfaa0, 11851, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfaa1, 12275, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfaa2, 12279, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfaa3, 12283, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfaa4, 12287, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfaa5, 12291, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfaa6, 11855, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfaa7, 12295, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfaa8, 12299, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfaa9, 12303, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfaaa, 12307, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfaab, 12311, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfaac, 12315, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfaad, 12055, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfaae, 12319, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfaaf, 12323, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfab0, 11399, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfab1, 12327, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfab2, 12071, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfab3, 12331, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfab4, 12335, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfab5, 12339, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfab6, 12343, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfab7, 12347, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfab8, 12091, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfab9, 12351, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfaba, 11887, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfabb, 12355, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfabc, 12095, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfabd, 11183, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfabe, 12359, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfabf, 12099, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfac0, 12363, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfac1, 12107, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfac2, 12367, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfac3, 12371, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfac4, 12375, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfac5, 12379, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfac6, 12383, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfac7, 12115, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfac8, 11875, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfac9, 12387, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfaca, 12119, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfacb, 12391, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfacc, 12123, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfacd, 12395, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xface, 7004, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfacf, 12399, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfad0, 12404, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfad1, 12409, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfad2, 12414, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfad3, 12418, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfad4, 12422, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfad5, 12426, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfad6, 12431, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfad7, 12436, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfad8, 12441, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfad9, 12445, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfb00, G_UNICODE_NOT_PRESENT_OFFSET, 12449 }, - { 0xfb01, G_UNICODE_NOT_PRESENT_OFFSET, 12452 }, - { 0xfb02, G_UNICODE_NOT_PRESENT_OFFSET, 12455 }, - { 0xfb03, G_UNICODE_NOT_PRESENT_OFFSET, 12458 }, - { 0xfb04, G_UNICODE_NOT_PRESENT_OFFSET, 12462 }, - { 0xfb05, G_UNICODE_NOT_PRESENT_OFFSET, 12466 }, - { 0xfb06, G_UNICODE_NOT_PRESENT_OFFSET, 12466 }, - { 0xfb13, G_UNICODE_NOT_PRESENT_OFFSET, 12469 }, - { 0xfb14, G_UNICODE_NOT_PRESENT_OFFSET, 12474 }, - { 0xfb15, G_UNICODE_NOT_PRESENT_OFFSET, 12479 }, - { 0xfb16, G_UNICODE_NOT_PRESENT_OFFSET, 12484 }, - { 0xfb17, G_UNICODE_NOT_PRESENT_OFFSET, 12489 }, - { 0xfb1d, 12494, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfb1f, 12499, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfb20, G_UNICODE_NOT_PRESENT_OFFSET, 12504 }, - { 0xfb21, G_UNICODE_NOT_PRESENT_OFFSET, 5338 }, - { 0xfb22, G_UNICODE_NOT_PRESENT_OFFSET, 5347 }, - { 0xfb23, G_UNICODE_NOT_PRESENT_OFFSET, 12507 }, - { 0xfb24, G_UNICODE_NOT_PRESENT_OFFSET, 12510 }, - { 0xfb25, G_UNICODE_NOT_PRESENT_OFFSET, 12513 }, - { 0xfb26, G_UNICODE_NOT_PRESENT_OFFSET, 12516 }, - { 0xfb27, G_UNICODE_NOT_PRESENT_OFFSET, 12519 }, - { 0xfb28, G_UNICODE_NOT_PRESENT_OFFSET, 12522 }, - { 0xfb29, G_UNICODE_NOT_PRESENT_OFFSET, 5267 }, - { 0xfb2a, 12525, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfb2b, 12530, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfb2c, 12535, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfb2d, 12542, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfb2e, 12549, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfb2f, 12554, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfb30, 12559, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfb31, 12564, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfb32, 12569, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfb33, 12574, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfb34, 12579, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfb35, 12584, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfb36, 12589, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfb38, 12594, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfb39, 12599, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfb3a, 12604, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfb3b, 12609, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfb3c, 12614, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfb3e, 12619, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfb40, 12624, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfb41, 12629, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfb43, 12634, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfb44, 12639, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfb46, 12644, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfb47, 12649, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfb48, 12654, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfb49, 12659, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfb4a, 12664, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfb4b, 12669, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfb4c, 12674, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfb4d, 12679, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfb4e, 12684, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0xfb4f, G_UNICODE_NOT_PRESENT_OFFSET, 12689 }, - { 0xfb50, G_UNICODE_NOT_PRESENT_OFFSET, 12694 }, - { 0xfb51, G_UNICODE_NOT_PRESENT_OFFSET, 12694 }, - { 0xfb52, G_UNICODE_NOT_PRESENT_OFFSET, 12697 }, - { 0xfb53, G_UNICODE_NOT_PRESENT_OFFSET, 12697 }, - { 0xfb54, G_UNICODE_NOT_PRESENT_OFFSET, 12697 }, - { 0xfb55, G_UNICODE_NOT_PRESENT_OFFSET, 12697 }, - { 0xfb56, G_UNICODE_NOT_PRESENT_OFFSET, 12700 }, - { 0xfb57, G_UNICODE_NOT_PRESENT_OFFSET, 12700 }, - { 0xfb58, G_UNICODE_NOT_PRESENT_OFFSET, 12700 }, - { 0xfb59, G_UNICODE_NOT_PRESENT_OFFSET, 12700 }, - { 0xfb5a, G_UNICODE_NOT_PRESENT_OFFSET, 12703 }, - { 0xfb5b, G_UNICODE_NOT_PRESENT_OFFSET, 12703 }, - { 0xfb5c, G_UNICODE_NOT_PRESENT_OFFSET, 12703 }, - { 0xfb5d, G_UNICODE_NOT_PRESENT_OFFSET, 12703 }, - { 0xfb5e, G_UNICODE_NOT_PRESENT_OFFSET, 12706 }, - { 0xfb5f, G_UNICODE_NOT_PRESENT_OFFSET, 12706 }, - { 0xfb60, G_UNICODE_NOT_PRESENT_OFFSET, 12706 }, - { 0xfb61, G_UNICODE_NOT_PRESENT_OFFSET, 12706 }, - { 0xfb62, G_UNICODE_NOT_PRESENT_OFFSET, 12709 }, - { 0xfb63, G_UNICODE_NOT_PRESENT_OFFSET, 12709 }, - { 0xfb64, G_UNICODE_NOT_PRESENT_OFFSET, 12709 }, - { 0xfb65, G_UNICODE_NOT_PRESENT_OFFSET, 12709 }, - { 0xfb66, G_UNICODE_NOT_PRESENT_OFFSET, 12712 }, - { 0xfb67, G_UNICODE_NOT_PRESENT_OFFSET, 12712 }, - { 0xfb68, G_UNICODE_NOT_PRESENT_OFFSET, 12712 }, - { 0xfb69, G_UNICODE_NOT_PRESENT_OFFSET, 12712 }, - { 0xfb6a, G_UNICODE_NOT_PRESENT_OFFSET, 12715 }, - { 0xfb6b, G_UNICODE_NOT_PRESENT_OFFSET, 12715 }, - { 0xfb6c, G_UNICODE_NOT_PRESENT_OFFSET, 12715 }, - { 0xfb6d, G_UNICODE_NOT_PRESENT_OFFSET, 12715 }, - { 0xfb6e, G_UNICODE_NOT_PRESENT_OFFSET, 12718 }, - { 0xfb6f, G_UNICODE_NOT_PRESENT_OFFSET, 12718 }, - { 0xfb70, G_UNICODE_NOT_PRESENT_OFFSET, 12718 }, - { 0xfb71, G_UNICODE_NOT_PRESENT_OFFSET, 12718 }, - { 0xfb72, G_UNICODE_NOT_PRESENT_OFFSET, 12721 }, - { 0xfb73, G_UNICODE_NOT_PRESENT_OFFSET, 12721 }, - { 0xfb74, G_UNICODE_NOT_PRESENT_OFFSET, 12721 }, - { 0xfb75, G_UNICODE_NOT_PRESENT_OFFSET, 12721 }, - { 0xfb76, G_UNICODE_NOT_PRESENT_OFFSET, 12724 }, - { 0xfb77, G_UNICODE_NOT_PRESENT_OFFSET, 12724 }, - { 0xfb78, G_UNICODE_NOT_PRESENT_OFFSET, 12724 }, - { 0xfb79, G_UNICODE_NOT_PRESENT_OFFSET, 12724 }, - { 0xfb7a, G_UNICODE_NOT_PRESENT_OFFSET, 12727 }, - { 0xfb7b, G_UNICODE_NOT_PRESENT_OFFSET, 12727 }, - { 0xfb7c, G_UNICODE_NOT_PRESENT_OFFSET, 12727 }, - { 0xfb7d, G_UNICODE_NOT_PRESENT_OFFSET, 12727 }, - { 0xfb7e, G_UNICODE_NOT_PRESENT_OFFSET, 12730 }, - { 0xfb7f, G_UNICODE_NOT_PRESENT_OFFSET, 12730 }, - { 0xfb80, G_UNICODE_NOT_PRESENT_OFFSET, 12730 }, - { 0xfb81, G_UNICODE_NOT_PRESENT_OFFSET, 12730 }, - { 0xfb82, G_UNICODE_NOT_PRESENT_OFFSET, 12733 }, - { 0xfb83, G_UNICODE_NOT_PRESENT_OFFSET, 12733 }, - { 0xfb84, G_UNICODE_NOT_PRESENT_OFFSET, 12736 }, - { 0xfb85, G_UNICODE_NOT_PRESENT_OFFSET, 12736 }, - { 0xfb86, G_UNICODE_NOT_PRESENT_OFFSET, 12739 }, - { 0xfb87, G_UNICODE_NOT_PRESENT_OFFSET, 12739 }, - { 0xfb88, G_UNICODE_NOT_PRESENT_OFFSET, 12742 }, - { 0xfb89, G_UNICODE_NOT_PRESENT_OFFSET, 12742 }, - { 0xfb8a, G_UNICODE_NOT_PRESENT_OFFSET, 12745 }, - { 0xfb8b, G_UNICODE_NOT_PRESENT_OFFSET, 12745 }, - { 0xfb8c, G_UNICODE_NOT_PRESENT_OFFSET, 12748 }, - { 0xfb8d, G_UNICODE_NOT_PRESENT_OFFSET, 12748 }, - { 0xfb8e, G_UNICODE_NOT_PRESENT_OFFSET, 12751 }, - { 0xfb8f, G_UNICODE_NOT_PRESENT_OFFSET, 12751 }, - { 0xfb90, G_UNICODE_NOT_PRESENT_OFFSET, 12751 }, - { 0xfb91, G_UNICODE_NOT_PRESENT_OFFSET, 12751 }, - { 0xfb92, G_UNICODE_NOT_PRESENT_OFFSET, 12754 }, - { 0xfb93, G_UNICODE_NOT_PRESENT_OFFSET, 12754 }, - { 0xfb94, G_UNICODE_NOT_PRESENT_OFFSET, 12754 }, - { 0xfb95, G_UNICODE_NOT_PRESENT_OFFSET, 12754 }, - { 0xfb96, G_UNICODE_NOT_PRESENT_OFFSET, 12757 }, - { 0xfb97, G_UNICODE_NOT_PRESENT_OFFSET, 12757 }, - { 0xfb98, G_UNICODE_NOT_PRESENT_OFFSET, 12757 }, - { 0xfb99, G_UNICODE_NOT_PRESENT_OFFSET, 12757 }, - { 0xfb9a, G_UNICODE_NOT_PRESENT_OFFSET, 12760 }, - { 0xfb9b, G_UNICODE_NOT_PRESENT_OFFSET, 12760 }, - { 0xfb9c, G_UNICODE_NOT_PRESENT_OFFSET, 12760 }, - { 0xfb9d, G_UNICODE_NOT_PRESENT_OFFSET, 12760 }, - { 0xfb9e, G_UNICODE_NOT_PRESENT_OFFSET, 12763 }, - { 0xfb9f, G_UNICODE_NOT_PRESENT_OFFSET, 12763 }, - { 0xfba0, G_UNICODE_NOT_PRESENT_OFFSET, 12766 }, - { 0xfba1, G_UNICODE_NOT_PRESENT_OFFSET, 12766 }, - { 0xfba2, G_UNICODE_NOT_PRESENT_OFFSET, 12766 }, - { 0xfba3, G_UNICODE_NOT_PRESENT_OFFSET, 12766 }, - { 0xfba4, G_UNICODE_NOT_PRESENT_OFFSET, 1721 }, - { 0xfba5, G_UNICODE_NOT_PRESENT_OFFSET, 1721 }, - { 0xfba6, G_UNICODE_NOT_PRESENT_OFFSET, 12769 }, - { 0xfba7, G_UNICODE_NOT_PRESENT_OFFSET, 12769 }, - { 0xfba8, G_UNICODE_NOT_PRESENT_OFFSET, 12769 }, - { 0xfba9, G_UNICODE_NOT_PRESENT_OFFSET, 12769 }, - { 0xfbaa, G_UNICODE_NOT_PRESENT_OFFSET, 12772 }, - { 0xfbab, G_UNICODE_NOT_PRESENT_OFFSET, 12772 }, - { 0xfbac, G_UNICODE_NOT_PRESENT_OFFSET, 12772 }, - { 0xfbad, G_UNICODE_NOT_PRESENT_OFFSET, 12772 }, - { 0xfbae, G_UNICODE_NOT_PRESENT_OFFSET, 12775 }, - { 0xfbaf, G_UNICODE_NOT_PRESENT_OFFSET, 12775 }, - { 0xfbb0, G_UNICODE_NOT_PRESENT_OFFSET, 1731 }, - { 0xfbb1, G_UNICODE_NOT_PRESENT_OFFSET, 1731 }, - { 0xfbd3, G_UNICODE_NOT_PRESENT_OFFSET, 12778 }, - { 0xfbd4, G_UNICODE_NOT_PRESENT_OFFSET, 12778 }, - { 0xfbd5, G_UNICODE_NOT_PRESENT_OFFSET, 12778 }, - { 0xfbd6, G_UNICODE_NOT_PRESENT_OFFSET, 12778 }, - { 0xfbd7, G_UNICODE_NOT_PRESENT_OFFSET, 12781 }, - { 0xfbd8, G_UNICODE_NOT_PRESENT_OFFSET, 12781 }, - { 0xfbd9, G_UNICODE_NOT_PRESENT_OFFSET, 12784 }, - { 0xfbda, G_UNICODE_NOT_PRESENT_OFFSET, 12784 }, - { 0xfbdb, G_UNICODE_NOT_PRESENT_OFFSET, 12787 }, - { 0xfbdc, G_UNICODE_NOT_PRESENT_OFFSET, 12787 }, - { 0xfbdd, G_UNICODE_NOT_PRESENT_OFFSET, 1711 }, - { 0xfbde, G_UNICODE_NOT_PRESENT_OFFSET, 12790 }, - { 0xfbdf, G_UNICODE_NOT_PRESENT_OFFSET, 12790 }, - { 0xfbe0, G_UNICODE_NOT_PRESENT_OFFSET, 12793 }, - { 0xfbe1, G_UNICODE_NOT_PRESENT_OFFSET, 12793 }, - { 0xfbe2, G_UNICODE_NOT_PRESENT_OFFSET, 12796 }, - { 0xfbe3, G_UNICODE_NOT_PRESENT_OFFSET, 12796 }, - { 0xfbe4, G_UNICODE_NOT_PRESENT_OFFSET, 12799 }, - { 0xfbe5, G_UNICODE_NOT_PRESENT_OFFSET, 12799 }, - { 0xfbe6, G_UNICODE_NOT_PRESENT_OFFSET, 12799 }, - { 0xfbe7, G_UNICODE_NOT_PRESENT_OFFSET, 12799 }, - { 0xfbe8, G_UNICODE_NOT_PRESENT_OFFSET, 12802 }, - { 0xfbe9, G_UNICODE_NOT_PRESENT_OFFSET, 12802 }, - { 0xfbea, G_UNICODE_NOT_PRESENT_OFFSET, 12805 }, - { 0xfbeb, G_UNICODE_NOT_PRESENT_OFFSET, 12805 }, - { 0xfbec, G_UNICODE_NOT_PRESENT_OFFSET, 12812 }, - { 0xfbed, G_UNICODE_NOT_PRESENT_OFFSET, 12812 }, - { 0xfbee, G_UNICODE_NOT_PRESENT_OFFSET, 12819 }, - { 0xfbef, G_UNICODE_NOT_PRESENT_OFFSET, 12819 }, - { 0xfbf0, G_UNICODE_NOT_PRESENT_OFFSET, 12826 }, - { 0xfbf1, G_UNICODE_NOT_PRESENT_OFFSET, 12826 }, - { 0xfbf2, G_UNICODE_NOT_PRESENT_OFFSET, 12833 }, - { 0xfbf3, G_UNICODE_NOT_PRESENT_OFFSET, 12833 }, - { 0xfbf4, G_UNICODE_NOT_PRESENT_OFFSET, 12840 }, - { 0xfbf5, G_UNICODE_NOT_PRESENT_OFFSET, 12840 }, - { 0xfbf6, G_UNICODE_NOT_PRESENT_OFFSET, 12847 }, - { 0xfbf7, G_UNICODE_NOT_PRESENT_OFFSET, 12847 }, - { 0xfbf8, G_UNICODE_NOT_PRESENT_OFFSET, 12847 }, - { 0xfbf9, G_UNICODE_NOT_PRESENT_OFFSET, 12854 }, - { 0xfbfa, G_UNICODE_NOT_PRESENT_OFFSET, 12854 }, - { 0xfbfb, G_UNICODE_NOT_PRESENT_OFFSET, 12854 }, - { 0xfbfc, G_UNICODE_NOT_PRESENT_OFFSET, 12861 }, - { 0xfbfd, G_UNICODE_NOT_PRESENT_OFFSET, 12861 }, - { 0xfbfe, G_UNICODE_NOT_PRESENT_OFFSET, 12861 }, - { 0xfbff, G_UNICODE_NOT_PRESENT_OFFSET, 12861 }, - { 0xfc00, G_UNICODE_NOT_PRESENT_OFFSET, 12864 }, - { 0xfc01, G_UNICODE_NOT_PRESENT_OFFSET, 12871 }, - { 0xfc02, G_UNICODE_NOT_PRESENT_OFFSET, 12878 }, - { 0xfc03, G_UNICODE_NOT_PRESENT_OFFSET, 12854 }, - { 0xfc04, G_UNICODE_NOT_PRESENT_OFFSET, 12885 }, - { 0xfc05, G_UNICODE_NOT_PRESENT_OFFSET, 12892 }, - { 0xfc06, G_UNICODE_NOT_PRESENT_OFFSET, 12897 }, - { 0xfc07, G_UNICODE_NOT_PRESENT_OFFSET, 12902 }, - { 0xfc08, G_UNICODE_NOT_PRESENT_OFFSET, 12907 }, - { 0xfc09, G_UNICODE_NOT_PRESENT_OFFSET, 12912 }, - { 0xfc0a, G_UNICODE_NOT_PRESENT_OFFSET, 12917 }, - { 0xfc0b, G_UNICODE_NOT_PRESENT_OFFSET, 12922 }, - { 0xfc0c, G_UNICODE_NOT_PRESENT_OFFSET, 12927 }, - { 0xfc0d, G_UNICODE_NOT_PRESENT_OFFSET, 12932 }, - { 0xfc0e, G_UNICODE_NOT_PRESENT_OFFSET, 12937 }, - { 0xfc0f, G_UNICODE_NOT_PRESENT_OFFSET, 12942 }, - { 0xfc10, G_UNICODE_NOT_PRESENT_OFFSET, 12947 }, - { 0xfc11, G_UNICODE_NOT_PRESENT_OFFSET, 12952 }, - { 0xfc12, G_UNICODE_NOT_PRESENT_OFFSET, 12957 }, - { 0xfc13, G_UNICODE_NOT_PRESENT_OFFSET, 12962 }, - { 0xfc14, G_UNICODE_NOT_PRESENT_OFFSET, 12967 }, - { 0xfc15, G_UNICODE_NOT_PRESENT_OFFSET, 12972 }, - { 0xfc16, G_UNICODE_NOT_PRESENT_OFFSET, 12977 }, - { 0xfc17, G_UNICODE_NOT_PRESENT_OFFSET, 12982 }, - { 0xfc18, G_UNICODE_NOT_PRESENT_OFFSET, 12987 }, - { 0xfc19, G_UNICODE_NOT_PRESENT_OFFSET, 12992 }, - { 0xfc1a, G_UNICODE_NOT_PRESENT_OFFSET, 12997 }, - { 0xfc1b, G_UNICODE_NOT_PRESENT_OFFSET, 13002 }, - { 0xfc1c, G_UNICODE_NOT_PRESENT_OFFSET, 13007 }, - { 0xfc1d, G_UNICODE_NOT_PRESENT_OFFSET, 13012 }, - { 0xfc1e, G_UNICODE_NOT_PRESENT_OFFSET, 13017 }, - { 0xfc1f, G_UNICODE_NOT_PRESENT_OFFSET, 13022 }, - { 0xfc20, G_UNICODE_NOT_PRESENT_OFFSET, 13027 }, - { 0xfc21, G_UNICODE_NOT_PRESENT_OFFSET, 13032 }, - { 0xfc22, G_UNICODE_NOT_PRESENT_OFFSET, 13037 }, - { 0xfc23, G_UNICODE_NOT_PRESENT_OFFSET, 13042 }, - { 0xfc24, G_UNICODE_NOT_PRESENT_OFFSET, 13047 }, - { 0xfc25, G_UNICODE_NOT_PRESENT_OFFSET, 13052 }, - { 0xfc26, G_UNICODE_NOT_PRESENT_OFFSET, 13057 }, - { 0xfc27, G_UNICODE_NOT_PRESENT_OFFSET, 13062 }, - { 0xfc28, G_UNICODE_NOT_PRESENT_OFFSET, 13067 }, - { 0xfc29, G_UNICODE_NOT_PRESENT_OFFSET, 13072 }, - { 0xfc2a, G_UNICODE_NOT_PRESENT_OFFSET, 13077 }, - { 0xfc2b, G_UNICODE_NOT_PRESENT_OFFSET, 13082 }, - { 0xfc2c, G_UNICODE_NOT_PRESENT_OFFSET, 13087 }, - { 0xfc2d, G_UNICODE_NOT_PRESENT_OFFSET, 13092 }, - { 0xfc2e, G_UNICODE_NOT_PRESENT_OFFSET, 13097 }, - { 0xfc2f, G_UNICODE_NOT_PRESENT_OFFSET, 13102 }, - { 0xfc30, G_UNICODE_NOT_PRESENT_OFFSET, 13107 }, - { 0xfc31, G_UNICODE_NOT_PRESENT_OFFSET, 13112 }, - { 0xfc32, G_UNICODE_NOT_PRESENT_OFFSET, 13117 }, - { 0xfc33, G_UNICODE_NOT_PRESENT_OFFSET, 13122 }, - { 0xfc34, G_UNICODE_NOT_PRESENT_OFFSET, 13127 }, - { 0xfc35, G_UNICODE_NOT_PRESENT_OFFSET, 13132 }, - { 0xfc36, G_UNICODE_NOT_PRESENT_OFFSET, 13137 }, - { 0xfc37, G_UNICODE_NOT_PRESENT_OFFSET, 13142 }, - { 0xfc38, G_UNICODE_NOT_PRESENT_OFFSET, 13147 }, - { 0xfc39, G_UNICODE_NOT_PRESENT_OFFSET, 13152 }, - { 0xfc3a, G_UNICODE_NOT_PRESENT_OFFSET, 13157 }, - { 0xfc3b, G_UNICODE_NOT_PRESENT_OFFSET, 13162 }, - { 0xfc3c, G_UNICODE_NOT_PRESENT_OFFSET, 13167 }, - { 0xfc3d, G_UNICODE_NOT_PRESENT_OFFSET, 13172 }, - { 0xfc3e, G_UNICODE_NOT_PRESENT_OFFSET, 13177 }, - { 0xfc3f, G_UNICODE_NOT_PRESENT_OFFSET, 13182 }, - { 0xfc40, G_UNICODE_NOT_PRESENT_OFFSET, 13187 }, - { 0xfc41, G_UNICODE_NOT_PRESENT_OFFSET, 13192 }, - { 0xfc42, G_UNICODE_NOT_PRESENT_OFFSET, 13197 }, - { 0xfc43, G_UNICODE_NOT_PRESENT_OFFSET, 13202 }, - { 0xfc44, G_UNICODE_NOT_PRESENT_OFFSET, 13207 }, - { 0xfc45, G_UNICODE_NOT_PRESENT_OFFSET, 13212 }, - { 0xfc46, G_UNICODE_NOT_PRESENT_OFFSET, 13217 }, - { 0xfc47, G_UNICODE_NOT_PRESENT_OFFSET, 13222 }, - { 0xfc48, G_UNICODE_NOT_PRESENT_OFFSET, 13227 }, - { 0xfc49, G_UNICODE_NOT_PRESENT_OFFSET, 13232 }, - { 0xfc4a, G_UNICODE_NOT_PRESENT_OFFSET, 13237 }, - { 0xfc4b, G_UNICODE_NOT_PRESENT_OFFSET, 13242 }, - { 0xfc4c, G_UNICODE_NOT_PRESENT_OFFSET, 13247 }, - { 0xfc4d, G_UNICODE_NOT_PRESENT_OFFSET, 13252 }, - { 0xfc4e, G_UNICODE_NOT_PRESENT_OFFSET, 13257 }, - { 0xfc4f, G_UNICODE_NOT_PRESENT_OFFSET, 13262 }, - { 0xfc50, G_UNICODE_NOT_PRESENT_OFFSET, 13267 }, - { 0xfc51, G_UNICODE_NOT_PRESENT_OFFSET, 13272 }, - { 0xfc52, G_UNICODE_NOT_PRESENT_OFFSET, 13277 }, - { 0xfc53, G_UNICODE_NOT_PRESENT_OFFSET, 13282 }, - { 0xfc54, G_UNICODE_NOT_PRESENT_OFFSET, 13287 }, - { 0xfc55, G_UNICODE_NOT_PRESENT_OFFSET, 13292 }, - { 0xfc56, G_UNICODE_NOT_PRESENT_OFFSET, 13297 }, - { 0xfc57, G_UNICODE_NOT_PRESENT_OFFSET, 13302 }, - { 0xfc58, G_UNICODE_NOT_PRESENT_OFFSET, 13307 }, - { 0xfc59, G_UNICODE_NOT_PRESENT_OFFSET, 13312 }, - { 0xfc5a, G_UNICODE_NOT_PRESENT_OFFSET, 13317 }, - { 0xfc5b, G_UNICODE_NOT_PRESENT_OFFSET, 13322 }, - { 0xfc5c, G_UNICODE_NOT_PRESENT_OFFSET, 13327 }, - { 0xfc5d, G_UNICODE_NOT_PRESENT_OFFSET, 13332 }, - { 0xfc5e, G_UNICODE_NOT_PRESENT_OFFSET, 13337 }, - { 0xfc5f, G_UNICODE_NOT_PRESENT_OFFSET, 13343 }, - { 0xfc60, G_UNICODE_NOT_PRESENT_OFFSET, 13349 }, - { 0xfc61, G_UNICODE_NOT_PRESENT_OFFSET, 13355 }, - { 0xfc62, G_UNICODE_NOT_PRESENT_OFFSET, 13361 }, - { 0xfc63, G_UNICODE_NOT_PRESENT_OFFSET, 13367 }, - { 0xfc64, G_UNICODE_NOT_PRESENT_OFFSET, 13373 }, - { 0xfc65, G_UNICODE_NOT_PRESENT_OFFSET, 13380 }, - { 0xfc66, G_UNICODE_NOT_PRESENT_OFFSET, 12878 }, - { 0xfc67, G_UNICODE_NOT_PRESENT_OFFSET, 13387 }, - { 0xfc68, G_UNICODE_NOT_PRESENT_OFFSET, 12854 }, - { 0xfc69, G_UNICODE_NOT_PRESENT_OFFSET, 12885 }, - { 0xfc6a, G_UNICODE_NOT_PRESENT_OFFSET, 13394 }, - { 0xfc6b, G_UNICODE_NOT_PRESENT_OFFSET, 13399 }, - { 0xfc6c, G_UNICODE_NOT_PRESENT_OFFSET, 12907 }, - { 0xfc6d, G_UNICODE_NOT_PRESENT_OFFSET, 13404 }, - { 0xfc6e, G_UNICODE_NOT_PRESENT_OFFSET, 12912 }, - { 0xfc6f, G_UNICODE_NOT_PRESENT_OFFSET, 12917 }, - { 0xfc70, G_UNICODE_NOT_PRESENT_OFFSET, 13409 }, - { 0xfc71, G_UNICODE_NOT_PRESENT_OFFSET, 13414 }, - { 0xfc72, G_UNICODE_NOT_PRESENT_OFFSET, 12937 }, - { 0xfc73, G_UNICODE_NOT_PRESENT_OFFSET, 13419 }, - { 0xfc74, G_UNICODE_NOT_PRESENT_OFFSET, 12942 }, - { 0xfc75, G_UNICODE_NOT_PRESENT_OFFSET, 12947 }, - { 0xfc76, G_UNICODE_NOT_PRESENT_OFFSET, 13424 }, - { 0xfc77, G_UNICODE_NOT_PRESENT_OFFSET, 13429 }, - { 0xfc78, G_UNICODE_NOT_PRESENT_OFFSET, 12957 }, - { 0xfc79, G_UNICODE_NOT_PRESENT_OFFSET, 13434 }, - { 0xfc7a, G_UNICODE_NOT_PRESENT_OFFSET, 12962 }, - { 0xfc7b, G_UNICODE_NOT_PRESENT_OFFSET, 12967 }, - { 0xfc7c, G_UNICODE_NOT_PRESENT_OFFSET, 13112 }, - { 0xfc7d, G_UNICODE_NOT_PRESENT_OFFSET, 13117 }, - { 0xfc7e, G_UNICODE_NOT_PRESENT_OFFSET, 13132 }, - { 0xfc7f, G_UNICODE_NOT_PRESENT_OFFSET, 13137 }, - { 0xfc80, G_UNICODE_NOT_PRESENT_OFFSET, 13142 }, - { 0xfc81, G_UNICODE_NOT_PRESENT_OFFSET, 13162 }, - { 0xfc82, G_UNICODE_NOT_PRESENT_OFFSET, 13167 }, - { 0xfc83, G_UNICODE_NOT_PRESENT_OFFSET, 13172 }, - { 0xfc84, G_UNICODE_NOT_PRESENT_OFFSET, 13177 }, - { 0xfc85, G_UNICODE_NOT_PRESENT_OFFSET, 13197 }, - { 0xfc86, G_UNICODE_NOT_PRESENT_OFFSET, 13202 }, - { 0xfc87, G_UNICODE_NOT_PRESENT_OFFSET, 13207 }, - { 0xfc88, G_UNICODE_NOT_PRESENT_OFFSET, 13439 }, - { 0xfc89, G_UNICODE_NOT_PRESENT_OFFSET, 13227 }, - { 0xfc8a, G_UNICODE_NOT_PRESENT_OFFSET, 13444 }, - { 0xfc8b, G_UNICODE_NOT_PRESENT_OFFSET, 13449 }, - { 0xfc8c, G_UNICODE_NOT_PRESENT_OFFSET, 13257 }, - { 0xfc8d, G_UNICODE_NOT_PRESENT_OFFSET, 13454 }, - { 0xfc8e, G_UNICODE_NOT_PRESENT_OFFSET, 13262 }, - { 0xfc8f, G_UNICODE_NOT_PRESENT_OFFSET, 13267 }, - { 0xfc90, G_UNICODE_NOT_PRESENT_OFFSET, 13332 }, - { 0xfc91, G_UNICODE_NOT_PRESENT_OFFSET, 13459 }, - { 0xfc92, G_UNICODE_NOT_PRESENT_OFFSET, 13464 }, - { 0xfc93, G_UNICODE_NOT_PRESENT_OFFSET, 13307 }, - { 0xfc94, G_UNICODE_NOT_PRESENT_OFFSET, 13469 }, - { 0xfc95, G_UNICODE_NOT_PRESENT_OFFSET, 13312 }, - { 0xfc96, G_UNICODE_NOT_PRESENT_OFFSET, 13317 }, - { 0xfc97, G_UNICODE_NOT_PRESENT_OFFSET, 12864 }, - { 0xfc98, G_UNICODE_NOT_PRESENT_OFFSET, 12871 }, - { 0xfc99, G_UNICODE_NOT_PRESENT_OFFSET, 13474 }, - { 0xfc9a, G_UNICODE_NOT_PRESENT_OFFSET, 12878 }, - { 0xfc9b, G_UNICODE_NOT_PRESENT_OFFSET, 13481 }, - { 0xfc9c, G_UNICODE_NOT_PRESENT_OFFSET, 12892 }, - { 0xfc9d, G_UNICODE_NOT_PRESENT_OFFSET, 12897 }, - { 0xfc9e, G_UNICODE_NOT_PRESENT_OFFSET, 12902 }, - { 0xfc9f, G_UNICODE_NOT_PRESENT_OFFSET, 12907 }, - { 0xfca0, G_UNICODE_NOT_PRESENT_OFFSET, 13488 }, - { 0xfca1, G_UNICODE_NOT_PRESENT_OFFSET, 12922 }, - { 0xfca2, G_UNICODE_NOT_PRESENT_OFFSET, 12927 }, - { 0xfca3, G_UNICODE_NOT_PRESENT_OFFSET, 12932 }, - { 0xfca4, G_UNICODE_NOT_PRESENT_OFFSET, 12937 }, - { 0xfca5, G_UNICODE_NOT_PRESENT_OFFSET, 13493 }, - { 0xfca6, G_UNICODE_NOT_PRESENT_OFFSET, 12957 }, - { 0xfca7, G_UNICODE_NOT_PRESENT_OFFSET, 12972 }, - { 0xfca8, G_UNICODE_NOT_PRESENT_OFFSET, 12977 }, - { 0xfca9, G_UNICODE_NOT_PRESENT_OFFSET, 12982 }, - { 0xfcaa, G_UNICODE_NOT_PRESENT_OFFSET, 12987 }, - { 0xfcab, G_UNICODE_NOT_PRESENT_OFFSET, 12992 }, - { 0xfcac, G_UNICODE_NOT_PRESENT_OFFSET, 13002 }, - { 0xfcad, G_UNICODE_NOT_PRESENT_OFFSET, 13007 }, - { 0xfcae, G_UNICODE_NOT_PRESENT_OFFSET, 13012 }, - { 0xfcaf, G_UNICODE_NOT_PRESENT_OFFSET, 13017 }, - { 0xfcb0, G_UNICODE_NOT_PRESENT_OFFSET, 13022 }, - { 0xfcb1, G_UNICODE_NOT_PRESENT_OFFSET, 13027 }, - { 0xfcb2, G_UNICODE_NOT_PRESENT_OFFSET, 13498 }, - { 0xfcb3, G_UNICODE_NOT_PRESENT_OFFSET, 13032 }, - { 0xfcb4, G_UNICODE_NOT_PRESENT_OFFSET, 13037 }, - { 0xfcb5, G_UNICODE_NOT_PRESENT_OFFSET, 13042 }, - { 0xfcb6, G_UNICODE_NOT_PRESENT_OFFSET, 13047 }, - { 0xfcb7, G_UNICODE_NOT_PRESENT_OFFSET, 13052 }, - { 0xfcb8, G_UNICODE_NOT_PRESENT_OFFSET, 13057 }, - { 0xfcb9, G_UNICODE_NOT_PRESENT_OFFSET, 13067 }, - { 0xfcba, G_UNICODE_NOT_PRESENT_OFFSET, 13072 }, - { 0xfcbb, G_UNICODE_NOT_PRESENT_OFFSET, 13077 }, - { 0xfcbc, G_UNICODE_NOT_PRESENT_OFFSET, 13082 }, - { 0xfcbd, G_UNICODE_NOT_PRESENT_OFFSET, 13087 }, - { 0xfcbe, G_UNICODE_NOT_PRESENT_OFFSET, 13092 }, - { 0xfcbf, G_UNICODE_NOT_PRESENT_OFFSET, 13097 }, - { 0xfcc0, G_UNICODE_NOT_PRESENT_OFFSET, 13102 }, - { 0xfcc1, G_UNICODE_NOT_PRESENT_OFFSET, 13107 }, - { 0xfcc2, G_UNICODE_NOT_PRESENT_OFFSET, 13122 }, - { 0xfcc3, G_UNICODE_NOT_PRESENT_OFFSET, 13127 }, - { 0xfcc4, G_UNICODE_NOT_PRESENT_OFFSET, 13147 }, - { 0xfcc5, G_UNICODE_NOT_PRESENT_OFFSET, 13152 }, - { 0xfcc6, G_UNICODE_NOT_PRESENT_OFFSET, 13157 }, - { 0xfcc7, G_UNICODE_NOT_PRESENT_OFFSET, 13162 }, - { 0xfcc8, G_UNICODE_NOT_PRESENT_OFFSET, 13167 }, - { 0xfcc9, G_UNICODE_NOT_PRESENT_OFFSET, 13182 }, - { 0xfcca, G_UNICODE_NOT_PRESENT_OFFSET, 13187 }, - { 0xfccb, G_UNICODE_NOT_PRESENT_OFFSET, 13192 }, - { 0xfccc, G_UNICODE_NOT_PRESENT_OFFSET, 13197 }, - { 0xfccd, G_UNICODE_NOT_PRESENT_OFFSET, 13503 }, - { 0xfcce, G_UNICODE_NOT_PRESENT_OFFSET, 13212 }, - { 0xfccf, G_UNICODE_NOT_PRESENT_OFFSET, 13217 }, - { 0xfcd0, G_UNICODE_NOT_PRESENT_OFFSET, 13222 }, - { 0xfcd1, G_UNICODE_NOT_PRESENT_OFFSET, 13227 }, - { 0xfcd2, G_UNICODE_NOT_PRESENT_OFFSET, 13242 }, - { 0xfcd3, G_UNICODE_NOT_PRESENT_OFFSET, 13247 }, - { 0xfcd4, G_UNICODE_NOT_PRESENT_OFFSET, 13252 }, - { 0xfcd5, G_UNICODE_NOT_PRESENT_OFFSET, 13257 }, - { 0xfcd6, G_UNICODE_NOT_PRESENT_OFFSET, 13508 }, - { 0xfcd7, G_UNICODE_NOT_PRESENT_OFFSET, 13272 }, - { 0xfcd8, G_UNICODE_NOT_PRESENT_OFFSET, 13277 }, - { 0xfcd9, G_UNICODE_NOT_PRESENT_OFFSET, 13513 }, - { 0xfcda, G_UNICODE_NOT_PRESENT_OFFSET, 13292 }, - { 0xfcdb, G_UNICODE_NOT_PRESENT_OFFSET, 13297 }, - { 0xfcdc, G_UNICODE_NOT_PRESENT_OFFSET, 13302 }, - { 0xfcdd, G_UNICODE_NOT_PRESENT_OFFSET, 13307 }, - { 0xfcde, G_UNICODE_NOT_PRESENT_OFFSET, 13518 }, - { 0xfcdf, G_UNICODE_NOT_PRESENT_OFFSET, 12878 }, - { 0xfce0, G_UNICODE_NOT_PRESENT_OFFSET, 13481 }, - { 0xfce1, G_UNICODE_NOT_PRESENT_OFFSET, 12907 }, - { 0xfce2, G_UNICODE_NOT_PRESENT_OFFSET, 13488 }, - { 0xfce3, G_UNICODE_NOT_PRESENT_OFFSET, 12937 }, - { 0xfce4, G_UNICODE_NOT_PRESENT_OFFSET, 13493 }, - { 0xfce5, G_UNICODE_NOT_PRESENT_OFFSET, 12957 }, - { 0xfce6, G_UNICODE_NOT_PRESENT_OFFSET, 13523 }, - { 0xfce7, G_UNICODE_NOT_PRESENT_OFFSET, 13022 }, - { 0xfce8, G_UNICODE_NOT_PRESENT_OFFSET, 13528 }, - { 0xfce9, G_UNICODE_NOT_PRESENT_OFFSET, 13533 }, - { 0xfcea, G_UNICODE_NOT_PRESENT_OFFSET, 13538 }, - { 0xfceb, G_UNICODE_NOT_PRESENT_OFFSET, 13162 }, - { 0xfcec, G_UNICODE_NOT_PRESENT_OFFSET, 13167 }, - { 0xfced, G_UNICODE_NOT_PRESENT_OFFSET, 13197 }, - { 0xfcee, G_UNICODE_NOT_PRESENT_OFFSET, 13257 }, - { 0xfcef, G_UNICODE_NOT_PRESENT_OFFSET, 13508 }, - { 0xfcf0, G_UNICODE_NOT_PRESENT_OFFSET, 13307 }, - { 0xfcf1, G_UNICODE_NOT_PRESENT_OFFSET, 13518 }, - { 0xfcf2, G_UNICODE_NOT_PRESENT_OFFSET, 13543 }, - { 0xfcf3, G_UNICODE_NOT_PRESENT_OFFSET, 13550 }, - { 0xfcf4, G_UNICODE_NOT_PRESENT_OFFSET, 13557 }, - { 0xfcf5, G_UNICODE_NOT_PRESENT_OFFSET, 13564 }, - { 0xfcf6, G_UNICODE_NOT_PRESENT_OFFSET, 13569 }, - { 0xfcf7, G_UNICODE_NOT_PRESENT_OFFSET, 13574 }, - { 0xfcf8, G_UNICODE_NOT_PRESENT_OFFSET, 13579 }, - { 0xfcf9, G_UNICODE_NOT_PRESENT_OFFSET, 13584 }, - { 0xfcfa, G_UNICODE_NOT_PRESENT_OFFSET, 13589 }, - { 0xfcfb, G_UNICODE_NOT_PRESENT_OFFSET, 13594 }, - { 0xfcfc, G_UNICODE_NOT_PRESENT_OFFSET, 13599 }, - { 0xfcfd, G_UNICODE_NOT_PRESENT_OFFSET, 13604 }, - { 0xfcfe, G_UNICODE_NOT_PRESENT_OFFSET, 13609 }, - { 0xfcff, G_UNICODE_NOT_PRESENT_OFFSET, 13614 }, - { 0xfd00, G_UNICODE_NOT_PRESENT_OFFSET, 13619 }, - { 0xfd01, G_UNICODE_NOT_PRESENT_OFFSET, 13624 }, - { 0xfd02, G_UNICODE_NOT_PRESENT_OFFSET, 13629 }, - { 0xfd03, G_UNICODE_NOT_PRESENT_OFFSET, 13634 }, - { 0xfd04, G_UNICODE_NOT_PRESENT_OFFSET, 13639 }, - { 0xfd05, G_UNICODE_NOT_PRESENT_OFFSET, 13644 }, - { 0xfd06, G_UNICODE_NOT_PRESENT_OFFSET, 13649 }, - { 0xfd07, G_UNICODE_NOT_PRESENT_OFFSET, 13654 }, - { 0xfd08, G_UNICODE_NOT_PRESENT_OFFSET, 13659 }, - { 0xfd09, G_UNICODE_NOT_PRESENT_OFFSET, 13664 }, - { 0xfd0a, G_UNICODE_NOT_PRESENT_OFFSET, 13669 }, - { 0xfd0b, G_UNICODE_NOT_PRESENT_OFFSET, 13674 }, - { 0xfd0c, G_UNICODE_NOT_PRESENT_OFFSET, 13533 }, - { 0xfd0d, G_UNICODE_NOT_PRESENT_OFFSET, 13679 }, - { 0xfd0e, G_UNICODE_NOT_PRESENT_OFFSET, 13684 }, - { 0xfd0f, G_UNICODE_NOT_PRESENT_OFFSET, 13689 }, - { 0xfd10, G_UNICODE_NOT_PRESENT_OFFSET, 13694 }, - { 0xfd11, G_UNICODE_NOT_PRESENT_OFFSET, 13564 }, - { 0xfd12, G_UNICODE_NOT_PRESENT_OFFSET, 13569 }, - { 0xfd13, G_UNICODE_NOT_PRESENT_OFFSET, 13574 }, - { 0xfd14, G_UNICODE_NOT_PRESENT_OFFSET, 13579 }, - { 0xfd15, G_UNICODE_NOT_PRESENT_OFFSET, 13584 }, - { 0xfd16, G_UNICODE_NOT_PRESENT_OFFSET, 13589 }, - { 0xfd17, G_UNICODE_NOT_PRESENT_OFFSET, 13594 }, - { 0xfd18, G_UNICODE_NOT_PRESENT_OFFSET, 13599 }, - { 0xfd19, G_UNICODE_NOT_PRESENT_OFFSET, 13604 }, - { 0xfd1a, G_UNICODE_NOT_PRESENT_OFFSET, 13609 }, - { 0xfd1b, G_UNICODE_NOT_PRESENT_OFFSET, 13614 }, - { 0xfd1c, G_UNICODE_NOT_PRESENT_OFFSET, 13619 }, - { 0xfd1d, G_UNICODE_NOT_PRESENT_OFFSET, 13624 }, - { 0xfd1e, G_UNICODE_NOT_PRESENT_OFFSET, 13629 }, - { 0xfd1f, G_UNICODE_NOT_PRESENT_OFFSET, 13634 }, - { 0xfd20, G_UNICODE_NOT_PRESENT_OFFSET, 13639 }, - { 0xfd21, G_UNICODE_NOT_PRESENT_OFFSET, 13644 }, - { 0xfd22, G_UNICODE_NOT_PRESENT_OFFSET, 13649 }, - { 0xfd23, G_UNICODE_NOT_PRESENT_OFFSET, 13654 }, - { 0xfd24, G_UNICODE_NOT_PRESENT_OFFSET, 13659 }, - { 0xfd25, G_UNICODE_NOT_PRESENT_OFFSET, 13664 }, - { 0xfd26, G_UNICODE_NOT_PRESENT_OFFSET, 13669 }, - { 0xfd27, G_UNICODE_NOT_PRESENT_OFFSET, 13674 }, - { 0xfd28, G_UNICODE_NOT_PRESENT_OFFSET, 13533 }, - { 0xfd29, G_UNICODE_NOT_PRESENT_OFFSET, 13679 }, - { 0xfd2a, G_UNICODE_NOT_PRESENT_OFFSET, 13684 }, - { 0xfd2b, G_UNICODE_NOT_PRESENT_OFFSET, 13689 }, - { 0xfd2c, G_UNICODE_NOT_PRESENT_OFFSET, 13694 }, - { 0xfd2d, G_UNICODE_NOT_PRESENT_OFFSET, 13664 }, - { 0xfd2e, G_UNICODE_NOT_PRESENT_OFFSET, 13669 }, - { 0xfd2f, G_UNICODE_NOT_PRESENT_OFFSET, 13674 }, - { 0xfd30, G_UNICODE_NOT_PRESENT_OFFSET, 13533 }, - { 0xfd31, G_UNICODE_NOT_PRESENT_OFFSET, 13528 }, - { 0xfd32, G_UNICODE_NOT_PRESENT_OFFSET, 13538 }, - { 0xfd33, G_UNICODE_NOT_PRESENT_OFFSET, 13062 }, - { 0xfd34, G_UNICODE_NOT_PRESENT_OFFSET, 13007 }, - { 0xfd35, G_UNICODE_NOT_PRESENT_OFFSET, 13012 }, - { 0xfd36, G_UNICODE_NOT_PRESENT_OFFSET, 13017 }, - { 0xfd37, G_UNICODE_NOT_PRESENT_OFFSET, 13664 }, - { 0xfd38, G_UNICODE_NOT_PRESENT_OFFSET, 13669 }, - { 0xfd39, G_UNICODE_NOT_PRESENT_OFFSET, 13674 }, - { 0xfd3a, G_UNICODE_NOT_PRESENT_OFFSET, 13062 }, - { 0xfd3b, G_UNICODE_NOT_PRESENT_OFFSET, 13067 }, - { 0xfd3c, G_UNICODE_NOT_PRESENT_OFFSET, 13699 }, - { 0xfd3d, G_UNICODE_NOT_PRESENT_OFFSET, 13699 }, - { 0xfd50, G_UNICODE_NOT_PRESENT_OFFSET, 13704 }, - { 0xfd51, G_UNICODE_NOT_PRESENT_OFFSET, 13711 }, - { 0xfd52, G_UNICODE_NOT_PRESENT_OFFSET, 13711 }, - { 0xfd53, G_UNICODE_NOT_PRESENT_OFFSET, 13718 }, - { 0xfd54, G_UNICODE_NOT_PRESENT_OFFSET, 13725 }, - { 0xfd55, G_UNICODE_NOT_PRESENT_OFFSET, 13732 }, - { 0xfd56, G_UNICODE_NOT_PRESENT_OFFSET, 13739 }, - { 0xfd57, G_UNICODE_NOT_PRESENT_OFFSET, 13746 }, - { 0xfd58, G_UNICODE_NOT_PRESENT_OFFSET, 13753 }, - { 0xfd59, G_UNICODE_NOT_PRESENT_OFFSET, 13753 }, - { 0xfd5a, G_UNICODE_NOT_PRESENT_OFFSET, 13760 }, - { 0xfd5b, G_UNICODE_NOT_PRESENT_OFFSET, 13767 }, - { 0xfd5c, G_UNICODE_NOT_PRESENT_OFFSET, 13774 }, - { 0xfd5d, G_UNICODE_NOT_PRESENT_OFFSET, 13781 }, - { 0xfd5e, G_UNICODE_NOT_PRESENT_OFFSET, 13788 }, - { 0xfd5f, G_UNICODE_NOT_PRESENT_OFFSET, 13795 }, - { 0xfd60, G_UNICODE_NOT_PRESENT_OFFSET, 13795 }, - { 0xfd61, G_UNICODE_NOT_PRESENT_OFFSET, 13802 }, - { 0xfd62, G_UNICODE_NOT_PRESENT_OFFSET, 13809 }, - { 0xfd63, G_UNICODE_NOT_PRESENT_OFFSET, 13809 }, - { 0xfd64, G_UNICODE_NOT_PRESENT_OFFSET, 13816 }, - { 0xfd65, G_UNICODE_NOT_PRESENT_OFFSET, 13816 }, - { 0xfd66, G_UNICODE_NOT_PRESENT_OFFSET, 13823 }, - { 0xfd67, G_UNICODE_NOT_PRESENT_OFFSET, 13830 }, - { 0xfd68, G_UNICODE_NOT_PRESENT_OFFSET, 13830 }, - { 0xfd69, G_UNICODE_NOT_PRESENT_OFFSET, 13837 }, - { 0xfd6a, G_UNICODE_NOT_PRESENT_OFFSET, 13844 }, - { 0xfd6b, G_UNICODE_NOT_PRESENT_OFFSET, 13844 }, - { 0xfd6c, G_UNICODE_NOT_PRESENT_OFFSET, 13851 }, - { 0xfd6d, G_UNICODE_NOT_PRESENT_OFFSET, 13851 }, - { 0xfd6e, G_UNICODE_NOT_PRESENT_OFFSET, 13858 }, - { 0xfd6f, G_UNICODE_NOT_PRESENT_OFFSET, 13865 }, - { 0xfd70, G_UNICODE_NOT_PRESENT_OFFSET, 13865 }, - { 0xfd71, G_UNICODE_NOT_PRESENT_OFFSET, 13872 }, - { 0xfd72, G_UNICODE_NOT_PRESENT_OFFSET, 13872 }, - { 0xfd73, G_UNICODE_NOT_PRESENT_OFFSET, 13879 }, - { 0xfd74, G_UNICODE_NOT_PRESENT_OFFSET, 13886 }, - { 0xfd75, G_UNICODE_NOT_PRESENT_OFFSET, 13893 }, - { 0xfd76, G_UNICODE_NOT_PRESENT_OFFSET, 13900 }, - { 0xfd77, G_UNICODE_NOT_PRESENT_OFFSET, 13900 }, - { 0xfd78, G_UNICODE_NOT_PRESENT_OFFSET, 13907 }, - { 0xfd79, G_UNICODE_NOT_PRESENT_OFFSET, 13914 }, - { 0xfd7a, G_UNICODE_NOT_PRESENT_OFFSET, 13921 }, - { 0xfd7b, G_UNICODE_NOT_PRESENT_OFFSET, 13928 }, - { 0xfd7c, G_UNICODE_NOT_PRESENT_OFFSET, 13935 }, - { 0xfd7d, G_UNICODE_NOT_PRESENT_OFFSET, 13935 }, - { 0xfd7e, G_UNICODE_NOT_PRESENT_OFFSET, 13942 }, - { 0xfd7f, G_UNICODE_NOT_PRESENT_OFFSET, 13949 }, - { 0xfd80, G_UNICODE_NOT_PRESENT_OFFSET, 13956 }, - { 0xfd81, G_UNICODE_NOT_PRESENT_OFFSET, 13963 }, - { 0xfd82, G_UNICODE_NOT_PRESENT_OFFSET, 13970 }, - { 0xfd83, G_UNICODE_NOT_PRESENT_OFFSET, 13977 }, - { 0xfd84, G_UNICODE_NOT_PRESENT_OFFSET, 13977 }, - { 0xfd85, G_UNICODE_NOT_PRESENT_OFFSET, 13984 }, - { 0xfd86, G_UNICODE_NOT_PRESENT_OFFSET, 13984 }, - { 0xfd87, G_UNICODE_NOT_PRESENT_OFFSET, 13991 }, - { 0xfd88, G_UNICODE_NOT_PRESENT_OFFSET, 13991 }, - { 0xfd89, G_UNICODE_NOT_PRESENT_OFFSET, 13998 }, - { 0xfd8a, G_UNICODE_NOT_PRESENT_OFFSET, 14005 }, - { 0xfd8b, G_UNICODE_NOT_PRESENT_OFFSET, 14012 }, - { 0xfd8c, G_UNICODE_NOT_PRESENT_OFFSET, 14019 }, - { 0xfd8d, G_UNICODE_NOT_PRESENT_OFFSET, 14026 }, - { 0xfd8e, G_UNICODE_NOT_PRESENT_OFFSET, 14033 }, - { 0xfd8f, G_UNICODE_NOT_PRESENT_OFFSET, 14040 }, - { 0xfd92, G_UNICODE_NOT_PRESENT_OFFSET, 14047 }, - { 0xfd93, G_UNICODE_NOT_PRESENT_OFFSET, 14054 }, - { 0xfd94, G_UNICODE_NOT_PRESENT_OFFSET, 14061 }, - { 0xfd95, G_UNICODE_NOT_PRESENT_OFFSET, 14068 }, - { 0xfd96, G_UNICODE_NOT_PRESENT_OFFSET, 14075 }, - { 0xfd97, G_UNICODE_NOT_PRESENT_OFFSET, 14082 }, - { 0xfd98, G_UNICODE_NOT_PRESENT_OFFSET, 14082 }, - { 0xfd99, G_UNICODE_NOT_PRESENT_OFFSET, 14089 }, - { 0xfd9a, G_UNICODE_NOT_PRESENT_OFFSET, 14096 }, - { 0xfd9b, G_UNICODE_NOT_PRESENT_OFFSET, 14103 }, - { 0xfd9c, G_UNICODE_NOT_PRESENT_OFFSET, 14110 }, - { 0xfd9d, G_UNICODE_NOT_PRESENT_OFFSET, 14110 }, - { 0xfd9e, G_UNICODE_NOT_PRESENT_OFFSET, 14117 }, - { 0xfd9f, G_UNICODE_NOT_PRESENT_OFFSET, 14124 }, - { 0xfda0, G_UNICODE_NOT_PRESENT_OFFSET, 14131 }, - { 0xfda1, G_UNICODE_NOT_PRESENT_OFFSET, 14138 }, - { 0xfda2, G_UNICODE_NOT_PRESENT_OFFSET, 14145 }, - { 0xfda3, G_UNICODE_NOT_PRESENT_OFFSET, 14152 }, - { 0xfda4, G_UNICODE_NOT_PRESENT_OFFSET, 14159 }, - { 0xfda5, G_UNICODE_NOT_PRESENT_OFFSET, 14166 }, - { 0xfda6, G_UNICODE_NOT_PRESENT_OFFSET, 14173 }, - { 0xfda7, G_UNICODE_NOT_PRESENT_OFFSET, 14180 }, - { 0xfda8, G_UNICODE_NOT_PRESENT_OFFSET, 14187 }, - { 0xfda9, G_UNICODE_NOT_PRESENT_OFFSET, 14194 }, - { 0xfdaa, G_UNICODE_NOT_PRESENT_OFFSET, 14201 }, - { 0xfdab, G_UNICODE_NOT_PRESENT_OFFSET, 14208 }, - { 0xfdac, G_UNICODE_NOT_PRESENT_OFFSET, 14215 }, - { 0xfdad, G_UNICODE_NOT_PRESENT_OFFSET, 14222 }, - { 0xfdae, G_UNICODE_NOT_PRESENT_OFFSET, 14229 }, - { 0xfdaf, G_UNICODE_NOT_PRESENT_OFFSET, 14236 }, - { 0xfdb0, G_UNICODE_NOT_PRESENT_OFFSET, 14243 }, - { 0xfdb1, G_UNICODE_NOT_PRESENT_OFFSET, 14250 }, - { 0xfdb2, G_UNICODE_NOT_PRESENT_OFFSET, 14257 }, - { 0xfdb3, G_UNICODE_NOT_PRESENT_OFFSET, 14264 }, - { 0xfdb4, G_UNICODE_NOT_PRESENT_OFFSET, 13942 }, - { 0xfdb5, G_UNICODE_NOT_PRESENT_OFFSET, 13956 }, - { 0xfdb6, G_UNICODE_NOT_PRESENT_OFFSET, 14271 }, - { 0xfdb7, G_UNICODE_NOT_PRESENT_OFFSET, 14278 }, - { 0xfdb8, G_UNICODE_NOT_PRESENT_OFFSET, 14285 }, - { 0xfdb9, G_UNICODE_NOT_PRESENT_OFFSET, 14292 }, - { 0xfdba, G_UNICODE_NOT_PRESENT_OFFSET, 14299 }, - { 0xfdbb, G_UNICODE_NOT_PRESENT_OFFSET, 14306 }, - { 0xfdbc, G_UNICODE_NOT_PRESENT_OFFSET, 14299 }, - { 0xfdbd, G_UNICODE_NOT_PRESENT_OFFSET, 14285 }, - { 0xfdbe, G_UNICODE_NOT_PRESENT_OFFSET, 14313 }, - { 0xfdbf, G_UNICODE_NOT_PRESENT_OFFSET, 14320 }, - { 0xfdc0, G_UNICODE_NOT_PRESENT_OFFSET, 14327 }, - { 0xfdc1, G_UNICODE_NOT_PRESENT_OFFSET, 14334 }, - { 0xfdc2, G_UNICODE_NOT_PRESENT_OFFSET, 14341 }, - { 0xfdc3, G_UNICODE_NOT_PRESENT_OFFSET, 14306 }, - { 0xfdc4, G_UNICODE_NOT_PRESENT_OFFSET, 13893 }, - { 0xfdc5, G_UNICODE_NOT_PRESENT_OFFSET, 13823 }, - { 0xfdc6, G_UNICODE_NOT_PRESENT_OFFSET, 14348 }, - { 0xfdc7, G_UNICODE_NOT_PRESENT_OFFSET, 14355 }, - { 0xfdf0, G_UNICODE_NOT_PRESENT_OFFSET, 14362 }, - { 0xfdf1, G_UNICODE_NOT_PRESENT_OFFSET, 14369 }, - { 0xfdf2, G_UNICODE_NOT_PRESENT_OFFSET, 14376 }, - { 0xfdf3, G_UNICODE_NOT_PRESENT_OFFSET, 14385 }, - { 0xfdf4, G_UNICODE_NOT_PRESENT_OFFSET, 14394 }, - { 0xfdf5, G_UNICODE_NOT_PRESENT_OFFSET, 14403 }, - { 0xfdf6, G_UNICODE_NOT_PRESENT_OFFSET, 14412 }, - { 0xfdf7, G_UNICODE_NOT_PRESENT_OFFSET, 14421 }, - { 0xfdf8, G_UNICODE_NOT_PRESENT_OFFSET, 14430 }, - { 0xfdf9, G_UNICODE_NOT_PRESENT_OFFSET, 14439 }, - { 0xfdfa, G_UNICODE_NOT_PRESENT_OFFSET, 14446 }, - { 0xfdfb, G_UNICODE_NOT_PRESENT_OFFSET, 14480 }, - { 0xfdfc, G_UNICODE_NOT_PRESENT_OFFSET, 14496 }, - { 0xfe10, G_UNICODE_NOT_PRESENT_OFFSET, 14505 }, - { 0xfe11, G_UNICODE_NOT_PRESENT_OFFSET, 14507 }, - { 0xfe12, G_UNICODE_NOT_PRESENT_OFFSET, 14511 }, - { 0xfe13, G_UNICODE_NOT_PRESENT_OFFSET, 14515 }, - { 0xfe14, G_UNICODE_NOT_PRESENT_OFFSET, 1248 }, - { 0xfe15, G_UNICODE_NOT_PRESENT_OFFSET, 14517 }, - { 0xfe16, G_UNICODE_NOT_PRESENT_OFFSET, 14519 }, - { 0xfe17, G_UNICODE_NOT_PRESENT_OFFSET, 14521 }, - { 0xfe18, G_UNICODE_NOT_PRESENT_OFFSET, 14525 }, - { 0xfe19, G_UNICODE_NOT_PRESENT_OFFSET, 5186 }, - { 0xfe30, G_UNICODE_NOT_PRESENT_OFFSET, 5183 }, - { 0xfe31, G_UNICODE_NOT_PRESENT_OFFSET, 14529 }, - { 0xfe32, G_UNICODE_NOT_PRESENT_OFFSET, 14533 }, - { 0xfe33, G_UNICODE_NOT_PRESENT_OFFSET, 14537 }, - { 0xfe34, G_UNICODE_NOT_PRESENT_OFFSET, 14537 }, - { 0xfe35, G_UNICODE_NOT_PRESENT_OFFSET, 5275 }, - { 0xfe36, G_UNICODE_NOT_PRESENT_OFFSET, 5277 }, - { 0xfe37, G_UNICODE_NOT_PRESENT_OFFSET, 14539 }, - { 0xfe38, G_UNICODE_NOT_PRESENT_OFFSET, 14541 }, - { 0xfe39, G_UNICODE_NOT_PRESENT_OFFSET, 14543 }, - { 0xfe3a, G_UNICODE_NOT_PRESENT_OFFSET, 14547 }, - { 0xfe3b, G_UNICODE_NOT_PRESENT_OFFSET, 14551 }, - { 0xfe3c, G_UNICODE_NOT_PRESENT_OFFSET, 14555 }, - { 0xfe3d, G_UNICODE_NOT_PRESENT_OFFSET, 14559 }, - { 0xfe3e, G_UNICODE_NOT_PRESENT_OFFSET, 14563 }, - { 0xfe3f, G_UNICODE_NOT_PRESENT_OFFSET, 5801 }, - { 0xfe40, G_UNICODE_NOT_PRESENT_OFFSET, 5805 }, - { 0xfe41, G_UNICODE_NOT_PRESENT_OFFSET, 14567 }, - { 0xfe42, G_UNICODE_NOT_PRESENT_OFFSET, 14571 }, - { 0xfe43, G_UNICODE_NOT_PRESENT_OFFSET, 14575 }, - { 0xfe44, G_UNICODE_NOT_PRESENT_OFFSET, 14579 }, - { 0xfe47, G_UNICODE_NOT_PRESENT_OFFSET, 14583 }, - { 0xfe48, G_UNICODE_NOT_PRESENT_OFFSET, 14585 }, - { 0xfe49, G_UNICODE_NOT_PRESENT_OFFSET, 5227 }, - { 0xfe4a, G_UNICODE_NOT_PRESENT_OFFSET, 5227 }, - { 0xfe4b, G_UNICODE_NOT_PRESENT_OFFSET, 5227 }, - { 0xfe4c, G_UNICODE_NOT_PRESENT_OFFSET, 5227 }, - { 0xfe4d, G_UNICODE_NOT_PRESENT_OFFSET, 14537 }, - { 0xfe4e, G_UNICODE_NOT_PRESENT_OFFSET, 14537 }, - { 0xfe4f, G_UNICODE_NOT_PRESENT_OFFSET, 14537 }, - { 0xfe50, G_UNICODE_NOT_PRESENT_OFFSET, 14505 }, - { 0xfe51, G_UNICODE_NOT_PRESENT_OFFSET, 14507 }, - { 0xfe52, G_UNICODE_NOT_PRESENT_OFFSET, 5181 }, - { 0xfe54, G_UNICODE_NOT_PRESENT_OFFSET, 1248 }, - { 0xfe55, G_UNICODE_NOT_PRESENT_OFFSET, 14515 }, - { 0xfe56, G_UNICODE_NOT_PRESENT_OFFSET, 14519 }, - { 0xfe57, G_UNICODE_NOT_PRESENT_OFFSET, 14517 }, - { 0xfe58, G_UNICODE_NOT_PRESENT_OFFSET, 14529 }, - { 0xfe59, G_UNICODE_NOT_PRESENT_OFFSET, 5275 }, - { 0xfe5a, G_UNICODE_NOT_PRESENT_OFFSET, 5277 }, - { 0xfe5b, G_UNICODE_NOT_PRESENT_OFFSET, 14539 }, - { 0xfe5c, G_UNICODE_NOT_PRESENT_OFFSET, 14541 }, - { 0xfe5d, G_UNICODE_NOT_PRESENT_OFFSET, 14543 }, - { 0xfe5e, G_UNICODE_NOT_PRESENT_OFFSET, 14547 }, - { 0xfe5f, G_UNICODE_NOT_PRESENT_OFFSET, 14587 }, - { 0xfe60, G_UNICODE_NOT_PRESENT_OFFSET, 14589 }, - { 0xfe61, G_UNICODE_NOT_PRESENT_OFFSET, 14591 }, - { 0xfe62, G_UNICODE_NOT_PRESENT_OFFSET, 5267 }, - { 0xfe63, G_UNICODE_NOT_PRESENT_OFFSET, 14593 }, - { 0xfe64, G_UNICODE_NOT_PRESENT_OFFSET, 14595 }, - { 0xfe65, G_UNICODE_NOT_PRESENT_OFFSET, 14597 }, - { 0xfe66, G_UNICODE_NOT_PRESENT_OFFSET, 5273 }, - { 0xfe68, G_UNICODE_NOT_PRESENT_OFFSET, 14599 }, - { 0xfe69, G_UNICODE_NOT_PRESENT_OFFSET, 14601 }, - { 0xfe6a, G_UNICODE_NOT_PRESENT_OFFSET, 14603 }, - { 0xfe6b, G_UNICODE_NOT_PRESENT_OFFSET, 14605 }, - { 0xfe70, G_UNICODE_NOT_PRESENT_OFFSET, 14607 }, - { 0xfe71, G_UNICODE_NOT_PRESENT_OFFSET, 14611 }, - { 0xfe72, G_UNICODE_NOT_PRESENT_OFFSET, 14616 }, - { 0xfe74, G_UNICODE_NOT_PRESENT_OFFSET, 14620 }, - { 0xfe76, G_UNICODE_NOT_PRESENT_OFFSET, 14624 }, - { 0xfe77, G_UNICODE_NOT_PRESENT_OFFSET, 14628 }, - { 0xfe78, G_UNICODE_NOT_PRESENT_OFFSET, 14633 }, - { 0xfe79, G_UNICODE_NOT_PRESENT_OFFSET, 14637 }, - { 0xfe7a, G_UNICODE_NOT_PRESENT_OFFSET, 14642 }, - { 0xfe7b, G_UNICODE_NOT_PRESENT_OFFSET, 14646 }, - { 0xfe7c, G_UNICODE_NOT_PRESENT_OFFSET, 14651 }, - { 0xfe7d, G_UNICODE_NOT_PRESENT_OFFSET, 14655 }, - { 0xfe7e, G_UNICODE_NOT_PRESENT_OFFSET, 14660 }, - { 0xfe7f, G_UNICODE_NOT_PRESENT_OFFSET, 14664 }, - { 0xfe80, G_UNICODE_NOT_PRESENT_OFFSET, 14669 }, - { 0xfe81, G_UNICODE_NOT_PRESENT_OFFSET, 1676 }, - { 0xfe82, G_UNICODE_NOT_PRESENT_OFFSET, 1676 }, - { 0xfe83, G_UNICODE_NOT_PRESENT_OFFSET, 1681 }, - { 0xfe84, G_UNICODE_NOT_PRESENT_OFFSET, 1681 }, - { 0xfe85, G_UNICODE_NOT_PRESENT_OFFSET, 1686 }, - { 0xfe86, G_UNICODE_NOT_PRESENT_OFFSET, 1686 }, - { 0xfe87, G_UNICODE_NOT_PRESENT_OFFSET, 1691 }, - { 0xfe88, G_UNICODE_NOT_PRESENT_OFFSET, 1691 }, - { 0xfe89, G_UNICODE_NOT_PRESENT_OFFSET, 1696 }, - { 0xfe8a, G_UNICODE_NOT_PRESENT_OFFSET, 1696 }, - { 0xfe8b, G_UNICODE_NOT_PRESENT_OFFSET, 1696 }, - { 0xfe8c, G_UNICODE_NOT_PRESENT_OFFSET, 1696 }, - { 0xfe8d, G_UNICODE_NOT_PRESENT_OFFSET, 14672 }, - { 0xfe8e, G_UNICODE_NOT_PRESENT_OFFSET, 14672 }, - { 0xfe8f, G_UNICODE_NOT_PRESENT_OFFSET, 14675 }, - { 0xfe90, G_UNICODE_NOT_PRESENT_OFFSET, 14675 }, - { 0xfe91, G_UNICODE_NOT_PRESENT_OFFSET, 14675 }, - { 0xfe92, G_UNICODE_NOT_PRESENT_OFFSET, 14675 }, - { 0xfe93, G_UNICODE_NOT_PRESENT_OFFSET, 14678 }, - { 0xfe94, G_UNICODE_NOT_PRESENT_OFFSET, 14678 }, - { 0xfe95, G_UNICODE_NOT_PRESENT_OFFSET, 14681 }, - { 0xfe96, G_UNICODE_NOT_PRESENT_OFFSET, 14681 }, - { 0xfe97, G_UNICODE_NOT_PRESENT_OFFSET, 14681 }, - { 0xfe98, G_UNICODE_NOT_PRESENT_OFFSET, 14681 }, - { 0xfe99, G_UNICODE_NOT_PRESENT_OFFSET, 14684 }, - { 0xfe9a, G_UNICODE_NOT_PRESENT_OFFSET, 14684 }, - { 0xfe9b, G_UNICODE_NOT_PRESENT_OFFSET, 14684 }, - { 0xfe9c, G_UNICODE_NOT_PRESENT_OFFSET, 14684 }, - { 0xfe9d, G_UNICODE_NOT_PRESENT_OFFSET, 14687 }, - { 0xfe9e, G_UNICODE_NOT_PRESENT_OFFSET, 14687 }, - { 0xfe9f, G_UNICODE_NOT_PRESENT_OFFSET, 14687 }, - { 0xfea0, G_UNICODE_NOT_PRESENT_OFFSET, 14687 }, - { 0xfea1, G_UNICODE_NOT_PRESENT_OFFSET, 14690 }, - { 0xfea2, G_UNICODE_NOT_PRESENT_OFFSET, 14690 }, - { 0xfea3, G_UNICODE_NOT_PRESENT_OFFSET, 14690 }, - { 0xfea4, G_UNICODE_NOT_PRESENT_OFFSET, 14690 }, - { 0xfea5, G_UNICODE_NOT_PRESENT_OFFSET, 14693 }, - { 0xfea6, G_UNICODE_NOT_PRESENT_OFFSET, 14693 }, - { 0xfea7, G_UNICODE_NOT_PRESENT_OFFSET, 14693 }, - { 0xfea8, G_UNICODE_NOT_PRESENT_OFFSET, 14693 }, - { 0xfea9, G_UNICODE_NOT_PRESENT_OFFSET, 14696 }, - { 0xfeaa, G_UNICODE_NOT_PRESENT_OFFSET, 14696 }, - { 0xfeab, G_UNICODE_NOT_PRESENT_OFFSET, 14699 }, - { 0xfeac, G_UNICODE_NOT_PRESENT_OFFSET, 14699 }, - { 0xfead, G_UNICODE_NOT_PRESENT_OFFSET, 14702 }, - { 0xfeae, G_UNICODE_NOT_PRESENT_OFFSET, 14702 }, - { 0xfeaf, G_UNICODE_NOT_PRESENT_OFFSET, 14705 }, - { 0xfeb0, G_UNICODE_NOT_PRESENT_OFFSET, 14705 }, - { 0xfeb1, G_UNICODE_NOT_PRESENT_OFFSET, 14708 }, - { 0xfeb2, G_UNICODE_NOT_PRESENT_OFFSET, 14708 }, - { 0xfeb3, G_UNICODE_NOT_PRESENT_OFFSET, 14708 }, - { 0xfeb4, G_UNICODE_NOT_PRESENT_OFFSET, 14708 }, - { 0xfeb5, G_UNICODE_NOT_PRESENT_OFFSET, 14711 }, - { 0xfeb6, G_UNICODE_NOT_PRESENT_OFFSET, 14711 }, - { 0xfeb7, G_UNICODE_NOT_PRESENT_OFFSET, 14711 }, - { 0xfeb8, G_UNICODE_NOT_PRESENT_OFFSET, 14711 }, - { 0xfeb9, G_UNICODE_NOT_PRESENT_OFFSET, 14714 }, - { 0xfeba, G_UNICODE_NOT_PRESENT_OFFSET, 14714 }, - { 0xfebb, G_UNICODE_NOT_PRESENT_OFFSET, 14714 }, - { 0xfebc, G_UNICODE_NOT_PRESENT_OFFSET, 14714 }, - { 0xfebd, G_UNICODE_NOT_PRESENT_OFFSET, 14717 }, - { 0xfebe, G_UNICODE_NOT_PRESENT_OFFSET, 14717 }, - { 0xfebf, G_UNICODE_NOT_PRESENT_OFFSET, 14717 }, - { 0xfec0, G_UNICODE_NOT_PRESENT_OFFSET, 14717 }, - { 0xfec1, G_UNICODE_NOT_PRESENT_OFFSET, 14720 }, - { 0xfec2, G_UNICODE_NOT_PRESENT_OFFSET, 14720 }, - { 0xfec3, G_UNICODE_NOT_PRESENT_OFFSET, 14720 }, - { 0xfec4, G_UNICODE_NOT_PRESENT_OFFSET, 14720 }, - { 0xfec5, G_UNICODE_NOT_PRESENT_OFFSET, 14723 }, - { 0xfec6, G_UNICODE_NOT_PRESENT_OFFSET, 14723 }, - { 0xfec7, G_UNICODE_NOT_PRESENT_OFFSET, 14723 }, - { 0xfec8, G_UNICODE_NOT_PRESENT_OFFSET, 14723 }, - { 0xfec9, G_UNICODE_NOT_PRESENT_OFFSET, 14726 }, - { 0xfeca, G_UNICODE_NOT_PRESENT_OFFSET, 14726 }, - { 0xfecb, G_UNICODE_NOT_PRESENT_OFFSET, 14726 }, - { 0xfecc, G_UNICODE_NOT_PRESENT_OFFSET, 14726 }, - { 0xfecd, G_UNICODE_NOT_PRESENT_OFFSET, 14729 }, - { 0xfece, G_UNICODE_NOT_PRESENT_OFFSET, 14729 }, - { 0xfecf, G_UNICODE_NOT_PRESENT_OFFSET, 14729 }, - { 0xfed0, G_UNICODE_NOT_PRESENT_OFFSET, 14729 }, - { 0xfed1, G_UNICODE_NOT_PRESENT_OFFSET, 14732 }, - { 0xfed2, G_UNICODE_NOT_PRESENT_OFFSET, 14732 }, - { 0xfed3, G_UNICODE_NOT_PRESENT_OFFSET, 14732 }, - { 0xfed4, G_UNICODE_NOT_PRESENT_OFFSET, 14732 }, - { 0xfed5, G_UNICODE_NOT_PRESENT_OFFSET, 14735 }, - { 0xfed6, G_UNICODE_NOT_PRESENT_OFFSET, 14735 }, - { 0xfed7, G_UNICODE_NOT_PRESENT_OFFSET, 14735 }, - { 0xfed8, G_UNICODE_NOT_PRESENT_OFFSET, 14735 }, - { 0xfed9, G_UNICODE_NOT_PRESENT_OFFSET, 14738 }, - { 0xfeda, G_UNICODE_NOT_PRESENT_OFFSET, 14738 }, - { 0xfedb, G_UNICODE_NOT_PRESENT_OFFSET, 14738 }, - { 0xfedc, G_UNICODE_NOT_PRESENT_OFFSET, 14738 }, - { 0xfedd, G_UNICODE_NOT_PRESENT_OFFSET, 14741 }, - { 0xfede, G_UNICODE_NOT_PRESENT_OFFSET, 14741 }, - { 0xfedf, G_UNICODE_NOT_PRESENT_OFFSET, 14741 }, - { 0xfee0, G_UNICODE_NOT_PRESENT_OFFSET, 14741 }, - { 0xfee1, G_UNICODE_NOT_PRESENT_OFFSET, 14744 }, - { 0xfee2, G_UNICODE_NOT_PRESENT_OFFSET, 14744 }, - { 0xfee3, G_UNICODE_NOT_PRESENT_OFFSET, 14744 }, - { 0xfee4, G_UNICODE_NOT_PRESENT_OFFSET, 14744 }, - { 0xfee5, G_UNICODE_NOT_PRESENT_OFFSET, 14747 }, - { 0xfee6, G_UNICODE_NOT_PRESENT_OFFSET, 14747 }, - { 0xfee7, G_UNICODE_NOT_PRESENT_OFFSET, 14747 }, - { 0xfee8, G_UNICODE_NOT_PRESENT_OFFSET, 14747 }, - { 0xfee9, G_UNICODE_NOT_PRESENT_OFFSET, 14750 }, - { 0xfeea, G_UNICODE_NOT_PRESENT_OFFSET, 14750 }, - { 0xfeeb, G_UNICODE_NOT_PRESENT_OFFSET, 14750 }, - { 0xfeec, G_UNICODE_NOT_PRESENT_OFFSET, 14750 }, - { 0xfeed, G_UNICODE_NOT_PRESENT_OFFSET, 14753 }, - { 0xfeee, G_UNICODE_NOT_PRESENT_OFFSET, 14753 }, - { 0xfeef, G_UNICODE_NOT_PRESENT_OFFSET, 12802 }, - { 0xfef0, G_UNICODE_NOT_PRESENT_OFFSET, 12802 }, - { 0xfef1, G_UNICODE_NOT_PRESENT_OFFSET, 14756 }, - { 0xfef2, G_UNICODE_NOT_PRESENT_OFFSET, 14756 }, - { 0xfef3, G_UNICODE_NOT_PRESENT_OFFSET, 14756 }, - { 0xfef4, G_UNICODE_NOT_PRESENT_OFFSET, 14756 }, - { 0xfef5, G_UNICODE_NOT_PRESENT_OFFSET, 14759 }, - { 0xfef6, G_UNICODE_NOT_PRESENT_OFFSET, 14759 }, - { 0xfef7, G_UNICODE_NOT_PRESENT_OFFSET, 14766 }, - { 0xfef8, G_UNICODE_NOT_PRESENT_OFFSET, 14766 }, - { 0xfef9, G_UNICODE_NOT_PRESENT_OFFSET, 14773 }, - { 0xfefa, G_UNICODE_NOT_PRESENT_OFFSET, 14773 }, - { 0xfefb, G_UNICODE_NOT_PRESENT_OFFSET, 14780 }, - { 0xfefc, G_UNICODE_NOT_PRESENT_OFFSET, 14780 }, - { 0xff01, G_UNICODE_NOT_PRESENT_OFFSET, 14517 }, - { 0xff02, G_UNICODE_NOT_PRESENT_OFFSET, 14785 }, - { 0xff03, G_UNICODE_NOT_PRESENT_OFFSET, 14587 }, - { 0xff04, G_UNICODE_NOT_PRESENT_OFFSET, 14601 }, - { 0xff05, G_UNICODE_NOT_PRESENT_OFFSET, 14603 }, - { 0xff06, G_UNICODE_NOT_PRESENT_OFFSET, 14589 }, - { 0xff07, G_UNICODE_NOT_PRESENT_OFFSET, 14787 }, - { 0xff08, G_UNICODE_NOT_PRESENT_OFFSET, 5275 }, - { 0xff09, G_UNICODE_NOT_PRESENT_OFFSET, 5277 }, - { 0xff0a, G_UNICODE_NOT_PRESENT_OFFSET, 14591 }, - { 0xff0b, G_UNICODE_NOT_PRESENT_OFFSET, 5267 }, - { 0xff0c, G_UNICODE_NOT_PRESENT_OFFSET, 14505 }, - { 0xff0d, G_UNICODE_NOT_PRESENT_OFFSET, 14593 }, - { 0xff0e, G_UNICODE_NOT_PRESENT_OFFSET, 5181 }, - { 0xff0f, G_UNICODE_NOT_PRESENT_OFFSET, 14789 }, - { 0xff10, G_UNICODE_NOT_PRESENT_OFFSET, 5253 }, - { 0xff11, G_UNICODE_NOT_PRESENT_OFFSET, 27 }, - { 0xff12, G_UNICODE_NOT_PRESENT_OFFSET, 12 }, - { 0xff13, G_UNICODE_NOT_PRESENT_OFFSET, 14 }, - { 0xff14, G_UNICODE_NOT_PRESENT_OFFSET, 5255 }, - { 0xff15, G_UNICODE_NOT_PRESENT_OFFSET, 5257 }, - { 0xff16, G_UNICODE_NOT_PRESENT_OFFSET, 5259 }, - { 0xff17, G_UNICODE_NOT_PRESENT_OFFSET, 5261 }, - { 0xff18, G_UNICODE_NOT_PRESENT_OFFSET, 5263 }, - { 0xff19, G_UNICODE_NOT_PRESENT_OFFSET, 5265 }, - { 0xff1a, G_UNICODE_NOT_PRESENT_OFFSET, 14515 }, - { 0xff1b, G_UNICODE_NOT_PRESENT_OFFSET, 1248 }, - { 0xff1c, G_UNICODE_NOT_PRESENT_OFFSET, 14595 }, - { 0xff1d, G_UNICODE_NOT_PRESENT_OFFSET, 5273 }, - { 0xff1e, G_UNICODE_NOT_PRESENT_OFFSET, 14597 }, - { 0xff1f, G_UNICODE_NOT_PRESENT_OFFSET, 14519 }, - { 0xff20, G_UNICODE_NOT_PRESENT_OFFSET, 14605 }, - { 0xff21, G_UNICODE_NOT_PRESENT_OFFSET, 2309 }, - { 0xff22, G_UNICODE_NOT_PRESENT_OFFSET, 2314 }, - { 0xff23, G_UNICODE_NOT_PRESENT_OFFSET, 5292 }, - { 0xff24, G_UNICODE_NOT_PRESENT_OFFSET, 2316 }, - { 0xff25, G_UNICODE_NOT_PRESENT_OFFSET, 2318 }, - { 0xff26, G_UNICODE_NOT_PRESENT_OFFSET, 5336 }, - { 0xff27, G_UNICODE_NOT_PRESENT_OFFSET, 2323 }, - { 0xff28, G_UNICODE_NOT_PRESENT_OFFSET, 2325 }, - { 0xff29, G_UNICODE_NOT_PRESENT_OFFSET, 2327 }, - { 0xff2a, G_UNICODE_NOT_PRESENT_OFFSET, 2329 }, - { 0xff2b, G_UNICODE_NOT_PRESENT_OFFSET, 2331 }, - { 0xff2c, G_UNICODE_NOT_PRESENT_OFFSET, 2333 }, - { 0xff2d, G_UNICODE_NOT_PRESENT_OFFSET, 2335 }, - { 0xff2e, G_UNICODE_NOT_PRESENT_OFFSET, 2337 }, - { 0xff2f, G_UNICODE_NOT_PRESENT_OFFSET, 2339 }, - { 0xff30, G_UNICODE_NOT_PRESENT_OFFSET, 2344 }, - { 0xff31, G_UNICODE_NOT_PRESENT_OFFSET, 5319 }, - { 0xff32, G_UNICODE_NOT_PRESENT_OFFSET, 2346 }, - { 0xff33, G_UNICODE_NOT_PRESENT_OFFSET, 6108 }, - { 0xff34, G_UNICODE_NOT_PRESENT_OFFSET, 2348 }, - { 0xff35, G_UNICODE_NOT_PRESENT_OFFSET, 2350 }, - { 0xff36, G_UNICODE_NOT_PRESENT_OFFSET, 5451 }, - { 0xff37, G_UNICODE_NOT_PRESENT_OFFSET, 2352 }, - { 0xff38, G_UNICODE_NOT_PRESENT_OFFSET, 5468 }, - { 0xff39, G_UNICODE_NOT_PRESENT_OFFSET, 6110 }, - { 0xff3a, G_UNICODE_NOT_PRESENT_OFFSET, 5331 }, - { 0xff3b, G_UNICODE_NOT_PRESENT_OFFSET, 14583 }, - { 0xff3c, G_UNICODE_NOT_PRESENT_OFFSET, 14599 }, - { 0xff3d, G_UNICODE_NOT_PRESENT_OFFSET, 14585 }, - { 0xff3e, G_UNICODE_NOT_PRESENT_OFFSET, 14791 }, - { 0xff3f, G_UNICODE_NOT_PRESENT_OFFSET, 14537 }, - { 0xff40, G_UNICODE_NOT_PRESENT_OFFSET, 5110 }, - { 0xff41, G_UNICODE_NOT_PRESENT_OFFSET, 6 }, - { 0xff42, G_UNICODE_NOT_PRESENT_OFFSET, 2364 }, - { 0xff43, G_UNICODE_NOT_PRESENT_OFFSET, 2435 }, - { 0xff44, G_UNICODE_NOT_PRESENT_OFFSET, 2366 }, - { 0xff45, G_UNICODE_NOT_PRESENT_OFFSET, 2368 }, - { 0xff46, G_UNICODE_NOT_PRESENT_OFFSET, 2443 }, - { 0xff47, G_UNICODE_NOT_PRESENT_OFFSET, 2379 }, - { 0xff48, G_UNICODE_NOT_PRESENT_OFFSET, 1171 }, - { 0xff49, G_UNICODE_NOT_PRESENT_OFFSET, 2427 }, - { 0xff4a, G_UNICODE_NOT_PRESENT_OFFSET, 1176 }, - { 0xff4b, G_UNICODE_NOT_PRESENT_OFFSET, 2381 }, - { 0xff4c, G_UNICODE_NOT_PRESENT_OFFSET, 1220 }, - { 0xff4d, G_UNICODE_NOT_PRESENT_OFFSET, 2383 }, - { 0xff4e, G_UNICODE_NOT_PRESENT_OFFSET, 5279 }, - { 0xff4f, G_UNICODE_NOT_PRESENT_OFFSET, 29 }, - { 0xff50, G_UNICODE_NOT_PRESENT_OFFSET, 2399 }, - { 0xff51, G_UNICODE_NOT_PRESENT_OFFSET, 6112 }, - { 0xff52, G_UNICODE_NOT_PRESENT_OFFSET, 1178 }, - { 0xff53, G_UNICODE_NOT_PRESENT_OFFSET, 711 }, - { 0xff54, G_UNICODE_NOT_PRESENT_OFFSET, 2401 }, - { 0xff55, G_UNICODE_NOT_PRESENT_OFFSET, 2403 }, - { 0xff56, G_UNICODE_NOT_PRESENT_OFFSET, 2412 }, - { 0xff57, G_UNICODE_NOT_PRESENT_OFFSET, 1189 }, - { 0xff58, G_UNICODE_NOT_PRESENT_OFFSET, 1222 }, - { 0xff59, G_UNICODE_NOT_PRESENT_OFFSET, 1191 }, - { 0xff5a, G_UNICODE_NOT_PRESENT_OFFSET, 2526 }, - { 0xff5b, G_UNICODE_NOT_PRESENT_OFFSET, 14539 }, - { 0xff5c, G_UNICODE_NOT_PRESENT_OFFSET, 14793 }, - { 0xff5d, G_UNICODE_NOT_PRESENT_OFFSET, 14541 }, - { 0xff5e, G_UNICODE_NOT_PRESENT_OFFSET, 14795 }, - { 0xff5f, G_UNICODE_NOT_PRESENT_OFFSET, 14797 }, - { 0xff60, G_UNICODE_NOT_PRESENT_OFFSET, 14801 }, - { 0xff61, G_UNICODE_NOT_PRESENT_OFFSET, 14511 }, - { 0xff62, G_UNICODE_NOT_PRESENT_OFFSET, 14567 }, - { 0xff63, G_UNICODE_NOT_PRESENT_OFFSET, 14571 }, - { 0xff64, G_UNICODE_NOT_PRESENT_OFFSET, 14507 }, - { 0xff65, G_UNICODE_NOT_PRESENT_OFFSET, 14805 }, - { 0xff66, G_UNICODE_NOT_PRESENT_OFFSET, 8955 }, - { 0xff67, G_UNICODE_NOT_PRESENT_OFFSET, 14809 }, - { 0xff68, G_UNICODE_NOT_PRESENT_OFFSET, 14813 }, - { 0xff69, G_UNICODE_NOT_PRESENT_OFFSET, 14817 }, - { 0xff6a, G_UNICODE_NOT_PRESENT_OFFSET, 14821 }, - { 0xff6b, G_UNICODE_NOT_PRESENT_OFFSET, 14825 }, - { 0xff6c, G_UNICODE_NOT_PRESENT_OFFSET, 14829 }, - { 0xff6d, G_UNICODE_NOT_PRESENT_OFFSET, 14833 }, - { 0xff6e, G_UNICODE_NOT_PRESENT_OFFSET, 14837 }, - { 0xff6f, G_UNICODE_NOT_PRESENT_OFFSET, 14841 }, - { 0xff70, G_UNICODE_NOT_PRESENT_OFFSET, 14845 }, - { 0xff71, G_UNICODE_NOT_PRESENT_OFFSET, 8771 }, - { 0xff72, G_UNICODE_NOT_PRESENT_OFFSET, 8775 }, - { 0xff73, G_UNICODE_NOT_PRESENT_OFFSET, 8779 }, - { 0xff74, G_UNICODE_NOT_PRESENT_OFFSET, 8783 }, - { 0xff75, G_UNICODE_NOT_PRESENT_OFFSET, 8787 }, - { 0xff76, G_UNICODE_NOT_PRESENT_OFFSET, 8791 }, - { 0xff77, G_UNICODE_NOT_PRESENT_OFFSET, 8795 }, - { 0xff78, G_UNICODE_NOT_PRESENT_OFFSET, 8799 }, - { 0xff79, G_UNICODE_NOT_PRESENT_OFFSET, 8803 }, - { 0xff7a, G_UNICODE_NOT_PRESENT_OFFSET, 8807 }, - { 0xff7b, G_UNICODE_NOT_PRESENT_OFFSET, 8811 }, - { 0xff7c, G_UNICODE_NOT_PRESENT_OFFSET, 8815 }, - { 0xff7d, G_UNICODE_NOT_PRESENT_OFFSET, 8819 }, - { 0xff7e, G_UNICODE_NOT_PRESENT_OFFSET, 8823 }, - { 0xff7f, G_UNICODE_NOT_PRESENT_OFFSET, 8827 }, - { 0xff80, G_UNICODE_NOT_PRESENT_OFFSET, 8831 }, - { 0xff81, G_UNICODE_NOT_PRESENT_OFFSET, 8835 }, - { 0xff82, G_UNICODE_NOT_PRESENT_OFFSET, 8839 }, - { 0xff83, G_UNICODE_NOT_PRESENT_OFFSET, 8843 }, - { 0xff84, G_UNICODE_NOT_PRESENT_OFFSET, 8847 }, - { 0xff85, G_UNICODE_NOT_PRESENT_OFFSET, 8851 }, - { 0xff86, G_UNICODE_NOT_PRESENT_OFFSET, 8855 }, - { 0xff87, G_UNICODE_NOT_PRESENT_OFFSET, 8859 }, - { 0xff88, G_UNICODE_NOT_PRESENT_OFFSET, 8863 }, - { 0xff89, G_UNICODE_NOT_PRESENT_OFFSET, 8867 }, - { 0xff8a, G_UNICODE_NOT_PRESENT_OFFSET, 8871 }, - { 0xff8b, G_UNICODE_NOT_PRESENT_OFFSET, 8875 }, - { 0xff8c, G_UNICODE_NOT_PRESENT_OFFSET, 8879 }, - { 0xff8d, G_UNICODE_NOT_PRESENT_OFFSET, 8883 }, - { 0xff8e, G_UNICODE_NOT_PRESENT_OFFSET, 8887 }, - { 0xff8f, G_UNICODE_NOT_PRESENT_OFFSET, 8891 }, - { 0xff90, G_UNICODE_NOT_PRESENT_OFFSET, 8895 }, - { 0xff91, G_UNICODE_NOT_PRESENT_OFFSET, 8899 }, - { 0xff92, G_UNICODE_NOT_PRESENT_OFFSET, 8903 }, - { 0xff93, G_UNICODE_NOT_PRESENT_OFFSET, 8907 }, - { 0xff94, G_UNICODE_NOT_PRESENT_OFFSET, 8911 }, - { 0xff95, G_UNICODE_NOT_PRESENT_OFFSET, 8915 }, - { 0xff96, G_UNICODE_NOT_PRESENT_OFFSET, 8919 }, - { 0xff97, G_UNICODE_NOT_PRESENT_OFFSET, 8923 }, - { 0xff98, G_UNICODE_NOT_PRESENT_OFFSET, 8927 }, - { 0xff99, G_UNICODE_NOT_PRESENT_OFFSET, 8931 }, - { 0xff9a, G_UNICODE_NOT_PRESENT_OFFSET, 8935 }, - { 0xff9b, G_UNICODE_NOT_PRESENT_OFFSET, 8939 }, - { 0xff9c, G_UNICODE_NOT_PRESENT_OFFSET, 8943 }, - { 0xff9d, G_UNICODE_NOT_PRESENT_OFFSET, 14849 }, - { 0xff9e, G_UNICODE_NOT_PRESENT_OFFSET, 14853 }, - { 0xff9f, G_UNICODE_NOT_PRESENT_OFFSET, 14857 }, - { 0xffa0, G_UNICODE_NOT_PRESENT_OFFSET, 7658 }, - { 0xffa1, G_UNICODE_NOT_PRESENT_OFFSET, 7454 }, - { 0xffa2, G_UNICODE_NOT_PRESENT_OFFSET, 7458 }, - { 0xffa3, G_UNICODE_NOT_PRESENT_OFFSET, 7462 }, - { 0xffa4, G_UNICODE_NOT_PRESENT_OFFSET, 7466 }, - { 0xffa5, G_UNICODE_NOT_PRESENT_OFFSET, 7470 }, - { 0xffa6, G_UNICODE_NOT_PRESENT_OFFSET, 7474 }, - { 0xffa7, G_UNICODE_NOT_PRESENT_OFFSET, 7478 }, - { 0xffa8, G_UNICODE_NOT_PRESENT_OFFSET, 7482 }, - { 0xffa9, G_UNICODE_NOT_PRESENT_OFFSET, 7486 }, - { 0xffaa, G_UNICODE_NOT_PRESENT_OFFSET, 7490 }, - { 0xffab, G_UNICODE_NOT_PRESENT_OFFSET, 7494 }, - { 0xffac, G_UNICODE_NOT_PRESENT_OFFSET, 7498 }, - { 0xffad, G_UNICODE_NOT_PRESENT_OFFSET, 7502 }, - { 0xffae, G_UNICODE_NOT_PRESENT_OFFSET, 7506 }, - { 0xffaf, G_UNICODE_NOT_PRESENT_OFFSET, 7510 }, - { 0xffb0, G_UNICODE_NOT_PRESENT_OFFSET, 7514 }, - { 0xffb1, G_UNICODE_NOT_PRESENT_OFFSET, 7518 }, - { 0xffb2, G_UNICODE_NOT_PRESENT_OFFSET, 7522 }, - { 0xffb3, G_UNICODE_NOT_PRESENT_OFFSET, 7526 }, - { 0xffb4, G_UNICODE_NOT_PRESENT_OFFSET, 7530 }, - { 0xffb5, G_UNICODE_NOT_PRESENT_OFFSET, 7534 }, - { 0xffb6, G_UNICODE_NOT_PRESENT_OFFSET, 7538 }, - { 0xffb7, G_UNICODE_NOT_PRESENT_OFFSET, 7542 }, - { 0xffb8, G_UNICODE_NOT_PRESENT_OFFSET, 7546 }, - { 0xffb9, G_UNICODE_NOT_PRESENT_OFFSET, 7550 }, - { 0xffba, G_UNICODE_NOT_PRESENT_OFFSET, 7554 }, - { 0xffbb, G_UNICODE_NOT_PRESENT_OFFSET, 7558 }, - { 0xffbc, G_UNICODE_NOT_PRESENT_OFFSET, 7562 }, - { 0xffbd, G_UNICODE_NOT_PRESENT_OFFSET, 7566 }, - { 0xffbe, G_UNICODE_NOT_PRESENT_OFFSET, 7570 }, - { 0xffc2, G_UNICODE_NOT_PRESENT_OFFSET, 7574 }, - { 0xffc3, G_UNICODE_NOT_PRESENT_OFFSET, 7578 }, - { 0xffc4, G_UNICODE_NOT_PRESENT_OFFSET, 7582 }, - { 0xffc5, G_UNICODE_NOT_PRESENT_OFFSET, 7586 }, - { 0xffc6, G_UNICODE_NOT_PRESENT_OFFSET, 7590 }, - { 0xffc7, G_UNICODE_NOT_PRESENT_OFFSET, 7594 }, - { 0xffca, G_UNICODE_NOT_PRESENT_OFFSET, 7598 }, - { 0xffcb, G_UNICODE_NOT_PRESENT_OFFSET, 7602 }, - { 0xffcc, G_UNICODE_NOT_PRESENT_OFFSET, 7606 }, - { 0xffcd, G_UNICODE_NOT_PRESENT_OFFSET, 7610 }, - { 0xffce, G_UNICODE_NOT_PRESENT_OFFSET, 7614 }, - { 0xffcf, G_UNICODE_NOT_PRESENT_OFFSET, 7618 }, - { 0xffd2, G_UNICODE_NOT_PRESENT_OFFSET, 7622 }, - { 0xffd3, G_UNICODE_NOT_PRESENT_OFFSET, 7626 }, - { 0xffd4, G_UNICODE_NOT_PRESENT_OFFSET, 7630 }, - { 0xffd5, G_UNICODE_NOT_PRESENT_OFFSET, 7634 }, - { 0xffd6, G_UNICODE_NOT_PRESENT_OFFSET, 7638 }, - { 0xffd7, G_UNICODE_NOT_PRESENT_OFFSET, 7642 }, - { 0xffda, G_UNICODE_NOT_PRESENT_OFFSET, 7646 }, - { 0xffdb, G_UNICODE_NOT_PRESENT_OFFSET, 7650 }, - { 0xffdc, G_UNICODE_NOT_PRESENT_OFFSET, 7654 }, - { 0xffe0, G_UNICODE_NOT_PRESENT_OFFSET, 14861 }, - { 0xffe1, G_UNICODE_NOT_PRESENT_OFFSET, 14864 }, - { 0xffe2, G_UNICODE_NOT_PRESENT_OFFSET, 14867 }, - { 0xffe3, G_UNICODE_NOT_PRESENT_OFFSET, 8 }, - { 0xffe4, G_UNICODE_NOT_PRESENT_OFFSET, 14870 }, - { 0xffe5, G_UNICODE_NOT_PRESENT_OFFSET, 14873 }, - { 0xffe6, G_UNICODE_NOT_PRESENT_OFFSET, 14876 }, - { 0xffe8, G_UNICODE_NOT_PRESENT_OFFSET, 14880 }, - { 0xffe9, G_UNICODE_NOT_PRESENT_OFFSET, 14884 }, - { 0xffea, G_UNICODE_NOT_PRESENT_OFFSET, 14888 }, - { 0xffeb, G_UNICODE_NOT_PRESENT_OFFSET, 14892 }, - { 0xffec, G_UNICODE_NOT_PRESENT_OFFSET, 14896 }, - { 0xffed, G_UNICODE_NOT_PRESENT_OFFSET, 14900 }, - { 0xffee, G_UNICODE_NOT_PRESENT_OFFSET, 14904 }, - { 0x1d15e, 14908, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1d15f, 14917, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1d160, 14926, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1d161, 14939, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1d162, 14952, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1d163, 14965, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1d164, 14978, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1d1bb, 14991, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1d1bc, 15000, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1d1bd, 15009, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1d1be, 15022, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1d1bf, 15035, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1d1c0, 15048, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x1d400, G_UNICODE_NOT_PRESENT_OFFSET, 2309 }, - { 0x1d401, G_UNICODE_NOT_PRESENT_OFFSET, 2314 }, - { 0x1d402, G_UNICODE_NOT_PRESENT_OFFSET, 5292 }, - { 0x1d403, G_UNICODE_NOT_PRESENT_OFFSET, 2316 }, - { 0x1d404, G_UNICODE_NOT_PRESENT_OFFSET, 2318 }, - { 0x1d405, G_UNICODE_NOT_PRESENT_OFFSET, 5336 }, - { 0x1d406, G_UNICODE_NOT_PRESENT_OFFSET, 2323 }, - { 0x1d407, G_UNICODE_NOT_PRESENT_OFFSET, 2325 }, - { 0x1d408, G_UNICODE_NOT_PRESENT_OFFSET, 2327 }, - { 0x1d409, G_UNICODE_NOT_PRESENT_OFFSET, 2329 }, - { 0x1d40a, G_UNICODE_NOT_PRESENT_OFFSET, 2331 }, - { 0x1d40b, G_UNICODE_NOT_PRESENT_OFFSET, 2333 }, - { 0x1d40c, G_UNICODE_NOT_PRESENT_OFFSET, 2335 }, - { 0x1d40d, G_UNICODE_NOT_PRESENT_OFFSET, 2337 }, - { 0x1d40e, G_UNICODE_NOT_PRESENT_OFFSET, 2339 }, - { 0x1d40f, G_UNICODE_NOT_PRESENT_OFFSET, 2344 }, - { 0x1d410, G_UNICODE_NOT_PRESENT_OFFSET, 5319 }, - { 0x1d411, G_UNICODE_NOT_PRESENT_OFFSET, 2346 }, - { 0x1d412, G_UNICODE_NOT_PRESENT_OFFSET, 6108 }, - { 0x1d413, G_UNICODE_NOT_PRESENT_OFFSET, 2348 }, - { 0x1d414, G_UNICODE_NOT_PRESENT_OFFSET, 2350 }, - { 0x1d415, G_UNICODE_NOT_PRESENT_OFFSET, 5451 }, - { 0x1d416, G_UNICODE_NOT_PRESENT_OFFSET, 2352 }, - { 0x1d417, G_UNICODE_NOT_PRESENT_OFFSET, 5468 }, - { 0x1d418, G_UNICODE_NOT_PRESENT_OFFSET, 6110 }, - { 0x1d419, G_UNICODE_NOT_PRESENT_OFFSET, 5331 }, - { 0x1d41a, G_UNICODE_NOT_PRESENT_OFFSET, 6 }, - { 0x1d41b, G_UNICODE_NOT_PRESENT_OFFSET, 2364 }, - { 0x1d41c, G_UNICODE_NOT_PRESENT_OFFSET, 2435 }, - { 0x1d41d, G_UNICODE_NOT_PRESENT_OFFSET, 2366 }, - { 0x1d41e, G_UNICODE_NOT_PRESENT_OFFSET, 2368 }, - { 0x1d41f, G_UNICODE_NOT_PRESENT_OFFSET, 2443 }, - { 0x1d420, G_UNICODE_NOT_PRESENT_OFFSET, 2379 }, - { 0x1d421, G_UNICODE_NOT_PRESENT_OFFSET, 1171 }, - { 0x1d422, G_UNICODE_NOT_PRESENT_OFFSET, 2427 }, - { 0x1d423, G_UNICODE_NOT_PRESENT_OFFSET, 1176 }, - { 0x1d424, G_UNICODE_NOT_PRESENT_OFFSET, 2381 }, - { 0x1d425, G_UNICODE_NOT_PRESENT_OFFSET, 1220 }, - { 0x1d426, G_UNICODE_NOT_PRESENT_OFFSET, 2383 }, - { 0x1d427, G_UNICODE_NOT_PRESENT_OFFSET, 5279 }, - { 0x1d428, G_UNICODE_NOT_PRESENT_OFFSET, 29 }, - { 0x1d429, G_UNICODE_NOT_PRESENT_OFFSET, 2399 }, - { 0x1d42a, G_UNICODE_NOT_PRESENT_OFFSET, 6112 }, - { 0x1d42b, G_UNICODE_NOT_PRESENT_OFFSET, 1178 }, - { 0x1d42c, G_UNICODE_NOT_PRESENT_OFFSET, 711 }, - { 0x1d42d, G_UNICODE_NOT_PRESENT_OFFSET, 2401 }, - { 0x1d42e, G_UNICODE_NOT_PRESENT_OFFSET, 2403 }, - { 0x1d42f, G_UNICODE_NOT_PRESENT_OFFSET, 2412 }, - { 0x1d430, G_UNICODE_NOT_PRESENT_OFFSET, 1189 }, - { 0x1d431, G_UNICODE_NOT_PRESENT_OFFSET, 1222 }, - { 0x1d432, G_UNICODE_NOT_PRESENT_OFFSET, 1191 }, - { 0x1d433, G_UNICODE_NOT_PRESENT_OFFSET, 2526 }, - { 0x1d434, G_UNICODE_NOT_PRESENT_OFFSET, 2309 }, - { 0x1d435, G_UNICODE_NOT_PRESENT_OFFSET, 2314 }, - { 0x1d436, G_UNICODE_NOT_PRESENT_OFFSET, 5292 }, - { 0x1d437, G_UNICODE_NOT_PRESENT_OFFSET, 2316 }, - { 0x1d438, G_UNICODE_NOT_PRESENT_OFFSET, 2318 }, - { 0x1d439, G_UNICODE_NOT_PRESENT_OFFSET, 5336 }, - { 0x1d43a, G_UNICODE_NOT_PRESENT_OFFSET, 2323 }, - { 0x1d43b, G_UNICODE_NOT_PRESENT_OFFSET, 2325 }, - { 0x1d43c, G_UNICODE_NOT_PRESENT_OFFSET, 2327 }, - { 0x1d43d, G_UNICODE_NOT_PRESENT_OFFSET, 2329 }, - { 0x1d43e, G_UNICODE_NOT_PRESENT_OFFSET, 2331 }, - { 0x1d43f, G_UNICODE_NOT_PRESENT_OFFSET, 2333 }, - { 0x1d440, G_UNICODE_NOT_PRESENT_OFFSET, 2335 }, - { 0x1d441, G_UNICODE_NOT_PRESENT_OFFSET, 2337 }, - { 0x1d442, G_UNICODE_NOT_PRESENT_OFFSET, 2339 }, - { 0x1d443, G_UNICODE_NOT_PRESENT_OFFSET, 2344 }, - { 0x1d444, G_UNICODE_NOT_PRESENT_OFFSET, 5319 }, - { 0x1d445, G_UNICODE_NOT_PRESENT_OFFSET, 2346 }, - { 0x1d446, G_UNICODE_NOT_PRESENT_OFFSET, 6108 }, - { 0x1d447, G_UNICODE_NOT_PRESENT_OFFSET, 2348 }, - { 0x1d448, G_UNICODE_NOT_PRESENT_OFFSET, 2350 }, - { 0x1d449, G_UNICODE_NOT_PRESENT_OFFSET, 5451 }, - { 0x1d44a, G_UNICODE_NOT_PRESENT_OFFSET, 2352 }, - { 0x1d44b, G_UNICODE_NOT_PRESENT_OFFSET, 5468 }, - { 0x1d44c, G_UNICODE_NOT_PRESENT_OFFSET, 6110 }, - { 0x1d44d, G_UNICODE_NOT_PRESENT_OFFSET, 5331 }, - { 0x1d44e, G_UNICODE_NOT_PRESENT_OFFSET, 6 }, - { 0x1d44f, G_UNICODE_NOT_PRESENT_OFFSET, 2364 }, - { 0x1d450, G_UNICODE_NOT_PRESENT_OFFSET, 2435 }, - { 0x1d451, G_UNICODE_NOT_PRESENT_OFFSET, 2366 }, - { 0x1d452, G_UNICODE_NOT_PRESENT_OFFSET, 2368 }, - { 0x1d453, G_UNICODE_NOT_PRESENT_OFFSET, 2443 }, - { 0x1d454, G_UNICODE_NOT_PRESENT_OFFSET, 2379 }, - { 0x1d456, G_UNICODE_NOT_PRESENT_OFFSET, 2427 }, - { 0x1d457, G_UNICODE_NOT_PRESENT_OFFSET, 1176 }, - { 0x1d458, G_UNICODE_NOT_PRESENT_OFFSET, 2381 }, - { 0x1d459, G_UNICODE_NOT_PRESENT_OFFSET, 1220 }, - { 0x1d45a, G_UNICODE_NOT_PRESENT_OFFSET, 2383 }, - { 0x1d45b, G_UNICODE_NOT_PRESENT_OFFSET, 5279 }, - { 0x1d45c, G_UNICODE_NOT_PRESENT_OFFSET, 29 }, - { 0x1d45d, G_UNICODE_NOT_PRESENT_OFFSET, 2399 }, - { 0x1d45e, G_UNICODE_NOT_PRESENT_OFFSET, 6112 }, - { 0x1d45f, G_UNICODE_NOT_PRESENT_OFFSET, 1178 }, - { 0x1d460, G_UNICODE_NOT_PRESENT_OFFSET, 711 }, - { 0x1d461, G_UNICODE_NOT_PRESENT_OFFSET, 2401 }, - { 0x1d462, G_UNICODE_NOT_PRESENT_OFFSET, 2403 }, - { 0x1d463, G_UNICODE_NOT_PRESENT_OFFSET, 2412 }, - { 0x1d464, G_UNICODE_NOT_PRESENT_OFFSET, 1189 }, - { 0x1d465, G_UNICODE_NOT_PRESENT_OFFSET, 1222 }, - { 0x1d466, G_UNICODE_NOT_PRESENT_OFFSET, 1191 }, - { 0x1d467, G_UNICODE_NOT_PRESENT_OFFSET, 2526 }, - { 0x1d468, G_UNICODE_NOT_PRESENT_OFFSET, 2309 }, - { 0x1d469, G_UNICODE_NOT_PRESENT_OFFSET, 2314 }, - { 0x1d46a, G_UNICODE_NOT_PRESENT_OFFSET, 5292 }, - { 0x1d46b, G_UNICODE_NOT_PRESENT_OFFSET, 2316 }, - { 0x1d46c, G_UNICODE_NOT_PRESENT_OFFSET, 2318 }, - { 0x1d46d, G_UNICODE_NOT_PRESENT_OFFSET, 5336 }, - { 0x1d46e, G_UNICODE_NOT_PRESENT_OFFSET, 2323 }, - { 0x1d46f, G_UNICODE_NOT_PRESENT_OFFSET, 2325 }, - { 0x1d470, G_UNICODE_NOT_PRESENT_OFFSET, 2327 }, - { 0x1d471, G_UNICODE_NOT_PRESENT_OFFSET, 2329 }, - { 0x1d472, G_UNICODE_NOT_PRESENT_OFFSET, 2331 }, - { 0x1d473, G_UNICODE_NOT_PRESENT_OFFSET, 2333 }, - { 0x1d474, G_UNICODE_NOT_PRESENT_OFFSET, 2335 }, - { 0x1d475, G_UNICODE_NOT_PRESENT_OFFSET, 2337 }, - { 0x1d476, G_UNICODE_NOT_PRESENT_OFFSET, 2339 }, - { 0x1d477, G_UNICODE_NOT_PRESENT_OFFSET, 2344 }, - { 0x1d478, G_UNICODE_NOT_PRESENT_OFFSET, 5319 }, - { 0x1d479, G_UNICODE_NOT_PRESENT_OFFSET, 2346 }, - { 0x1d47a, G_UNICODE_NOT_PRESENT_OFFSET, 6108 }, - { 0x1d47b, G_UNICODE_NOT_PRESENT_OFFSET, 2348 }, - { 0x1d47c, G_UNICODE_NOT_PRESENT_OFFSET, 2350 }, - { 0x1d47d, G_UNICODE_NOT_PRESENT_OFFSET, 5451 }, - { 0x1d47e, G_UNICODE_NOT_PRESENT_OFFSET, 2352 }, - { 0x1d47f, G_UNICODE_NOT_PRESENT_OFFSET, 5468 }, - { 0x1d480, G_UNICODE_NOT_PRESENT_OFFSET, 6110 }, - { 0x1d481, G_UNICODE_NOT_PRESENT_OFFSET, 5331 }, - { 0x1d482, G_UNICODE_NOT_PRESENT_OFFSET, 6 }, - { 0x1d483, G_UNICODE_NOT_PRESENT_OFFSET, 2364 }, - { 0x1d484, G_UNICODE_NOT_PRESENT_OFFSET, 2435 }, - { 0x1d485, G_UNICODE_NOT_PRESENT_OFFSET, 2366 }, - { 0x1d486, G_UNICODE_NOT_PRESENT_OFFSET, 2368 }, - { 0x1d487, G_UNICODE_NOT_PRESENT_OFFSET, 2443 }, - { 0x1d488, G_UNICODE_NOT_PRESENT_OFFSET, 2379 }, - { 0x1d489, G_UNICODE_NOT_PRESENT_OFFSET, 1171 }, - { 0x1d48a, G_UNICODE_NOT_PRESENT_OFFSET, 2427 }, - { 0x1d48b, G_UNICODE_NOT_PRESENT_OFFSET, 1176 }, - { 0x1d48c, G_UNICODE_NOT_PRESENT_OFFSET, 2381 }, - { 0x1d48d, G_UNICODE_NOT_PRESENT_OFFSET, 1220 }, - { 0x1d48e, G_UNICODE_NOT_PRESENT_OFFSET, 2383 }, - { 0x1d48f, G_UNICODE_NOT_PRESENT_OFFSET, 5279 }, - { 0x1d490, G_UNICODE_NOT_PRESENT_OFFSET, 29 }, - { 0x1d491, G_UNICODE_NOT_PRESENT_OFFSET, 2399 }, - { 0x1d492, G_UNICODE_NOT_PRESENT_OFFSET, 6112 }, - { 0x1d493, G_UNICODE_NOT_PRESENT_OFFSET, 1178 }, - { 0x1d494, G_UNICODE_NOT_PRESENT_OFFSET, 711 }, - { 0x1d495, G_UNICODE_NOT_PRESENT_OFFSET, 2401 }, - { 0x1d496, G_UNICODE_NOT_PRESENT_OFFSET, 2403 }, - { 0x1d497, G_UNICODE_NOT_PRESENT_OFFSET, 2412 }, - { 0x1d498, G_UNICODE_NOT_PRESENT_OFFSET, 1189 }, - { 0x1d499, G_UNICODE_NOT_PRESENT_OFFSET, 1222 }, - { 0x1d49a, G_UNICODE_NOT_PRESENT_OFFSET, 1191 }, - { 0x1d49b, G_UNICODE_NOT_PRESENT_OFFSET, 2526 }, - { 0x1d49c, G_UNICODE_NOT_PRESENT_OFFSET, 2309 }, - { 0x1d49e, G_UNICODE_NOT_PRESENT_OFFSET, 5292 }, - { 0x1d49f, G_UNICODE_NOT_PRESENT_OFFSET, 2316 }, - { 0x1d4a2, G_UNICODE_NOT_PRESENT_OFFSET, 2323 }, - { 0x1d4a5, G_UNICODE_NOT_PRESENT_OFFSET, 2329 }, - { 0x1d4a6, G_UNICODE_NOT_PRESENT_OFFSET, 2331 }, - { 0x1d4a9, G_UNICODE_NOT_PRESENT_OFFSET, 2337 }, - { 0x1d4aa, G_UNICODE_NOT_PRESENT_OFFSET, 2339 }, - { 0x1d4ab, G_UNICODE_NOT_PRESENT_OFFSET, 2344 }, - { 0x1d4ac, G_UNICODE_NOT_PRESENT_OFFSET, 5319 }, - { 0x1d4ae, G_UNICODE_NOT_PRESENT_OFFSET, 6108 }, - { 0x1d4af, G_UNICODE_NOT_PRESENT_OFFSET, 2348 }, - { 0x1d4b0, G_UNICODE_NOT_PRESENT_OFFSET, 2350 }, - { 0x1d4b1, G_UNICODE_NOT_PRESENT_OFFSET, 5451 }, - { 0x1d4b2, G_UNICODE_NOT_PRESENT_OFFSET, 2352 }, - { 0x1d4b3, G_UNICODE_NOT_PRESENT_OFFSET, 5468 }, - { 0x1d4b4, G_UNICODE_NOT_PRESENT_OFFSET, 6110 }, - { 0x1d4b5, G_UNICODE_NOT_PRESENT_OFFSET, 5331 }, - { 0x1d4b6, G_UNICODE_NOT_PRESENT_OFFSET, 6 }, - { 0x1d4b7, G_UNICODE_NOT_PRESENT_OFFSET, 2364 }, - { 0x1d4b8, G_UNICODE_NOT_PRESENT_OFFSET, 2435 }, - { 0x1d4b9, G_UNICODE_NOT_PRESENT_OFFSET, 2366 }, - { 0x1d4bb, G_UNICODE_NOT_PRESENT_OFFSET, 2443 }, - { 0x1d4bd, G_UNICODE_NOT_PRESENT_OFFSET, 1171 }, - { 0x1d4be, G_UNICODE_NOT_PRESENT_OFFSET, 2427 }, - { 0x1d4bf, G_UNICODE_NOT_PRESENT_OFFSET, 1176 }, - { 0x1d4c0, G_UNICODE_NOT_PRESENT_OFFSET, 2381 }, - { 0x1d4c1, G_UNICODE_NOT_PRESENT_OFFSET, 1220 }, - { 0x1d4c2, G_UNICODE_NOT_PRESENT_OFFSET, 2383 }, - { 0x1d4c3, G_UNICODE_NOT_PRESENT_OFFSET, 5279 }, - { 0x1d4c5, G_UNICODE_NOT_PRESENT_OFFSET, 2399 }, - { 0x1d4c6, G_UNICODE_NOT_PRESENT_OFFSET, 6112 }, - { 0x1d4c7, G_UNICODE_NOT_PRESENT_OFFSET, 1178 }, - { 0x1d4c8, G_UNICODE_NOT_PRESENT_OFFSET, 711 }, - { 0x1d4c9, G_UNICODE_NOT_PRESENT_OFFSET, 2401 }, - { 0x1d4ca, G_UNICODE_NOT_PRESENT_OFFSET, 2403 }, - { 0x1d4cb, G_UNICODE_NOT_PRESENT_OFFSET, 2412 }, - { 0x1d4cc, G_UNICODE_NOT_PRESENT_OFFSET, 1189 }, - { 0x1d4cd, G_UNICODE_NOT_PRESENT_OFFSET, 1222 }, - { 0x1d4ce, G_UNICODE_NOT_PRESENT_OFFSET, 1191 }, - { 0x1d4cf, G_UNICODE_NOT_PRESENT_OFFSET, 2526 }, - { 0x1d4d0, G_UNICODE_NOT_PRESENT_OFFSET, 2309 }, - { 0x1d4d1, G_UNICODE_NOT_PRESENT_OFFSET, 2314 }, - { 0x1d4d2, G_UNICODE_NOT_PRESENT_OFFSET, 5292 }, - { 0x1d4d3, G_UNICODE_NOT_PRESENT_OFFSET, 2316 }, - { 0x1d4d4, G_UNICODE_NOT_PRESENT_OFFSET, 2318 }, - { 0x1d4d5, G_UNICODE_NOT_PRESENT_OFFSET, 5336 }, - { 0x1d4d6, G_UNICODE_NOT_PRESENT_OFFSET, 2323 }, - { 0x1d4d7, G_UNICODE_NOT_PRESENT_OFFSET, 2325 }, - { 0x1d4d8, G_UNICODE_NOT_PRESENT_OFFSET, 2327 }, - { 0x1d4d9, G_UNICODE_NOT_PRESENT_OFFSET, 2329 }, - { 0x1d4da, G_UNICODE_NOT_PRESENT_OFFSET, 2331 }, - { 0x1d4db, G_UNICODE_NOT_PRESENT_OFFSET, 2333 }, - { 0x1d4dc, G_UNICODE_NOT_PRESENT_OFFSET, 2335 }, - { 0x1d4dd, G_UNICODE_NOT_PRESENT_OFFSET, 2337 }, - { 0x1d4de, G_UNICODE_NOT_PRESENT_OFFSET, 2339 }, - { 0x1d4df, G_UNICODE_NOT_PRESENT_OFFSET, 2344 }, - { 0x1d4e0, G_UNICODE_NOT_PRESENT_OFFSET, 5319 }, - { 0x1d4e1, G_UNICODE_NOT_PRESENT_OFFSET, 2346 }, - { 0x1d4e2, G_UNICODE_NOT_PRESENT_OFFSET, 6108 }, - { 0x1d4e3, G_UNICODE_NOT_PRESENT_OFFSET, 2348 }, - { 0x1d4e4, G_UNICODE_NOT_PRESENT_OFFSET, 2350 }, - { 0x1d4e5, G_UNICODE_NOT_PRESENT_OFFSET, 5451 }, - { 0x1d4e6, G_UNICODE_NOT_PRESENT_OFFSET, 2352 }, - { 0x1d4e7, G_UNICODE_NOT_PRESENT_OFFSET, 5468 }, - { 0x1d4e8, G_UNICODE_NOT_PRESENT_OFFSET, 6110 }, - { 0x1d4e9, G_UNICODE_NOT_PRESENT_OFFSET, 5331 }, - { 0x1d4ea, G_UNICODE_NOT_PRESENT_OFFSET, 6 }, - { 0x1d4eb, G_UNICODE_NOT_PRESENT_OFFSET, 2364 }, - { 0x1d4ec, G_UNICODE_NOT_PRESENT_OFFSET, 2435 }, - { 0x1d4ed, G_UNICODE_NOT_PRESENT_OFFSET, 2366 }, - { 0x1d4ee, G_UNICODE_NOT_PRESENT_OFFSET, 2368 }, - { 0x1d4ef, G_UNICODE_NOT_PRESENT_OFFSET, 2443 }, - { 0x1d4f0, G_UNICODE_NOT_PRESENT_OFFSET, 2379 }, - { 0x1d4f1, G_UNICODE_NOT_PRESENT_OFFSET, 1171 }, - { 0x1d4f2, G_UNICODE_NOT_PRESENT_OFFSET, 2427 }, - { 0x1d4f3, G_UNICODE_NOT_PRESENT_OFFSET, 1176 }, - { 0x1d4f4, G_UNICODE_NOT_PRESENT_OFFSET, 2381 }, - { 0x1d4f5, G_UNICODE_NOT_PRESENT_OFFSET, 1220 }, - { 0x1d4f6, G_UNICODE_NOT_PRESENT_OFFSET, 2383 }, - { 0x1d4f7, G_UNICODE_NOT_PRESENT_OFFSET, 5279 }, - { 0x1d4f8, G_UNICODE_NOT_PRESENT_OFFSET, 29 }, - { 0x1d4f9, G_UNICODE_NOT_PRESENT_OFFSET, 2399 }, - { 0x1d4fa, G_UNICODE_NOT_PRESENT_OFFSET, 6112 }, - { 0x1d4fb, G_UNICODE_NOT_PRESENT_OFFSET, 1178 }, - { 0x1d4fc, G_UNICODE_NOT_PRESENT_OFFSET, 711 }, - { 0x1d4fd, G_UNICODE_NOT_PRESENT_OFFSET, 2401 }, - { 0x1d4fe, G_UNICODE_NOT_PRESENT_OFFSET, 2403 }, - { 0x1d4ff, G_UNICODE_NOT_PRESENT_OFFSET, 2412 }, - { 0x1d500, G_UNICODE_NOT_PRESENT_OFFSET, 1189 }, - { 0x1d501, G_UNICODE_NOT_PRESENT_OFFSET, 1222 }, - { 0x1d502, G_UNICODE_NOT_PRESENT_OFFSET, 1191 }, - { 0x1d503, G_UNICODE_NOT_PRESENT_OFFSET, 2526 }, - { 0x1d504, G_UNICODE_NOT_PRESENT_OFFSET, 2309 }, - { 0x1d505, G_UNICODE_NOT_PRESENT_OFFSET, 2314 }, - { 0x1d507, G_UNICODE_NOT_PRESENT_OFFSET, 2316 }, - { 0x1d508, G_UNICODE_NOT_PRESENT_OFFSET, 2318 }, - { 0x1d509, G_UNICODE_NOT_PRESENT_OFFSET, 5336 }, - { 0x1d50a, G_UNICODE_NOT_PRESENT_OFFSET, 2323 }, - { 0x1d50d, G_UNICODE_NOT_PRESENT_OFFSET, 2329 }, - { 0x1d50e, G_UNICODE_NOT_PRESENT_OFFSET, 2331 }, - { 0x1d50f, G_UNICODE_NOT_PRESENT_OFFSET, 2333 }, - { 0x1d510, G_UNICODE_NOT_PRESENT_OFFSET, 2335 }, - { 0x1d511, G_UNICODE_NOT_PRESENT_OFFSET, 2337 }, - { 0x1d512, G_UNICODE_NOT_PRESENT_OFFSET, 2339 }, - { 0x1d513, G_UNICODE_NOT_PRESENT_OFFSET, 2344 }, - { 0x1d514, G_UNICODE_NOT_PRESENT_OFFSET, 5319 }, - { 0x1d516, G_UNICODE_NOT_PRESENT_OFFSET, 6108 }, - { 0x1d517, G_UNICODE_NOT_PRESENT_OFFSET, 2348 }, - { 0x1d518, G_UNICODE_NOT_PRESENT_OFFSET, 2350 }, - { 0x1d519, G_UNICODE_NOT_PRESENT_OFFSET, 5451 }, - { 0x1d51a, G_UNICODE_NOT_PRESENT_OFFSET, 2352 }, - { 0x1d51b, G_UNICODE_NOT_PRESENT_OFFSET, 5468 }, - { 0x1d51c, G_UNICODE_NOT_PRESENT_OFFSET, 6110 }, - { 0x1d51e, G_UNICODE_NOT_PRESENT_OFFSET, 6 }, - { 0x1d51f, G_UNICODE_NOT_PRESENT_OFFSET, 2364 }, - { 0x1d520, G_UNICODE_NOT_PRESENT_OFFSET, 2435 }, - { 0x1d521, G_UNICODE_NOT_PRESENT_OFFSET, 2366 }, - { 0x1d522, G_UNICODE_NOT_PRESENT_OFFSET, 2368 }, - { 0x1d523, G_UNICODE_NOT_PRESENT_OFFSET, 2443 }, - { 0x1d524, G_UNICODE_NOT_PRESENT_OFFSET, 2379 }, - { 0x1d525, G_UNICODE_NOT_PRESENT_OFFSET, 1171 }, - { 0x1d526, G_UNICODE_NOT_PRESENT_OFFSET, 2427 }, - { 0x1d527, G_UNICODE_NOT_PRESENT_OFFSET, 1176 }, - { 0x1d528, G_UNICODE_NOT_PRESENT_OFFSET, 2381 }, - { 0x1d529, G_UNICODE_NOT_PRESENT_OFFSET, 1220 }, - { 0x1d52a, G_UNICODE_NOT_PRESENT_OFFSET, 2383 }, - { 0x1d52b, G_UNICODE_NOT_PRESENT_OFFSET, 5279 }, - { 0x1d52c, G_UNICODE_NOT_PRESENT_OFFSET, 29 }, - { 0x1d52d, G_UNICODE_NOT_PRESENT_OFFSET, 2399 }, - { 0x1d52e, G_UNICODE_NOT_PRESENT_OFFSET, 6112 }, - { 0x1d52f, G_UNICODE_NOT_PRESENT_OFFSET, 1178 }, - { 0x1d530, G_UNICODE_NOT_PRESENT_OFFSET, 711 }, - { 0x1d531, G_UNICODE_NOT_PRESENT_OFFSET, 2401 }, - { 0x1d532, G_UNICODE_NOT_PRESENT_OFFSET, 2403 }, - { 0x1d533, G_UNICODE_NOT_PRESENT_OFFSET, 2412 }, - { 0x1d534, G_UNICODE_NOT_PRESENT_OFFSET, 1189 }, - { 0x1d535, G_UNICODE_NOT_PRESENT_OFFSET, 1222 }, - { 0x1d536, G_UNICODE_NOT_PRESENT_OFFSET, 1191 }, - { 0x1d537, G_UNICODE_NOT_PRESENT_OFFSET, 2526 }, - { 0x1d538, G_UNICODE_NOT_PRESENT_OFFSET, 2309 }, - { 0x1d539, G_UNICODE_NOT_PRESENT_OFFSET, 2314 }, - { 0x1d53b, G_UNICODE_NOT_PRESENT_OFFSET, 2316 }, - { 0x1d53c, G_UNICODE_NOT_PRESENT_OFFSET, 2318 }, - { 0x1d53d, G_UNICODE_NOT_PRESENT_OFFSET, 5336 }, - { 0x1d53e, G_UNICODE_NOT_PRESENT_OFFSET, 2323 }, - { 0x1d540, G_UNICODE_NOT_PRESENT_OFFSET, 2327 }, - { 0x1d541, G_UNICODE_NOT_PRESENT_OFFSET, 2329 }, - { 0x1d542, G_UNICODE_NOT_PRESENT_OFFSET, 2331 }, - { 0x1d543, G_UNICODE_NOT_PRESENT_OFFSET, 2333 }, - { 0x1d544, G_UNICODE_NOT_PRESENT_OFFSET, 2335 }, - { 0x1d546, G_UNICODE_NOT_PRESENT_OFFSET, 2339 }, - { 0x1d54a, G_UNICODE_NOT_PRESENT_OFFSET, 6108 }, - { 0x1d54b, G_UNICODE_NOT_PRESENT_OFFSET, 2348 }, - { 0x1d54c, G_UNICODE_NOT_PRESENT_OFFSET, 2350 }, - { 0x1d54d, G_UNICODE_NOT_PRESENT_OFFSET, 5451 }, - { 0x1d54e, G_UNICODE_NOT_PRESENT_OFFSET, 2352 }, - { 0x1d54f, G_UNICODE_NOT_PRESENT_OFFSET, 5468 }, - { 0x1d550, G_UNICODE_NOT_PRESENT_OFFSET, 6110 }, - { 0x1d552, G_UNICODE_NOT_PRESENT_OFFSET, 6 }, - { 0x1d553, G_UNICODE_NOT_PRESENT_OFFSET, 2364 }, - { 0x1d554, G_UNICODE_NOT_PRESENT_OFFSET, 2435 }, - { 0x1d555, G_UNICODE_NOT_PRESENT_OFFSET, 2366 }, - { 0x1d556, G_UNICODE_NOT_PRESENT_OFFSET, 2368 }, - { 0x1d557, G_UNICODE_NOT_PRESENT_OFFSET, 2443 }, - { 0x1d558, G_UNICODE_NOT_PRESENT_OFFSET, 2379 }, - { 0x1d559, G_UNICODE_NOT_PRESENT_OFFSET, 1171 }, - { 0x1d55a, G_UNICODE_NOT_PRESENT_OFFSET, 2427 }, - { 0x1d55b, G_UNICODE_NOT_PRESENT_OFFSET, 1176 }, - { 0x1d55c, G_UNICODE_NOT_PRESENT_OFFSET, 2381 }, - { 0x1d55d, G_UNICODE_NOT_PRESENT_OFFSET, 1220 }, - { 0x1d55e, G_UNICODE_NOT_PRESENT_OFFSET, 2383 }, - { 0x1d55f, G_UNICODE_NOT_PRESENT_OFFSET, 5279 }, - { 0x1d560, G_UNICODE_NOT_PRESENT_OFFSET, 29 }, - { 0x1d561, G_UNICODE_NOT_PRESENT_OFFSET, 2399 }, - { 0x1d562, G_UNICODE_NOT_PRESENT_OFFSET, 6112 }, - { 0x1d563, G_UNICODE_NOT_PRESENT_OFFSET, 1178 }, - { 0x1d564, G_UNICODE_NOT_PRESENT_OFFSET, 711 }, - { 0x1d565, G_UNICODE_NOT_PRESENT_OFFSET, 2401 }, - { 0x1d566, G_UNICODE_NOT_PRESENT_OFFSET, 2403 }, - { 0x1d567, G_UNICODE_NOT_PRESENT_OFFSET, 2412 }, - { 0x1d568, G_UNICODE_NOT_PRESENT_OFFSET, 1189 }, - { 0x1d569, G_UNICODE_NOT_PRESENT_OFFSET, 1222 }, - { 0x1d56a, G_UNICODE_NOT_PRESENT_OFFSET, 1191 }, - { 0x1d56b, G_UNICODE_NOT_PRESENT_OFFSET, 2526 }, - { 0x1d56c, G_UNICODE_NOT_PRESENT_OFFSET, 2309 }, - { 0x1d56d, G_UNICODE_NOT_PRESENT_OFFSET, 2314 }, - { 0x1d56e, G_UNICODE_NOT_PRESENT_OFFSET, 5292 }, - { 0x1d56f, G_UNICODE_NOT_PRESENT_OFFSET, 2316 }, - { 0x1d570, G_UNICODE_NOT_PRESENT_OFFSET, 2318 }, - { 0x1d571, G_UNICODE_NOT_PRESENT_OFFSET, 5336 }, - { 0x1d572, G_UNICODE_NOT_PRESENT_OFFSET, 2323 }, - { 0x1d573, G_UNICODE_NOT_PRESENT_OFFSET, 2325 }, - { 0x1d574, G_UNICODE_NOT_PRESENT_OFFSET, 2327 }, - { 0x1d575, G_UNICODE_NOT_PRESENT_OFFSET, 2329 }, - { 0x1d576, G_UNICODE_NOT_PRESENT_OFFSET, 2331 }, - { 0x1d577, G_UNICODE_NOT_PRESENT_OFFSET, 2333 }, - { 0x1d578, G_UNICODE_NOT_PRESENT_OFFSET, 2335 }, - { 0x1d579, G_UNICODE_NOT_PRESENT_OFFSET, 2337 }, - { 0x1d57a, G_UNICODE_NOT_PRESENT_OFFSET, 2339 }, - { 0x1d57b, G_UNICODE_NOT_PRESENT_OFFSET, 2344 }, - { 0x1d57c, G_UNICODE_NOT_PRESENT_OFFSET, 5319 }, - { 0x1d57d, G_UNICODE_NOT_PRESENT_OFFSET, 2346 }, - { 0x1d57e, G_UNICODE_NOT_PRESENT_OFFSET, 6108 }, - { 0x1d57f, G_UNICODE_NOT_PRESENT_OFFSET, 2348 }, - { 0x1d580, G_UNICODE_NOT_PRESENT_OFFSET, 2350 }, - { 0x1d581, G_UNICODE_NOT_PRESENT_OFFSET, 5451 }, - { 0x1d582, G_UNICODE_NOT_PRESENT_OFFSET, 2352 }, - { 0x1d583, G_UNICODE_NOT_PRESENT_OFFSET, 5468 }, - { 0x1d584, G_UNICODE_NOT_PRESENT_OFFSET, 6110 }, - { 0x1d585, G_UNICODE_NOT_PRESENT_OFFSET, 5331 }, - { 0x1d586, G_UNICODE_NOT_PRESENT_OFFSET, 6 }, - { 0x1d587, G_UNICODE_NOT_PRESENT_OFFSET, 2364 }, - { 0x1d588, G_UNICODE_NOT_PRESENT_OFFSET, 2435 }, - { 0x1d589, G_UNICODE_NOT_PRESENT_OFFSET, 2366 }, - { 0x1d58a, G_UNICODE_NOT_PRESENT_OFFSET, 2368 }, - { 0x1d58b, G_UNICODE_NOT_PRESENT_OFFSET, 2443 }, - { 0x1d58c, G_UNICODE_NOT_PRESENT_OFFSET, 2379 }, - { 0x1d58d, G_UNICODE_NOT_PRESENT_OFFSET, 1171 }, - { 0x1d58e, G_UNICODE_NOT_PRESENT_OFFSET, 2427 }, - { 0x1d58f, G_UNICODE_NOT_PRESENT_OFFSET, 1176 }, - { 0x1d590, G_UNICODE_NOT_PRESENT_OFFSET, 2381 }, - { 0x1d591, G_UNICODE_NOT_PRESENT_OFFSET, 1220 }, - { 0x1d592, G_UNICODE_NOT_PRESENT_OFFSET, 2383 }, - { 0x1d593, G_UNICODE_NOT_PRESENT_OFFSET, 5279 }, - { 0x1d594, G_UNICODE_NOT_PRESENT_OFFSET, 29 }, - { 0x1d595, G_UNICODE_NOT_PRESENT_OFFSET, 2399 }, - { 0x1d596, G_UNICODE_NOT_PRESENT_OFFSET, 6112 }, - { 0x1d597, G_UNICODE_NOT_PRESENT_OFFSET, 1178 }, - { 0x1d598, G_UNICODE_NOT_PRESENT_OFFSET, 711 }, - { 0x1d599, G_UNICODE_NOT_PRESENT_OFFSET, 2401 }, - { 0x1d59a, G_UNICODE_NOT_PRESENT_OFFSET, 2403 }, - { 0x1d59b, G_UNICODE_NOT_PRESENT_OFFSET, 2412 }, - { 0x1d59c, G_UNICODE_NOT_PRESENT_OFFSET, 1189 }, - { 0x1d59d, G_UNICODE_NOT_PRESENT_OFFSET, 1222 }, - { 0x1d59e, G_UNICODE_NOT_PRESENT_OFFSET, 1191 }, - { 0x1d59f, G_UNICODE_NOT_PRESENT_OFFSET, 2526 }, - { 0x1d5a0, G_UNICODE_NOT_PRESENT_OFFSET, 2309 }, - { 0x1d5a1, G_UNICODE_NOT_PRESENT_OFFSET, 2314 }, - { 0x1d5a2, G_UNICODE_NOT_PRESENT_OFFSET, 5292 }, - { 0x1d5a3, G_UNICODE_NOT_PRESENT_OFFSET, 2316 }, - { 0x1d5a4, G_UNICODE_NOT_PRESENT_OFFSET, 2318 }, - { 0x1d5a5, G_UNICODE_NOT_PRESENT_OFFSET, 5336 }, - { 0x1d5a6, G_UNICODE_NOT_PRESENT_OFFSET, 2323 }, - { 0x1d5a7, G_UNICODE_NOT_PRESENT_OFFSET, 2325 }, - { 0x1d5a8, G_UNICODE_NOT_PRESENT_OFFSET, 2327 }, - { 0x1d5a9, G_UNICODE_NOT_PRESENT_OFFSET, 2329 }, - { 0x1d5aa, G_UNICODE_NOT_PRESENT_OFFSET, 2331 }, - { 0x1d5ab, G_UNICODE_NOT_PRESENT_OFFSET, 2333 }, - { 0x1d5ac, G_UNICODE_NOT_PRESENT_OFFSET, 2335 }, - { 0x1d5ad, G_UNICODE_NOT_PRESENT_OFFSET, 2337 }, - { 0x1d5ae, G_UNICODE_NOT_PRESENT_OFFSET, 2339 }, - { 0x1d5af, G_UNICODE_NOT_PRESENT_OFFSET, 2344 }, - { 0x1d5b0, G_UNICODE_NOT_PRESENT_OFFSET, 5319 }, - { 0x1d5b1, G_UNICODE_NOT_PRESENT_OFFSET, 2346 }, - { 0x1d5b2, G_UNICODE_NOT_PRESENT_OFFSET, 6108 }, - { 0x1d5b3, G_UNICODE_NOT_PRESENT_OFFSET, 2348 }, - { 0x1d5b4, G_UNICODE_NOT_PRESENT_OFFSET, 2350 }, - { 0x1d5b5, G_UNICODE_NOT_PRESENT_OFFSET, 5451 }, - { 0x1d5b6, G_UNICODE_NOT_PRESENT_OFFSET, 2352 }, - { 0x1d5b7, G_UNICODE_NOT_PRESENT_OFFSET, 5468 }, - { 0x1d5b8, G_UNICODE_NOT_PRESENT_OFFSET, 6110 }, - { 0x1d5b9, G_UNICODE_NOT_PRESENT_OFFSET, 5331 }, - { 0x1d5ba, G_UNICODE_NOT_PRESENT_OFFSET, 6 }, - { 0x1d5bb, G_UNICODE_NOT_PRESENT_OFFSET, 2364 }, - { 0x1d5bc, G_UNICODE_NOT_PRESENT_OFFSET, 2435 }, - { 0x1d5bd, G_UNICODE_NOT_PRESENT_OFFSET, 2366 }, - { 0x1d5be, G_UNICODE_NOT_PRESENT_OFFSET, 2368 }, - { 0x1d5bf, G_UNICODE_NOT_PRESENT_OFFSET, 2443 }, - { 0x1d5c0, G_UNICODE_NOT_PRESENT_OFFSET, 2379 }, - { 0x1d5c1, G_UNICODE_NOT_PRESENT_OFFSET, 1171 }, - { 0x1d5c2, G_UNICODE_NOT_PRESENT_OFFSET, 2427 }, - { 0x1d5c3, G_UNICODE_NOT_PRESENT_OFFSET, 1176 }, - { 0x1d5c4, G_UNICODE_NOT_PRESENT_OFFSET, 2381 }, - { 0x1d5c5, G_UNICODE_NOT_PRESENT_OFFSET, 1220 }, - { 0x1d5c6, G_UNICODE_NOT_PRESENT_OFFSET, 2383 }, - { 0x1d5c7, G_UNICODE_NOT_PRESENT_OFFSET, 5279 }, - { 0x1d5c8, G_UNICODE_NOT_PRESENT_OFFSET, 29 }, - { 0x1d5c9, G_UNICODE_NOT_PRESENT_OFFSET, 2399 }, - { 0x1d5ca, G_UNICODE_NOT_PRESENT_OFFSET, 6112 }, - { 0x1d5cb, G_UNICODE_NOT_PRESENT_OFFSET, 1178 }, - { 0x1d5cc, G_UNICODE_NOT_PRESENT_OFFSET, 711 }, - { 0x1d5cd, G_UNICODE_NOT_PRESENT_OFFSET, 2401 }, - { 0x1d5ce, G_UNICODE_NOT_PRESENT_OFFSET, 2403 }, - { 0x1d5cf, G_UNICODE_NOT_PRESENT_OFFSET, 2412 }, - { 0x1d5d0, G_UNICODE_NOT_PRESENT_OFFSET, 1189 }, - { 0x1d5d1, G_UNICODE_NOT_PRESENT_OFFSET, 1222 }, - { 0x1d5d2, G_UNICODE_NOT_PRESENT_OFFSET, 1191 }, - { 0x1d5d3, G_UNICODE_NOT_PRESENT_OFFSET, 2526 }, - { 0x1d5d4, G_UNICODE_NOT_PRESENT_OFFSET, 2309 }, - { 0x1d5d5, G_UNICODE_NOT_PRESENT_OFFSET, 2314 }, - { 0x1d5d6, G_UNICODE_NOT_PRESENT_OFFSET, 5292 }, - { 0x1d5d7, G_UNICODE_NOT_PRESENT_OFFSET, 2316 }, - { 0x1d5d8, G_UNICODE_NOT_PRESENT_OFFSET, 2318 }, - { 0x1d5d9, G_UNICODE_NOT_PRESENT_OFFSET, 5336 }, - { 0x1d5da, G_UNICODE_NOT_PRESENT_OFFSET, 2323 }, - { 0x1d5db, G_UNICODE_NOT_PRESENT_OFFSET, 2325 }, - { 0x1d5dc, G_UNICODE_NOT_PRESENT_OFFSET, 2327 }, - { 0x1d5dd, G_UNICODE_NOT_PRESENT_OFFSET, 2329 }, - { 0x1d5de, G_UNICODE_NOT_PRESENT_OFFSET, 2331 }, - { 0x1d5df, G_UNICODE_NOT_PRESENT_OFFSET, 2333 }, - { 0x1d5e0, G_UNICODE_NOT_PRESENT_OFFSET, 2335 }, - { 0x1d5e1, G_UNICODE_NOT_PRESENT_OFFSET, 2337 }, - { 0x1d5e2, G_UNICODE_NOT_PRESENT_OFFSET, 2339 }, - { 0x1d5e3, G_UNICODE_NOT_PRESENT_OFFSET, 2344 }, - { 0x1d5e4, G_UNICODE_NOT_PRESENT_OFFSET, 5319 }, - { 0x1d5e5, G_UNICODE_NOT_PRESENT_OFFSET, 2346 }, - { 0x1d5e6, G_UNICODE_NOT_PRESENT_OFFSET, 6108 }, - { 0x1d5e7, G_UNICODE_NOT_PRESENT_OFFSET, 2348 }, - { 0x1d5e8, G_UNICODE_NOT_PRESENT_OFFSET, 2350 }, - { 0x1d5e9, G_UNICODE_NOT_PRESENT_OFFSET, 5451 }, - { 0x1d5ea, G_UNICODE_NOT_PRESENT_OFFSET, 2352 }, - { 0x1d5eb, G_UNICODE_NOT_PRESENT_OFFSET, 5468 }, - { 0x1d5ec, G_UNICODE_NOT_PRESENT_OFFSET, 6110 }, - { 0x1d5ed, G_UNICODE_NOT_PRESENT_OFFSET, 5331 }, - { 0x1d5ee, G_UNICODE_NOT_PRESENT_OFFSET, 6 }, - { 0x1d5ef, G_UNICODE_NOT_PRESENT_OFFSET, 2364 }, - { 0x1d5f0, G_UNICODE_NOT_PRESENT_OFFSET, 2435 }, - { 0x1d5f1, G_UNICODE_NOT_PRESENT_OFFSET, 2366 }, - { 0x1d5f2, G_UNICODE_NOT_PRESENT_OFFSET, 2368 }, - { 0x1d5f3, G_UNICODE_NOT_PRESENT_OFFSET, 2443 }, - { 0x1d5f4, G_UNICODE_NOT_PRESENT_OFFSET, 2379 }, - { 0x1d5f5, G_UNICODE_NOT_PRESENT_OFFSET, 1171 }, - { 0x1d5f6, G_UNICODE_NOT_PRESENT_OFFSET, 2427 }, - { 0x1d5f7, G_UNICODE_NOT_PRESENT_OFFSET, 1176 }, - { 0x1d5f8, G_UNICODE_NOT_PRESENT_OFFSET, 2381 }, - { 0x1d5f9, G_UNICODE_NOT_PRESENT_OFFSET, 1220 }, - { 0x1d5fa, G_UNICODE_NOT_PRESENT_OFFSET, 2383 }, - { 0x1d5fb, G_UNICODE_NOT_PRESENT_OFFSET, 5279 }, - { 0x1d5fc, G_UNICODE_NOT_PRESENT_OFFSET, 29 }, - { 0x1d5fd, G_UNICODE_NOT_PRESENT_OFFSET, 2399 }, - { 0x1d5fe, G_UNICODE_NOT_PRESENT_OFFSET, 6112 }, - { 0x1d5ff, G_UNICODE_NOT_PRESENT_OFFSET, 1178 }, - { 0x1d600, G_UNICODE_NOT_PRESENT_OFFSET, 711 }, - { 0x1d601, G_UNICODE_NOT_PRESENT_OFFSET, 2401 }, - { 0x1d602, G_UNICODE_NOT_PRESENT_OFFSET, 2403 }, - { 0x1d603, G_UNICODE_NOT_PRESENT_OFFSET, 2412 }, - { 0x1d604, G_UNICODE_NOT_PRESENT_OFFSET, 1189 }, - { 0x1d605, G_UNICODE_NOT_PRESENT_OFFSET, 1222 }, - { 0x1d606, G_UNICODE_NOT_PRESENT_OFFSET, 1191 }, - { 0x1d607, G_UNICODE_NOT_PRESENT_OFFSET, 2526 }, - { 0x1d608, G_UNICODE_NOT_PRESENT_OFFSET, 2309 }, - { 0x1d609, G_UNICODE_NOT_PRESENT_OFFSET, 2314 }, - { 0x1d60a, G_UNICODE_NOT_PRESENT_OFFSET, 5292 }, - { 0x1d60b, G_UNICODE_NOT_PRESENT_OFFSET, 2316 }, - { 0x1d60c, G_UNICODE_NOT_PRESENT_OFFSET, 2318 }, - { 0x1d60d, G_UNICODE_NOT_PRESENT_OFFSET, 5336 }, - { 0x1d60e, G_UNICODE_NOT_PRESENT_OFFSET, 2323 }, - { 0x1d60f, G_UNICODE_NOT_PRESENT_OFFSET, 2325 }, - { 0x1d610, G_UNICODE_NOT_PRESENT_OFFSET, 2327 }, - { 0x1d611, G_UNICODE_NOT_PRESENT_OFFSET, 2329 }, - { 0x1d612, G_UNICODE_NOT_PRESENT_OFFSET, 2331 }, - { 0x1d613, G_UNICODE_NOT_PRESENT_OFFSET, 2333 }, - { 0x1d614, G_UNICODE_NOT_PRESENT_OFFSET, 2335 }, - { 0x1d615, G_UNICODE_NOT_PRESENT_OFFSET, 2337 }, - { 0x1d616, G_UNICODE_NOT_PRESENT_OFFSET, 2339 }, - { 0x1d617, G_UNICODE_NOT_PRESENT_OFFSET, 2344 }, - { 0x1d618, G_UNICODE_NOT_PRESENT_OFFSET, 5319 }, - { 0x1d619, G_UNICODE_NOT_PRESENT_OFFSET, 2346 }, - { 0x1d61a, G_UNICODE_NOT_PRESENT_OFFSET, 6108 }, - { 0x1d61b, G_UNICODE_NOT_PRESENT_OFFSET, 2348 }, - { 0x1d61c, G_UNICODE_NOT_PRESENT_OFFSET, 2350 }, - { 0x1d61d, G_UNICODE_NOT_PRESENT_OFFSET, 5451 }, - { 0x1d61e, G_UNICODE_NOT_PRESENT_OFFSET, 2352 }, - { 0x1d61f, G_UNICODE_NOT_PRESENT_OFFSET, 5468 }, - { 0x1d620, G_UNICODE_NOT_PRESENT_OFFSET, 6110 }, - { 0x1d621, G_UNICODE_NOT_PRESENT_OFFSET, 5331 }, - { 0x1d622, G_UNICODE_NOT_PRESENT_OFFSET, 6 }, - { 0x1d623, G_UNICODE_NOT_PRESENT_OFFSET, 2364 }, - { 0x1d624, G_UNICODE_NOT_PRESENT_OFFSET, 2435 }, - { 0x1d625, G_UNICODE_NOT_PRESENT_OFFSET, 2366 }, - { 0x1d626, G_UNICODE_NOT_PRESENT_OFFSET, 2368 }, - { 0x1d627, G_UNICODE_NOT_PRESENT_OFFSET, 2443 }, - { 0x1d628, G_UNICODE_NOT_PRESENT_OFFSET, 2379 }, - { 0x1d629, G_UNICODE_NOT_PRESENT_OFFSET, 1171 }, - { 0x1d62a, G_UNICODE_NOT_PRESENT_OFFSET, 2427 }, - { 0x1d62b, G_UNICODE_NOT_PRESENT_OFFSET, 1176 }, - { 0x1d62c, G_UNICODE_NOT_PRESENT_OFFSET, 2381 }, - { 0x1d62d, G_UNICODE_NOT_PRESENT_OFFSET, 1220 }, - { 0x1d62e, G_UNICODE_NOT_PRESENT_OFFSET, 2383 }, - { 0x1d62f, G_UNICODE_NOT_PRESENT_OFFSET, 5279 }, - { 0x1d630, G_UNICODE_NOT_PRESENT_OFFSET, 29 }, - { 0x1d631, G_UNICODE_NOT_PRESENT_OFFSET, 2399 }, - { 0x1d632, G_UNICODE_NOT_PRESENT_OFFSET, 6112 }, - { 0x1d633, G_UNICODE_NOT_PRESENT_OFFSET, 1178 }, - { 0x1d634, G_UNICODE_NOT_PRESENT_OFFSET, 711 }, - { 0x1d635, G_UNICODE_NOT_PRESENT_OFFSET, 2401 }, - { 0x1d636, G_UNICODE_NOT_PRESENT_OFFSET, 2403 }, - { 0x1d637, G_UNICODE_NOT_PRESENT_OFFSET, 2412 }, - { 0x1d638, G_UNICODE_NOT_PRESENT_OFFSET, 1189 }, - { 0x1d639, G_UNICODE_NOT_PRESENT_OFFSET, 1222 }, - { 0x1d63a, G_UNICODE_NOT_PRESENT_OFFSET, 1191 }, - { 0x1d63b, G_UNICODE_NOT_PRESENT_OFFSET, 2526 }, - { 0x1d63c, G_UNICODE_NOT_PRESENT_OFFSET, 2309 }, - { 0x1d63d, G_UNICODE_NOT_PRESENT_OFFSET, 2314 }, - { 0x1d63e, G_UNICODE_NOT_PRESENT_OFFSET, 5292 }, - { 0x1d63f, G_UNICODE_NOT_PRESENT_OFFSET, 2316 }, - { 0x1d640, G_UNICODE_NOT_PRESENT_OFFSET, 2318 }, - { 0x1d641, G_UNICODE_NOT_PRESENT_OFFSET, 5336 }, - { 0x1d642, G_UNICODE_NOT_PRESENT_OFFSET, 2323 }, - { 0x1d643, G_UNICODE_NOT_PRESENT_OFFSET, 2325 }, - { 0x1d644, G_UNICODE_NOT_PRESENT_OFFSET, 2327 }, - { 0x1d645, G_UNICODE_NOT_PRESENT_OFFSET, 2329 }, - { 0x1d646, G_UNICODE_NOT_PRESENT_OFFSET, 2331 }, - { 0x1d647, G_UNICODE_NOT_PRESENT_OFFSET, 2333 }, - { 0x1d648, G_UNICODE_NOT_PRESENT_OFFSET, 2335 }, - { 0x1d649, G_UNICODE_NOT_PRESENT_OFFSET, 2337 }, - { 0x1d64a, G_UNICODE_NOT_PRESENT_OFFSET, 2339 }, - { 0x1d64b, G_UNICODE_NOT_PRESENT_OFFSET, 2344 }, - { 0x1d64c, G_UNICODE_NOT_PRESENT_OFFSET, 5319 }, - { 0x1d64d, G_UNICODE_NOT_PRESENT_OFFSET, 2346 }, - { 0x1d64e, G_UNICODE_NOT_PRESENT_OFFSET, 6108 }, - { 0x1d64f, G_UNICODE_NOT_PRESENT_OFFSET, 2348 }, - { 0x1d650, G_UNICODE_NOT_PRESENT_OFFSET, 2350 }, - { 0x1d651, G_UNICODE_NOT_PRESENT_OFFSET, 5451 }, - { 0x1d652, G_UNICODE_NOT_PRESENT_OFFSET, 2352 }, - { 0x1d653, G_UNICODE_NOT_PRESENT_OFFSET, 5468 }, - { 0x1d654, G_UNICODE_NOT_PRESENT_OFFSET, 6110 }, - { 0x1d655, G_UNICODE_NOT_PRESENT_OFFSET, 5331 }, - { 0x1d656, G_UNICODE_NOT_PRESENT_OFFSET, 6 }, - { 0x1d657, G_UNICODE_NOT_PRESENT_OFFSET, 2364 }, - { 0x1d658, G_UNICODE_NOT_PRESENT_OFFSET, 2435 }, - { 0x1d659, G_UNICODE_NOT_PRESENT_OFFSET, 2366 }, - { 0x1d65a, G_UNICODE_NOT_PRESENT_OFFSET, 2368 }, - { 0x1d65b, G_UNICODE_NOT_PRESENT_OFFSET, 2443 }, - { 0x1d65c, G_UNICODE_NOT_PRESENT_OFFSET, 2379 }, - { 0x1d65d, G_UNICODE_NOT_PRESENT_OFFSET, 1171 }, - { 0x1d65e, G_UNICODE_NOT_PRESENT_OFFSET, 2427 }, - { 0x1d65f, G_UNICODE_NOT_PRESENT_OFFSET, 1176 }, - { 0x1d660, G_UNICODE_NOT_PRESENT_OFFSET, 2381 }, - { 0x1d661, G_UNICODE_NOT_PRESENT_OFFSET, 1220 }, - { 0x1d662, G_UNICODE_NOT_PRESENT_OFFSET, 2383 }, - { 0x1d663, G_UNICODE_NOT_PRESENT_OFFSET, 5279 }, - { 0x1d664, G_UNICODE_NOT_PRESENT_OFFSET, 29 }, - { 0x1d665, G_UNICODE_NOT_PRESENT_OFFSET, 2399 }, - { 0x1d666, G_UNICODE_NOT_PRESENT_OFFSET, 6112 }, - { 0x1d667, G_UNICODE_NOT_PRESENT_OFFSET, 1178 }, - { 0x1d668, G_UNICODE_NOT_PRESENT_OFFSET, 711 }, - { 0x1d669, G_UNICODE_NOT_PRESENT_OFFSET, 2401 }, - { 0x1d66a, G_UNICODE_NOT_PRESENT_OFFSET, 2403 }, - { 0x1d66b, G_UNICODE_NOT_PRESENT_OFFSET, 2412 }, - { 0x1d66c, G_UNICODE_NOT_PRESENT_OFFSET, 1189 }, - { 0x1d66d, G_UNICODE_NOT_PRESENT_OFFSET, 1222 }, - { 0x1d66e, G_UNICODE_NOT_PRESENT_OFFSET, 1191 }, - { 0x1d66f, G_UNICODE_NOT_PRESENT_OFFSET, 2526 }, - { 0x1d670, G_UNICODE_NOT_PRESENT_OFFSET, 2309 }, - { 0x1d671, G_UNICODE_NOT_PRESENT_OFFSET, 2314 }, - { 0x1d672, G_UNICODE_NOT_PRESENT_OFFSET, 5292 }, - { 0x1d673, G_UNICODE_NOT_PRESENT_OFFSET, 2316 }, - { 0x1d674, G_UNICODE_NOT_PRESENT_OFFSET, 2318 }, - { 0x1d675, G_UNICODE_NOT_PRESENT_OFFSET, 5336 }, - { 0x1d676, G_UNICODE_NOT_PRESENT_OFFSET, 2323 }, - { 0x1d677, G_UNICODE_NOT_PRESENT_OFFSET, 2325 }, - { 0x1d678, G_UNICODE_NOT_PRESENT_OFFSET, 2327 }, - { 0x1d679, G_UNICODE_NOT_PRESENT_OFFSET, 2329 }, - { 0x1d67a, G_UNICODE_NOT_PRESENT_OFFSET, 2331 }, - { 0x1d67b, G_UNICODE_NOT_PRESENT_OFFSET, 2333 }, - { 0x1d67c, G_UNICODE_NOT_PRESENT_OFFSET, 2335 }, - { 0x1d67d, G_UNICODE_NOT_PRESENT_OFFSET, 2337 }, - { 0x1d67e, G_UNICODE_NOT_PRESENT_OFFSET, 2339 }, - { 0x1d67f, G_UNICODE_NOT_PRESENT_OFFSET, 2344 }, - { 0x1d680, G_UNICODE_NOT_PRESENT_OFFSET, 5319 }, - { 0x1d681, G_UNICODE_NOT_PRESENT_OFFSET, 2346 }, - { 0x1d682, G_UNICODE_NOT_PRESENT_OFFSET, 6108 }, - { 0x1d683, G_UNICODE_NOT_PRESENT_OFFSET, 2348 }, - { 0x1d684, G_UNICODE_NOT_PRESENT_OFFSET, 2350 }, - { 0x1d685, G_UNICODE_NOT_PRESENT_OFFSET, 5451 }, - { 0x1d686, G_UNICODE_NOT_PRESENT_OFFSET, 2352 }, - { 0x1d687, G_UNICODE_NOT_PRESENT_OFFSET, 5468 }, - { 0x1d688, G_UNICODE_NOT_PRESENT_OFFSET, 6110 }, - { 0x1d689, G_UNICODE_NOT_PRESENT_OFFSET, 5331 }, - { 0x1d68a, G_UNICODE_NOT_PRESENT_OFFSET, 6 }, - { 0x1d68b, G_UNICODE_NOT_PRESENT_OFFSET, 2364 }, - { 0x1d68c, G_UNICODE_NOT_PRESENT_OFFSET, 2435 }, - { 0x1d68d, G_UNICODE_NOT_PRESENT_OFFSET, 2366 }, - { 0x1d68e, G_UNICODE_NOT_PRESENT_OFFSET, 2368 }, - { 0x1d68f, G_UNICODE_NOT_PRESENT_OFFSET, 2443 }, - { 0x1d690, G_UNICODE_NOT_PRESENT_OFFSET, 2379 }, - { 0x1d691, G_UNICODE_NOT_PRESENT_OFFSET, 1171 }, - { 0x1d692, G_UNICODE_NOT_PRESENT_OFFSET, 2427 }, - { 0x1d693, G_UNICODE_NOT_PRESENT_OFFSET, 1176 }, - { 0x1d694, G_UNICODE_NOT_PRESENT_OFFSET, 2381 }, - { 0x1d695, G_UNICODE_NOT_PRESENT_OFFSET, 1220 }, - { 0x1d696, G_UNICODE_NOT_PRESENT_OFFSET, 2383 }, - { 0x1d697, G_UNICODE_NOT_PRESENT_OFFSET, 5279 }, - { 0x1d698, G_UNICODE_NOT_PRESENT_OFFSET, 29 }, - { 0x1d699, G_UNICODE_NOT_PRESENT_OFFSET, 2399 }, - { 0x1d69a, G_UNICODE_NOT_PRESENT_OFFSET, 6112 }, - { 0x1d69b, G_UNICODE_NOT_PRESENT_OFFSET, 1178 }, - { 0x1d69c, G_UNICODE_NOT_PRESENT_OFFSET, 711 }, - { 0x1d69d, G_UNICODE_NOT_PRESENT_OFFSET, 2401 }, - { 0x1d69e, G_UNICODE_NOT_PRESENT_OFFSET, 2403 }, - { 0x1d69f, G_UNICODE_NOT_PRESENT_OFFSET, 2412 }, - { 0x1d6a0, G_UNICODE_NOT_PRESENT_OFFSET, 1189 }, - { 0x1d6a1, G_UNICODE_NOT_PRESENT_OFFSET, 1222 }, - { 0x1d6a2, G_UNICODE_NOT_PRESENT_OFFSET, 1191 }, - { 0x1d6a3, G_UNICODE_NOT_PRESENT_OFFSET, 2526 }, - { 0x1d6a4, G_UNICODE_NOT_PRESENT_OFFSET, 15061 }, - { 0x1d6a5, G_UNICODE_NOT_PRESENT_OFFSET, 15064 }, - { 0x1d6a8, G_UNICODE_NOT_PRESENT_OFFSET, 15067 }, - { 0x1d6a9, G_UNICODE_NOT_PRESENT_OFFSET, 15070 }, - { 0x1d6aa, G_UNICODE_NOT_PRESENT_OFFSET, 5354 }, - { 0x1d6ab, G_UNICODE_NOT_PRESENT_OFFSET, 15073 }, - { 0x1d6ac, G_UNICODE_NOT_PRESENT_OFFSET, 15076 }, - { 0x1d6ad, G_UNICODE_NOT_PRESENT_OFFSET, 15079 }, - { 0x1d6ae, G_UNICODE_NOT_PRESENT_OFFSET, 15082 }, - { 0x1d6af, G_UNICODE_NOT_PRESENT_OFFSET, 1402 }, - { 0x1d6b0, G_UNICODE_NOT_PRESENT_OFFSET, 15085 }, - { 0x1d6b1, G_UNICODE_NOT_PRESENT_OFFSET, 15088 }, - { 0x1d6b2, G_UNICODE_NOT_PRESENT_OFFSET, 15091 }, - { 0x1d6b3, G_UNICODE_NOT_PRESENT_OFFSET, 15094 }, - { 0x1d6b4, G_UNICODE_NOT_PRESENT_OFFSET, 15097 }, - { 0x1d6b5, G_UNICODE_NOT_PRESENT_OFFSET, 15100 }, - { 0x1d6b6, G_UNICODE_NOT_PRESENT_OFFSET, 15103 }, - { 0x1d6b7, G_UNICODE_NOT_PRESENT_OFFSET, 5357 }, - { 0x1d6b8, G_UNICODE_NOT_PRESENT_OFFSET, 15106 }, - { 0x1d6b9, G_UNICODE_NOT_PRESENT_OFFSET, 1402 }, - { 0x1d6ba, G_UNICODE_NOT_PRESENT_OFFSET, 1408 }, - { 0x1d6bb, G_UNICODE_NOT_PRESENT_OFFSET, 15109 }, - { 0x1d6bc, G_UNICODE_NOT_PRESENT_OFFSET, 1374 }, - { 0x1d6bd, G_UNICODE_NOT_PRESENT_OFFSET, 15112 }, - { 0x1d6be, G_UNICODE_NOT_PRESENT_OFFSET, 15115 }, - { 0x1d6bf, G_UNICODE_NOT_PRESENT_OFFSET, 15118 }, - { 0x1d6c0, G_UNICODE_NOT_PRESENT_OFFSET, 5333 }, - { 0x1d6c1, G_UNICODE_NOT_PRESENT_OFFSET, 15121 }, - { 0x1d6c2, G_UNICODE_NOT_PRESENT_OFFSET, 15125 }, - { 0x1d6c3, G_UNICODE_NOT_PRESENT_OFFSET, 1368 }, - { 0x1d6c4, G_UNICODE_NOT_PRESENT_OFFSET, 2418 }, - { 0x1d6c5, G_UNICODE_NOT_PRESENT_OFFSET, 2421 }, - { 0x1d6c6, G_UNICODE_NOT_PRESENT_OFFSET, 1405 }, - { 0x1d6c7, G_UNICODE_NOT_PRESENT_OFFSET, 15128 }, - { 0x1d6c8, G_UNICODE_NOT_PRESENT_OFFSET, 15131 }, - { 0x1d6c9, G_UNICODE_NOT_PRESENT_OFFSET, 1371 }, - { 0x1d6ca, G_UNICODE_NOT_PRESENT_OFFSET, 4860 }, - { 0x1d6cb, G_UNICODE_NOT_PRESENT_OFFSET, 1393 }, - { 0x1d6cc, G_UNICODE_NOT_PRESENT_OFFSET, 15134 }, - { 0x1d6cd, G_UNICODE_NOT_PRESENT_OFFSET, 20 }, - { 0x1d6ce, G_UNICODE_NOT_PRESENT_OFFSET, 15137 }, - { 0x1d6cf, G_UNICODE_NOT_PRESENT_OFFSET, 15140 }, - { 0x1d6d0, G_UNICODE_NOT_PRESENT_OFFSET, 15143 }, - { 0x1d6d1, G_UNICODE_NOT_PRESENT_OFFSET, 1390 }, - { 0x1d6d2, G_UNICODE_NOT_PRESENT_OFFSET, 1396 }, - { 0x1d6d3, G_UNICODE_NOT_PRESENT_OFFSET, 1399 }, - { 0x1d6d4, G_UNICODE_NOT_PRESENT_OFFSET, 15146 }, - { 0x1d6d5, G_UNICODE_NOT_PRESENT_OFFSET, 15149 }, - { 0x1d6d6, G_UNICODE_NOT_PRESENT_OFFSET, 15152 }, - { 0x1d6d7, G_UNICODE_NOT_PRESENT_OFFSET, 1387 }, - { 0x1d6d8, G_UNICODE_NOT_PRESENT_OFFSET, 2424 }, - { 0x1d6d9, G_UNICODE_NOT_PRESENT_OFFSET, 15155 }, - { 0x1d6da, G_UNICODE_NOT_PRESENT_OFFSET, 15158 }, - { 0x1d6db, G_UNICODE_NOT_PRESENT_OFFSET, 15161 }, - { 0x1d6dc, G_UNICODE_NOT_PRESENT_OFFSET, 1405 }, - { 0x1d6dd, G_UNICODE_NOT_PRESENT_OFFSET, 1371 }, - { 0x1d6de, G_UNICODE_NOT_PRESENT_OFFSET, 1393 }, - { 0x1d6df, G_UNICODE_NOT_PRESENT_OFFSET, 1387 }, - { 0x1d6e0, G_UNICODE_NOT_PRESENT_OFFSET, 1396 }, - { 0x1d6e1, G_UNICODE_NOT_PRESENT_OFFSET, 1390 }, - { 0x1d6e2, G_UNICODE_NOT_PRESENT_OFFSET, 15067 }, - { 0x1d6e3, G_UNICODE_NOT_PRESENT_OFFSET, 15070 }, - { 0x1d6e4, G_UNICODE_NOT_PRESENT_OFFSET, 5354 }, - { 0x1d6e5, G_UNICODE_NOT_PRESENT_OFFSET, 15073 }, - { 0x1d6e6, G_UNICODE_NOT_PRESENT_OFFSET, 15076 }, - { 0x1d6e7, G_UNICODE_NOT_PRESENT_OFFSET, 15079 }, - { 0x1d6e8, G_UNICODE_NOT_PRESENT_OFFSET, 15082 }, - { 0x1d6e9, G_UNICODE_NOT_PRESENT_OFFSET, 1402 }, - { 0x1d6ea, G_UNICODE_NOT_PRESENT_OFFSET, 15085 }, - { 0x1d6eb, G_UNICODE_NOT_PRESENT_OFFSET, 15088 }, - { 0x1d6ec, G_UNICODE_NOT_PRESENT_OFFSET, 15091 }, - { 0x1d6ed, G_UNICODE_NOT_PRESENT_OFFSET, 15094 }, - { 0x1d6ee, G_UNICODE_NOT_PRESENT_OFFSET, 15097 }, - { 0x1d6ef, G_UNICODE_NOT_PRESENT_OFFSET, 15100 }, - { 0x1d6f0, G_UNICODE_NOT_PRESENT_OFFSET, 15103 }, - { 0x1d6f1, G_UNICODE_NOT_PRESENT_OFFSET, 5357 }, - { 0x1d6f2, G_UNICODE_NOT_PRESENT_OFFSET, 15106 }, - { 0x1d6f3, G_UNICODE_NOT_PRESENT_OFFSET, 1402 }, - { 0x1d6f4, G_UNICODE_NOT_PRESENT_OFFSET, 1408 }, - { 0x1d6f5, G_UNICODE_NOT_PRESENT_OFFSET, 15109 }, - { 0x1d6f6, G_UNICODE_NOT_PRESENT_OFFSET, 1374 }, - { 0x1d6f7, G_UNICODE_NOT_PRESENT_OFFSET, 15112 }, - { 0x1d6f8, G_UNICODE_NOT_PRESENT_OFFSET, 15115 }, - { 0x1d6f9, G_UNICODE_NOT_PRESENT_OFFSET, 15118 }, - { 0x1d6fa, G_UNICODE_NOT_PRESENT_OFFSET, 5333 }, - { 0x1d6fb, G_UNICODE_NOT_PRESENT_OFFSET, 15121 }, - { 0x1d6fc, G_UNICODE_NOT_PRESENT_OFFSET, 15125 }, - { 0x1d6fd, G_UNICODE_NOT_PRESENT_OFFSET, 1368 }, - { 0x1d6fe, G_UNICODE_NOT_PRESENT_OFFSET, 2418 }, - { 0x1d6ff, G_UNICODE_NOT_PRESENT_OFFSET, 2421 }, - { 0x1d700, G_UNICODE_NOT_PRESENT_OFFSET, 1405 }, - { 0x1d701, G_UNICODE_NOT_PRESENT_OFFSET, 15128 }, - { 0x1d702, G_UNICODE_NOT_PRESENT_OFFSET, 15131 }, - { 0x1d703, G_UNICODE_NOT_PRESENT_OFFSET, 1371 }, - { 0x1d704, G_UNICODE_NOT_PRESENT_OFFSET, 4860 }, - { 0x1d705, G_UNICODE_NOT_PRESENT_OFFSET, 1393 }, - { 0x1d706, G_UNICODE_NOT_PRESENT_OFFSET, 15134 }, - { 0x1d707, G_UNICODE_NOT_PRESENT_OFFSET, 20 }, - { 0x1d708, G_UNICODE_NOT_PRESENT_OFFSET, 15137 }, - { 0x1d709, G_UNICODE_NOT_PRESENT_OFFSET, 15140 }, - { 0x1d70a, G_UNICODE_NOT_PRESENT_OFFSET, 15143 }, - { 0x1d70b, G_UNICODE_NOT_PRESENT_OFFSET, 1390 }, - { 0x1d70c, G_UNICODE_NOT_PRESENT_OFFSET, 1396 }, - { 0x1d70d, G_UNICODE_NOT_PRESENT_OFFSET, 1399 }, - { 0x1d70e, G_UNICODE_NOT_PRESENT_OFFSET, 15146 }, - { 0x1d70f, G_UNICODE_NOT_PRESENT_OFFSET, 15149 }, - { 0x1d710, G_UNICODE_NOT_PRESENT_OFFSET, 15152 }, - { 0x1d711, G_UNICODE_NOT_PRESENT_OFFSET, 1387 }, - { 0x1d712, G_UNICODE_NOT_PRESENT_OFFSET, 2424 }, - { 0x1d713, G_UNICODE_NOT_PRESENT_OFFSET, 15155 }, - { 0x1d714, G_UNICODE_NOT_PRESENT_OFFSET, 15158 }, - { 0x1d715, G_UNICODE_NOT_PRESENT_OFFSET, 15161 }, - { 0x1d716, G_UNICODE_NOT_PRESENT_OFFSET, 1405 }, - { 0x1d717, G_UNICODE_NOT_PRESENT_OFFSET, 1371 }, - { 0x1d718, G_UNICODE_NOT_PRESENT_OFFSET, 1393 }, - { 0x1d719, G_UNICODE_NOT_PRESENT_OFFSET, 1387 }, - { 0x1d71a, G_UNICODE_NOT_PRESENT_OFFSET, 1396 }, - { 0x1d71b, G_UNICODE_NOT_PRESENT_OFFSET, 1390 }, - { 0x1d71c, G_UNICODE_NOT_PRESENT_OFFSET, 15067 }, - { 0x1d71d, G_UNICODE_NOT_PRESENT_OFFSET, 15070 }, - { 0x1d71e, G_UNICODE_NOT_PRESENT_OFFSET, 5354 }, - { 0x1d71f, G_UNICODE_NOT_PRESENT_OFFSET, 15073 }, - { 0x1d720, G_UNICODE_NOT_PRESENT_OFFSET, 15076 }, - { 0x1d721, G_UNICODE_NOT_PRESENT_OFFSET, 15079 }, - { 0x1d722, G_UNICODE_NOT_PRESENT_OFFSET, 15082 }, - { 0x1d723, G_UNICODE_NOT_PRESENT_OFFSET, 1402 }, - { 0x1d724, G_UNICODE_NOT_PRESENT_OFFSET, 15085 }, - { 0x1d725, G_UNICODE_NOT_PRESENT_OFFSET, 15088 }, - { 0x1d726, G_UNICODE_NOT_PRESENT_OFFSET, 15091 }, - { 0x1d727, G_UNICODE_NOT_PRESENT_OFFSET, 15094 }, - { 0x1d728, G_UNICODE_NOT_PRESENT_OFFSET, 15097 }, - { 0x1d729, G_UNICODE_NOT_PRESENT_OFFSET, 15100 }, - { 0x1d72a, G_UNICODE_NOT_PRESENT_OFFSET, 15103 }, - { 0x1d72b, G_UNICODE_NOT_PRESENT_OFFSET, 5357 }, - { 0x1d72c, G_UNICODE_NOT_PRESENT_OFFSET, 15106 }, - { 0x1d72d, G_UNICODE_NOT_PRESENT_OFFSET, 1402 }, - { 0x1d72e, G_UNICODE_NOT_PRESENT_OFFSET, 1408 }, - { 0x1d72f, G_UNICODE_NOT_PRESENT_OFFSET, 15109 }, - { 0x1d730, G_UNICODE_NOT_PRESENT_OFFSET, 1374 }, - { 0x1d731, G_UNICODE_NOT_PRESENT_OFFSET, 15112 }, - { 0x1d732, G_UNICODE_NOT_PRESENT_OFFSET, 15115 }, - { 0x1d733, G_UNICODE_NOT_PRESENT_OFFSET, 15118 }, - { 0x1d734, G_UNICODE_NOT_PRESENT_OFFSET, 5333 }, - { 0x1d735, G_UNICODE_NOT_PRESENT_OFFSET, 15121 }, - { 0x1d736, G_UNICODE_NOT_PRESENT_OFFSET, 15125 }, - { 0x1d737, G_UNICODE_NOT_PRESENT_OFFSET, 1368 }, - { 0x1d738, G_UNICODE_NOT_PRESENT_OFFSET, 2418 }, - { 0x1d739, G_UNICODE_NOT_PRESENT_OFFSET, 2421 }, - { 0x1d73a, G_UNICODE_NOT_PRESENT_OFFSET, 1405 }, - { 0x1d73b, G_UNICODE_NOT_PRESENT_OFFSET, 15128 }, - { 0x1d73c, G_UNICODE_NOT_PRESENT_OFFSET, 15131 }, - { 0x1d73d, G_UNICODE_NOT_PRESENT_OFFSET, 1371 }, - { 0x1d73e, G_UNICODE_NOT_PRESENT_OFFSET, 4860 }, - { 0x1d73f, G_UNICODE_NOT_PRESENT_OFFSET, 1393 }, - { 0x1d740, G_UNICODE_NOT_PRESENT_OFFSET, 15134 }, - { 0x1d741, G_UNICODE_NOT_PRESENT_OFFSET, 20 }, - { 0x1d742, G_UNICODE_NOT_PRESENT_OFFSET, 15137 }, - { 0x1d743, G_UNICODE_NOT_PRESENT_OFFSET, 15140 }, - { 0x1d744, G_UNICODE_NOT_PRESENT_OFFSET, 15143 }, - { 0x1d745, G_UNICODE_NOT_PRESENT_OFFSET, 1390 }, - { 0x1d746, G_UNICODE_NOT_PRESENT_OFFSET, 1396 }, - { 0x1d747, G_UNICODE_NOT_PRESENT_OFFSET, 1399 }, - { 0x1d748, G_UNICODE_NOT_PRESENT_OFFSET, 15146 }, - { 0x1d749, G_UNICODE_NOT_PRESENT_OFFSET, 15149 }, - { 0x1d74a, G_UNICODE_NOT_PRESENT_OFFSET, 15152 }, - { 0x1d74b, G_UNICODE_NOT_PRESENT_OFFSET, 1387 }, - { 0x1d74c, G_UNICODE_NOT_PRESENT_OFFSET, 2424 }, - { 0x1d74d, G_UNICODE_NOT_PRESENT_OFFSET, 15155 }, - { 0x1d74e, G_UNICODE_NOT_PRESENT_OFFSET, 15158 }, - { 0x1d74f, G_UNICODE_NOT_PRESENT_OFFSET, 15161 }, - { 0x1d750, G_UNICODE_NOT_PRESENT_OFFSET, 1405 }, - { 0x1d751, G_UNICODE_NOT_PRESENT_OFFSET, 1371 }, - { 0x1d752, G_UNICODE_NOT_PRESENT_OFFSET, 1393 }, - { 0x1d753, G_UNICODE_NOT_PRESENT_OFFSET, 1387 }, - { 0x1d754, G_UNICODE_NOT_PRESENT_OFFSET, 1396 }, - { 0x1d755, G_UNICODE_NOT_PRESENT_OFFSET, 1390 }, - { 0x1d756, G_UNICODE_NOT_PRESENT_OFFSET, 15067 }, - { 0x1d757, G_UNICODE_NOT_PRESENT_OFFSET, 15070 }, - { 0x1d758, G_UNICODE_NOT_PRESENT_OFFSET, 5354 }, - { 0x1d759, G_UNICODE_NOT_PRESENT_OFFSET, 15073 }, - { 0x1d75a, G_UNICODE_NOT_PRESENT_OFFSET, 15076 }, - { 0x1d75b, G_UNICODE_NOT_PRESENT_OFFSET, 15079 }, - { 0x1d75c, G_UNICODE_NOT_PRESENT_OFFSET, 15082 }, - { 0x1d75d, G_UNICODE_NOT_PRESENT_OFFSET, 1402 }, - { 0x1d75e, G_UNICODE_NOT_PRESENT_OFFSET, 15085 }, - { 0x1d75f, G_UNICODE_NOT_PRESENT_OFFSET, 15088 }, - { 0x1d760, G_UNICODE_NOT_PRESENT_OFFSET, 15091 }, - { 0x1d761, G_UNICODE_NOT_PRESENT_OFFSET, 15094 }, - { 0x1d762, G_UNICODE_NOT_PRESENT_OFFSET, 15097 }, - { 0x1d763, G_UNICODE_NOT_PRESENT_OFFSET, 15100 }, - { 0x1d764, G_UNICODE_NOT_PRESENT_OFFSET, 15103 }, - { 0x1d765, G_UNICODE_NOT_PRESENT_OFFSET, 5357 }, - { 0x1d766, G_UNICODE_NOT_PRESENT_OFFSET, 15106 }, - { 0x1d767, G_UNICODE_NOT_PRESENT_OFFSET, 1402 }, - { 0x1d768, G_UNICODE_NOT_PRESENT_OFFSET, 1408 }, - { 0x1d769, G_UNICODE_NOT_PRESENT_OFFSET, 15109 }, - { 0x1d76a, G_UNICODE_NOT_PRESENT_OFFSET, 1374 }, - { 0x1d76b, G_UNICODE_NOT_PRESENT_OFFSET, 15112 }, - { 0x1d76c, G_UNICODE_NOT_PRESENT_OFFSET, 15115 }, - { 0x1d76d, G_UNICODE_NOT_PRESENT_OFFSET, 15118 }, - { 0x1d76e, G_UNICODE_NOT_PRESENT_OFFSET, 5333 }, - { 0x1d76f, G_UNICODE_NOT_PRESENT_OFFSET, 15121 }, - { 0x1d770, G_UNICODE_NOT_PRESENT_OFFSET, 15125 }, - { 0x1d771, G_UNICODE_NOT_PRESENT_OFFSET, 1368 }, - { 0x1d772, G_UNICODE_NOT_PRESENT_OFFSET, 2418 }, - { 0x1d773, G_UNICODE_NOT_PRESENT_OFFSET, 2421 }, - { 0x1d774, G_UNICODE_NOT_PRESENT_OFFSET, 1405 }, - { 0x1d775, G_UNICODE_NOT_PRESENT_OFFSET, 15128 }, - { 0x1d776, G_UNICODE_NOT_PRESENT_OFFSET, 15131 }, - { 0x1d777, G_UNICODE_NOT_PRESENT_OFFSET, 1371 }, - { 0x1d778, G_UNICODE_NOT_PRESENT_OFFSET, 4860 }, - { 0x1d779, G_UNICODE_NOT_PRESENT_OFFSET, 1393 }, - { 0x1d77a, G_UNICODE_NOT_PRESENT_OFFSET, 15134 }, - { 0x1d77b, G_UNICODE_NOT_PRESENT_OFFSET, 20 }, - { 0x1d77c, G_UNICODE_NOT_PRESENT_OFFSET, 15137 }, - { 0x1d77d, G_UNICODE_NOT_PRESENT_OFFSET, 15140 }, - { 0x1d77e, G_UNICODE_NOT_PRESENT_OFFSET, 15143 }, - { 0x1d77f, G_UNICODE_NOT_PRESENT_OFFSET, 1390 }, - { 0x1d780, G_UNICODE_NOT_PRESENT_OFFSET, 1396 }, - { 0x1d781, G_UNICODE_NOT_PRESENT_OFFSET, 1399 }, - { 0x1d782, G_UNICODE_NOT_PRESENT_OFFSET, 15146 }, - { 0x1d783, G_UNICODE_NOT_PRESENT_OFFSET, 15149 }, - { 0x1d784, G_UNICODE_NOT_PRESENT_OFFSET, 15152 }, - { 0x1d785, G_UNICODE_NOT_PRESENT_OFFSET, 1387 }, - { 0x1d786, G_UNICODE_NOT_PRESENT_OFFSET, 2424 }, - { 0x1d787, G_UNICODE_NOT_PRESENT_OFFSET, 15155 }, - { 0x1d788, G_UNICODE_NOT_PRESENT_OFFSET, 15158 }, - { 0x1d789, G_UNICODE_NOT_PRESENT_OFFSET, 15161 }, - { 0x1d78a, G_UNICODE_NOT_PRESENT_OFFSET, 1405 }, - { 0x1d78b, G_UNICODE_NOT_PRESENT_OFFSET, 1371 }, - { 0x1d78c, G_UNICODE_NOT_PRESENT_OFFSET, 1393 }, - { 0x1d78d, G_UNICODE_NOT_PRESENT_OFFSET, 1387 }, - { 0x1d78e, G_UNICODE_NOT_PRESENT_OFFSET, 1396 }, - { 0x1d78f, G_UNICODE_NOT_PRESENT_OFFSET, 1390 }, - { 0x1d790, G_UNICODE_NOT_PRESENT_OFFSET, 15067 }, - { 0x1d791, G_UNICODE_NOT_PRESENT_OFFSET, 15070 }, - { 0x1d792, G_UNICODE_NOT_PRESENT_OFFSET, 5354 }, - { 0x1d793, G_UNICODE_NOT_PRESENT_OFFSET, 15073 }, - { 0x1d794, G_UNICODE_NOT_PRESENT_OFFSET, 15076 }, - { 0x1d795, G_UNICODE_NOT_PRESENT_OFFSET, 15079 }, - { 0x1d796, G_UNICODE_NOT_PRESENT_OFFSET, 15082 }, - { 0x1d797, G_UNICODE_NOT_PRESENT_OFFSET, 1402 }, - { 0x1d798, G_UNICODE_NOT_PRESENT_OFFSET, 15085 }, - { 0x1d799, G_UNICODE_NOT_PRESENT_OFFSET, 15088 }, - { 0x1d79a, G_UNICODE_NOT_PRESENT_OFFSET, 15091 }, - { 0x1d79b, G_UNICODE_NOT_PRESENT_OFFSET, 15094 }, - { 0x1d79c, G_UNICODE_NOT_PRESENT_OFFSET, 15097 }, - { 0x1d79d, G_UNICODE_NOT_PRESENT_OFFSET, 15100 }, - { 0x1d79e, G_UNICODE_NOT_PRESENT_OFFSET, 15103 }, - { 0x1d79f, G_UNICODE_NOT_PRESENT_OFFSET, 5357 }, - { 0x1d7a0, G_UNICODE_NOT_PRESENT_OFFSET, 15106 }, - { 0x1d7a1, G_UNICODE_NOT_PRESENT_OFFSET, 1402 }, - { 0x1d7a2, G_UNICODE_NOT_PRESENT_OFFSET, 1408 }, - { 0x1d7a3, G_UNICODE_NOT_PRESENT_OFFSET, 15109 }, - { 0x1d7a4, G_UNICODE_NOT_PRESENT_OFFSET, 1374 }, - { 0x1d7a5, G_UNICODE_NOT_PRESENT_OFFSET, 15112 }, - { 0x1d7a6, G_UNICODE_NOT_PRESENT_OFFSET, 15115 }, - { 0x1d7a7, G_UNICODE_NOT_PRESENT_OFFSET, 15118 }, - { 0x1d7a8, G_UNICODE_NOT_PRESENT_OFFSET, 5333 }, - { 0x1d7a9, G_UNICODE_NOT_PRESENT_OFFSET, 15121 }, - { 0x1d7aa, G_UNICODE_NOT_PRESENT_OFFSET, 15125 }, - { 0x1d7ab, G_UNICODE_NOT_PRESENT_OFFSET, 1368 }, - { 0x1d7ac, G_UNICODE_NOT_PRESENT_OFFSET, 2418 }, - { 0x1d7ad, G_UNICODE_NOT_PRESENT_OFFSET, 2421 }, - { 0x1d7ae, G_UNICODE_NOT_PRESENT_OFFSET, 1405 }, - { 0x1d7af, G_UNICODE_NOT_PRESENT_OFFSET, 15128 }, - { 0x1d7b0, G_UNICODE_NOT_PRESENT_OFFSET, 15131 }, - { 0x1d7b1, G_UNICODE_NOT_PRESENT_OFFSET, 1371 }, - { 0x1d7b2, G_UNICODE_NOT_PRESENT_OFFSET, 4860 }, - { 0x1d7b3, G_UNICODE_NOT_PRESENT_OFFSET, 1393 }, - { 0x1d7b4, G_UNICODE_NOT_PRESENT_OFFSET, 15134 }, - { 0x1d7b5, G_UNICODE_NOT_PRESENT_OFFSET, 20 }, - { 0x1d7b6, G_UNICODE_NOT_PRESENT_OFFSET, 15137 }, - { 0x1d7b7, G_UNICODE_NOT_PRESENT_OFFSET, 15140 }, - { 0x1d7b8, G_UNICODE_NOT_PRESENT_OFFSET, 15143 }, - { 0x1d7b9, G_UNICODE_NOT_PRESENT_OFFSET, 1390 }, - { 0x1d7ba, G_UNICODE_NOT_PRESENT_OFFSET, 1396 }, - { 0x1d7bb, G_UNICODE_NOT_PRESENT_OFFSET, 1399 }, - { 0x1d7bc, G_UNICODE_NOT_PRESENT_OFFSET, 15146 }, - { 0x1d7bd, G_UNICODE_NOT_PRESENT_OFFSET, 15149 }, - { 0x1d7be, G_UNICODE_NOT_PRESENT_OFFSET, 15152 }, - { 0x1d7bf, G_UNICODE_NOT_PRESENT_OFFSET, 1387 }, - { 0x1d7c0, G_UNICODE_NOT_PRESENT_OFFSET, 2424 }, - { 0x1d7c1, G_UNICODE_NOT_PRESENT_OFFSET, 15155 }, - { 0x1d7c2, G_UNICODE_NOT_PRESENT_OFFSET, 15158 }, - { 0x1d7c3, G_UNICODE_NOT_PRESENT_OFFSET, 15161 }, - { 0x1d7c4, G_UNICODE_NOT_PRESENT_OFFSET, 1405 }, - { 0x1d7c5, G_UNICODE_NOT_PRESENT_OFFSET, 1371 }, - { 0x1d7c6, G_UNICODE_NOT_PRESENT_OFFSET, 1393 }, - { 0x1d7c7, G_UNICODE_NOT_PRESENT_OFFSET, 1387 }, - { 0x1d7c8, G_UNICODE_NOT_PRESENT_OFFSET, 1396 }, - { 0x1d7c9, G_UNICODE_NOT_PRESENT_OFFSET, 1390 }, - { 0x1d7ca, G_UNICODE_NOT_PRESENT_OFFSET, 15165 }, - { 0x1d7cb, G_UNICODE_NOT_PRESENT_OFFSET, 15168 }, - { 0x1d7ce, G_UNICODE_NOT_PRESENT_OFFSET, 5253 }, - { 0x1d7cf, G_UNICODE_NOT_PRESENT_OFFSET, 27 }, - { 0x1d7d0, G_UNICODE_NOT_PRESENT_OFFSET, 12 }, - { 0x1d7d1, G_UNICODE_NOT_PRESENT_OFFSET, 14 }, - { 0x1d7d2, G_UNICODE_NOT_PRESENT_OFFSET, 5255 }, - { 0x1d7d3, G_UNICODE_NOT_PRESENT_OFFSET, 5257 }, - { 0x1d7d4, G_UNICODE_NOT_PRESENT_OFFSET, 5259 }, - { 0x1d7d5, G_UNICODE_NOT_PRESENT_OFFSET, 5261 }, - { 0x1d7d6, G_UNICODE_NOT_PRESENT_OFFSET, 5263 }, - { 0x1d7d7, G_UNICODE_NOT_PRESENT_OFFSET, 5265 }, - { 0x1d7d8, G_UNICODE_NOT_PRESENT_OFFSET, 5253 }, - { 0x1d7d9, G_UNICODE_NOT_PRESENT_OFFSET, 27 }, - { 0x1d7da, G_UNICODE_NOT_PRESENT_OFFSET, 12 }, - { 0x1d7db, G_UNICODE_NOT_PRESENT_OFFSET, 14 }, - { 0x1d7dc, G_UNICODE_NOT_PRESENT_OFFSET, 5255 }, - { 0x1d7dd, G_UNICODE_NOT_PRESENT_OFFSET, 5257 }, - { 0x1d7de, G_UNICODE_NOT_PRESENT_OFFSET, 5259 }, - { 0x1d7df, G_UNICODE_NOT_PRESENT_OFFSET, 5261 }, - { 0x1d7e0, G_UNICODE_NOT_PRESENT_OFFSET, 5263 }, - { 0x1d7e1, G_UNICODE_NOT_PRESENT_OFFSET, 5265 }, - { 0x1d7e2, G_UNICODE_NOT_PRESENT_OFFSET, 5253 }, - { 0x1d7e3, G_UNICODE_NOT_PRESENT_OFFSET, 27 }, - { 0x1d7e4, G_UNICODE_NOT_PRESENT_OFFSET, 12 }, - { 0x1d7e5, G_UNICODE_NOT_PRESENT_OFFSET, 14 }, - { 0x1d7e6, G_UNICODE_NOT_PRESENT_OFFSET, 5255 }, - { 0x1d7e7, G_UNICODE_NOT_PRESENT_OFFSET, 5257 }, - { 0x1d7e8, G_UNICODE_NOT_PRESENT_OFFSET, 5259 }, - { 0x1d7e9, G_UNICODE_NOT_PRESENT_OFFSET, 5261 }, - { 0x1d7ea, G_UNICODE_NOT_PRESENT_OFFSET, 5263 }, - { 0x1d7eb, G_UNICODE_NOT_PRESENT_OFFSET, 5265 }, - { 0x1d7ec, G_UNICODE_NOT_PRESENT_OFFSET, 5253 }, - { 0x1d7ed, G_UNICODE_NOT_PRESENT_OFFSET, 27 }, - { 0x1d7ee, G_UNICODE_NOT_PRESENT_OFFSET, 12 }, - { 0x1d7ef, G_UNICODE_NOT_PRESENT_OFFSET, 14 }, - { 0x1d7f0, G_UNICODE_NOT_PRESENT_OFFSET, 5255 }, - { 0x1d7f1, G_UNICODE_NOT_PRESENT_OFFSET, 5257 }, - { 0x1d7f2, G_UNICODE_NOT_PRESENT_OFFSET, 5259 }, - { 0x1d7f3, G_UNICODE_NOT_PRESENT_OFFSET, 5261 }, - { 0x1d7f4, G_UNICODE_NOT_PRESENT_OFFSET, 5263 }, - { 0x1d7f5, G_UNICODE_NOT_PRESENT_OFFSET, 5265 }, - { 0x1d7f6, G_UNICODE_NOT_PRESENT_OFFSET, 5253 }, - { 0x1d7f7, G_UNICODE_NOT_PRESENT_OFFSET, 27 }, - { 0x1d7f8, G_UNICODE_NOT_PRESENT_OFFSET, 12 }, - { 0x1d7f9, G_UNICODE_NOT_PRESENT_OFFSET, 14 }, - { 0x1d7fa, G_UNICODE_NOT_PRESENT_OFFSET, 5255 }, - { 0x1d7fb, G_UNICODE_NOT_PRESENT_OFFSET, 5257 }, - { 0x1d7fc, G_UNICODE_NOT_PRESENT_OFFSET, 5259 }, - { 0x1d7fd, G_UNICODE_NOT_PRESENT_OFFSET, 5261 }, - { 0x1d7fe, G_UNICODE_NOT_PRESENT_OFFSET, 5263 }, - { 0x1d7ff, G_UNICODE_NOT_PRESENT_OFFSET, 5265 }, - { 0x2f800, 15171, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f801, 15175, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f802, 15179, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f803, 15183, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f804, 15188, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f805, 11915, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f806, 15192, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f807, 15196, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f808, 15200, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f809, 15204, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f80a, 11919, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f80b, 15208, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f80c, 15212, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f80d, 15216, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f80e, 11923, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f80f, 15221, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f810, 15225, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f811, 15229, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f812, 15233, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f813, 15238, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f814, 15242, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f815, 15246, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f816, 15250, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f817, 15255, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f818, 15259, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f819, 15263, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f81a, 15267, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f81b, 12131, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f81c, 15271, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f81d, 6220, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f81e, 15276, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f81f, 15280, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f820, 15284, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f821, 15288, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f822, 15292, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f823, 15296, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f824, 15300, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f825, 12151, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f826, 11927, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f827, 11931, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f828, 12155, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f829, 15304, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f82a, 15308, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f82b, 11207, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f82c, 15312, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f82d, 11935, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f82e, 15316, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f82f, 15320, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f830, 15324, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f831, 15328, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f832, 15328, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f833, 15328, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f834, 15332, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f835, 15337, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f836, 15341, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f837, 15345, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f838, 15349, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f839, 15354, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f83a, 15358, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f83b, 15362, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f83c, 15366, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f83d, 15370, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f83e, 15374, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f83f, 15378, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f840, 15382, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f841, 15386, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f842, 15390, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f843, 15394, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f844, 15398, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f845, 15402, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f846, 15402, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f847, 12163, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f848, 15406, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f849, 15410, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f84a, 15414, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f84b, 15418, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f84c, 11943, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f84d, 15422, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f84e, 15426, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f84f, 15430, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f850, 11791, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f851, 15434, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f852, 15438, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f853, 15442, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f854, 15446, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f855, 15450, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f856, 15454, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f857, 15458, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f858, 15462, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f859, 15466, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f85a, 15471, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f85b, 15475, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f85c, 15479, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f85d, 15483, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f85e, 15487, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f85f, 15491, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f860, 15495, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f861, 15500, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f862, 15505, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f863, 15509, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f864, 15513, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f865, 15517, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f866, 15521, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f867, 15525, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f868, 15529, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f869, 15533, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f86a, 15537, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f86b, 15537, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f86c, 15541, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f86d, 15546, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f86e, 15550, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f86f, 11191, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f870, 15554, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f871, 15558, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f872, 15563, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f873, 15567, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f874, 15571, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f875, 6324, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f876, 15575, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f877, 15579, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f878, 6332, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f879, 15583, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f87a, 15587, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f87b, 15591, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f87c, 15596, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f87d, 15600, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f87e, 15605, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f87f, 15609, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f880, 15613, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f881, 15617, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f882, 15621, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f883, 15625, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f884, 15629, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f885, 15633, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f886, 15637, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f887, 15641, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f888, 15645, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f889, 15649, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f88a, 15654, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f88b, 15658, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f88c, 15662, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f88d, 15666, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f88e, 10983, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f88f, 15670, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f890, 6372, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f891, 15675, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f892, 15675, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f893, 15680, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f894, 15684, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f895, 15684, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f896, 15688, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f897, 15692, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f898, 15697, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f899, 15702, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f89a, 15706, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f89b, 15710, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f89c, 15714, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f89d, 15718, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f89e, 15722, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f89f, 15726, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f8a0, 15730, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f8a1, 15734, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f8a2, 15738, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f8a3, 11963, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f8a4, 15742, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f8a5, 15747, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f8a6, 15751, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f8a7, 15755, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f8a8, 12211, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f8a9, 15755, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f8aa, 15759, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f8ab, 11971, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f8ac, 15763, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f8ad, 15767, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f8ae, 15771, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f8af, 15775, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f8b0, 11975, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f8b1, 10875, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f8b2, 15779, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f8b3, 15783, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f8b4, 15787, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f8b5, 15791, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f8b6, 15795, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f8b7, 15799, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f8b8, 15803, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f8b9, 15808, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f8ba, 15812, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f8bb, 15816, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f8bc, 15820, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f8bd, 15824, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f8be, 15828, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f8bf, 15833, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f8c0, 15837, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f8c1, 15841, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f8c2, 15845, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f8c3, 15849, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f8c4, 15853, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f8c5, 15857, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f8c6, 15861, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f8c7, 15865, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f8c8, 11979, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f8c9, 15869, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f8ca, 15873, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f8cb, 15878, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f8cc, 15882, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f8cd, 15886, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f8ce, 15890, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f8cf, 11987, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f8d0, 15894, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f8d1, 15898, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f8d2, 15902, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f8d3, 15906, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f8d4, 15910, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f8d5, 15914, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f8d6, 15918, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f8d7, 15922, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f8d8, 10987, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f8d9, 12243, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f8da, 15926, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f8db, 15930, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f8dc, 15934, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f8dd, 15938, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f8de, 15943, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f8df, 15947, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f8e0, 15951, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f8e1, 15955, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f8e2, 11991, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f8e3, 15959, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f8e4, 15964, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f8e5, 15968, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f8e6, 15972, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f8e7, 12414, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f8e8, 15976, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f8e9, 15980, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f8ea, 15984, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f8eb, 15988, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f8ec, 15992, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f8ed, 15997, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f8ee, 16001, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f8ef, 16005, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f8f0, 16009, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f8f1, 16014, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f8f2, 16018, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f8f3, 16022, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f8f4, 16026, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f8f5, 11259, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f8f6, 16030, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f8f7, 16034, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f8f8, 16039, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f8f9, 16044, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f8fa, 16049, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f8fb, 16053, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f8fc, 16058, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f8fd, 16062, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f8fe, 16066, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f8ff, 16070, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f900, 16074, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f901, 11995, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f902, 11591, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f903, 16078, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f904, 16082, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f905, 16086, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f906, 16090, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f907, 16095, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f908, 16099, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f909, 16103, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f90a, 16107, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f90b, 12255, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f90c, 16111, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f90d, 16115, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f90e, 16120, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f90f, 16124, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f910, 16128, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f911, 16133, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f912, 16138, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f913, 16142, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f914, 12259, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f915, 16146, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f916, 16150, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f917, 16154, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f918, 16158, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f919, 16162, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f91a, 16166, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f91b, 16170, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f91c, 16175, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f91d, 16179, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f91e, 16184, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f91f, 16188, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f920, 16193, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f921, 12267, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f922, 16197, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f923, 16201, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f924, 16206, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f925, 16210, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f926, 16214, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f927, 16219, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f928, 16224, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f929, 16228, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f92a, 16232, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f92b, 16236, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f92c, 16240, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f92d, 16240, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f92e, 16244, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f92f, 16248, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f930, 12275, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f931, 16252, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f932, 16256, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f933, 16260, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f934, 16264, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f935, 16268, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f936, 16273, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f937, 16277, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f938, 11203, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f939, 16282, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f93a, 16287, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f93b, 16291, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f93c, 16296, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f93d, 16301, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f93e, 16306, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f93f, 16310, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f940, 12299, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f941, 16314, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f942, 16319, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f943, 16324, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f944, 16329, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f945, 16334, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f946, 16338, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f947, 16338, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f948, 12303, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f949, 12422, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f94a, 16342, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f94b, 16346, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f94c, 16350, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f94d, 16354, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f94e, 16359, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f94f, 11055, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f950, 12311, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f951, 16363, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f952, 16367, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f953, 12035, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f954, 16372, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f955, 16377, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f956, 11871, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f957, 16382, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f958, 16386, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f959, 12047, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f95a, 16390, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f95b, 16394, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f95c, 16398, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f95d, 16403, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f95e, 16403, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f95f, 16408, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f960, 16412, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f961, 16416, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f962, 16421, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f963, 16425, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f964, 16429, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f965, 16433, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f966, 16438, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f967, 16442, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f968, 16446, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f969, 16450, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f96a, 16454, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f96b, 16458, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f96c, 16463, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f96d, 16467, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f96e, 16471, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f96f, 16475, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f970, 16479, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f971, 16483, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f972, 16487, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f973, 16492, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f974, 16497, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f975, 16501, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f976, 16506, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f977, 16510, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f978, 16515, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f979, 16519, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f97a, 12071, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f97b, 16523, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f97c, 16528, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f97d, 16533, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f97e, 16537, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f97f, 16542, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f980, 16546, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f981, 16551, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f982, 16555, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f983, 16559, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f984, 16563, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f985, 16567, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f986, 16571, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f987, 16575, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f988, 16580, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f989, 16585, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f98a, 16590, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f98b, 15680, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f98c, 16595, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f98d, 16599, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f98e, 16603, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f98f, 16607, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f990, 16611, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f991, 16615, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f992, 16619, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f993, 16623, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f994, 16627, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f995, 16631, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f996, 16635, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f997, 16639, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f998, 11271, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f999, 16644, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f99a, 16648, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f99b, 16652, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f99c, 16656, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f99d, 16660, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f99e, 16664, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f99f, 12083, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f9a0, 16668, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f9a1, 16672, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f9a2, 16676, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f9a3, 16680, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f9a4, 16684, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f9a5, 16689, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f9a6, 16694, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f9a7, 16699, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f9a8, 16703, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f9a9, 16707, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f9aa, 16711, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f9ab, 16715, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f9ac, 16720, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f9ad, 16724, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f9ae, 16729, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f9af, 16733, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f9b0, 16737, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f9b1, 16742, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f9b2, 16747, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f9b3, 16751, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f9b4, 11035, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f9b5, 16755, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f9b6, 16759, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f9b7, 16763, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f9b8, 16767, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f9b9, 16771, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f9ba, 16775, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f9bb, 12339, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f9bc, 16779, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f9bd, 16783, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f9be, 16787, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f9bf, 16791, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f9c0, 16795, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f9c1, 16799, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f9c2, 16803, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f9c3, 16807, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f9c4, 6732, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f9c5, 16811, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f9c6, 16816, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f9c7, 16820, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f9c8, 16824, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f9c9, 16828, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f9ca, 16832, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f9cb, 16836, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f9cc, 16841, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f9cd, 16846, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f9ce, 16850, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f9cf, 16854, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f9d0, 12359, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f9d1, 12363, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f9d2, 6760, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f9d3, 16858, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f9d4, 16863, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f9d5, 16867, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f9d6, 16871, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f9d7, 16875, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f9d8, 16879, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f9d9, 16884, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f9da, 16889, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f9db, 16893, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f9dc, 16897, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f9dd, 16901, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f9de, 16906, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f9df, 12367, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f9e0, 16910, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f9e1, 16915, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f9e2, 16920, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f9e3, 16924, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f9e4, 16928, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f9e5, 16932, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f9e6, 16937, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f9e7, 16941, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f9e8, 16945, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f9e9, 16949, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f9ea, 16953, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f9eb, 16957, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f9ec, 16961, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f9ed, 16965, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f9ee, 16970, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f9ef, 16974, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f9f0, 16978, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f9f1, 16982, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f9f2, 16987, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f9f3, 16991, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f9f4, 16995, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f9f5, 16999, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f9f6, 17003, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f9f7, 17008, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f9f8, 17013, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f9f9, 17017, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f9fa, 17021, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f9fb, 17025, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f9fc, 17030, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f9fd, 17034, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f9fe, 12391, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2f9ff, 12391, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2fa00, 17039, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2fa01, 17043, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2fa02, 17048, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2fa03, 17052, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2fa04, 17056, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2fa05, 17060, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2fa06, 17064, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2fa07, 17068, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2fa08, 17072, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2fa09, 17076, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2fa0a, 12395, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2fa0b, 17081, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2fa0c, 17085, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2fa0d, 17089, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2fa0e, 17093, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2fa0f, 17097, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2fa10, 17101, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2fa11, 17106, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2fa12, 17110, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2fa13, 17115, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2fa14, 17120, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2fa15, 6952, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2fa16, 17125, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2fa17, 6968, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2fa18, 17129, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2fa19, 17133, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2fa1a, 17137, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2fa1b, 17141, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2fa1c, 6988, G_UNICODE_NOT_PRESENT_OFFSET }, - { 0x2fa1d, 17145, G_UNICODE_NOT_PRESENT_OFFSET } -}; - -static const gchar decomp_expansion_string[] = - "\x20\0" /* offset 0 */ - "\x20\xcc\x88\0" /* offset 2 */ - "\x61\0" /* offset 6 */ - "\x20\xcc\x84\0" /* offset 8 */ - "\x32\0" /* offset 12 */ - "\x33\0" /* offset 14 */ - "\x20\xcc\x81\0" /* offset 16 */ - "\xce\xbc\0" /* offset 20 */ - "\x20\xcc\xa7\0" /* offset 23 */ - "\x31\0" /* offset 27 */ - "\x6f\0" /* offset 29 */ - "\x31\xe2\x81\x84\x34\0" /* offset 31 */ - "\x31\xe2\x81\x84\x32\0" /* offset 37 */ - "\x33\xe2\x81\x84\x34\0" /* offset 43 */ - "\x41\xcc\x80\0" /* offset 49 */ - "\x41\xcc\x81\0" /* offset 53 */ - "\x41\xcc\x82\0" /* offset 57 */ - "\x41\xcc\x83\0" /* offset 61 */ - "\x41\xcc\x88\0" /* offset 65 */ - "\x41\xcc\x8a\0" /* offset 69 */ - "\x43\xcc\xa7\0" /* offset 73 */ - "\x45\xcc\x80\0" /* offset 77 */ - "\x45\xcc\x81\0" /* offset 81 */ - "\x45\xcc\x82\0" /* offset 85 */ - "\x45\xcc\x88\0" /* offset 89 */ - "\x49\xcc\x80\0" /* offset 93 */ - "\x49\xcc\x81\0" /* offset 97 */ - "\x49\xcc\x82\0" /* offset 101 */ - "\x49\xcc\x88\0" /* offset 105 */ - "\x4e\xcc\x83\0" /* offset 109 */ - "\x4f\xcc\x80\0" /* offset 113 */ - "\x4f\xcc\x81\0" /* offset 117 */ - "\x4f\xcc\x82\0" /* offset 121 */ - "\x4f\xcc\x83\0" /* offset 125 */ - "\x4f\xcc\x88\0" /* offset 129 */ - "\x55\xcc\x80\0" /* offset 133 */ - "\x55\xcc\x81\0" /* offset 137 */ - "\x55\xcc\x82\0" /* offset 141 */ - "\x55\xcc\x88\0" /* offset 145 */ - "\x59\xcc\x81\0" /* offset 149 */ - "\x61\xcc\x80\0" /* offset 153 */ - "\x61\xcc\x81\0" /* offset 157 */ - "\x61\xcc\x82\0" /* offset 161 */ - "\x61\xcc\x83\0" /* offset 165 */ - "\x61\xcc\x88\0" /* offset 169 */ - "\x61\xcc\x8a\0" /* offset 173 */ - "\x63\xcc\xa7\0" /* offset 177 */ - "\x65\xcc\x80\0" /* offset 181 */ - "\x65\xcc\x81\0" /* offset 185 */ - "\x65\xcc\x82\0" /* offset 189 */ - "\x65\xcc\x88\0" /* offset 193 */ - "\x69\xcc\x80\0" /* offset 197 */ - "\x69\xcc\x81\0" /* offset 201 */ - "\x69\xcc\x82\0" /* offset 205 */ - "\x69\xcc\x88\0" /* offset 209 */ - "\x6e\xcc\x83\0" /* offset 213 */ - "\x6f\xcc\x80\0" /* offset 217 */ - "\x6f\xcc\x81\0" /* offset 221 */ - "\x6f\xcc\x82\0" /* offset 225 */ - "\x6f\xcc\x83\0" /* offset 229 */ - "\x6f\xcc\x88\0" /* offset 233 */ - "\x75\xcc\x80\0" /* offset 237 */ - "\x75\xcc\x81\0" /* offset 241 */ - "\x75\xcc\x82\0" /* offset 245 */ - "\x75\xcc\x88\0" /* offset 249 */ - "\x79\xcc\x81\0" /* offset 253 */ - "\x79\xcc\x88\0" /* offset 257 */ - "\x41\xcc\x84\0" /* offset 261 */ - "\x61\xcc\x84\0" /* offset 265 */ - "\x41\xcc\x86\0" /* offset 269 */ - "\x61\xcc\x86\0" /* offset 273 */ - "\x41\xcc\xa8\0" /* offset 277 */ - "\x61\xcc\xa8\0" /* offset 281 */ - "\x43\xcc\x81\0" /* offset 285 */ - "\x63\xcc\x81\0" /* offset 289 */ - "\x43\xcc\x82\0" /* offset 293 */ - "\x63\xcc\x82\0" /* offset 297 */ - "\x43\xcc\x87\0" /* offset 301 */ - "\x63\xcc\x87\0" /* offset 305 */ - "\x43\xcc\x8c\0" /* offset 309 */ - "\x63\xcc\x8c\0" /* offset 313 */ - "\x44\xcc\x8c\0" /* offset 317 */ - "\x64\xcc\x8c\0" /* offset 321 */ - "\x45\xcc\x84\0" /* offset 325 */ - "\x65\xcc\x84\0" /* offset 329 */ - "\x45\xcc\x86\0" /* offset 333 */ - "\x65\xcc\x86\0" /* offset 337 */ - "\x45\xcc\x87\0" /* offset 341 */ - "\x65\xcc\x87\0" /* offset 345 */ - "\x45\xcc\xa8\0" /* offset 349 */ - "\x65\xcc\xa8\0" /* offset 353 */ - "\x45\xcc\x8c\0" /* offset 357 */ - "\x65\xcc\x8c\0" /* offset 361 */ - "\x47\xcc\x82\0" /* offset 365 */ - "\x67\xcc\x82\0" /* offset 369 */ - "\x47\xcc\x86\0" /* offset 373 */ - "\x67\xcc\x86\0" /* offset 377 */ - "\x47\xcc\x87\0" /* offset 381 */ - "\x67\xcc\x87\0" /* offset 385 */ - "\x47\xcc\xa7\0" /* offset 389 */ - "\x67\xcc\xa7\0" /* offset 393 */ - "\x48\xcc\x82\0" /* offset 397 */ - "\x68\xcc\x82\0" /* offset 401 */ - "\x49\xcc\x83\0" /* offset 405 */ - "\x69\xcc\x83\0" /* offset 409 */ - "\x49\xcc\x84\0" /* offset 413 */ - "\x69\xcc\x84\0" /* offset 417 */ - "\x49\xcc\x86\0" /* offset 421 */ - "\x69\xcc\x86\0" /* offset 425 */ - "\x49\xcc\xa8\0" /* offset 429 */ - "\x69\xcc\xa8\0" /* offset 433 */ - "\x49\xcc\x87\0" /* offset 437 */ - "\x49\x4a\0" /* offset 441 */ - "\x69\x6a\0" /* offset 444 */ - "\x4a\xcc\x82\0" /* offset 447 */ - "\x6a\xcc\x82\0" /* offset 451 */ - "\x4b\xcc\xa7\0" /* offset 455 */ - "\x6b\xcc\xa7\0" /* offset 459 */ - "\x4c\xcc\x81\0" /* offset 463 */ - "\x6c\xcc\x81\0" /* offset 467 */ - "\x4c\xcc\xa7\0" /* offset 471 */ - "\x6c\xcc\xa7\0" /* offset 475 */ - "\x4c\xcc\x8c\0" /* offset 479 */ - "\x6c\xcc\x8c\0" /* offset 483 */ - "\x4c\xc2\xb7\0" /* offset 487 */ - "\x6c\xc2\xb7\0" /* offset 491 */ - "\x4e\xcc\x81\0" /* offset 495 */ - "\x6e\xcc\x81\0" /* offset 499 */ - "\x4e\xcc\xa7\0" /* offset 503 */ - "\x6e\xcc\xa7\0" /* offset 507 */ - "\x4e\xcc\x8c\0" /* offset 511 */ - "\x6e\xcc\x8c\0" /* offset 515 */ - "\xca\xbc\x6e\0" /* offset 519 */ - "\x4f\xcc\x84\0" /* offset 523 */ - "\x6f\xcc\x84\0" /* offset 527 */ - "\x4f\xcc\x86\0" /* offset 531 */ - "\x6f\xcc\x86\0" /* offset 535 */ - "\x4f\xcc\x8b\0" /* offset 539 */ - "\x6f\xcc\x8b\0" /* offset 543 */ - "\x52\xcc\x81\0" /* offset 547 */ - "\x72\xcc\x81\0" /* offset 551 */ - "\x52\xcc\xa7\0" /* offset 555 */ - "\x72\xcc\xa7\0" /* offset 559 */ - "\x52\xcc\x8c\0" /* offset 563 */ - "\x72\xcc\x8c\0" /* offset 567 */ - "\x53\xcc\x81\0" /* offset 571 */ - "\x73\xcc\x81\0" /* offset 575 */ - "\x53\xcc\x82\0" /* offset 579 */ - "\x73\xcc\x82\0" /* offset 583 */ - "\x53\xcc\xa7\0" /* offset 587 */ - "\x73\xcc\xa7\0" /* offset 591 */ - "\x53\xcc\x8c\0" /* offset 595 */ - "\x73\xcc\x8c\0" /* offset 599 */ - "\x54\xcc\xa7\0" /* offset 603 */ - "\x74\xcc\xa7\0" /* offset 607 */ - "\x54\xcc\x8c\0" /* offset 611 */ - "\x74\xcc\x8c\0" /* offset 615 */ - "\x55\xcc\x83\0" /* offset 619 */ - "\x75\xcc\x83\0" /* offset 623 */ - "\x55\xcc\x84\0" /* offset 627 */ - "\x75\xcc\x84\0" /* offset 631 */ - "\x55\xcc\x86\0" /* offset 635 */ - "\x75\xcc\x86\0" /* offset 639 */ - "\x55\xcc\x8a\0" /* offset 643 */ - "\x75\xcc\x8a\0" /* offset 647 */ - "\x55\xcc\x8b\0" /* offset 651 */ - "\x75\xcc\x8b\0" /* offset 655 */ - "\x55\xcc\xa8\0" /* offset 659 */ - "\x75\xcc\xa8\0" /* offset 663 */ - "\x57\xcc\x82\0" /* offset 667 */ - "\x77\xcc\x82\0" /* offset 671 */ - "\x59\xcc\x82\0" /* offset 675 */ - "\x79\xcc\x82\0" /* offset 679 */ - "\x59\xcc\x88\0" /* offset 683 */ - "\x5a\xcc\x81\0" /* offset 687 */ - "\x7a\xcc\x81\0" /* offset 691 */ - "\x5a\xcc\x87\0" /* offset 695 */ - "\x7a\xcc\x87\0" /* offset 699 */ - "\x5a\xcc\x8c\0" /* offset 703 */ - "\x7a\xcc\x8c\0" /* offset 707 */ - "\x73\0" /* offset 711 */ - "\x4f\xcc\x9b\0" /* offset 713 */ - "\x6f\xcc\x9b\0" /* offset 717 */ - "\x55\xcc\x9b\0" /* offset 721 */ - "\x75\xcc\x9b\0" /* offset 725 */ - "\x44\x5a\xcc\x8c\0" /* offset 729 */ - "\x44\x7a\xcc\x8c\0" /* offset 734 */ - "\x64\x7a\xcc\x8c\0" /* offset 739 */ - "\x4c\x4a\0" /* offset 744 */ - "\x4c\x6a\0" /* offset 747 */ - "\x6c\x6a\0" /* offset 750 */ - "\x4e\x4a\0" /* offset 753 */ - "\x4e\x6a\0" /* offset 756 */ - "\x6e\x6a\0" /* offset 759 */ - "\x41\xcc\x8c\0" /* offset 762 */ - "\x61\xcc\x8c\0" /* offset 766 */ - "\x49\xcc\x8c\0" /* offset 770 */ - "\x69\xcc\x8c\0" /* offset 774 */ - "\x4f\xcc\x8c\0" /* offset 778 */ - "\x6f\xcc\x8c\0" /* offset 782 */ - "\x55\xcc\x8c\0" /* offset 786 */ - "\x75\xcc\x8c\0" /* offset 790 */ - "\x55\xcc\x88\xcc\x84\0" /* offset 794 */ - "\x75\xcc\x88\xcc\x84\0" /* offset 800 */ - "\x55\xcc\x88\xcc\x81\0" /* offset 806 */ - "\x75\xcc\x88\xcc\x81\0" /* offset 812 */ - "\x55\xcc\x88\xcc\x8c\0" /* offset 818 */ - "\x75\xcc\x88\xcc\x8c\0" /* offset 824 */ - "\x55\xcc\x88\xcc\x80\0" /* offset 830 */ - "\x75\xcc\x88\xcc\x80\0" /* offset 836 */ - "\x41\xcc\x88\xcc\x84\0" /* offset 842 */ - "\x61\xcc\x88\xcc\x84\0" /* offset 848 */ - "\x41\xcc\x87\xcc\x84\0" /* offset 854 */ - "\x61\xcc\x87\xcc\x84\0" /* offset 860 */ - "\xc3\x86\xcc\x84\0" /* offset 866 */ - "\xc3\xa6\xcc\x84\0" /* offset 871 */ - "\x47\xcc\x8c\0" /* offset 876 */ - "\x67\xcc\x8c\0" /* offset 880 */ - "\x4b\xcc\x8c\0" /* offset 884 */ - "\x6b\xcc\x8c\0" /* offset 888 */ - "\x4f\xcc\xa8\0" /* offset 892 */ - "\x6f\xcc\xa8\0" /* offset 896 */ - "\x4f\xcc\xa8\xcc\x84\0" /* offset 900 */ - "\x6f\xcc\xa8\xcc\x84\0" /* offset 906 */ - "\xc6\xb7\xcc\x8c\0" /* offset 912 */ - "\xca\x92\xcc\x8c\0" /* offset 917 */ - "\x6a\xcc\x8c\0" /* offset 922 */ - "\x44\x5a\0" /* offset 926 */ - "\x44\x7a\0" /* offset 929 */ - "\x64\x7a\0" /* offset 932 */ - "\x47\xcc\x81\0" /* offset 935 */ - "\x67\xcc\x81\0" /* offset 939 */ - "\x4e\xcc\x80\0" /* offset 943 */ - "\x6e\xcc\x80\0" /* offset 947 */ - "\x41\xcc\x8a\xcc\x81\0" /* offset 951 */ - "\x61\xcc\x8a\xcc\x81\0" /* offset 957 */ - "\xc3\x86\xcc\x81\0" /* offset 963 */ - "\xc3\xa6\xcc\x81\0" /* offset 968 */ - "\xc3\x98\xcc\x81\0" /* offset 973 */ - "\xc3\xb8\xcc\x81\0" /* offset 978 */ - "\x41\xcc\x8f\0" /* offset 983 */ - "\x61\xcc\x8f\0" /* offset 987 */ - "\x41\xcc\x91\0" /* offset 991 */ - "\x61\xcc\x91\0" /* offset 995 */ - "\x45\xcc\x8f\0" /* offset 999 */ - "\x65\xcc\x8f\0" /* offset 1003 */ - "\x45\xcc\x91\0" /* offset 1007 */ - "\x65\xcc\x91\0" /* offset 1011 */ - "\x49\xcc\x8f\0" /* offset 1015 */ - "\x69\xcc\x8f\0" /* offset 1019 */ - "\x49\xcc\x91\0" /* offset 1023 */ - "\x69\xcc\x91\0" /* offset 1027 */ - "\x4f\xcc\x8f\0" /* offset 1031 */ - "\x6f\xcc\x8f\0" /* offset 1035 */ - "\x4f\xcc\x91\0" /* offset 1039 */ - "\x6f\xcc\x91\0" /* offset 1043 */ - "\x52\xcc\x8f\0" /* offset 1047 */ - "\x72\xcc\x8f\0" /* offset 1051 */ - "\x52\xcc\x91\0" /* offset 1055 */ - "\x72\xcc\x91\0" /* offset 1059 */ - "\x55\xcc\x8f\0" /* offset 1063 */ - "\x75\xcc\x8f\0" /* offset 1067 */ - "\x55\xcc\x91\0" /* offset 1071 */ - "\x75\xcc\x91\0" /* offset 1075 */ - "\x53\xcc\xa6\0" /* offset 1079 */ - "\x73\xcc\xa6\0" /* offset 1083 */ - "\x54\xcc\xa6\0" /* offset 1087 */ - "\x74\xcc\xa6\0" /* offset 1091 */ - "\x48\xcc\x8c\0" /* offset 1095 */ - "\x68\xcc\x8c\0" /* offset 1099 */ - "\x41\xcc\x87\0" /* offset 1103 */ - "\x61\xcc\x87\0" /* offset 1107 */ - "\x45\xcc\xa7\0" /* offset 1111 */ - "\x65\xcc\xa7\0" /* offset 1115 */ - "\x4f\xcc\x88\xcc\x84\0" /* offset 1119 */ - "\x6f\xcc\x88\xcc\x84\0" /* offset 1125 */ - "\x4f\xcc\x83\xcc\x84\0" /* offset 1131 */ - "\x6f\xcc\x83\xcc\x84\0" /* offset 1137 */ - "\x4f\xcc\x87\0" /* offset 1143 */ - "\x6f\xcc\x87\0" /* offset 1147 */ - "\x4f\xcc\x87\xcc\x84\0" /* offset 1151 */ - "\x6f\xcc\x87\xcc\x84\0" /* offset 1157 */ - "\x59\xcc\x84\0" /* offset 1163 */ - "\x79\xcc\x84\0" /* offset 1167 */ - "\x68\0" /* offset 1171 */ - "\xc9\xa6\0" /* offset 1173 */ - "\x6a\0" /* offset 1176 */ - "\x72\0" /* offset 1178 */ - "\xc9\xb9\0" /* offset 1180 */ - "\xc9\xbb\0" /* offset 1183 */ - "\xca\x81\0" /* offset 1186 */ - "\x77\0" /* offset 1189 */ - "\x79\0" /* offset 1191 */ - "\x20\xcc\x86\0" /* offset 1193 */ - "\x20\xcc\x87\0" /* offset 1197 */ - "\x20\xcc\x8a\0" /* offset 1201 */ - "\x20\xcc\xa8\0" /* offset 1205 */ - "\x20\xcc\x83\0" /* offset 1209 */ - "\x20\xcc\x8b\0" /* offset 1213 */ - "\xc9\xa3\0" /* offset 1217 */ - "\x6c\0" /* offset 1220 */ - "\x78\0" /* offset 1222 */ - "\xca\x95\0" /* offset 1224 */ - "\xcc\x80\0" /* offset 1227 */ - "\xcc\x81\0" /* offset 1230 */ - "\xcc\x93\0" /* offset 1233 */ - "\xcc\x88\xcc\x81\0" /* offset 1236 */ - "\xca\xb9\0" /* offset 1241 */ - "\x20\xcd\x85\0" /* offset 1244 */ - "\x3b\0" /* offset 1248 */ - "\xc2\xa8\xcc\x81\0" /* offset 1250 */ - "\x20\xcc\x88\xcc\x81\0" /* offset 1255 */ - "\xce\x91\xcc\x81\0" /* offset 1261 */ - "\xc2\xb7\0" /* offset 1266 */ - "\xce\x95\xcc\x81\0" /* offset 1269 */ - "\xce\x97\xcc\x81\0" /* offset 1274 */ - "\xce\x99\xcc\x81\0" /* offset 1279 */ - "\xce\x9f\xcc\x81\0" /* offset 1284 */ - "\xce\xa5\xcc\x81\0" /* offset 1289 */ - "\xce\xa9\xcc\x81\0" /* offset 1294 */ - "\xce\xb9\xcc\x88\xcc\x81\0" /* offset 1299 */ - "\xce\x99\xcc\x88\0" /* offset 1306 */ - "\xce\xa5\xcc\x88\0" /* offset 1311 */ - "\xce\xb1\xcc\x81\0" /* offset 1316 */ - "\xce\xb5\xcc\x81\0" /* offset 1321 */ - "\xce\xb7\xcc\x81\0" /* offset 1326 */ - "\xce\xb9\xcc\x81\0" /* offset 1331 */ - "\xcf\x85\xcc\x88\xcc\x81\0" /* offset 1336 */ - "\xce\xb9\xcc\x88\0" /* offset 1343 */ - "\xcf\x85\xcc\x88\0" /* offset 1348 */ - "\xce\xbf\xcc\x81\0" /* offset 1353 */ - "\xcf\x85\xcc\x81\0" /* offset 1358 */ - "\xcf\x89\xcc\x81\0" /* offset 1363 */ - "\xce\xb2\0" /* offset 1368 */ - "\xce\xb8\0" /* offset 1371 */ - "\xce\xa5\0" /* offset 1374 */ - "\xcf\x92\xcc\x81\0" /* offset 1377 */ - "\xcf\x92\xcc\x88\0" /* offset 1382 */ - "\xcf\x86\0" /* offset 1387 */ - "\xcf\x80\0" /* offset 1390 */ - "\xce\xba\0" /* offset 1393 */ - "\xcf\x81\0" /* offset 1396 */ - "\xcf\x82\0" /* offset 1399 */ - "\xce\x98\0" /* offset 1402 */ - "\xce\xb5\0" /* offset 1405 */ - "\xce\xa3\0" /* offset 1408 */ - "\xd0\x95\xcc\x80\0" /* offset 1411 */ - "\xd0\x95\xcc\x88\0" /* offset 1416 */ - "\xd0\x93\xcc\x81\0" /* offset 1421 */ - "\xd0\x86\xcc\x88\0" /* offset 1426 */ - "\xd0\x9a\xcc\x81\0" /* offset 1431 */ - "\xd0\x98\xcc\x80\0" /* offset 1436 */ - "\xd0\xa3\xcc\x86\0" /* offset 1441 */ - "\xd0\x98\xcc\x86\0" /* offset 1446 */ - "\xd0\xb8\xcc\x86\0" /* offset 1451 */ - "\xd0\xb5\xcc\x80\0" /* offset 1456 */ - "\xd0\xb5\xcc\x88\0" /* offset 1461 */ - "\xd0\xb3\xcc\x81\0" /* offset 1466 */ - "\xd1\x96\xcc\x88\0" /* offset 1471 */ - "\xd0\xba\xcc\x81\0" /* offset 1476 */ - "\xd0\xb8\xcc\x80\0" /* offset 1481 */ - "\xd1\x83\xcc\x86\0" /* offset 1486 */ - "\xd1\xb4\xcc\x8f\0" /* offset 1491 */ - "\xd1\xb5\xcc\x8f\0" /* offset 1496 */ - "\xd0\x96\xcc\x86\0" /* offset 1501 */ - "\xd0\xb6\xcc\x86\0" /* offset 1506 */ - "\xd0\x90\xcc\x86\0" /* offset 1511 */ - "\xd0\xb0\xcc\x86\0" /* offset 1516 */ - "\xd0\x90\xcc\x88\0" /* offset 1521 */ - "\xd0\xb0\xcc\x88\0" /* offset 1526 */ - "\xd0\x95\xcc\x86\0" /* offset 1531 */ - "\xd0\xb5\xcc\x86\0" /* offset 1536 */ - "\xd3\x98\xcc\x88\0" /* offset 1541 */ - "\xd3\x99\xcc\x88\0" /* offset 1546 */ - "\xd0\x96\xcc\x88\0" /* offset 1551 */ - "\xd0\xb6\xcc\x88\0" /* offset 1556 */ - "\xd0\x97\xcc\x88\0" /* offset 1561 */ - "\xd0\xb7\xcc\x88\0" /* offset 1566 */ - "\xd0\x98\xcc\x84\0" /* offset 1571 */ - "\xd0\xb8\xcc\x84\0" /* offset 1576 */ - "\xd0\x98\xcc\x88\0" /* offset 1581 */ - "\xd0\xb8\xcc\x88\0" /* offset 1586 */ - "\xd0\x9e\xcc\x88\0" /* offset 1591 */ - "\xd0\xbe\xcc\x88\0" /* offset 1596 */ - "\xd3\xa8\xcc\x88\0" /* offset 1601 */ - "\xd3\xa9\xcc\x88\0" /* offset 1606 */ - "\xd0\xad\xcc\x88\0" /* offset 1611 */ - "\xd1\x8d\xcc\x88\0" /* offset 1616 */ - "\xd0\xa3\xcc\x84\0" /* offset 1621 */ - "\xd1\x83\xcc\x84\0" /* offset 1626 */ - "\xd0\xa3\xcc\x88\0" /* offset 1631 */ - "\xd1\x83\xcc\x88\0" /* offset 1636 */ - "\xd0\xa3\xcc\x8b\0" /* offset 1641 */ - "\xd1\x83\xcc\x8b\0" /* offset 1646 */ - "\xd0\xa7\xcc\x88\0" /* offset 1651 */ - "\xd1\x87\xcc\x88\0" /* offset 1656 */ - "\xd0\xab\xcc\x88\0" /* offset 1661 */ - "\xd1\x8b\xcc\x88\0" /* offset 1666 */ - "\xd5\xa5\xd6\x82\0" /* offset 1671 */ - "\xd8\xa7\xd9\x93\0" /* offset 1676 */ - "\xd8\xa7\xd9\x94\0" /* offset 1681 */ - "\xd9\x88\xd9\x94\0" /* offset 1686 */ - "\xd8\xa7\xd9\x95\0" /* offset 1691 */ - "\xd9\x8a\xd9\x94\0" /* offset 1696 */ - "\xd8\xa7\xd9\xb4\0" /* offset 1701 */ - "\xd9\x88\xd9\xb4\0" /* offset 1706 */ - "\xdb\x87\xd9\xb4\0" /* offset 1711 */ - "\xd9\x8a\xd9\xb4\0" /* offset 1716 */ - "\xdb\x95\xd9\x94\0" /* offset 1721 */ - "\xdb\x81\xd9\x94\0" /* offset 1726 */ - "\xdb\x92\xd9\x94\0" /* offset 1731 */ - "\xe0\xa4\xa8\xe0\xa4\xbc\0" /* offset 1736 */ - "\xe0\xa4\xb0\xe0\xa4\xbc\0" /* offset 1743 */ - "\xe0\xa4\xb3\xe0\xa4\xbc\0" /* offset 1750 */ - "\xe0\xa4\x95\xe0\xa4\xbc\0" /* offset 1757 */ - "\xe0\xa4\x96\xe0\xa4\xbc\0" /* offset 1764 */ - "\xe0\xa4\x97\xe0\xa4\xbc\0" /* offset 1771 */ - "\xe0\xa4\x9c\xe0\xa4\xbc\0" /* offset 1778 */ - "\xe0\xa4\xa1\xe0\xa4\xbc\0" /* offset 1785 */ - "\xe0\xa4\xa2\xe0\xa4\xbc\0" /* offset 1792 */ - "\xe0\xa4\xab\xe0\xa4\xbc\0" /* offset 1799 */ - "\xe0\xa4\xaf\xe0\xa4\xbc\0" /* offset 1806 */ - "\xe0\xa7\x87\xe0\xa6\xbe\0" /* offset 1813 */ - "\xe0\xa7\x87\xe0\xa7\x97\0" /* offset 1820 */ - "\xe0\xa6\xa1\xe0\xa6\xbc\0" /* offset 1827 */ - "\xe0\xa6\xa2\xe0\xa6\xbc\0" /* offset 1834 */ - "\xe0\xa6\xaf\xe0\xa6\xbc\0" /* offset 1841 */ - "\xe0\xa8\xb2\xe0\xa8\xbc\0" /* offset 1848 */ - "\xe0\xa8\xb8\xe0\xa8\xbc\0" /* offset 1855 */ - "\xe0\xa8\x96\xe0\xa8\xbc\0" /* offset 1862 */ - "\xe0\xa8\x97\xe0\xa8\xbc\0" /* offset 1869 */ - "\xe0\xa8\x9c\xe0\xa8\xbc\0" /* offset 1876 */ - "\xe0\xa8\xab\xe0\xa8\xbc\0" /* offset 1883 */ - "\xe0\xad\x87\xe0\xad\x96\0" /* offset 1890 */ - "\xe0\xad\x87\xe0\xac\xbe\0" /* offset 1897 */ - "\xe0\xad\x87\xe0\xad\x97\0" /* offset 1904 */ - "\xe0\xac\xa1\xe0\xac\xbc\0" /* offset 1911 */ - "\xe0\xac\xa2\xe0\xac\xbc\0" /* offset 1918 */ - "\xe0\xae\x92\xe0\xaf\x97\0" /* offset 1925 */ - "\xe0\xaf\x86\xe0\xae\xbe\0" /* offset 1932 */ - "\xe0\xaf\x87\xe0\xae\xbe\0" /* offset 1939 */ - "\xe0\xaf\x86\xe0\xaf\x97\0" /* offset 1946 */ - "\xe0\xb1\x86\xe0\xb1\x96\0" /* offset 1953 */ - "\xe0\xb2\xbf\xe0\xb3\x95\0" /* offset 1960 */ - "\xe0\xb3\x86\xe0\xb3\x95\0" /* offset 1967 */ - "\xe0\xb3\x86\xe0\xb3\x96\0" /* offset 1974 */ - "\xe0\xb3\x86\xe0\xb3\x82\0" /* offset 1981 */ - "\xe0\xb3\x86\xe0\xb3\x82\xe0\xb3\x95\0" /* offset 1988 */ - "\xe0\xb5\x86\xe0\xb4\xbe\0" /* offset 1998 */ - "\xe0\xb5\x87\xe0\xb4\xbe\0" /* offset 2005 */ - "\xe0\xb5\x86\xe0\xb5\x97\0" /* offset 2012 */ - "\xe0\xb7\x99\xe0\xb7\x8a\0" /* offset 2019 */ - "\xe0\xb7\x99\xe0\xb7\x8f\0" /* offset 2026 */ - "\xe0\xb7\x99\xe0\xb7\x8f\xe0\xb7\x8a\0" /* offset 2033 */ - "\xe0\xb7\x99\xe0\xb7\x9f\0" /* offset 2043 */ - "\xe0\xb9\x8d\xe0\xb8\xb2\0" /* offset 2050 */ - "\xe0\xbb\x8d\xe0\xba\xb2\0" /* offset 2057 */ - "\xe0\xba\xab\xe0\xba\x99\0" /* offset 2064 */ - "\xe0\xba\xab\xe0\xba\xa1\0" /* offset 2071 */ - "\xe0\xbc\x8b\0" /* offset 2078 */ - "\xe0\xbd\x82\xe0\xbe\xb7\0" /* offset 2082 */ - "\xe0\xbd\x8c\xe0\xbe\xb7\0" /* offset 2089 */ - "\xe0\xbd\x91\xe0\xbe\xb7\0" /* offset 2096 */ - "\xe0\xbd\x96\xe0\xbe\xb7\0" /* offset 2103 */ - "\xe0\xbd\x9b\xe0\xbe\xb7\0" /* offset 2110 */ - "\xe0\xbd\x80\xe0\xbe\xb5\0" /* offset 2117 */ - "\xe0\xbd\xb1\xe0\xbd\xb2\0" /* offset 2124 */ - "\xe0\xbd\xb1\xe0\xbd\xb4\0" /* offset 2131 */ - "\xe0\xbe\xb2\xe0\xbe\x80\0" /* offset 2138 */ - "\xe0\xbe\xb2\xe0\xbd\xb1\xe0\xbe\x80\0" /* offset 2145 */ - "\xe0\xbe\xb3\xe0\xbe\x80\0" /* offset 2155 */ - "\xe0\xbe\xb3\xe0\xbd\xb1\xe0\xbe\x80\0" /* offset 2162 */ - "\xe0\xbd\xb1\xe0\xbe\x80\0" /* offset 2172 */ - "\xe0\xbe\x92\xe0\xbe\xb7\0" /* offset 2179 */ - "\xe0\xbe\x9c\xe0\xbe\xb7\0" /* offset 2186 */ - "\xe0\xbe\xa1\xe0\xbe\xb7\0" /* offset 2193 */ - "\xe0\xbe\xa6\xe0\xbe\xb7\0" /* offset 2200 */ - "\xe0\xbe\xab\xe0\xbe\xb7\0" /* offset 2207 */ - "\xe0\xbe\x90\xe0\xbe\xb5\0" /* offset 2214 */ - "\xe1\x80\xa5\xe1\x80\xae\0" /* offset 2221 */ - "\xe1\x83\x9c\0" /* offset 2228 */ - "\xe1\xac\x85\xe1\xac\xb5\0" /* offset 2232 */ - "\xe1\xac\x87\xe1\xac\xb5\0" /* offset 2239 */ - "\xe1\xac\x89\xe1\xac\xb5\0" /* offset 2246 */ - "\xe1\xac\x8b\xe1\xac\xb5\0" /* offset 2253 */ - "\xe1\xac\x8d\xe1\xac\xb5\0" /* offset 2260 */ - "\xe1\xac\x91\xe1\xac\xb5\0" /* offset 2267 */ - "\xe1\xac\xba\xe1\xac\xb5\0" /* offset 2274 */ - "\xe1\xac\xbc\xe1\xac\xb5\0" /* offset 2281 */ - "\xe1\xac\xbe\xe1\xac\xb5\0" /* offset 2288 */ - "\xe1\xac\xbf\xe1\xac\xb5\0" /* offset 2295 */ - "\xe1\xad\x82\xe1\xac\xb5\0" /* offset 2302 */ - "\x41\0" /* offset 2309 */ - "\xc3\x86\0" /* offset 2311 */ - "\x42\0" /* offset 2314 */ - "\x44\0" /* offset 2316 */ - "\x45\0" /* offset 2318 */ - "\xc6\x8e\0" /* offset 2320 */ - "\x47\0" /* offset 2323 */ - "\x48\0" /* offset 2325 */ - "\x49\0" /* offset 2327 */ - "\x4a\0" /* offset 2329 */ - "\x4b\0" /* offset 2331 */ - "\x4c\0" /* offset 2333 */ - "\x4d\0" /* offset 2335 */ - "\x4e\0" /* offset 2337 */ - "\x4f\0" /* offset 2339 */ - "\xc8\xa2\0" /* offset 2341 */ - "\x50\0" /* offset 2344 */ - "\x52\0" /* offset 2346 */ - "\x54\0" /* offset 2348 */ - "\x55\0" /* offset 2350 */ - "\x57\0" /* offset 2352 */ - "\xc9\x90\0" /* offset 2354 */ - "\xc9\x91\0" /* offset 2357 */ - "\xe1\xb4\x82\0" /* offset 2360 */ - "\x62\0" /* offset 2364 */ - "\x64\0" /* offset 2366 */ - "\x65\0" /* offset 2368 */ - "\xc9\x99\0" /* offset 2370 */ - "\xc9\x9b\0" /* offset 2373 */ - "\xc9\x9c\0" /* offset 2376 */ - "\x67\0" /* offset 2379 */ - "\x6b\0" /* offset 2381 */ - "\x6d\0" /* offset 2383 */ - "\xc5\x8b\0" /* offset 2385 */ - "\xc9\x94\0" /* offset 2388 */ - "\xe1\xb4\x96\0" /* offset 2391 */ - "\xe1\xb4\x97\0" /* offset 2395 */ - "\x70\0" /* offset 2399 */ - "\x74\0" /* offset 2401 */ - "\x75\0" /* offset 2403 */ - "\xe1\xb4\x9d\0" /* offset 2405 */ - "\xc9\xaf\0" /* offset 2409 */ - "\x76\0" /* offset 2412 */ - "\xe1\xb4\xa5\0" /* offset 2414 */ - "\xce\xb3\0" /* offset 2418 */ - "\xce\xb4\0" /* offset 2421 */ - "\xcf\x87\0" /* offset 2424 */ - "\x69\0" /* offset 2427 */ - "\xd0\xbd\0" /* offset 2429 */ - "\xc9\x92\0" /* offset 2432 */ - "\x63\0" /* offset 2435 */ - "\xc9\x95\0" /* offset 2437 */ - "\xc3\xb0\0" /* offset 2440 */ - "\x66\0" /* offset 2443 */ - "\xc9\x9f\0" /* offset 2445 */ - "\xc9\xa1\0" /* offset 2448 */ - "\xc9\xa5\0" /* offset 2451 */ - "\xc9\xa8\0" /* offset 2454 */ - "\xc9\xa9\0" /* offset 2457 */ - "\xc9\xaa\0" /* offset 2460 */ - "\xe1\xb5\xbb\0" /* offset 2463 */ - "\xca\x9d\0" /* offset 2467 */ - "\xc9\xad\0" /* offset 2470 */ - "\xe1\xb6\x85\0" /* offset 2473 */ - "\xca\x9f\0" /* offset 2477 */ - "\xc9\xb1\0" /* offset 2480 */ - "\xc9\xb0\0" /* offset 2483 */ - "\xc9\xb2\0" /* offset 2486 */ - "\xc9\xb3\0" /* offset 2489 */ - "\xc9\xb4\0" /* offset 2492 */ - "\xc9\xb5\0" /* offset 2495 */ - "\xc9\xb8\0" /* offset 2498 */ - "\xca\x82\0" /* offset 2501 */ - "\xca\x83\0" /* offset 2504 */ - "\xc6\xab\0" /* offset 2507 */ - "\xca\x89\0" /* offset 2510 */ - "\xca\x8a\0" /* offset 2513 */ - "\xe1\xb4\x9c\0" /* offset 2516 */ - "\xca\x8b\0" /* offset 2520 */ - "\xca\x8c\0" /* offset 2523 */ - "\x7a\0" /* offset 2526 */ - "\xca\x90\0" /* offset 2528 */ - "\xca\x91\0" /* offset 2531 */ - "\xca\x92\0" /* offset 2534 */ - "\x41\xcc\xa5\0" /* offset 2537 */ - "\x61\xcc\xa5\0" /* offset 2541 */ - "\x42\xcc\x87\0" /* offset 2545 */ - "\x62\xcc\x87\0" /* offset 2549 */ - "\x42\xcc\xa3\0" /* offset 2553 */ - "\x62\xcc\xa3\0" /* offset 2557 */ - "\x42\xcc\xb1\0" /* offset 2561 */ - "\x62\xcc\xb1\0" /* offset 2565 */ - "\x43\xcc\xa7\xcc\x81\0" /* offset 2569 */ - "\x63\xcc\xa7\xcc\x81\0" /* offset 2575 */ - "\x44\xcc\x87\0" /* offset 2581 */ - "\x64\xcc\x87\0" /* offset 2585 */ - "\x44\xcc\xa3\0" /* offset 2589 */ - "\x64\xcc\xa3\0" /* offset 2593 */ - "\x44\xcc\xb1\0" /* offset 2597 */ - "\x64\xcc\xb1\0" /* offset 2601 */ - "\x44\xcc\xa7\0" /* offset 2605 */ - "\x64\xcc\xa7\0" /* offset 2609 */ - "\x44\xcc\xad\0" /* offset 2613 */ - "\x64\xcc\xad\0" /* offset 2617 */ - "\x45\xcc\x84\xcc\x80\0" /* offset 2621 */ - "\x65\xcc\x84\xcc\x80\0" /* offset 2627 */ - "\x45\xcc\x84\xcc\x81\0" /* offset 2633 */ - "\x65\xcc\x84\xcc\x81\0" /* offset 2639 */ - "\x45\xcc\xad\0" /* offset 2645 */ - "\x65\xcc\xad\0" /* offset 2649 */ - "\x45\xcc\xb0\0" /* offset 2653 */ - "\x65\xcc\xb0\0" /* offset 2657 */ - "\x45\xcc\xa7\xcc\x86\0" /* offset 2661 */ - "\x65\xcc\xa7\xcc\x86\0" /* offset 2667 */ - "\x46\xcc\x87\0" /* offset 2673 */ - "\x66\xcc\x87\0" /* offset 2677 */ - "\x47\xcc\x84\0" /* offset 2681 */ - "\x67\xcc\x84\0" /* offset 2685 */ - "\x48\xcc\x87\0" /* offset 2689 */ - "\x68\xcc\x87\0" /* offset 2693 */ - "\x48\xcc\xa3\0" /* offset 2697 */ - "\x68\xcc\xa3\0" /* offset 2701 */ - "\x48\xcc\x88\0" /* offset 2705 */ - "\x68\xcc\x88\0" /* offset 2709 */ - "\x48\xcc\xa7\0" /* offset 2713 */ - "\x68\xcc\xa7\0" /* offset 2717 */ - "\x48\xcc\xae\0" /* offset 2721 */ - "\x68\xcc\xae\0" /* offset 2725 */ - "\x49\xcc\xb0\0" /* offset 2729 */ - "\x69\xcc\xb0\0" /* offset 2733 */ - "\x49\xcc\x88\xcc\x81\0" /* offset 2737 */ - "\x69\xcc\x88\xcc\x81\0" /* offset 2743 */ - "\x4b\xcc\x81\0" /* offset 2749 */ - "\x6b\xcc\x81\0" /* offset 2753 */ - "\x4b\xcc\xa3\0" /* offset 2757 */ - "\x6b\xcc\xa3\0" /* offset 2761 */ - "\x4b\xcc\xb1\0" /* offset 2765 */ - "\x6b\xcc\xb1\0" /* offset 2769 */ - "\x4c\xcc\xa3\0" /* offset 2773 */ - "\x6c\xcc\xa3\0" /* offset 2777 */ - "\x4c\xcc\xa3\xcc\x84\0" /* offset 2781 */ - "\x6c\xcc\xa3\xcc\x84\0" /* offset 2787 */ - "\x4c\xcc\xb1\0" /* offset 2793 */ - "\x6c\xcc\xb1\0" /* offset 2797 */ - "\x4c\xcc\xad\0" /* offset 2801 */ - "\x6c\xcc\xad\0" /* offset 2805 */ - "\x4d\xcc\x81\0" /* offset 2809 */ - "\x6d\xcc\x81\0" /* offset 2813 */ - "\x4d\xcc\x87\0" /* offset 2817 */ - "\x6d\xcc\x87\0" /* offset 2821 */ - "\x4d\xcc\xa3\0" /* offset 2825 */ - "\x6d\xcc\xa3\0" /* offset 2829 */ - "\x4e\xcc\x87\0" /* offset 2833 */ - "\x6e\xcc\x87\0" /* offset 2837 */ - "\x4e\xcc\xa3\0" /* offset 2841 */ - "\x6e\xcc\xa3\0" /* offset 2845 */ - "\x4e\xcc\xb1\0" /* offset 2849 */ - "\x6e\xcc\xb1\0" /* offset 2853 */ - "\x4e\xcc\xad\0" /* offset 2857 */ - "\x6e\xcc\xad\0" /* offset 2861 */ - "\x4f\xcc\x83\xcc\x81\0" /* offset 2865 */ - "\x6f\xcc\x83\xcc\x81\0" /* offset 2871 */ - "\x4f\xcc\x83\xcc\x88\0" /* offset 2877 */ - "\x6f\xcc\x83\xcc\x88\0" /* offset 2883 */ - "\x4f\xcc\x84\xcc\x80\0" /* offset 2889 */ - "\x6f\xcc\x84\xcc\x80\0" /* offset 2895 */ - "\x4f\xcc\x84\xcc\x81\0" /* offset 2901 */ - "\x6f\xcc\x84\xcc\x81\0" /* offset 2907 */ - "\x50\xcc\x81\0" /* offset 2913 */ - "\x70\xcc\x81\0" /* offset 2917 */ - "\x50\xcc\x87\0" /* offset 2921 */ - "\x70\xcc\x87\0" /* offset 2925 */ - "\x52\xcc\x87\0" /* offset 2929 */ - "\x72\xcc\x87\0" /* offset 2933 */ - "\x52\xcc\xa3\0" /* offset 2937 */ - "\x72\xcc\xa3\0" /* offset 2941 */ - "\x52\xcc\xa3\xcc\x84\0" /* offset 2945 */ - "\x72\xcc\xa3\xcc\x84\0" /* offset 2951 */ - "\x52\xcc\xb1\0" /* offset 2957 */ - "\x72\xcc\xb1\0" /* offset 2961 */ - "\x53\xcc\x87\0" /* offset 2965 */ - "\x73\xcc\x87\0" /* offset 2969 */ - "\x53\xcc\xa3\0" /* offset 2973 */ - "\x73\xcc\xa3\0" /* offset 2977 */ - "\x53\xcc\x81\xcc\x87\0" /* offset 2981 */ - "\x73\xcc\x81\xcc\x87\0" /* offset 2987 */ - "\x53\xcc\x8c\xcc\x87\0" /* offset 2993 */ - "\x73\xcc\x8c\xcc\x87\0" /* offset 2999 */ - "\x53\xcc\xa3\xcc\x87\0" /* offset 3005 */ - "\x73\xcc\xa3\xcc\x87\0" /* offset 3011 */ - "\x54\xcc\x87\0" /* offset 3017 */ - "\x74\xcc\x87\0" /* offset 3021 */ - "\x54\xcc\xa3\0" /* offset 3025 */ - "\x74\xcc\xa3\0" /* offset 3029 */ - "\x54\xcc\xb1\0" /* offset 3033 */ - "\x74\xcc\xb1\0" /* offset 3037 */ - "\x54\xcc\xad\0" /* offset 3041 */ - "\x74\xcc\xad\0" /* offset 3045 */ - "\x55\xcc\xa4\0" /* offset 3049 */ - "\x75\xcc\xa4\0" /* offset 3053 */ - "\x55\xcc\xb0\0" /* offset 3057 */ - "\x75\xcc\xb0\0" /* offset 3061 */ - "\x55\xcc\xad\0" /* offset 3065 */ - "\x75\xcc\xad\0" /* offset 3069 */ - "\x55\xcc\x83\xcc\x81\0" /* offset 3073 */ - "\x75\xcc\x83\xcc\x81\0" /* offset 3079 */ - "\x55\xcc\x84\xcc\x88\0" /* offset 3085 */ - "\x75\xcc\x84\xcc\x88\0" /* offset 3091 */ - "\x56\xcc\x83\0" /* offset 3097 */ - "\x76\xcc\x83\0" /* offset 3101 */ - "\x56\xcc\xa3\0" /* offset 3105 */ - "\x76\xcc\xa3\0" /* offset 3109 */ - "\x57\xcc\x80\0" /* offset 3113 */ - "\x77\xcc\x80\0" /* offset 3117 */ - "\x57\xcc\x81\0" /* offset 3121 */ - "\x77\xcc\x81\0" /* offset 3125 */ - "\x57\xcc\x88\0" /* offset 3129 */ - "\x77\xcc\x88\0" /* offset 3133 */ - "\x57\xcc\x87\0" /* offset 3137 */ - "\x77\xcc\x87\0" /* offset 3141 */ - "\x57\xcc\xa3\0" /* offset 3145 */ - "\x77\xcc\xa3\0" /* offset 3149 */ - "\x58\xcc\x87\0" /* offset 3153 */ - "\x78\xcc\x87\0" /* offset 3157 */ - "\x58\xcc\x88\0" /* offset 3161 */ - "\x78\xcc\x88\0" /* offset 3165 */ - "\x59\xcc\x87\0" /* offset 3169 */ - "\x79\xcc\x87\0" /* offset 3173 */ - "\x5a\xcc\x82\0" /* offset 3177 */ - "\x7a\xcc\x82\0" /* offset 3181 */ - "\x5a\xcc\xa3\0" /* offset 3185 */ - "\x7a\xcc\xa3\0" /* offset 3189 */ - "\x5a\xcc\xb1\0" /* offset 3193 */ - "\x7a\xcc\xb1\0" /* offset 3197 */ - "\x68\xcc\xb1\0" /* offset 3201 */ - "\x74\xcc\x88\0" /* offset 3205 */ - "\x77\xcc\x8a\0" /* offset 3209 */ - "\x79\xcc\x8a\0" /* offset 3213 */ - "\x61\xca\xbe\0" /* offset 3217 */ - "\xc5\xbf\xcc\x87\0" /* offset 3221 */ - "\x41\xcc\xa3\0" /* offset 3226 */ - "\x61\xcc\xa3\0" /* offset 3230 */ - "\x41\xcc\x89\0" /* offset 3234 */ - "\x61\xcc\x89\0" /* offset 3238 */ - "\x41\xcc\x82\xcc\x81\0" /* offset 3242 */ - "\x61\xcc\x82\xcc\x81\0" /* offset 3248 */ - "\x41\xcc\x82\xcc\x80\0" /* offset 3254 */ - "\x61\xcc\x82\xcc\x80\0" /* offset 3260 */ - "\x41\xcc\x82\xcc\x89\0" /* offset 3266 */ - "\x61\xcc\x82\xcc\x89\0" /* offset 3272 */ - "\x41\xcc\x82\xcc\x83\0" /* offset 3278 */ - "\x61\xcc\x82\xcc\x83\0" /* offset 3284 */ - "\x41\xcc\xa3\xcc\x82\0" /* offset 3290 */ - "\x61\xcc\xa3\xcc\x82\0" /* offset 3296 */ - "\x41\xcc\x86\xcc\x81\0" /* offset 3302 */ - "\x61\xcc\x86\xcc\x81\0" /* offset 3308 */ - "\x41\xcc\x86\xcc\x80\0" /* offset 3314 */ - "\x61\xcc\x86\xcc\x80\0" /* offset 3320 */ - "\x41\xcc\x86\xcc\x89\0" /* offset 3326 */ - "\x61\xcc\x86\xcc\x89\0" /* offset 3332 */ - "\x41\xcc\x86\xcc\x83\0" /* offset 3338 */ - "\x61\xcc\x86\xcc\x83\0" /* offset 3344 */ - "\x41\xcc\xa3\xcc\x86\0" /* offset 3350 */ - "\x61\xcc\xa3\xcc\x86\0" /* offset 3356 */ - "\x45\xcc\xa3\0" /* offset 3362 */ - "\x65\xcc\xa3\0" /* offset 3366 */ - "\x45\xcc\x89\0" /* offset 3370 */ - "\x65\xcc\x89\0" /* offset 3374 */ - "\x45\xcc\x83\0" /* offset 3378 */ - "\x65\xcc\x83\0" /* offset 3382 */ - "\x45\xcc\x82\xcc\x81\0" /* offset 3386 */ - "\x65\xcc\x82\xcc\x81\0" /* offset 3392 */ - "\x45\xcc\x82\xcc\x80\0" /* offset 3398 */ - "\x65\xcc\x82\xcc\x80\0" /* offset 3404 */ - "\x45\xcc\x82\xcc\x89\0" /* offset 3410 */ - "\x65\xcc\x82\xcc\x89\0" /* offset 3416 */ - "\x45\xcc\x82\xcc\x83\0" /* offset 3422 */ - "\x65\xcc\x82\xcc\x83\0" /* offset 3428 */ - "\x45\xcc\xa3\xcc\x82\0" /* offset 3434 */ - "\x65\xcc\xa3\xcc\x82\0" /* offset 3440 */ - "\x49\xcc\x89\0" /* offset 3446 */ - "\x69\xcc\x89\0" /* offset 3450 */ - "\x49\xcc\xa3\0" /* offset 3454 */ - "\x69\xcc\xa3\0" /* offset 3458 */ - "\x4f\xcc\xa3\0" /* offset 3462 */ - "\x6f\xcc\xa3\0" /* offset 3466 */ - "\x4f\xcc\x89\0" /* offset 3470 */ - "\x6f\xcc\x89\0" /* offset 3474 */ - "\x4f\xcc\x82\xcc\x81\0" /* offset 3478 */ - "\x6f\xcc\x82\xcc\x81\0" /* offset 3484 */ - "\x4f\xcc\x82\xcc\x80\0" /* offset 3490 */ - "\x6f\xcc\x82\xcc\x80\0" /* offset 3496 */ - "\x4f\xcc\x82\xcc\x89\0" /* offset 3502 */ - "\x6f\xcc\x82\xcc\x89\0" /* offset 3508 */ - "\x4f\xcc\x82\xcc\x83\0" /* offset 3514 */ - "\x6f\xcc\x82\xcc\x83\0" /* offset 3520 */ - "\x4f\xcc\xa3\xcc\x82\0" /* offset 3526 */ - "\x6f\xcc\xa3\xcc\x82\0" /* offset 3532 */ - "\x4f\xcc\x9b\xcc\x81\0" /* offset 3538 */ - "\x6f\xcc\x9b\xcc\x81\0" /* offset 3544 */ - "\x4f\xcc\x9b\xcc\x80\0" /* offset 3550 */ - "\x6f\xcc\x9b\xcc\x80\0" /* offset 3556 */ - "\x4f\xcc\x9b\xcc\x89\0" /* offset 3562 */ - "\x6f\xcc\x9b\xcc\x89\0" /* offset 3568 */ - "\x4f\xcc\x9b\xcc\x83\0" /* offset 3574 */ - "\x6f\xcc\x9b\xcc\x83\0" /* offset 3580 */ - "\x4f\xcc\x9b\xcc\xa3\0" /* offset 3586 */ - "\x6f\xcc\x9b\xcc\xa3\0" /* offset 3592 */ - "\x55\xcc\xa3\0" /* offset 3598 */ - "\x75\xcc\xa3\0" /* offset 3602 */ - "\x55\xcc\x89\0" /* offset 3606 */ - "\x75\xcc\x89\0" /* offset 3610 */ - "\x55\xcc\x9b\xcc\x81\0" /* offset 3614 */ - "\x75\xcc\x9b\xcc\x81\0" /* offset 3620 */ - "\x55\xcc\x9b\xcc\x80\0" /* offset 3626 */ - "\x75\xcc\x9b\xcc\x80\0" /* offset 3632 */ - "\x55\xcc\x9b\xcc\x89\0" /* offset 3638 */ - "\x75\xcc\x9b\xcc\x89\0" /* offset 3644 */ - "\x55\xcc\x9b\xcc\x83\0" /* offset 3650 */ - "\x75\xcc\x9b\xcc\x83\0" /* offset 3656 */ - "\x55\xcc\x9b\xcc\xa3\0" /* offset 3662 */ - "\x75\xcc\x9b\xcc\xa3\0" /* offset 3668 */ - "\x59\xcc\x80\0" /* offset 3674 */ - "\x79\xcc\x80\0" /* offset 3678 */ - "\x59\xcc\xa3\0" /* offset 3682 */ - "\x79\xcc\xa3\0" /* offset 3686 */ - "\x59\xcc\x89\0" /* offset 3690 */ - "\x79\xcc\x89\0" /* offset 3694 */ - "\x59\xcc\x83\0" /* offset 3698 */ - "\x79\xcc\x83\0" /* offset 3702 */ - "\xce\xb1\xcc\x93\0" /* offset 3706 */ - "\xce\xb1\xcc\x94\0" /* offset 3711 */ - "\xce\xb1\xcc\x93\xcc\x80\0" /* offset 3716 */ - "\xce\xb1\xcc\x94\xcc\x80\0" /* offset 3723 */ - "\xce\xb1\xcc\x93\xcc\x81\0" /* offset 3730 */ - "\xce\xb1\xcc\x94\xcc\x81\0" /* offset 3737 */ - "\xce\xb1\xcc\x93\xcd\x82\0" /* offset 3744 */ - "\xce\xb1\xcc\x94\xcd\x82\0" /* offset 3751 */ - "\xce\x91\xcc\x93\0" /* offset 3758 */ - "\xce\x91\xcc\x94\0" /* offset 3763 */ - "\xce\x91\xcc\x93\xcc\x80\0" /* offset 3768 */ - "\xce\x91\xcc\x94\xcc\x80\0" /* offset 3775 */ - "\xce\x91\xcc\x93\xcc\x81\0" /* offset 3782 */ - "\xce\x91\xcc\x94\xcc\x81\0" /* offset 3789 */ - "\xce\x91\xcc\x93\xcd\x82\0" /* offset 3796 */ - "\xce\x91\xcc\x94\xcd\x82\0" /* offset 3803 */ - "\xce\xb5\xcc\x93\0" /* offset 3810 */ - "\xce\xb5\xcc\x94\0" /* offset 3815 */ - "\xce\xb5\xcc\x93\xcc\x80\0" /* offset 3820 */ - "\xce\xb5\xcc\x94\xcc\x80\0" /* offset 3827 */ - "\xce\xb5\xcc\x93\xcc\x81\0" /* offset 3834 */ - "\xce\xb5\xcc\x94\xcc\x81\0" /* offset 3841 */ - "\xce\x95\xcc\x93\0" /* offset 3848 */ - "\xce\x95\xcc\x94\0" /* offset 3853 */ - "\xce\x95\xcc\x93\xcc\x80\0" /* offset 3858 */ - "\xce\x95\xcc\x94\xcc\x80\0" /* offset 3865 */ - "\xce\x95\xcc\x93\xcc\x81\0" /* offset 3872 */ - "\xce\x95\xcc\x94\xcc\x81\0" /* offset 3879 */ - "\xce\xb7\xcc\x93\0" /* offset 3886 */ - "\xce\xb7\xcc\x94\0" /* offset 3891 */ - "\xce\xb7\xcc\x93\xcc\x80\0" /* offset 3896 */ - "\xce\xb7\xcc\x94\xcc\x80\0" /* offset 3903 */ - "\xce\xb7\xcc\x93\xcc\x81\0" /* offset 3910 */ - "\xce\xb7\xcc\x94\xcc\x81\0" /* offset 3917 */ - "\xce\xb7\xcc\x93\xcd\x82\0" /* offset 3924 */ - "\xce\xb7\xcc\x94\xcd\x82\0" /* offset 3931 */ - "\xce\x97\xcc\x93\0" /* offset 3938 */ - "\xce\x97\xcc\x94\0" /* offset 3943 */ - "\xce\x97\xcc\x93\xcc\x80\0" /* offset 3948 */ - "\xce\x97\xcc\x94\xcc\x80\0" /* offset 3955 */ - "\xce\x97\xcc\x93\xcc\x81\0" /* offset 3962 */ - "\xce\x97\xcc\x94\xcc\x81\0" /* offset 3969 */ - "\xce\x97\xcc\x93\xcd\x82\0" /* offset 3976 */ - "\xce\x97\xcc\x94\xcd\x82\0" /* offset 3983 */ - "\xce\xb9\xcc\x93\0" /* offset 3990 */ - "\xce\xb9\xcc\x94\0" /* offset 3995 */ - "\xce\xb9\xcc\x93\xcc\x80\0" /* offset 4000 */ - "\xce\xb9\xcc\x94\xcc\x80\0" /* offset 4007 */ - "\xce\xb9\xcc\x93\xcc\x81\0" /* offset 4014 */ - "\xce\xb9\xcc\x94\xcc\x81\0" /* offset 4021 */ - "\xce\xb9\xcc\x93\xcd\x82\0" /* offset 4028 */ - "\xce\xb9\xcc\x94\xcd\x82\0" /* offset 4035 */ - "\xce\x99\xcc\x93\0" /* offset 4042 */ - "\xce\x99\xcc\x94\0" /* offset 4047 */ - "\xce\x99\xcc\x93\xcc\x80\0" /* offset 4052 */ - "\xce\x99\xcc\x94\xcc\x80\0" /* offset 4059 */ - "\xce\x99\xcc\x93\xcc\x81\0" /* offset 4066 */ - "\xce\x99\xcc\x94\xcc\x81\0" /* offset 4073 */ - "\xce\x99\xcc\x93\xcd\x82\0" /* offset 4080 */ - "\xce\x99\xcc\x94\xcd\x82\0" /* offset 4087 */ - "\xce\xbf\xcc\x93\0" /* offset 4094 */ - "\xce\xbf\xcc\x94\0" /* offset 4099 */ - "\xce\xbf\xcc\x93\xcc\x80\0" /* offset 4104 */ - "\xce\xbf\xcc\x94\xcc\x80\0" /* offset 4111 */ - "\xce\xbf\xcc\x93\xcc\x81\0" /* offset 4118 */ - "\xce\xbf\xcc\x94\xcc\x81\0" /* offset 4125 */ - "\xce\x9f\xcc\x93\0" /* offset 4132 */ - "\xce\x9f\xcc\x94\0" /* offset 4137 */ - "\xce\x9f\xcc\x93\xcc\x80\0" /* offset 4142 */ - "\xce\x9f\xcc\x94\xcc\x80\0" /* offset 4149 */ - "\xce\x9f\xcc\x93\xcc\x81\0" /* offset 4156 */ - "\xce\x9f\xcc\x94\xcc\x81\0" /* offset 4163 */ - "\xcf\x85\xcc\x93\0" /* offset 4170 */ - "\xcf\x85\xcc\x94\0" /* offset 4175 */ - "\xcf\x85\xcc\x93\xcc\x80\0" /* offset 4180 */ - "\xcf\x85\xcc\x94\xcc\x80\0" /* offset 4187 */ - "\xcf\x85\xcc\x93\xcc\x81\0" /* offset 4194 */ - "\xcf\x85\xcc\x94\xcc\x81\0" /* offset 4201 */ - "\xcf\x85\xcc\x93\xcd\x82\0" /* offset 4208 */ - "\xcf\x85\xcc\x94\xcd\x82\0" /* offset 4215 */ - "\xce\xa5\xcc\x94\0" /* offset 4222 */ - "\xce\xa5\xcc\x94\xcc\x80\0" /* offset 4227 */ - "\xce\xa5\xcc\x94\xcc\x81\0" /* offset 4234 */ - "\xce\xa5\xcc\x94\xcd\x82\0" /* offset 4241 */ - "\xcf\x89\xcc\x93\0" /* offset 4248 */ - "\xcf\x89\xcc\x94\0" /* offset 4253 */ - "\xcf\x89\xcc\x93\xcc\x80\0" /* offset 4258 */ - "\xcf\x89\xcc\x94\xcc\x80\0" /* offset 4265 */ - "\xcf\x89\xcc\x93\xcc\x81\0" /* offset 4272 */ - "\xcf\x89\xcc\x94\xcc\x81\0" /* offset 4279 */ - "\xcf\x89\xcc\x93\xcd\x82\0" /* offset 4286 */ - "\xcf\x89\xcc\x94\xcd\x82\0" /* offset 4293 */ - "\xce\xa9\xcc\x93\0" /* offset 4300 */ - "\xce\xa9\xcc\x94\0" /* offset 4305 */ - "\xce\xa9\xcc\x93\xcc\x80\0" /* offset 4310 */ - "\xce\xa9\xcc\x94\xcc\x80\0" /* offset 4317 */ - "\xce\xa9\xcc\x93\xcc\x81\0" /* offset 4324 */ - "\xce\xa9\xcc\x94\xcc\x81\0" /* offset 4331 */ - "\xce\xa9\xcc\x93\xcd\x82\0" /* offset 4338 */ - "\xce\xa9\xcc\x94\xcd\x82\0" /* offset 4345 */ - "\xce\xb1\xcc\x80\0" /* offset 4352 */ - "\xce\xb5\xcc\x80\0" /* offset 4357 */ - "\xce\xb7\xcc\x80\0" /* offset 4362 */ - "\xce\xb9\xcc\x80\0" /* offset 4367 */ - "\xce\xbf\xcc\x80\0" /* offset 4372 */ - "\xcf\x85\xcc\x80\0" /* offset 4377 */ - "\xcf\x89\xcc\x80\0" /* offset 4382 */ - "\xce\xb1\xcc\x93\xcd\x85\0" /* offset 4387 */ - "\xce\xb1\xcc\x94\xcd\x85\0" /* offset 4394 */ - "\xce\xb1\xcc\x93\xcc\x80\xcd\x85\0" /* offset 4401 */ - "\xce\xb1\xcc\x94\xcc\x80\xcd\x85\0" /* offset 4410 */ - "\xce\xb1\xcc\x93\xcc\x81\xcd\x85\0" /* offset 4419 */ - "\xce\xb1\xcc\x94\xcc\x81\xcd\x85\0" /* offset 4428 */ - "\xce\xb1\xcc\x93\xcd\x82\xcd\x85\0" /* offset 4437 */ - "\xce\xb1\xcc\x94\xcd\x82\xcd\x85\0" /* offset 4446 */ - "\xce\x91\xcc\x93\xcd\x85\0" /* offset 4455 */ - "\xce\x91\xcc\x94\xcd\x85\0" /* offset 4462 */ - "\xce\x91\xcc\x93\xcc\x80\xcd\x85\0" /* offset 4469 */ - "\xce\x91\xcc\x94\xcc\x80\xcd\x85\0" /* offset 4478 */ - "\xce\x91\xcc\x93\xcc\x81\xcd\x85\0" /* offset 4487 */ - "\xce\x91\xcc\x94\xcc\x81\xcd\x85\0" /* offset 4496 */ - "\xce\x91\xcc\x93\xcd\x82\xcd\x85\0" /* offset 4505 */ - "\xce\x91\xcc\x94\xcd\x82\xcd\x85\0" /* offset 4514 */ - "\xce\xb7\xcc\x93\xcd\x85\0" /* offset 4523 */ - "\xce\xb7\xcc\x94\xcd\x85\0" /* offset 4530 */ - "\xce\xb7\xcc\x93\xcc\x80\xcd\x85\0" /* offset 4537 */ - "\xce\xb7\xcc\x94\xcc\x80\xcd\x85\0" /* offset 4546 */ - "\xce\xb7\xcc\x93\xcc\x81\xcd\x85\0" /* offset 4555 */ - "\xce\xb7\xcc\x94\xcc\x81\xcd\x85\0" /* offset 4564 */ - "\xce\xb7\xcc\x93\xcd\x82\xcd\x85\0" /* offset 4573 */ - "\xce\xb7\xcc\x94\xcd\x82\xcd\x85\0" /* offset 4582 */ - "\xce\x97\xcc\x93\xcd\x85\0" /* offset 4591 */ - "\xce\x97\xcc\x94\xcd\x85\0" /* offset 4598 */ - "\xce\x97\xcc\x93\xcc\x80\xcd\x85\0" /* offset 4605 */ - "\xce\x97\xcc\x94\xcc\x80\xcd\x85\0" /* offset 4614 */ - "\xce\x97\xcc\x93\xcc\x81\xcd\x85\0" /* offset 4623 */ - "\xce\x97\xcc\x94\xcc\x81\xcd\x85\0" /* offset 4632 */ - "\xce\x97\xcc\x93\xcd\x82\xcd\x85\0" /* offset 4641 */ - "\xce\x97\xcc\x94\xcd\x82\xcd\x85\0" /* offset 4650 */ - "\xcf\x89\xcc\x93\xcd\x85\0" /* offset 4659 */ - "\xcf\x89\xcc\x94\xcd\x85\0" /* offset 4666 */ - "\xcf\x89\xcc\x93\xcc\x80\xcd\x85\0" /* offset 4673 */ - "\xcf\x89\xcc\x94\xcc\x80\xcd\x85\0" /* offset 4682 */ - "\xcf\x89\xcc\x93\xcc\x81\xcd\x85\0" /* offset 4691 */ - "\xcf\x89\xcc\x94\xcc\x81\xcd\x85\0" /* offset 4700 */ - "\xcf\x89\xcc\x93\xcd\x82\xcd\x85\0" /* offset 4709 */ - "\xcf\x89\xcc\x94\xcd\x82\xcd\x85\0" /* offset 4718 */ - "\xce\xa9\xcc\x93\xcd\x85\0" /* offset 4727 */ - "\xce\xa9\xcc\x94\xcd\x85\0" /* offset 4734 */ - "\xce\xa9\xcc\x93\xcc\x80\xcd\x85\0" /* offset 4741 */ - "\xce\xa9\xcc\x94\xcc\x80\xcd\x85\0" /* offset 4750 */ - "\xce\xa9\xcc\x93\xcc\x81\xcd\x85\0" /* offset 4759 */ - "\xce\xa9\xcc\x94\xcc\x81\xcd\x85\0" /* offset 4768 */ - "\xce\xa9\xcc\x93\xcd\x82\xcd\x85\0" /* offset 4777 */ - "\xce\xa9\xcc\x94\xcd\x82\xcd\x85\0" /* offset 4786 */ - "\xce\xb1\xcc\x86\0" /* offset 4795 */ - "\xce\xb1\xcc\x84\0" /* offset 4800 */ - "\xce\xb1\xcc\x80\xcd\x85\0" /* offset 4805 */ - "\xce\xb1\xcd\x85\0" /* offset 4812 */ - "\xce\xb1\xcc\x81\xcd\x85\0" /* offset 4817 */ - "\xce\xb1\xcd\x82\0" /* offset 4824 */ - "\xce\xb1\xcd\x82\xcd\x85\0" /* offset 4829 */ - "\xce\x91\xcc\x86\0" /* offset 4836 */ - "\xce\x91\xcc\x84\0" /* offset 4841 */ - "\xce\x91\xcc\x80\0" /* offset 4846 */ - "\xce\x91\xcd\x85\0" /* offset 4851 */ - "\x20\xcc\x93\0" /* offset 4856 */ - "\xce\xb9\0" /* offset 4860 */ - "\x20\xcd\x82\0" /* offset 4863 */ - "\xc2\xa8\xcd\x82\0" /* offset 4867 */ - "\x20\xcc\x88\xcd\x82\0" /* offset 4872 */ - "\xce\xb7\xcc\x80\xcd\x85\0" /* offset 4878 */ - "\xce\xb7\xcd\x85\0" /* offset 4885 */ - "\xce\xb7\xcc\x81\xcd\x85\0" /* offset 4890 */ - "\xce\xb7\xcd\x82\0" /* offset 4897 */ - "\xce\xb7\xcd\x82\xcd\x85\0" /* offset 4902 */ - "\xce\x95\xcc\x80\0" /* offset 4909 */ - "\xce\x97\xcc\x80\0" /* offset 4914 */ - "\xce\x97\xcd\x85\0" /* offset 4919 */ - "\xe1\xbe\xbf\xcc\x80\0" /* offset 4924 */ - "\x20\xcc\x93\xcc\x80\0" /* offset 4930 */ - "\xe1\xbe\xbf\xcc\x81\0" /* offset 4936 */ - "\x20\xcc\x93\xcc\x81\0" /* offset 4942 */ - "\xe1\xbe\xbf\xcd\x82\0" /* offset 4948 */ - "\x20\xcc\x93\xcd\x82\0" /* offset 4954 */ - "\xce\xb9\xcc\x86\0" /* offset 4960 */ - "\xce\xb9\xcc\x84\0" /* offset 4965 */ - "\xce\xb9\xcc\x88\xcc\x80\0" /* offset 4970 */ - "\xce\xb9\xcd\x82\0" /* offset 4977 */ - "\xce\xb9\xcc\x88\xcd\x82\0" /* offset 4982 */ - "\xce\x99\xcc\x86\0" /* offset 4989 */ - "\xce\x99\xcc\x84\0" /* offset 4994 */ - "\xce\x99\xcc\x80\0" /* offset 4999 */ - "\xe1\xbf\xbe\xcc\x80\0" /* offset 5004 */ - "\x20\xcc\x94\xcc\x80\0" /* offset 5010 */ - "\xe1\xbf\xbe\xcc\x81\0" /* offset 5016 */ - "\x20\xcc\x94\xcc\x81\0" /* offset 5022 */ - "\xe1\xbf\xbe\xcd\x82\0" /* offset 5028 */ - "\x20\xcc\x94\xcd\x82\0" /* offset 5034 */ - "\xcf\x85\xcc\x86\0" /* offset 5040 */ - "\xcf\x85\xcc\x84\0" /* offset 5045 */ - "\xcf\x85\xcc\x88\xcc\x80\0" /* offset 5050 */ - "\xcf\x81\xcc\x93\0" /* offset 5057 */ - "\xcf\x81\xcc\x94\0" /* offset 5062 */ - "\xcf\x85\xcd\x82\0" /* offset 5067 */ - "\xcf\x85\xcc\x88\xcd\x82\0" /* offset 5072 */ - "\xce\xa5\xcc\x86\0" /* offset 5079 */ - "\xce\xa5\xcc\x84\0" /* offset 5084 */ - "\xce\xa5\xcc\x80\0" /* offset 5089 */ - "\xce\xa1\xcc\x94\0" /* offset 5094 */ - "\xc2\xa8\xcc\x80\0" /* offset 5099 */ - "\x20\xcc\x88\xcc\x80\0" /* offset 5104 */ - "\x60\0" /* offset 5110 */ - "\xcf\x89\xcc\x80\xcd\x85\0" /* offset 5112 */ - "\xcf\x89\xcd\x85\0" /* offset 5119 */ - "\xcf\x89\xcc\x81\xcd\x85\0" /* offset 5124 */ - "\xcf\x89\xcd\x82\0" /* offset 5131 */ - "\xcf\x89\xcd\x82\xcd\x85\0" /* offset 5136 */ - "\xce\x9f\xcc\x80\0" /* offset 5143 */ - "\xce\xa9\xcc\x80\0" /* offset 5148 */ - "\xce\xa9\xcd\x85\0" /* offset 5153 */ - "\xc2\xb4\0" /* offset 5158 */ - "\x20\xcc\x94\0" /* offset 5161 */ - "\xe2\x80\x82\0" /* offset 5165 */ - "\xe2\x80\x83\0" /* offset 5169 */ - "\xe2\x80\x90\0" /* offset 5173 */ - "\x20\xcc\xb3\0" /* offset 5177 */ - "\x2e\0" /* offset 5181 */ - "\x2e\x2e\0" /* offset 5183 */ - "\x2e\x2e\x2e\0" /* offset 5186 */ - "\xe2\x80\xb2\xe2\x80\xb2\0" /* offset 5190 */ - "\xe2\x80\xb2\xe2\x80\xb2\xe2\x80\xb2\0" /* offset 5197 */ - "\xe2\x80\xb5\xe2\x80\xb5\0" /* offset 5207 */ - "\xe2\x80\xb5\xe2\x80\xb5\xe2\x80\xb5\0" /* offset 5214 */ - "\x21\x21\0" /* offset 5224 */ - "\x20\xcc\x85\0" /* offset 5227 */ - "\x3f\x3f\0" /* offset 5231 */ - "\x3f\x21\0" /* offset 5234 */ - "\x21\x3f\0" /* offset 5237 */ - "\xe2\x80\xb2\xe2\x80\xb2\xe2\x80\xb2\xe2\x80\xb2\0" /* offset 5240 */ - "\x30\0" /* offset 5253 */ - "\x34\0" /* offset 5255 */ - "\x35\0" /* offset 5257 */ - "\x36\0" /* offset 5259 */ - "\x37\0" /* offset 5261 */ - "\x38\0" /* offset 5263 */ - "\x39\0" /* offset 5265 */ - "\x2b\0" /* offset 5267 */ - "\xe2\x88\x92\0" /* offset 5269 */ - "\x3d\0" /* offset 5273 */ - "\x28\0" /* offset 5275 */ - "\x29\0" /* offset 5277 */ - "\x6e\0" /* offset 5279 */ - "\x52\x73\0" /* offset 5281 */ - "\x61\x2f\x63\0" /* offset 5284 */ - "\x61\x2f\x73\0" /* offset 5288 */ - "\x43\0" /* offset 5292 */ - "\xc2\xb0\x43\0" /* offset 5294 */ - "\x63\x2f\x6f\0" /* offset 5298 */ - "\x63\x2f\x75\0" /* offset 5302 */ - "\xc6\x90\0" /* offset 5306 */ - "\xc2\xb0\x46\0" /* offset 5309 */ - "\xc4\xa7\0" /* offset 5313 */ - "\x4e\x6f\0" /* offset 5316 */ - "\x51\0" /* offset 5319 */ - "\x53\x4d\0" /* offset 5321 */ - "\x54\x45\x4c\0" /* offset 5324 */ - "\x54\x4d\0" /* offset 5328 */ - "\x5a\0" /* offset 5331 */ - "\xce\xa9\0" /* offset 5333 */ - "\x46\0" /* offset 5336 */ - "\xd7\x90\0" /* offset 5338 */ - "\xd7\x91\0" /* offset 5341 */ - "\xd7\x92\0" /* offset 5344 */ - "\xd7\x93\0" /* offset 5347 */ - "\x46\x41\x58\0" /* offset 5350 */ - "\xce\x93\0" /* offset 5354 */ - "\xce\xa0\0" /* offset 5357 */ - "\xe2\x88\x91\0" /* offset 5360 */ - "\x31\xe2\x81\x84\x33\0" /* offset 5364 */ - "\x32\xe2\x81\x84\x33\0" /* offset 5370 */ - "\x31\xe2\x81\x84\x35\0" /* offset 5376 */ - "\x32\xe2\x81\x84\x35\0" /* offset 5382 */ - "\x33\xe2\x81\x84\x35\0" /* offset 5388 */ - "\x34\xe2\x81\x84\x35\0" /* offset 5394 */ - "\x31\xe2\x81\x84\x36\0" /* offset 5400 */ - "\x35\xe2\x81\x84\x36\0" /* offset 5406 */ - "\x31\xe2\x81\x84\x38\0" /* offset 5412 */ - "\x33\xe2\x81\x84\x38\0" /* offset 5418 */ - "\x35\xe2\x81\x84\x38\0" /* offset 5424 */ - "\x37\xe2\x81\x84\x38\0" /* offset 5430 */ - "\x31\xe2\x81\x84\0" /* offset 5436 */ - "\x49\x49\0" /* offset 5441 */ - "\x49\x49\x49\0" /* offset 5444 */ - "\x49\x56\0" /* offset 5448 */ - "\x56\0" /* offset 5451 */ - "\x56\x49\0" /* offset 5453 */ - "\x56\x49\x49\0" /* offset 5456 */ - "\x56\x49\x49\x49\0" /* offset 5460 */ - "\x49\x58\0" /* offset 5465 */ - "\x58\0" /* offset 5468 */ - "\x58\x49\0" /* offset 5470 */ - "\x58\x49\x49\0" /* offset 5473 */ - "\x69\x69\0" /* offset 5477 */ - "\x69\x69\x69\0" /* offset 5480 */ - "\x69\x76\0" /* offset 5484 */ - "\x76\x69\0" /* offset 5487 */ - "\x76\x69\x69\0" /* offset 5490 */ - "\x76\x69\x69\x69\0" /* offset 5494 */ - "\x69\x78\0" /* offset 5499 */ - "\x78\x69\0" /* offset 5502 */ - "\x78\x69\x69\0" /* offset 5505 */ - "\xe2\x86\x90\xcc\xb8\0" /* offset 5509 */ - "\xe2\x86\x92\xcc\xb8\0" /* offset 5515 */ - "\xe2\x86\x94\xcc\xb8\0" /* offset 5521 */ - "\xe2\x87\x90\xcc\xb8\0" /* offset 5527 */ - "\xe2\x87\x94\xcc\xb8\0" /* offset 5533 */ - "\xe2\x87\x92\xcc\xb8\0" /* offset 5539 */ - "\xe2\x88\x83\xcc\xb8\0" /* offset 5545 */ - "\xe2\x88\x88\xcc\xb8\0" /* offset 5551 */ - "\xe2\x88\x8b\xcc\xb8\0" /* offset 5557 */ - "\xe2\x88\xa3\xcc\xb8\0" /* offset 5563 */ - "\xe2\x88\xa5\xcc\xb8\0" /* offset 5569 */ - "\xe2\x88\xab\xe2\x88\xab\0" /* offset 5575 */ - "\xe2\x88\xab\xe2\x88\xab\xe2\x88\xab\0" /* offset 5582 */ - "\xe2\x88\xae\xe2\x88\xae\0" /* offset 5592 */ - "\xe2\x88\xae\xe2\x88\xae\xe2\x88\xae\0" /* offset 5599 */ - "\xe2\x88\xbc\xcc\xb8\0" /* offset 5609 */ - "\xe2\x89\x83\xcc\xb8\0" /* offset 5615 */ - "\xe2\x89\x85\xcc\xb8\0" /* offset 5621 */ - "\xe2\x89\x88\xcc\xb8\0" /* offset 5627 */ - "\x3d\xcc\xb8\0" /* offset 5633 */ - "\xe2\x89\xa1\xcc\xb8\0" /* offset 5637 */ - "\xe2\x89\x8d\xcc\xb8\0" /* offset 5643 */ - "\x3c\xcc\xb8\0" /* offset 5649 */ - "\x3e\xcc\xb8\0" /* offset 5653 */ - "\xe2\x89\xa4\xcc\xb8\0" /* offset 5657 */ - "\xe2\x89\xa5\xcc\xb8\0" /* offset 5663 */ - "\xe2\x89\xb2\xcc\xb8\0" /* offset 5669 */ - "\xe2\x89\xb3\xcc\xb8\0" /* offset 5675 */ - "\xe2\x89\xb6\xcc\xb8\0" /* offset 5681 */ - "\xe2\x89\xb7\xcc\xb8\0" /* offset 5687 */ - "\xe2\x89\xba\xcc\xb8\0" /* offset 5693 */ - "\xe2\x89\xbb\xcc\xb8\0" /* offset 5699 */ - "\xe2\x8a\x82\xcc\xb8\0" /* offset 5705 */ - "\xe2\x8a\x83\xcc\xb8\0" /* offset 5711 */ - "\xe2\x8a\x86\xcc\xb8\0" /* offset 5717 */ - "\xe2\x8a\x87\xcc\xb8\0" /* offset 5723 */ - "\xe2\x8a\xa2\xcc\xb8\0" /* offset 5729 */ - "\xe2\x8a\xa8\xcc\xb8\0" /* offset 5735 */ - "\xe2\x8a\xa9\xcc\xb8\0" /* offset 5741 */ - "\xe2\x8a\xab\xcc\xb8\0" /* offset 5747 */ - "\xe2\x89\xbc\xcc\xb8\0" /* offset 5753 */ - "\xe2\x89\xbd\xcc\xb8\0" /* offset 5759 */ - "\xe2\x8a\x91\xcc\xb8\0" /* offset 5765 */ - "\xe2\x8a\x92\xcc\xb8\0" /* offset 5771 */ - "\xe2\x8a\xb2\xcc\xb8\0" /* offset 5777 */ - "\xe2\x8a\xb3\xcc\xb8\0" /* offset 5783 */ - "\xe2\x8a\xb4\xcc\xb8\0" /* offset 5789 */ - "\xe2\x8a\xb5\xcc\xb8\0" /* offset 5795 */ - "\xe3\x80\x88\0" /* offset 5801 */ - "\xe3\x80\x89\0" /* offset 5805 */ - "\x31\x30\0" /* offset 5809 */ - "\x31\x31\0" /* offset 5812 */ - "\x31\x32\0" /* offset 5815 */ - "\x31\x33\0" /* offset 5818 */ - "\x31\x34\0" /* offset 5821 */ - "\x31\x35\0" /* offset 5824 */ - "\x31\x36\0" /* offset 5827 */ - "\x31\x37\0" /* offset 5830 */ - "\x31\x38\0" /* offset 5833 */ - "\x31\x39\0" /* offset 5836 */ - "\x32\x30\0" /* offset 5839 */ - "\x28\x31\x29\0" /* offset 5842 */ - "\x28\x32\x29\0" /* offset 5846 */ - "\x28\x33\x29\0" /* offset 5850 */ - "\x28\x34\x29\0" /* offset 5854 */ - "\x28\x35\x29\0" /* offset 5858 */ - "\x28\x36\x29\0" /* offset 5862 */ - "\x28\x37\x29\0" /* offset 5866 */ - "\x28\x38\x29\0" /* offset 5870 */ - "\x28\x39\x29\0" /* offset 5874 */ - "\x28\x31\x30\x29\0" /* offset 5878 */ - "\x28\x31\x31\x29\0" /* offset 5883 */ - "\x28\x31\x32\x29\0" /* offset 5888 */ - "\x28\x31\x33\x29\0" /* offset 5893 */ - "\x28\x31\x34\x29\0" /* offset 5898 */ - "\x28\x31\x35\x29\0" /* offset 5903 */ - "\x28\x31\x36\x29\0" /* offset 5908 */ - "\x28\x31\x37\x29\0" /* offset 5913 */ - "\x28\x31\x38\x29\0" /* offset 5918 */ - "\x28\x31\x39\x29\0" /* offset 5923 */ - "\x28\x32\x30\x29\0" /* offset 5928 */ - "\x31\x2e\0" /* offset 5933 */ - "\x32\x2e\0" /* offset 5936 */ - "\x33\x2e\0" /* offset 5939 */ - "\x34\x2e\0" /* offset 5942 */ - "\x35\x2e\0" /* offset 5945 */ - "\x36\x2e\0" /* offset 5948 */ - "\x37\x2e\0" /* offset 5951 */ - "\x38\x2e\0" /* offset 5954 */ - "\x39\x2e\0" /* offset 5957 */ - "\x31\x30\x2e\0" /* offset 5960 */ - "\x31\x31\x2e\0" /* offset 5964 */ - "\x31\x32\x2e\0" /* offset 5968 */ - "\x31\x33\x2e\0" /* offset 5972 */ - "\x31\x34\x2e\0" /* offset 5976 */ - "\x31\x35\x2e\0" /* offset 5980 */ - "\x31\x36\x2e\0" /* offset 5984 */ - "\x31\x37\x2e\0" /* offset 5988 */ - "\x31\x38\x2e\0" /* offset 5992 */ - "\x31\x39\x2e\0" /* offset 5996 */ - "\x32\x30\x2e\0" /* offset 6000 */ - "\x28\x61\x29\0" /* offset 6004 */ - "\x28\x62\x29\0" /* offset 6008 */ - "\x28\x63\x29\0" /* offset 6012 */ - "\x28\x64\x29\0" /* offset 6016 */ - "\x28\x65\x29\0" /* offset 6020 */ - "\x28\x66\x29\0" /* offset 6024 */ - "\x28\x67\x29\0" /* offset 6028 */ - "\x28\x68\x29\0" /* offset 6032 */ - "\x28\x69\x29\0" /* offset 6036 */ - "\x28\x6a\x29\0" /* offset 6040 */ - "\x28\x6b\x29\0" /* offset 6044 */ - "\x28\x6c\x29\0" /* offset 6048 */ - "\x28\x6d\x29\0" /* offset 6052 */ - "\x28\x6e\x29\0" /* offset 6056 */ - "\x28\x6f\x29\0" /* offset 6060 */ - "\x28\x70\x29\0" /* offset 6064 */ - "\x28\x71\x29\0" /* offset 6068 */ - "\x28\x72\x29\0" /* offset 6072 */ - "\x28\x73\x29\0" /* offset 6076 */ - "\x28\x74\x29\0" /* offset 6080 */ - "\x28\x75\x29\0" /* offset 6084 */ - "\x28\x76\x29\0" /* offset 6088 */ - "\x28\x77\x29\0" /* offset 6092 */ - "\x28\x78\x29\0" /* offset 6096 */ - "\x28\x79\x29\0" /* offset 6100 */ - "\x28\x7a\x29\0" /* offset 6104 */ - "\x53\0" /* offset 6108 */ - "\x59\0" /* offset 6110 */ - "\x71\0" /* offset 6112 */ - "\xe2\x88\xab\xe2\x88\xab\xe2\x88\xab\xe2\x88\xab\0" /* offset 6114 */ - "\x3a\x3a\x3d\0" /* offset 6127 */ - "\x3d\x3d\0" /* offset 6131 */ - "\x3d\x3d\x3d\0" /* offset 6134 */ - "\xe2\xab\x9d\xcc\xb8\0" /* offset 6138 */ - "\xe2\xb5\xa1\0" /* offset 6144 */ - "\xe6\xaf\x8d\0" /* offset 6148 */ - "\xe9\xbe\x9f\0" /* offset 6152 */ - "\xe4\xb8\x80\0" /* offset 6156 */ - "\xe4\xb8\xa8\0" /* offset 6160 */ - "\xe4\xb8\xb6\0" /* offset 6164 */ - "\xe4\xb8\xbf\0" /* offset 6168 */ - "\xe4\xb9\x99\0" /* offset 6172 */ - "\xe4\xba\x85\0" /* offset 6176 */ - "\xe4\xba\x8c\0" /* offset 6180 */ - "\xe4\xba\xa0\0" /* offset 6184 */ - "\xe4\xba\xba\0" /* offset 6188 */ - "\xe5\x84\xbf\0" /* offset 6192 */ - "\xe5\x85\xa5\0" /* offset 6196 */ - "\xe5\x85\xab\0" /* offset 6200 */ - "\xe5\x86\x82\0" /* offset 6204 */ - "\xe5\x86\x96\0" /* offset 6208 */ - "\xe5\x86\xab\0" /* offset 6212 */ - "\xe5\x87\xa0\0" /* offset 6216 */ - "\xe5\x87\xb5\0" /* offset 6220 */ - "\xe5\x88\x80\0" /* offset 6224 */ - "\xe5\x8a\x9b\0" /* offset 6228 */ - "\xe5\x8b\xb9\0" /* offset 6232 */ - "\xe5\x8c\x95\0" /* offset 6236 */ - "\xe5\x8c\x9a\0" /* offset 6240 */ - "\xe5\x8c\xb8\0" /* offset 6244 */ - "\xe5\x8d\x81\0" /* offset 6248 */ - "\xe5\x8d\x9c\0" /* offset 6252 */ - "\xe5\x8d\xa9\0" /* offset 6256 */ - "\xe5\x8e\x82\0" /* offset 6260 */ - "\xe5\x8e\xb6\0" /* offset 6264 */ - "\xe5\x8f\x88\0" /* offset 6268 */ - "\xe5\x8f\xa3\0" /* offset 6272 */ - "\xe5\x9b\x97\0" /* offset 6276 */ - "\xe5\x9c\x9f\0" /* offset 6280 */ - "\xe5\xa3\xab\0" /* offset 6284 */ - "\xe5\xa4\x82\0" /* offset 6288 */ - "\xe5\xa4\x8a\0" /* offset 6292 */ - "\xe5\xa4\x95\0" /* offset 6296 */ - "\xe5\xa4\xa7\0" /* offset 6300 */ - "\xe5\xa5\xb3\0" /* offset 6304 */ - "\xe5\xad\x90\0" /* offset 6308 */ - "\xe5\xae\x80\0" /* offset 6312 */ - "\xe5\xaf\xb8\0" /* offset 6316 */ - "\xe5\xb0\x8f\0" /* offset 6320 */ - "\xe5\xb0\xa2\0" /* offset 6324 */ - "\xe5\xb0\xb8\0" /* offset 6328 */ - "\xe5\xb1\xae\0" /* offset 6332 */ - "\xe5\xb1\xb1\0" /* offset 6336 */ - "\xe5\xb7\x9b\0" /* offset 6340 */ - "\xe5\xb7\xa5\0" /* offset 6344 */ - "\xe5\xb7\xb1\0" /* offset 6348 */ - "\xe5\xb7\xbe\0" /* offset 6352 */ - "\xe5\xb9\xb2\0" /* offset 6356 */ - "\xe5\xb9\xba\0" /* offset 6360 */ - "\xe5\xb9\xbf\0" /* offset 6364 */ - "\xe5\xbb\xb4\0" /* offset 6368 */ - "\xe5\xbb\xbe\0" /* offset 6372 */ - "\xe5\xbc\x8b\0" /* offset 6376 */ - "\xe5\xbc\x93\0" /* offset 6380 */ - "\xe5\xbd\x90\0" /* offset 6384 */ - "\xe5\xbd\xa1\0" /* offset 6388 */ - "\xe5\xbd\xb3\0" /* offset 6392 */ - "\xe5\xbf\x83\0" /* offset 6396 */ - "\xe6\x88\x88\0" /* offset 6400 */ - "\xe6\x88\xb6\0" /* offset 6404 */ - "\xe6\x89\x8b\0" /* offset 6408 */ - "\xe6\x94\xaf\0" /* offset 6412 */ - "\xe6\x94\xb4\0" /* offset 6416 */ - "\xe6\x96\x87\0" /* offset 6420 */ - "\xe6\x96\x97\0" /* offset 6424 */ - "\xe6\x96\xa4\0" /* offset 6428 */ - "\xe6\x96\xb9\0" /* offset 6432 */ - "\xe6\x97\xa0\0" /* offset 6436 */ - "\xe6\x97\xa5\0" /* offset 6440 */ - "\xe6\x9b\xb0\0" /* offset 6444 */ - "\xe6\x9c\x88\0" /* offset 6448 */ - "\xe6\x9c\xa8\0" /* offset 6452 */ - "\xe6\xac\xa0\0" /* offset 6456 */ - "\xe6\xad\xa2\0" /* offset 6460 */ - "\xe6\xad\xb9\0" /* offset 6464 */ - "\xe6\xae\xb3\0" /* offset 6468 */ - "\xe6\xaf\x8b\0" /* offset 6472 */ - "\xe6\xaf\x94\0" /* offset 6476 */ - "\xe6\xaf\x9b\0" /* offset 6480 */ - "\xe6\xb0\x8f\0" /* offset 6484 */ - "\xe6\xb0\x94\0" /* offset 6488 */ - "\xe6\xb0\xb4\0" /* offset 6492 */ - "\xe7\x81\xab\0" /* offset 6496 */ - "\xe7\x88\xaa\0" /* offset 6500 */ - "\xe7\x88\xb6\0" /* offset 6504 */ - "\xe7\x88\xbb\0" /* offset 6508 */ - "\xe7\x88\xbf\0" /* offset 6512 */ - "\xe7\x89\x87\0" /* offset 6516 */ - "\xe7\x89\x99\0" /* offset 6520 */ - "\xe7\x89\x9b\0" /* offset 6524 */ - "\xe7\x8a\xac\0" /* offset 6528 */ - "\xe7\x8e\x84\0" /* offset 6532 */ - "\xe7\x8e\x89\0" /* offset 6536 */ - "\xe7\x93\x9c\0" /* offset 6540 */ - "\xe7\x93\xa6\0" /* offset 6544 */ - "\xe7\x94\x98\0" /* offset 6548 */ - "\xe7\x94\x9f\0" /* offset 6552 */ - "\xe7\x94\xa8\0" /* offset 6556 */ - "\xe7\x94\xb0\0" /* offset 6560 */ - "\xe7\x96\x8b\0" /* offset 6564 */ - "\xe7\x96\x92\0" /* offset 6568 */ - "\xe7\x99\xb6\0" /* offset 6572 */ - "\xe7\x99\xbd\0" /* offset 6576 */ - "\xe7\x9a\xae\0" /* offset 6580 */ - "\xe7\x9a\xbf\0" /* offset 6584 */ - "\xe7\x9b\xae\0" /* offset 6588 */ - "\xe7\x9f\x9b\0" /* offset 6592 */ - "\xe7\x9f\xa2\0" /* offset 6596 */ - "\xe7\x9f\xb3\0" /* offset 6600 */ - "\xe7\xa4\xba\0" /* offset 6604 */ - "\xe7\xa6\xb8\0" /* offset 6608 */ - "\xe7\xa6\xbe\0" /* offset 6612 */ - "\xe7\xa9\xb4\0" /* offset 6616 */ - "\xe7\xab\x8b\0" /* offset 6620 */ - "\xe7\xab\xb9\0" /* offset 6624 */ - "\xe7\xb1\xb3\0" /* offset 6628 */ - "\xe7\xb3\xb8\0" /* offset 6632 */ - "\xe7\xbc\xb6\0" /* offset 6636 */ - "\xe7\xbd\x91\0" /* offset 6640 */ - "\xe7\xbe\x8a\0" /* offset 6644 */ - "\xe7\xbe\xbd\0" /* offset 6648 */ - "\xe8\x80\x81\0" /* offset 6652 */ - "\xe8\x80\x8c\0" /* offset 6656 */ - "\xe8\x80\x92\0" /* offset 6660 */ - "\xe8\x80\xb3\0" /* offset 6664 */ - "\xe8\x81\xbf\0" /* offset 6668 */ - "\xe8\x82\x89\0" /* offset 6672 */ - "\xe8\x87\xa3\0" /* offset 6676 */ - "\xe8\x87\xaa\0" /* offset 6680 */ - "\xe8\x87\xb3\0" /* offset 6684 */ - "\xe8\x87\xbc\0" /* offset 6688 */ - "\xe8\x88\x8c\0" /* offset 6692 */ - "\xe8\x88\x9b\0" /* offset 6696 */ - "\xe8\x88\x9f\0" /* offset 6700 */ - "\xe8\x89\xae\0" /* offset 6704 */ - "\xe8\x89\xb2\0" /* offset 6708 */ - "\xe8\x89\xb8\0" /* offset 6712 */ - "\xe8\x99\x8d\0" /* offset 6716 */ - "\xe8\x99\xab\0" /* offset 6720 */ - "\xe8\xa1\x80\0" /* offset 6724 */ - "\xe8\xa1\x8c\0" /* offset 6728 */ - "\xe8\xa1\xa3\0" /* offset 6732 */ - "\xe8\xa5\xbe\0" /* offset 6736 */ - "\xe8\xa6\x8b\0" /* offset 6740 */ - "\xe8\xa7\x92\0" /* offset 6744 */ - "\xe8\xa8\x80\0" /* offset 6748 */ - "\xe8\xb0\xb7\0" /* offset 6752 */ - "\xe8\xb1\x86\0" /* offset 6756 */ - "\xe8\xb1\x95\0" /* offset 6760 */ - "\xe8\xb1\xb8\0" /* offset 6764 */ - "\xe8\xb2\x9d\0" /* offset 6768 */ - "\xe8\xb5\xa4\0" /* offset 6772 */ - "\xe8\xb5\xb0\0" /* offset 6776 */ - "\xe8\xb6\xb3\0" /* offset 6780 */ - "\xe8\xba\xab\0" /* offset 6784 */ - "\xe8\xbb\x8a\0" /* offset 6788 */ - "\xe8\xbe\x9b\0" /* offset 6792 */ - "\xe8\xbe\xb0\0" /* offset 6796 */ - "\xe8\xbe\xb5\0" /* offset 6800 */ - "\xe9\x82\x91\0" /* offset 6804 */ - "\xe9\x85\x89\0" /* offset 6808 */ - "\xe9\x87\x86\0" /* offset 6812 */ - "\xe9\x87\x8c\0" /* offset 6816 */ - "\xe9\x87\x91\0" /* offset 6820 */ - "\xe9\x95\xb7\0" /* offset 6824 */ - "\xe9\x96\x80\0" /* offset 6828 */ - "\xe9\x98\x9c\0" /* offset 6832 */ - "\xe9\x9a\xb6\0" /* offset 6836 */ - "\xe9\x9a\xb9\0" /* offset 6840 */ - "\xe9\x9b\xa8\0" /* offset 6844 */ - "\xe9\x9d\x91\0" /* offset 6848 */ - "\xe9\x9d\x9e\0" /* offset 6852 */ - "\xe9\x9d\xa2\0" /* offset 6856 */ - "\xe9\x9d\xa9\0" /* offset 6860 */ - "\xe9\x9f\x8b\0" /* offset 6864 */ - "\xe9\x9f\xad\0" /* offset 6868 */ - "\xe9\x9f\xb3\0" /* offset 6872 */ - "\xe9\xa0\x81\0" /* offset 6876 */ - "\xe9\xa2\xa8\0" /* offset 6880 */ - "\xe9\xa3\x9b\0" /* offset 6884 */ - "\xe9\xa3\x9f\0" /* offset 6888 */ - "\xe9\xa6\x96\0" /* offset 6892 */ - "\xe9\xa6\x99\0" /* offset 6896 */ - "\xe9\xa6\xac\0" /* offset 6900 */ - "\xe9\xaa\xa8\0" /* offset 6904 */ - "\xe9\xab\x98\0" /* offset 6908 */ - "\xe9\xab\x9f\0" /* offset 6912 */ - "\xe9\xac\xa5\0" /* offset 6916 */ - "\xe9\xac\xaf\0" /* offset 6920 */ - "\xe9\xac\xb2\0" /* offset 6924 */ - "\xe9\xac\xbc\0" /* offset 6928 */ - "\xe9\xad\x9a\0" /* offset 6932 */ - "\xe9\xb3\xa5\0" /* offset 6936 */ - "\xe9\xb9\xb5\0" /* offset 6940 */ - "\xe9\xb9\xbf\0" /* offset 6944 */ - "\xe9\xba\xa5\0" /* offset 6948 */ - "\xe9\xba\xbb\0" /* offset 6952 */ - "\xe9\xbb\x83\0" /* offset 6956 */ - "\xe9\xbb\x8d\0" /* offset 6960 */ - "\xe9\xbb\x91\0" /* offset 6964 */ - "\xe9\xbb\xb9\0" /* offset 6968 */ - "\xe9\xbb\xbd\0" /* offset 6972 */ - "\xe9\xbc\x8e\0" /* offset 6976 */ - "\xe9\xbc\x93\0" /* offset 6980 */ - "\xe9\xbc\xa0\0" /* offset 6984 */ - "\xe9\xbc\xbb\0" /* offset 6988 */ - "\xe9\xbd\x8a\0" /* offset 6992 */ - "\xe9\xbd\x92\0" /* offset 6996 */ - "\xe9\xbe\x8d\0" /* offset 7000 */ - "\xe9\xbe\x9c\0" /* offset 7004 */ - "\xe9\xbe\xa0\0" /* offset 7008 */ - "\xe3\x80\x92\0" /* offset 7012 */ - "\xe5\x8d\x84\0" /* offset 7016 */ - "\xe5\x8d\x85\0" /* offset 7020 */ - "\xe3\x81\x8b\xe3\x82\x99\0" /* offset 7024 */ - "\xe3\x81\x8d\xe3\x82\x99\0" /* offset 7031 */ - "\xe3\x81\x8f\xe3\x82\x99\0" /* offset 7038 */ - "\xe3\x81\x91\xe3\x82\x99\0" /* offset 7045 */ - "\xe3\x81\x93\xe3\x82\x99\0" /* offset 7052 */ - "\xe3\x81\x95\xe3\x82\x99\0" /* offset 7059 */ - "\xe3\x81\x97\xe3\x82\x99\0" /* offset 7066 */ - "\xe3\x81\x99\xe3\x82\x99\0" /* offset 7073 */ - "\xe3\x81\x9b\xe3\x82\x99\0" /* offset 7080 */ - "\xe3\x81\x9d\xe3\x82\x99\0" /* offset 7087 */ - "\xe3\x81\x9f\xe3\x82\x99\0" /* offset 7094 */ - "\xe3\x81\xa1\xe3\x82\x99\0" /* offset 7101 */ - "\xe3\x81\xa4\xe3\x82\x99\0" /* offset 7108 */ - "\xe3\x81\xa6\xe3\x82\x99\0" /* offset 7115 */ - "\xe3\x81\xa8\xe3\x82\x99\0" /* offset 7122 */ - "\xe3\x81\xaf\xe3\x82\x99\0" /* offset 7129 */ - "\xe3\x81\xaf\xe3\x82\x9a\0" /* offset 7136 */ - "\xe3\x81\xb2\xe3\x82\x99\0" /* offset 7143 */ - "\xe3\x81\xb2\xe3\x82\x9a\0" /* offset 7150 */ - "\xe3\x81\xb5\xe3\x82\x99\0" /* offset 7157 */ - "\xe3\x81\xb5\xe3\x82\x9a\0" /* offset 7164 */ - "\xe3\x81\xb8\xe3\x82\x99\0" /* offset 7171 */ - "\xe3\x81\xb8\xe3\x82\x9a\0" /* offset 7178 */ - "\xe3\x81\xbb\xe3\x82\x99\0" /* offset 7185 */ - "\xe3\x81\xbb\xe3\x82\x9a\0" /* offset 7192 */ - "\xe3\x81\x86\xe3\x82\x99\0" /* offset 7199 */ - "\x20\xe3\x82\x99\0" /* offset 7206 */ - "\x20\xe3\x82\x9a\0" /* offset 7211 */ - "\xe3\x82\x9d\xe3\x82\x99\0" /* offset 7216 */ - "\xe3\x82\x88\xe3\x82\x8a\0" /* offset 7223 */ - "\xe3\x82\xab\xe3\x82\x99\0" /* offset 7230 */ - "\xe3\x82\xad\xe3\x82\x99\0" /* offset 7237 */ - "\xe3\x82\xaf\xe3\x82\x99\0" /* offset 7244 */ - "\xe3\x82\xb1\xe3\x82\x99\0" /* offset 7251 */ - "\xe3\x82\xb3\xe3\x82\x99\0" /* offset 7258 */ - "\xe3\x82\xb5\xe3\x82\x99\0" /* offset 7265 */ - "\xe3\x82\xb7\xe3\x82\x99\0" /* offset 7272 */ - "\xe3\x82\xb9\xe3\x82\x99\0" /* offset 7279 */ - "\xe3\x82\xbb\xe3\x82\x99\0" /* offset 7286 */ - "\xe3\x82\xbd\xe3\x82\x99\0" /* offset 7293 */ - "\xe3\x82\xbf\xe3\x82\x99\0" /* offset 7300 */ - "\xe3\x83\x81\xe3\x82\x99\0" /* offset 7307 */ - "\xe3\x83\x84\xe3\x82\x99\0" /* offset 7314 */ - "\xe3\x83\x86\xe3\x82\x99\0" /* offset 7321 */ - "\xe3\x83\x88\xe3\x82\x99\0" /* offset 7328 */ - "\xe3\x83\x8f\xe3\x82\x99\0" /* offset 7335 */ - "\xe3\x83\x8f\xe3\x82\x9a\0" /* offset 7342 */ - "\xe3\x83\x92\xe3\x82\x99\0" /* offset 7349 */ - "\xe3\x83\x92\xe3\x82\x9a\0" /* offset 7356 */ - "\xe3\x83\x95\xe3\x82\x99\0" /* offset 7363 */ - "\xe3\x83\x95\xe3\x82\x9a\0" /* offset 7370 */ - "\xe3\x83\x98\xe3\x82\x99\0" /* offset 7377 */ - "\xe3\x83\x98\xe3\x82\x9a\0" /* offset 7384 */ - "\xe3\x83\x9b\xe3\x82\x99\0" /* offset 7391 */ - "\xe3\x83\x9b\xe3\x82\x9a\0" /* offset 7398 */ - "\xe3\x82\xa6\xe3\x82\x99\0" /* offset 7405 */ - "\xe3\x83\xaf\xe3\x82\x99\0" /* offset 7412 */ - "\xe3\x83\xb0\xe3\x82\x99\0" /* offset 7419 */ - "\xe3\x83\xb1\xe3\x82\x99\0" /* offset 7426 */ - "\xe3\x83\xb2\xe3\x82\x99\0" /* offset 7433 */ - "\xe3\x83\xbd\xe3\x82\x99\0" /* offset 7440 */ - "\xe3\x82\xb3\xe3\x83\x88\0" /* offset 7447 */ - "\xe1\x84\x80\0" /* offset 7454 */ - "\xe1\x84\x81\0" /* offset 7458 */ - "\xe1\x86\xaa\0" /* offset 7462 */ - "\xe1\x84\x82\0" /* offset 7466 */ - "\xe1\x86\xac\0" /* offset 7470 */ - "\xe1\x86\xad\0" /* offset 7474 */ - "\xe1\x84\x83\0" /* offset 7478 */ - "\xe1\x84\x84\0" /* offset 7482 */ - "\xe1\x84\x85\0" /* offset 7486 */ - "\xe1\x86\xb0\0" /* offset 7490 */ - "\xe1\x86\xb1\0" /* offset 7494 */ - "\xe1\x86\xb2\0" /* offset 7498 */ - "\xe1\x86\xb3\0" /* offset 7502 */ - "\xe1\x86\xb4\0" /* offset 7506 */ - "\xe1\x86\xb5\0" /* offset 7510 */ - "\xe1\x84\x9a\0" /* offset 7514 */ - "\xe1\x84\x86\0" /* offset 7518 */ - "\xe1\x84\x87\0" /* offset 7522 */ - "\xe1\x84\x88\0" /* offset 7526 */ - "\xe1\x84\xa1\0" /* offset 7530 */ - "\xe1\x84\x89\0" /* offset 7534 */ - "\xe1\x84\x8a\0" /* offset 7538 */ - "\xe1\x84\x8b\0" /* offset 7542 */ - "\xe1\x84\x8c\0" /* offset 7546 */ - "\xe1\x84\x8d\0" /* offset 7550 */ - "\xe1\x84\x8e\0" /* offset 7554 */ - "\xe1\x84\x8f\0" /* offset 7558 */ - "\xe1\x84\x90\0" /* offset 7562 */ - "\xe1\x84\x91\0" /* offset 7566 */ - "\xe1\x84\x92\0" /* offset 7570 */ - "\xe1\x85\xa1\0" /* offset 7574 */ - "\xe1\x85\xa2\0" /* offset 7578 */ - "\xe1\x85\xa3\0" /* offset 7582 */ - "\xe1\x85\xa4\0" /* offset 7586 */ - "\xe1\x85\xa5\0" /* offset 7590 */ - "\xe1\x85\xa6\0" /* offset 7594 */ - "\xe1\x85\xa7\0" /* offset 7598 */ - "\xe1\x85\xa8\0" /* offset 7602 */ - "\xe1\x85\xa9\0" /* offset 7606 */ - "\xe1\x85\xaa\0" /* offset 7610 */ - "\xe1\x85\xab\0" /* offset 7614 */ - "\xe1\x85\xac\0" /* offset 7618 */ - "\xe1\x85\xad\0" /* offset 7622 */ - "\xe1\x85\xae\0" /* offset 7626 */ - "\xe1\x85\xaf\0" /* offset 7630 */ - "\xe1\x85\xb0\0" /* offset 7634 */ - "\xe1\x85\xb1\0" /* offset 7638 */ - "\xe1\x85\xb2\0" /* offset 7642 */ - "\xe1\x85\xb3\0" /* offset 7646 */ - "\xe1\x85\xb4\0" /* offset 7650 */ - "\xe1\x85\xb5\0" /* offset 7654 */ - "\xe1\x85\xa0\0" /* offset 7658 */ - "\xe1\x84\x94\0" /* offset 7662 */ - "\xe1\x84\x95\0" /* offset 7666 */ - "\xe1\x87\x87\0" /* offset 7670 */ - "\xe1\x87\x88\0" /* offset 7674 */ - "\xe1\x87\x8c\0" /* offset 7678 */ - "\xe1\x87\x8e\0" /* offset 7682 */ - "\xe1\x87\x93\0" /* offset 7686 */ - "\xe1\x87\x97\0" /* offset 7690 */ - "\xe1\x87\x99\0" /* offset 7694 */ - "\xe1\x84\x9c\0" /* offset 7698 */ - "\xe1\x87\x9d\0" /* offset 7702 */ - "\xe1\x87\x9f\0" /* offset 7706 */ - "\xe1\x84\x9d\0" /* offset 7710 */ - "\xe1\x84\x9e\0" /* offset 7714 */ - "\xe1\x84\xa0\0" /* offset 7718 */ - "\xe1\x84\xa2\0" /* offset 7722 */ - "\xe1\x84\xa3\0" /* offset 7726 */ - "\xe1\x84\xa7\0" /* offset 7730 */ - "\xe1\x84\xa9\0" /* offset 7734 */ - "\xe1\x84\xab\0" /* offset 7738 */ - "\xe1\x84\xac\0" /* offset 7742 */ - "\xe1\x84\xad\0" /* offset 7746 */ - "\xe1\x84\xae\0" /* offset 7750 */ - "\xe1\x84\xaf\0" /* offset 7754 */ - "\xe1\x84\xb2\0" /* offset 7758 */ - "\xe1\x84\xb6\0" /* offset 7762 */ - "\xe1\x85\x80\0" /* offset 7766 */ - "\xe1\x85\x87\0" /* offset 7770 */ - "\xe1\x85\x8c\0" /* offset 7774 */ - "\xe1\x87\xb1\0" /* offset 7778 */ - "\xe1\x87\xb2\0" /* offset 7782 */ - "\xe1\x85\x97\0" /* offset 7786 */ - "\xe1\x85\x98\0" /* offset 7790 */ - "\xe1\x85\x99\0" /* offset 7794 */ - "\xe1\x86\x84\0" /* offset 7798 */ - "\xe1\x86\x85\0" /* offset 7802 */ - "\xe1\x86\x88\0" /* offset 7806 */ - "\xe1\x86\x91\0" /* offset 7810 */ - "\xe1\x86\x92\0" /* offset 7814 */ - "\xe1\x86\x94\0" /* offset 7818 */ - "\xe1\x86\x9e\0" /* offset 7822 */ - "\xe1\x86\xa1\0" /* offset 7826 */ - "\xe4\xb8\x89\0" /* offset 7830 */ - "\xe5\x9b\x9b\0" /* offset 7834 */ - "\xe4\xb8\x8a\0" /* offset 7838 */ - "\xe4\xb8\xad\0" /* offset 7842 */ - "\xe4\xb8\x8b\0" /* offset 7846 */ - "\xe7\x94\xb2\0" /* offset 7850 */ - "\xe4\xb8\x99\0" /* offset 7854 */ - "\xe4\xb8\x81\0" /* offset 7858 */ - "\xe5\xa4\xa9\0" /* offset 7862 */ - "\xe5\x9c\xb0\0" /* offset 7866 */ - "\x28\xe1\x84\x80\x29\0" /* offset 7870 */ - "\x28\xe1\x84\x82\x29\0" /* offset 7876 */ - "\x28\xe1\x84\x83\x29\0" /* offset 7882 */ - "\x28\xe1\x84\x85\x29\0" /* offset 7888 */ - "\x28\xe1\x84\x86\x29\0" /* offset 7894 */ - "\x28\xe1\x84\x87\x29\0" /* offset 7900 */ - "\x28\xe1\x84\x89\x29\0" /* offset 7906 */ - "\x28\xe1\x84\x8b\x29\0" /* offset 7912 */ - "\x28\xe1\x84\x8c\x29\0" /* offset 7918 */ - "\x28\xe1\x84\x8e\x29\0" /* offset 7924 */ - "\x28\xe1\x84\x8f\x29\0" /* offset 7930 */ - "\x28\xe1\x84\x90\x29\0" /* offset 7936 */ - "\x28\xe1\x84\x91\x29\0" /* offset 7942 */ - "\x28\xe1\x84\x92\x29\0" /* offset 7948 */ - "\x28\xe1\x84\x80\xe1\x85\xa1\x29\0" /* offset 7954 */ - "\x28\xe1\x84\x82\xe1\x85\xa1\x29\0" /* offset 7963 */ - "\x28\xe1\x84\x83\xe1\x85\xa1\x29\0" /* offset 7972 */ - "\x28\xe1\x84\x85\xe1\x85\xa1\x29\0" /* offset 7981 */ - "\x28\xe1\x84\x86\xe1\x85\xa1\x29\0" /* offset 7990 */ - "\x28\xe1\x84\x87\xe1\x85\xa1\x29\0" /* offset 7999 */ - "\x28\xe1\x84\x89\xe1\x85\xa1\x29\0" /* offset 8008 */ - "\x28\xe1\x84\x8b\xe1\x85\xa1\x29\0" /* offset 8017 */ - "\x28\xe1\x84\x8c\xe1\x85\xa1\x29\0" /* offset 8026 */ - "\x28\xe1\x84\x8e\xe1\x85\xa1\x29\0" /* offset 8035 */ - "\x28\xe1\x84\x8f\xe1\x85\xa1\x29\0" /* offset 8044 */ - "\x28\xe1\x84\x90\xe1\x85\xa1\x29\0" /* offset 8053 */ - "\x28\xe1\x84\x91\xe1\x85\xa1\x29\0" /* offset 8062 */ - "\x28\xe1\x84\x92\xe1\x85\xa1\x29\0" /* offset 8071 */ - "\x28\xe1\x84\x8c\xe1\x85\xae\x29\0" /* offset 8080 */ - "\x28\xe1\x84\x8b\xe1\x85\xa9\xe1\x84\x8c\xe1\x85\xa5\xe1\x86\xab\x29\0" /* offset 8089 */ - "\x28\xe1\x84\x8b\xe1\x85\xa9\xe1\x84\x92\xe1\x85\xae\x29\0" /* offset 8107 */ - "\x28\xe4\xb8\x80\x29\0" /* offset 8122 */ - "\x28\xe4\xba\x8c\x29\0" /* offset 8128 */ - "\x28\xe4\xb8\x89\x29\0" /* offset 8134 */ - "\x28\xe5\x9b\x9b\x29\0" /* offset 8140 */ - "\x28\xe4\xba\x94\x29\0" /* offset 8146 */ - "\x28\xe5\x85\xad\x29\0" /* offset 8152 */ - "\x28\xe4\xb8\x83\x29\0" /* offset 8158 */ - "\x28\xe5\x85\xab\x29\0" /* offset 8164 */ - "\x28\xe4\xb9\x9d\x29\0" /* offset 8170 */ - "\x28\xe5\x8d\x81\x29\0" /* offset 8176 */ - "\x28\xe6\x9c\x88\x29\0" /* offset 8182 */ - "\x28\xe7\x81\xab\x29\0" /* offset 8188 */ - "\x28\xe6\xb0\xb4\x29\0" /* offset 8194 */ - "\x28\xe6\x9c\xa8\x29\0" /* offset 8200 */ - "\x28\xe9\x87\x91\x29\0" /* offset 8206 */ - "\x28\xe5\x9c\x9f\x29\0" /* offset 8212 */ - "\x28\xe6\x97\xa5\x29\0" /* offset 8218 */ - "\x28\xe6\xa0\xaa\x29\0" /* offset 8224 */ - "\x28\xe6\x9c\x89\x29\0" /* offset 8230 */ - "\x28\xe7\xa4\xbe\x29\0" /* offset 8236 */ - "\x28\xe5\x90\x8d\x29\0" /* offset 8242 */ - "\x28\xe7\x89\xb9\x29\0" /* offset 8248 */ - "\x28\xe8\xb2\xa1\x29\0" /* offset 8254 */ - "\x28\xe7\xa5\x9d\x29\0" /* offset 8260 */ - "\x28\xe5\x8a\xb4\x29\0" /* offset 8266 */ - "\x28\xe4\xbb\xa3\x29\0" /* offset 8272 */ - "\x28\xe5\x91\xbc\x29\0" /* offset 8278 */ - "\x28\xe5\xad\xa6\x29\0" /* offset 8284 */ - "\x28\xe7\x9b\xa3\x29\0" /* offset 8290 */ - "\x28\xe4\xbc\x81\x29\0" /* offset 8296 */ - "\x28\xe8\xb3\x87\x29\0" /* offset 8302 */ - "\x28\xe5\x8d\x94\x29\0" /* offset 8308 */ - "\x28\xe7\xa5\xad\x29\0" /* offset 8314 */ - "\x28\xe4\xbc\x91\x29\0" /* offset 8320 */ - "\x28\xe8\x87\xaa\x29\0" /* offset 8326 */ - "\x28\xe8\x87\xb3\x29\0" /* offset 8332 */ - "\x50\x54\x45\0" /* offset 8338 */ - "\x32\x31\0" /* offset 8342 */ - "\x32\x32\0" /* offset 8345 */ - "\x32\x33\0" /* offset 8348 */ - "\x32\x34\0" /* offset 8351 */ - "\x32\x35\0" /* offset 8354 */ - "\x32\x36\0" /* offset 8357 */ - "\x32\x37\0" /* offset 8360 */ - "\x32\x38\0" /* offset 8363 */ - "\x32\x39\0" /* offset 8366 */ - "\x33\x30\0" /* offset 8369 */ - "\x33\x31\0" /* offset 8372 */ - "\x33\x32\0" /* offset 8375 */ - "\x33\x33\0" /* offset 8378 */ - "\x33\x34\0" /* offset 8381 */ - "\x33\x35\0" /* offset 8384 */ - "\xe1\x84\x80\xe1\x85\xa1\0" /* offset 8387 */ - "\xe1\x84\x82\xe1\x85\xa1\0" /* offset 8394 */ - "\xe1\x84\x83\xe1\x85\xa1\0" /* offset 8401 */ - "\xe1\x84\x85\xe1\x85\xa1\0" /* offset 8408 */ - "\xe1\x84\x86\xe1\x85\xa1\0" /* offset 8415 */ - "\xe1\x84\x87\xe1\x85\xa1\0" /* offset 8422 */ - "\xe1\x84\x89\xe1\x85\xa1\0" /* offset 8429 */ - "\xe1\x84\x8b\xe1\x85\xa1\0" /* offset 8436 */ - "\xe1\x84\x8c\xe1\x85\xa1\0" /* offset 8443 */ - "\xe1\x84\x8e\xe1\x85\xa1\0" /* offset 8450 */ - "\xe1\x84\x8f\xe1\x85\xa1\0" /* offset 8457 */ - "\xe1\x84\x90\xe1\x85\xa1\0" /* offset 8464 */ - "\xe1\x84\x91\xe1\x85\xa1\0" /* offset 8471 */ - "\xe1\x84\x92\xe1\x85\xa1\0" /* offset 8478 */ - "\xe1\x84\x8e\xe1\x85\xa1\xe1\x86\xb7\xe1\x84\x80\xe1\x85\xa9\0" /* offset 8485 */ - "\xe1\x84\x8c\xe1\x85\xae\xe1\x84\x8b\xe1\x85\xb4\0" /* offset 8501 */ - "\xe1\x84\x8b\xe1\x85\xae\0" /* offset 8514 */ - "\xe4\xba\x94\0" /* offset 8521 */ - "\xe5\x85\xad\0" /* offset 8525 */ - "\xe4\xb8\x83\0" /* offset 8529 */ - "\xe4\xb9\x9d\0" /* offset 8533 */ - "\xe6\xa0\xaa\0" /* offset 8537 */ - "\xe6\x9c\x89\0" /* offset 8541 */ - "\xe7\xa4\xbe\0" /* offset 8545 */ - "\xe5\x90\x8d\0" /* offset 8549 */ - "\xe7\x89\xb9\0" /* offset 8553 */ - "\xe8\xb2\xa1\0" /* offset 8557 */ - "\xe7\xa5\x9d\0" /* offset 8561 */ - "\xe5\x8a\xb4\0" /* offset 8565 */ - "\xe7\xa7\x98\0" /* offset 8569 */ - "\xe7\x94\xb7\0" /* offset 8573 */ - "\xe9\x81\xa9\0" /* offset 8577 */ - "\xe5\x84\xaa\0" /* offset 8581 */ - "\xe5\x8d\xb0\0" /* offset 8585 */ - "\xe6\xb3\xa8\0" /* offset 8589 */ - "\xe9\xa0\x85\0" /* offset 8593 */ - "\xe4\xbc\x91\0" /* offset 8597 */ - "\xe5\x86\x99\0" /* offset 8601 */ - "\xe6\xad\xa3\0" /* offset 8605 */ - "\xe5\xb7\xa6\0" /* offset 8609 */ - "\xe5\x8f\xb3\0" /* offset 8613 */ - "\xe5\x8c\xbb\0" /* offset 8617 */ - "\xe5\xae\x97\0" /* offset 8621 */ - "\xe5\xad\xa6\0" /* offset 8625 */ - "\xe7\x9b\xa3\0" /* offset 8629 */ - "\xe4\xbc\x81\0" /* offset 8633 */ - "\xe8\xb3\x87\0" /* offset 8637 */ - "\xe5\x8d\x94\0" /* offset 8641 */ - "\xe5\xa4\x9c\0" /* offset 8645 */ - "\x33\x36\0" /* offset 8649 */ - "\x33\x37\0" /* offset 8652 */ - "\x33\x38\0" /* offset 8655 */ - "\x33\x39\0" /* offset 8658 */ - "\x34\x30\0" /* offset 8661 */ - "\x34\x31\0" /* offset 8664 */ - "\x34\x32\0" /* offset 8667 */ - "\x34\x33\0" /* offset 8670 */ - "\x34\x34\0" /* offset 8673 */ - "\x34\x35\0" /* offset 8676 */ - "\x34\x36\0" /* offset 8679 */ - "\x34\x37\0" /* offset 8682 */ - "\x34\x38\0" /* offset 8685 */ - "\x34\x39\0" /* offset 8688 */ - "\x35\x30\0" /* offset 8691 */ - "\x31\xe6\x9c\x88\0" /* offset 8694 */ - "\x32\xe6\x9c\x88\0" /* offset 8699 */ - "\x33\xe6\x9c\x88\0" /* offset 8704 */ - "\x34\xe6\x9c\x88\0" /* offset 8709 */ - "\x35\xe6\x9c\x88\0" /* offset 8714 */ - "\x36\xe6\x9c\x88\0" /* offset 8719 */ - "\x37\xe6\x9c\x88\0" /* offset 8724 */ - "\x38\xe6\x9c\x88\0" /* offset 8729 */ - "\x39\xe6\x9c\x88\0" /* offset 8734 */ - "\x31\x30\xe6\x9c\x88\0" /* offset 8739 */ - "\x31\x31\xe6\x9c\x88\0" /* offset 8745 */ - "\x31\x32\xe6\x9c\x88\0" /* offset 8751 */ - "\x48\x67\0" /* offset 8757 */ - "\x65\x72\x67\0" /* offset 8760 */ - "\x65\x56\0" /* offset 8764 */ - "\x4c\x54\x44\0" /* offset 8767 */ - "\xe3\x82\xa2\0" /* offset 8771 */ - "\xe3\x82\xa4\0" /* offset 8775 */ - "\xe3\x82\xa6\0" /* offset 8779 */ - "\xe3\x82\xa8\0" /* offset 8783 */ - "\xe3\x82\xaa\0" /* offset 8787 */ - "\xe3\x82\xab\0" /* offset 8791 */ - "\xe3\x82\xad\0" /* offset 8795 */ - "\xe3\x82\xaf\0" /* offset 8799 */ - "\xe3\x82\xb1\0" /* offset 8803 */ - "\xe3\x82\xb3\0" /* offset 8807 */ - "\xe3\x82\xb5\0" /* offset 8811 */ - "\xe3\x82\xb7\0" /* offset 8815 */ - "\xe3\x82\xb9\0" /* offset 8819 */ - "\xe3\x82\xbb\0" /* offset 8823 */ - "\xe3\x82\xbd\0" /* offset 8827 */ - "\xe3\x82\xbf\0" /* offset 8831 */ - "\xe3\x83\x81\0" /* offset 8835 */ - "\xe3\x83\x84\0" /* offset 8839 */ - "\xe3\x83\x86\0" /* offset 8843 */ - "\xe3\x83\x88\0" /* offset 8847 */ - "\xe3\x83\x8a\0" /* offset 8851 */ - "\xe3\x83\x8b\0" /* offset 8855 */ - "\xe3\x83\x8c\0" /* offset 8859 */ - "\xe3\x83\x8d\0" /* offset 8863 */ - "\xe3\x83\x8e\0" /* offset 8867 */ - "\xe3\x83\x8f\0" /* offset 8871 */ - "\xe3\x83\x92\0" /* offset 8875 */ - "\xe3\x83\x95\0" /* offset 8879 */ - "\xe3\x83\x98\0" /* offset 8883 */ - "\xe3\x83\x9b\0" /* offset 8887 */ - "\xe3\x83\x9e\0" /* offset 8891 */ - "\xe3\x83\x9f\0" /* offset 8895 */ - "\xe3\x83\xa0\0" /* offset 8899 */ - "\xe3\x83\xa1\0" /* offset 8903 */ - "\xe3\x83\xa2\0" /* offset 8907 */ - "\xe3\x83\xa4\0" /* offset 8911 */ - "\xe3\x83\xa6\0" /* offset 8915 */ - "\xe3\x83\xa8\0" /* offset 8919 */ - "\xe3\x83\xa9\0" /* offset 8923 */ - "\xe3\x83\xaa\0" /* offset 8927 */ - "\xe3\x83\xab\0" /* offset 8931 */ - "\xe3\x83\xac\0" /* offset 8935 */ - "\xe3\x83\xad\0" /* offset 8939 */ - "\xe3\x83\xaf\0" /* offset 8943 */ - "\xe3\x83\xb0\0" /* offset 8947 */ - "\xe3\x83\xb1\0" /* offset 8951 */ - "\xe3\x83\xb2\0" /* offset 8955 */ - "\xe3\x82\xa2\xe3\x83\x8f\xe3\x82\x9a\xe3\x83\xbc\xe3\x83\x88\0" /* offset 8959 */ - "\xe3\x82\xa2\xe3\x83\xab\xe3\x83\x95\xe3\x82\xa1\0" /* offset 8975 */ - "\xe3\x82\xa2\xe3\x83\xb3\xe3\x83\x98\xe3\x82\x9a\xe3\x82\xa2\0" /* offset 8988 */ - "\xe3\x82\xa2\xe3\x83\xbc\xe3\x83\xab\0" /* offset 9004 */ - "\xe3\x82\xa4\xe3\x83\x8b\xe3\x83\xb3\xe3\x82\xaf\xe3\x82\x99\0" /* offset 9014 */ - "\xe3\x82\xa4\xe3\x83\xb3\xe3\x83\x81\0" /* offset 9030 */ - "\xe3\x82\xa6\xe3\x82\xa9\xe3\x83\xb3\0" /* offset 9040 */ - "\xe3\x82\xa8\xe3\x82\xb9\xe3\x82\xaf\xe3\x83\xbc\xe3\x83\x88\xe3\x82\x99\0" /* offset 9050 */ - "\xe3\x82\xa8\xe3\x83\xbc\xe3\x82\xab\xe3\x83\xbc\0" /* offset 9069 */ - "\xe3\x82\xaa\xe3\x83\xb3\xe3\x82\xb9\0" /* offset 9082 */ - "\xe3\x82\xaa\xe3\x83\xbc\xe3\x83\xa0\0" /* offset 9092 */ - "\xe3\x82\xab\xe3\x82\xa4\xe3\x83\xaa\0" /* offset 9102 */ - "\xe3\x82\xab\xe3\x83\xa9\xe3\x83\x83\xe3\x83\x88\0" /* offset 9112 */ - "\xe3\x82\xab\xe3\x83\xad\xe3\x83\xaa\xe3\x83\xbc\0" /* offset 9125 */ - "\xe3\x82\xab\xe3\x82\x99\xe3\x83\xad\xe3\x83\xb3\0" /* offset 9138 */ - "\xe3\x82\xab\xe3\x82\x99\xe3\x83\xb3\xe3\x83\x9e\0" /* offset 9151 */ - "\xe3\x82\xad\xe3\x82\x99\xe3\x82\xab\xe3\x82\x99\0" /* offset 9164 */ - "\xe3\x82\xad\xe3\x82\x99\xe3\x83\x8b\xe3\x83\xbc\0" /* offset 9177 */ - "\xe3\x82\xad\xe3\x83\xa5\xe3\x83\xaa\xe3\x83\xbc\0" /* offset 9190 */ - "\xe3\x82\xad\xe3\x82\x99\xe3\x83\xab\xe3\x82\xbf\xe3\x82\x99\xe3\x83\xbc\0" /* offset 9203 */ - "\xe3\x82\xad\xe3\x83\xad\0" /* offset 9222 */ - "\xe3\x82\xad\xe3\x83\xad\xe3\x82\xaf\xe3\x82\x99\xe3\x83\xa9\xe3\x83\xa0\0" /* offset 9229 */ - "\xe3\x82\xad\xe3\x83\xad\xe3\x83\xa1\xe3\x83\xbc\xe3\x83\x88\xe3\x83\xab\0" /* offset 9248 */ - "\xe3\x82\xad\xe3\x83\xad\xe3\x83\xaf\xe3\x83\x83\xe3\x83\x88\0" /* offset 9267 */ - "\xe3\x82\xaf\xe3\x82\x99\xe3\x83\xa9\xe3\x83\xa0\0" /* offset 9283 */ - "\xe3\x82\xaf\xe3\x82\x99\xe3\x83\xa9\xe3\x83\xa0\xe3\x83\x88\xe3\x83\xb3\0" /* offset 9296 */ - "\xe3\x82\xaf\xe3\x83\xab\xe3\x82\xbb\xe3\x82\x99\xe3\x82\xa4\xe3\x83\xad\0" /* offset 9315 */ - "\xe3\x82\xaf\xe3\x83\xad\xe3\x83\xbc\xe3\x83\x8d\0" /* offset 9334 */ - "\xe3\x82\xb1\xe3\x83\xbc\xe3\x82\xb9\0" /* offset 9347 */ - "\xe3\x82\xb3\xe3\x83\xab\xe3\x83\x8a\0" /* offset 9357 */ - "\xe3\x82\xb3\xe3\x83\xbc\xe3\x83\x9b\xe3\x82\x9a\0" /* offset 9367 */ - "\xe3\x82\xb5\xe3\x82\xa4\xe3\x82\xaf\xe3\x83\xab\0" /* offset 9380 */ - "\xe3\x82\xb5\xe3\x83\xb3\xe3\x83\x81\xe3\x83\xbc\xe3\x83\xa0\0" /* offset 9393 */ - "\xe3\x82\xb7\xe3\x83\xaa\xe3\x83\xb3\xe3\x82\xaf\xe3\x82\x99\0" /* offset 9409 */ - "\xe3\x82\xbb\xe3\x83\xb3\xe3\x83\x81\0" /* offset 9425 */ - "\xe3\x82\xbb\xe3\x83\xb3\xe3\x83\x88\0" /* offset 9435 */ - "\xe3\x82\xbf\xe3\x82\x99\xe3\x83\xbc\xe3\x82\xb9\0" /* offset 9445 */ - "\xe3\x83\x86\xe3\x82\x99\xe3\x82\xb7\0" /* offset 9458 */ - "\xe3\x83\x88\xe3\x82\x99\xe3\x83\xab\0" /* offset 9468 */ - "\xe3\x83\x88\xe3\x83\xb3\0" /* offset 9478 */ - "\xe3\x83\x8a\xe3\x83\x8e\0" /* offset 9485 */ - "\xe3\x83\x8e\xe3\x83\x83\xe3\x83\x88\0" /* offset 9492 */ - "\xe3\x83\x8f\xe3\x82\xa4\xe3\x83\x84\0" /* offset 9502 */ - "\xe3\x83\x8f\xe3\x82\x9a\xe3\x83\xbc\xe3\x82\xbb\xe3\x83\xb3\xe3\x83\x88\0" /* offset 9512 */ - "\xe3\x83\x8f\xe3\x82\x9a\xe3\x83\xbc\xe3\x83\x84\0" /* offset 9531 */ - "\xe3\x83\x8f\xe3\x82\x99\xe3\x83\xbc\xe3\x83\xac\xe3\x83\xab\0" /* offset 9544 */ - "\xe3\x83\x92\xe3\x82\x9a\xe3\x82\xa2\xe3\x82\xb9\xe3\x83\x88\xe3\x83\xab\0" /* offset 9560 */ - "\xe3\x83\x92\xe3\x82\x9a\xe3\x82\xaf\xe3\x83\xab\0" /* offset 9579 */ - "\xe3\x83\x92\xe3\x82\x9a\xe3\x82\xb3\0" /* offset 9592 */ - "\xe3\x83\x92\xe3\x82\x99\xe3\x83\xab\0" /* offset 9602 */ - "\xe3\x83\x95\xe3\x82\xa1\xe3\x83\xa9\xe3\x83\x83\xe3\x83\x88\xe3\x82\x99\0" /* offset 9612 */ - "\xe3\x83\x95\xe3\x82\xa3\xe3\x83\xbc\xe3\x83\x88\0" /* offset 9631 */ - "\xe3\x83\x95\xe3\x82\x99\xe3\x83\x83\xe3\x82\xb7\xe3\x82\xa7\xe3\x83\xab\0" /* offset 9644 */ - "\xe3\x83\x95\xe3\x83\xa9\xe3\x83\xb3\0" /* offset 9663 */ - "\xe3\x83\x98\xe3\x82\xaf\xe3\x82\xbf\xe3\x83\xbc\xe3\x83\xab\0" /* offset 9673 */ - "\xe3\x83\x98\xe3\x82\x9a\xe3\x82\xbd\0" /* offset 9689 */ - "\xe3\x83\x98\xe3\x82\x9a\xe3\x83\x8b\xe3\x83\x92\0" /* offset 9699 */ - "\xe3\x83\x98\xe3\x83\xab\xe3\x83\x84\0" /* offset 9712 */ - "\xe3\x83\x98\xe3\x82\x9a\xe3\x83\xb3\xe3\x82\xb9\0" /* offset 9722 */ - "\xe3\x83\x98\xe3\x82\x9a\xe3\x83\xbc\xe3\x82\xb7\xe3\x82\x99\0" /* offset 9735 */ - "\xe3\x83\x98\xe3\x82\x99\xe3\x83\xbc\xe3\x82\xbf\0" /* offset 9751 */ - "\xe3\x83\x9b\xe3\x82\x9a\xe3\x82\xa4\xe3\x83\xb3\xe3\x83\x88\0" /* offset 9764 */ - "\xe3\x83\x9b\xe3\x82\x99\xe3\x83\xab\xe3\x83\x88\0" /* offset 9780 */ - "\xe3\x83\x9b\xe3\x83\xb3\0" /* offset 9793 */ - "\xe3\x83\x9b\xe3\x82\x9a\xe3\x83\xb3\xe3\x83\x88\xe3\x82\x99\0" /* offset 9800 */ - "\xe3\x83\x9b\xe3\x83\xbc\xe3\x83\xab\0" /* offset 9816 */ - "\xe3\x83\x9b\xe3\x83\xbc\xe3\x83\xb3\0" /* offset 9826 */ - "\xe3\x83\x9e\xe3\x82\xa4\xe3\x82\xaf\xe3\x83\xad\0" /* offset 9836 */ - "\xe3\x83\x9e\xe3\x82\xa4\xe3\x83\xab\0" /* offset 9849 */ - "\xe3\x83\x9e\xe3\x83\x83\xe3\x83\x8f\0" /* offset 9859 */ - "\xe3\x83\x9e\xe3\x83\xab\xe3\x82\xaf\0" /* offset 9869 */ - "\xe3\x83\x9e\xe3\x83\xb3\xe3\x82\xb7\xe3\x83\xa7\xe3\x83\xb3\0" /* offset 9879 */ - "\xe3\x83\x9f\xe3\x82\xaf\xe3\x83\xad\xe3\x83\xb3\0" /* offset 9895 */ - "\xe3\x83\x9f\xe3\x83\xaa\0" /* offset 9908 */ - "\xe3\x83\x9f\xe3\x83\xaa\xe3\x83\x8f\xe3\x82\x99\xe3\x83\xbc\xe3\x83\xab\0" /* offset 9915 */ - "\xe3\x83\xa1\xe3\x82\xab\xe3\x82\x99\0" /* offset 9934 */ - "\xe3\x83\xa1\xe3\x82\xab\xe3\x82\x99\xe3\x83\x88\xe3\x83\xb3\0" /* offset 9944 */ - "\xe3\x83\xa1\xe3\x83\xbc\xe3\x83\x88\xe3\x83\xab\0" /* offset 9960 */ - "\xe3\x83\xa4\xe3\x83\xbc\xe3\x83\x88\xe3\x82\x99\0" /* offset 9973 */ - "\xe3\x83\xa4\xe3\x83\xbc\xe3\x83\xab\0" /* offset 9986 */ - "\xe3\x83\xa6\xe3\x82\xa2\xe3\x83\xb3\0" /* offset 9996 */ - "\xe3\x83\xaa\xe3\x83\x83\xe3\x83\x88\xe3\x83\xab\0" /* offset 10006 */ - "\xe3\x83\xaa\xe3\x83\xa9\0" /* offset 10019 */ - "\xe3\x83\xab\xe3\x83\x92\xe3\x82\x9a\xe3\x83\xbc\0" /* offset 10026 */ - "\xe3\x83\xab\xe3\x83\xbc\xe3\x83\x95\xe3\x82\x99\xe3\x83\xab\0" /* offset 10039 */ - "\xe3\x83\xac\xe3\x83\xa0\0" /* offset 10055 */ - "\xe3\x83\xac\xe3\x83\xb3\xe3\x83\x88\xe3\x82\xb1\xe3\x82\x99\xe3\x83\xb3\0" /* offset 10062 */ - "\xe3\x83\xaf\xe3\x83\x83\xe3\x83\x88\0" /* offset 10081 */ - "\x30\xe7\x82\xb9\0" /* offset 10091 */ - "\x31\xe7\x82\xb9\0" /* offset 10096 */ - "\x32\xe7\x82\xb9\0" /* offset 10101 */ - "\x33\xe7\x82\xb9\0" /* offset 10106 */ - "\x34\xe7\x82\xb9\0" /* offset 10111 */ - "\x35\xe7\x82\xb9\0" /* offset 10116 */ - "\x36\xe7\x82\xb9\0" /* offset 10121 */ - "\x37\xe7\x82\xb9\0" /* offset 10126 */ - "\x38\xe7\x82\xb9\0" /* offset 10131 */ - "\x39\xe7\x82\xb9\0" /* offset 10136 */ - "\x31\x30\xe7\x82\xb9\0" /* offset 10141 */ - "\x31\x31\xe7\x82\xb9\0" /* offset 10147 */ - "\x31\x32\xe7\x82\xb9\0" /* offset 10153 */ - "\x31\x33\xe7\x82\xb9\0" /* offset 10159 */ - "\x31\x34\xe7\x82\xb9\0" /* offset 10165 */ - "\x31\x35\xe7\x82\xb9\0" /* offset 10171 */ - "\x31\x36\xe7\x82\xb9\0" /* offset 10177 */ - "\x31\x37\xe7\x82\xb9\0" /* offset 10183 */ - "\x31\x38\xe7\x82\xb9\0" /* offset 10189 */ - "\x31\x39\xe7\x82\xb9\0" /* offset 10195 */ - "\x32\x30\xe7\x82\xb9\0" /* offset 10201 */ - "\x32\x31\xe7\x82\xb9\0" /* offset 10207 */ - "\x32\x32\xe7\x82\xb9\0" /* offset 10213 */ - "\x32\x33\xe7\x82\xb9\0" /* offset 10219 */ - "\x32\x34\xe7\x82\xb9\0" /* offset 10225 */ - "\x68\x50\x61\0" /* offset 10231 */ - "\x64\x61\0" /* offset 10235 */ - "\x41\x55\0" /* offset 10238 */ - "\x62\x61\x72\0" /* offset 10241 */ - "\x6f\x56\0" /* offset 10245 */ - "\x70\x63\0" /* offset 10248 */ - "\x64\x6d\0" /* offset 10251 */ - "\x64\x6d\x32\0" /* offset 10254 */ - "\x64\x6d\x33\0" /* offset 10258 */ - "\x49\x55\0" /* offset 10262 */ - "\xe5\xb9\xb3\xe6\x88\x90\0" /* offset 10265 */ - "\xe6\x98\xad\xe5\x92\x8c\0" /* offset 10272 */ - "\xe5\xa4\xa7\xe6\xad\xa3\0" /* offset 10279 */ - "\xe6\x98\x8e\xe6\xb2\xbb\0" /* offset 10286 */ - "\xe6\xa0\xaa\xe5\xbc\x8f\xe4\xbc\x9a\xe7\xa4\xbe\0" /* offset 10293 */ - "\x70\x41\0" /* offset 10306 */ - "\x6e\x41\0" /* offset 10309 */ - "\xce\xbc\x41\0" /* offset 10312 */ - "\x6d\x41\0" /* offset 10316 */ - "\x6b\x41\0" /* offset 10319 */ - "\x4b\x42\0" /* offset 10322 */ - "\x4d\x42\0" /* offset 10325 */ - "\x47\x42\0" /* offset 10328 */ - "\x63\x61\x6c\0" /* offset 10331 */ - "\x6b\x63\x61\x6c\0" /* offset 10335 */ - "\x70\x46\0" /* offset 10340 */ - "\x6e\x46\0" /* offset 10343 */ - "\xce\xbc\x46\0" /* offset 10346 */ - "\xce\xbc\x67\0" /* offset 10350 */ - "\x6d\x67\0" /* offset 10354 */ - "\x6b\x67\0" /* offset 10357 */ - "\x48\x7a\0" /* offset 10360 */ - "\x6b\x48\x7a\0" /* offset 10363 */ - "\x4d\x48\x7a\0" /* offset 10367 */ - "\x47\x48\x7a\0" /* offset 10371 */ - "\x54\x48\x7a\0" /* offset 10375 */ - "\xce\xbc\x6c\0" /* offset 10379 */ - "\x6d\x6c\0" /* offset 10383 */ - "\x64\x6c\0" /* offset 10386 */ - "\x6b\x6c\0" /* offset 10389 */ - "\x66\x6d\0" /* offset 10392 */ - "\x6e\x6d\0" /* offset 10395 */ - "\xce\xbc\x6d\0" /* offset 10398 */ - "\x6d\x6d\0" /* offset 10402 */ - "\x63\x6d\0" /* offset 10405 */ - "\x6b\x6d\0" /* offset 10408 */ - "\x6d\x6d\x32\0" /* offset 10411 */ - "\x63\x6d\x32\0" /* offset 10415 */ - "\x6d\x32\0" /* offset 10419 */ - "\x6b\x6d\x32\0" /* offset 10422 */ - "\x6d\x6d\x33\0" /* offset 10426 */ - "\x63\x6d\x33\0" /* offset 10430 */ - "\x6d\x33\0" /* offset 10434 */ - "\x6b\x6d\x33\0" /* offset 10437 */ - "\x6d\xe2\x88\x95\x73\0" /* offset 10441 */ - "\x6d\xe2\x88\x95\x73\x32\0" /* offset 10447 */ - "\x50\x61\0" /* offset 10454 */ - "\x6b\x50\x61\0" /* offset 10457 */ - "\x4d\x50\x61\0" /* offset 10461 */ - "\x47\x50\x61\0" /* offset 10465 */ - "\x72\x61\x64\0" /* offset 10469 */ - "\x72\x61\x64\xe2\x88\x95\x73\0" /* offset 10473 */ - "\x72\x61\x64\xe2\x88\x95\x73\x32\0" /* offset 10481 */ - "\x70\x73\0" /* offset 10490 */ - "\x6e\x73\0" /* offset 10493 */ - "\xce\xbc\x73\0" /* offset 10496 */ - "\x6d\x73\0" /* offset 10500 */ - "\x70\x56\0" /* offset 10503 */ - "\x6e\x56\0" /* offset 10506 */ - "\xce\xbc\x56\0" /* offset 10509 */ - "\x6d\x56\0" /* offset 10513 */ - "\x6b\x56\0" /* offset 10516 */ - "\x4d\x56\0" /* offset 10519 */ - "\x70\x57\0" /* offset 10522 */ - "\x6e\x57\0" /* offset 10525 */ - "\xce\xbc\x57\0" /* offset 10528 */ - "\x6d\x57\0" /* offset 10532 */ - "\x6b\x57\0" /* offset 10535 */ - "\x4d\x57\0" /* offset 10538 */ - "\x6b\xce\xa9\0" /* offset 10541 */ - "\x4d\xce\xa9\0" /* offset 10545 */ - "\x61\x2e\x6d\x2e\0" /* offset 10549 */ - "\x42\x71\0" /* offset 10554 */ - "\x63\x63\0" /* offset 10557 */ - "\x63\x64\0" /* offset 10560 */ - "\x43\xe2\x88\x95\x6b\x67\0" /* offset 10563 */ - "\x43\x6f\x2e\0" /* offset 10570 */ - "\x64\x42\0" /* offset 10574 */ - "\x47\x79\0" /* offset 10577 */ - "\x68\x61\0" /* offset 10580 */ - "\x48\x50\0" /* offset 10583 */ - "\x69\x6e\0" /* offset 10586 */ - "\x4b\x4b\0" /* offset 10589 */ - "\x4b\x4d\0" /* offset 10592 */ - "\x6b\x74\0" /* offset 10595 */ - "\x6c\x6d\0" /* offset 10598 */ - "\x6c\x6e\0" /* offset 10601 */ - "\x6c\x6f\x67\0" /* offset 10604 */ - "\x6c\x78\0" /* offset 10608 */ - "\x6d\x62\0" /* offset 10611 */ - "\x6d\x69\x6c\0" /* offset 10614 */ - "\x6d\x6f\x6c\0" /* offset 10618 */ - "\x50\x48\0" /* offset 10622 */ - "\x70\x2e\x6d\x2e\0" /* offset 10625 */ - "\x50\x50\x4d\0" /* offset 10630 */ - "\x50\x52\0" /* offset 10634 */ - "\x73\x72\0" /* offset 10637 */ - "\x53\x76\0" /* offset 10640 */ - "\x57\x62\0" /* offset 10643 */ - "\x56\xe2\x88\x95\x6d\0" /* offset 10646 */ - "\x41\xe2\x88\x95\x6d\0" /* offset 10652 */ - "\x31\xe6\x97\xa5\0" /* offset 10658 */ - "\x32\xe6\x97\xa5\0" /* offset 10663 */ - "\x33\xe6\x97\xa5\0" /* offset 10668 */ - "\x34\xe6\x97\xa5\0" /* offset 10673 */ - "\x35\xe6\x97\xa5\0" /* offset 10678 */ - "\x36\xe6\x97\xa5\0" /* offset 10683 */ - "\x37\xe6\x97\xa5\0" /* offset 10688 */ - "\x38\xe6\x97\xa5\0" /* offset 10693 */ - "\x39\xe6\x97\xa5\0" /* offset 10698 */ - "\x31\x30\xe6\x97\xa5\0" /* offset 10703 */ - "\x31\x31\xe6\x97\xa5\0" /* offset 10709 */ - "\x31\x32\xe6\x97\xa5\0" /* offset 10715 */ - "\x31\x33\xe6\x97\xa5\0" /* offset 10721 */ - "\x31\x34\xe6\x97\xa5\0" /* offset 10727 */ - "\x31\x35\xe6\x97\xa5\0" /* offset 10733 */ - "\x31\x36\xe6\x97\xa5\0" /* offset 10739 */ - "\x31\x37\xe6\x97\xa5\0" /* offset 10745 */ - "\x31\x38\xe6\x97\xa5\0" /* offset 10751 */ - "\x31\x39\xe6\x97\xa5\0" /* offset 10757 */ - "\x32\x30\xe6\x97\xa5\0" /* offset 10763 */ - "\x32\x31\xe6\x97\xa5\0" /* offset 10769 */ - "\x32\x32\xe6\x97\xa5\0" /* offset 10775 */ - "\x32\x33\xe6\x97\xa5\0" /* offset 10781 */ - "\x32\x34\xe6\x97\xa5\0" /* offset 10787 */ - "\x32\x35\xe6\x97\xa5\0" /* offset 10793 */ - "\x32\x36\xe6\x97\xa5\0" /* offset 10799 */ - "\x32\x37\xe6\x97\xa5\0" /* offset 10805 */ - "\x32\x38\xe6\x97\xa5\0" /* offset 10811 */ - "\x32\x39\xe6\x97\xa5\0" /* offset 10817 */ - "\x33\x30\xe6\x97\xa5\0" /* offset 10823 */ - "\x33\x31\xe6\x97\xa5\0" /* offset 10829 */ - "\x67\x61\x6c\0" /* offset 10835 */ - "\xe8\xb1\x88\0" /* offset 10839 */ - "\xe6\x9b\xb4\0" /* offset 10843 */ - "\xe8\xb3\x88\0" /* offset 10847 */ - "\xe6\xbb\x91\0" /* offset 10851 */ - "\xe4\xb8\xb2\0" /* offset 10855 */ - "\xe5\x8f\xa5\0" /* offset 10859 */ - "\xe5\xa5\x91\0" /* offset 10863 */ - "\xe5\x96\x87\0" /* offset 10867 */ - "\xe5\xa5\x88\0" /* offset 10871 */ - "\xe6\x87\xb6\0" /* offset 10875 */ - "\xe7\x99\xa9\0" /* offset 10879 */ - "\xe7\xbe\x85\0" /* offset 10883 */ - "\xe8\x98\xbf\0" /* offset 10887 */ - "\xe8\x9e\xba\0" /* offset 10891 */ - "\xe8\xa3\xb8\0" /* offset 10895 */ - "\xe9\x82\x8f\0" /* offset 10899 */ - "\xe6\xa8\x82\0" /* offset 10903 */ - "\xe6\xb4\x9b\0" /* offset 10907 */ - "\xe7\x83\x99\0" /* offset 10911 */ - "\xe7\x8f\x9e\0" /* offset 10915 */ - "\xe8\x90\xbd\0" /* offset 10919 */ - "\xe9\x85\xaa\0" /* offset 10923 */ - "\xe9\xa7\xb1\0" /* offset 10927 */ - "\xe4\xba\x82\0" /* offset 10931 */ - "\xe5\x8d\xb5\0" /* offset 10935 */ - "\xe6\xac\x84\0" /* offset 10939 */ - "\xe7\x88\x9b\0" /* offset 10943 */ - "\xe8\x98\xad\0" /* offset 10947 */ - "\xe9\xb8\x9e\0" /* offset 10951 */ - "\xe5\xb5\x90\0" /* offset 10955 */ - "\xe6\xbf\xab\0" /* offset 10959 */ - "\xe8\x97\x8d\0" /* offset 10963 */ - "\xe8\xa5\xa4\0" /* offset 10967 */ - "\xe6\x8b\x89\0" /* offset 10971 */ - "\xe8\x87\x98\0" /* offset 10975 */ - "\xe8\xa0\x9f\0" /* offset 10979 */ - "\xe5\xbb\x8a\0" /* offset 10983 */ - "\xe6\x9c\x97\0" /* offset 10987 */ - "\xe6\xb5\xaa\0" /* offset 10991 */ - "\xe7\x8b\xbc\0" /* offset 10995 */ - "\xe9\x83\x8e\0" /* offset 10999 */ - "\xe4\xbe\x86\0" /* offset 11003 */ - "\xe5\x86\xb7\0" /* offset 11007 */ - "\xe5\x8b\x9e\0" /* offset 11011 */ - "\xe6\x93\x84\0" /* offset 11015 */ - "\xe6\xab\x93\0" /* offset 11019 */ - "\xe7\x88\x90\0" /* offset 11023 */ - "\xe7\x9b\xa7\0" /* offset 11027 */ - "\xe8\x98\x86\0" /* offset 11031 */ - "\xe8\x99\x9c\0" /* offset 11035 */ - "\xe8\xb7\xaf\0" /* offset 11039 */ - "\xe9\x9c\xb2\0" /* offset 11043 */ - "\xe9\xad\xaf\0" /* offset 11047 */ - "\xe9\xb7\xba\0" /* offset 11051 */ - "\xe7\xa2\x8c\0" /* offset 11055 */ - "\xe7\xa5\xbf\0" /* offset 11059 */ - "\xe7\xb6\xa0\0" /* offset 11063 */ - "\xe8\x8f\x89\0" /* offset 11067 */ - "\xe9\x8c\x84\0" /* offset 11071 */ - "\xe8\xab\x96\0" /* offset 11075 */ - "\xe5\xa3\x9f\0" /* offset 11079 */ - "\xe5\xbc\x84\0" /* offset 11083 */ - "\xe7\xb1\xa0\0" /* offset 11087 */ - "\xe8\x81\xbe\0" /* offset 11091 */ - "\xe7\x89\xa2\0" /* offset 11095 */ - "\xe7\xa3\x8a\0" /* offset 11099 */ - "\xe8\xb3\x82\0" /* offset 11103 */ - "\xe9\x9b\xb7\0" /* offset 11107 */ - "\xe5\xa3\x98\0" /* offset 11111 */ - "\xe5\xb1\xa2\0" /* offset 11115 */ - "\xe6\xa8\x93\0" /* offset 11119 */ - "\xe6\xb7\x9a\0" /* offset 11123 */ - "\xe6\xbc\x8f\0" /* offset 11127 */ - "\xe7\xb4\xaf\0" /* offset 11131 */ - "\xe7\xb8\xb7\0" /* offset 11135 */ - "\xe9\x99\x8b\0" /* offset 11139 */ - "\xe5\x8b\x92\0" /* offset 11143 */ - "\xe8\x82\x8b\0" /* offset 11147 */ - "\xe5\x87\x9c\0" /* offset 11151 */ - "\xe5\x87\x8c\0" /* offset 11155 */ - "\xe7\xa8\x9c\0" /* offset 11159 */ - "\xe7\xb6\xbe\0" /* offset 11163 */ - "\xe8\x8f\xb1\0" /* offset 11167 */ - "\xe9\x99\xb5\0" /* offset 11171 */ - "\xe8\xae\x80\0" /* offset 11175 */ - "\xe6\x8b\x8f\0" /* offset 11179 */ - "\xe8\xab\xbe\0" /* offset 11183 */ - "\xe4\xb8\xb9\0" /* offset 11187 */ - "\xe5\xaf\xa7\0" /* offset 11191 */ - "\xe6\x80\x92\0" /* offset 11195 */ - "\xe7\x8e\x87\0" /* offset 11199 */ - "\xe7\x95\xb0\0" /* offset 11203 */ - "\xe5\x8c\x97\0" /* offset 11207 */ - "\xe7\xa3\xbb\0" /* offset 11211 */ - "\xe4\xbe\xbf\0" /* offset 11215 */ - "\xe5\xbe\xa9\0" /* offset 11219 */ - "\xe4\xb8\x8d\0" /* offset 11223 */ - "\xe6\xb3\x8c\0" /* offset 11227 */ - "\xe6\x95\xb8\0" /* offset 11231 */ - "\xe7\xb4\xa2\0" /* offset 11235 */ - "\xe5\x8f\x83\0" /* offset 11239 */ - "\xe5\xa1\x9e\0" /* offset 11243 */ - "\xe7\x9c\x81\0" /* offset 11247 */ - "\xe8\x91\x89\0" /* offset 11251 */ - "\xe8\xaa\xaa\0" /* offset 11255 */ - "\xe6\xae\xba\0" /* offset 11259 */ - "\xe6\xb2\x88\0" /* offset 11263 */ - "\xe6\x8b\xbe\0" /* offset 11267 */ - "\xe8\x8b\xa5\0" /* offset 11271 */ - "\xe6\x8e\xa0\0" /* offset 11275 */ - "\xe7\x95\xa5\0" /* offset 11279 */ - "\xe4\xba\xae\0" /* offset 11283 */ - "\xe5\x85\xa9\0" /* offset 11287 */ - "\xe5\x87\x89\0" /* offset 11291 */ - "\xe6\xa2\x81\0" /* offset 11295 */ - "\xe7\xb3\xa7\0" /* offset 11299 */ - "\xe8\x89\xaf\0" /* offset 11303 */ - "\xe8\xab\x92\0" /* offset 11307 */ - "\xe9\x87\x8f\0" /* offset 11311 */ - "\xe5\x8b\xb5\0" /* offset 11315 */ - "\xe5\x91\x82\0" /* offset 11319 */ - "\xe5\xbb\xac\0" /* offset 11323 */ - "\xe6\x97\x85\0" /* offset 11327 */ - "\xe6\xbf\xbe\0" /* offset 11331 */ - "\xe7\xa4\xaa\0" /* offset 11335 */ - "\xe9\x96\xad\0" /* offset 11339 */ - "\xe9\xa9\xaa\0" /* offset 11343 */ - "\xe9\xba\x97\0" /* offset 11347 */ - "\xe9\xbb\x8e\0" /* offset 11351 */ - "\xe6\x9b\x86\0" /* offset 11355 */ - "\xe6\xad\xb7\0" /* offset 11359 */ - "\xe8\xbd\xa2\0" /* offset 11363 */ - "\xe5\xb9\xb4\0" /* offset 11367 */ - "\xe6\x86\x90\0" /* offset 11371 */ - "\xe6\x88\x80\0" /* offset 11375 */ - "\xe6\x92\x9a\0" /* offset 11379 */ - "\xe6\xbc\xa3\0" /* offset 11383 */ - "\xe7\x85\x89\0" /* offset 11387 */ - "\xe7\x92\x89\0" /* offset 11391 */ - "\xe7\xa7\x8a\0" /* offset 11395 */ - "\xe7\xb7\xb4\0" /* offset 11399 */ - "\xe8\x81\xaf\0" /* offset 11403 */ - "\xe8\xbc\xa6\0" /* offset 11407 */ - "\xe8\x93\xae\0" /* offset 11411 */ - "\xe9\x80\xa3\0" /* offset 11415 */ - "\xe9\x8d\x8a\0" /* offset 11419 */ - "\xe5\x88\x97\0" /* offset 11423 */ - "\xe5\x8a\xa3\0" /* offset 11427 */ - "\xe5\x92\xbd\0" /* offset 11431 */ - "\xe7\x83\x88\0" /* offset 11435 */ - "\xe8\xa3\x82\0" /* offset 11439 */ - "\xe5\xbb\x89\0" /* offset 11443 */ - "\xe5\xbf\xb5\0" /* offset 11447 */ - "\xe6\x8d\xbb\0" /* offset 11451 */ - "\xe6\xae\xae\0" /* offset 11455 */ - "\xe7\xb0\xbe\0" /* offset 11459 */ - "\xe7\x8d\xb5\0" /* offset 11463 */ - "\xe4\xbb\xa4\0" /* offset 11467 */ - "\xe5\x9b\xb9\0" /* offset 11471 */ - "\xe5\xb6\xba\0" /* offset 11475 */ - "\xe6\x80\x9c\0" /* offset 11479 */ - "\xe7\x8e\xb2\0" /* offset 11483 */ - "\xe7\x91\xa9\0" /* offset 11487 */ - "\xe7\xbe\x9a\0" /* offset 11491 */ - "\xe8\x81\x86\0" /* offset 11495 */ - "\xe9\x88\xb4\0" /* offset 11499 */ - "\xe9\x9b\xb6\0" /* offset 11503 */ - "\xe9\x9d\x88\0" /* offset 11507 */ - "\xe9\xa0\x98\0" /* offset 11511 */ - "\xe4\xbe\x8b\0" /* offset 11515 */ - "\xe7\xa6\xae\0" /* offset 11519 */ - "\xe9\x86\xb4\0" /* offset 11523 */ - "\xe9\x9a\xb8\0" /* offset 11527 */ - "\xe6\x83\xa1\0" /* offset 11531 */ - "\xe4\xba\x86\0" /* offset 11535 */ - "\xe5\x83\x9a\0" /* offset 11539 */ - "\xe5\xaf\xae\0" /* offset 11543 */ - "\xe5\xb0\xbf\0" /* offset 11547 */ - "\xe6\x96\x99\0" /* offset 11551 */ - "\xe7\x87\x8e\0" /* offset 11555 */ - "\xe7\x99\x82\0" /* offset 11559 */ - "\xe8\x93\xbc\0" /* offset 11563 */ - "\xe9\x81\xbc\0" /* offset 11567 */ - "\xe6\x9a\x88\0" /* offset 11571 */ - "\xe9\x98\xae\0" /* offset 11575 */ - "\xe5\x8a\x89\0" /* offset 11579 */ - "\xe6\x9d\xbb\0" /* offset 11583 */ - "\xe6\x9f\xb3\0" /* offset 11587 */ - "\xe6\xb5\x81\0" /* offset 11591 */ - "\xe6\xba\x9c\0" /* offset 11595 */ - "\xe7\x90\x89\0" /* offset 11599 */ - "\xe7\x95\x99\0" /* offset 11603 */ - "\xe7\xa1\xab\0" /* offset 11607 */ - "\xe7\xb4\x90\0" /* offset 11611 */ - "\xe9\xa1\x9e\0" /* offset 11615 */ - "\xe6\x88\xae\0" /* offset 11619 */ - "\xe9\x99\xb8\0" /* offset 11623 */ - "\xe5\x80\xab\0" /* offset 11627 */ - "\xe5\xb4\x99\0" /* offset 11631 */ - "\xe6\xb7\xaa\0" /* offset 11635 */ - "\xe8\xbc\xaa\0" /* offset 11639 */ - "\xe5\xbe\x8b\0" /* offset 11643 */ - "\xe6\x85\x84\0" /* offset 11647 */ - "\xe6\xa0\x97\0" /* offset 11651 */ - "\xe9\x9a\x86\0" /* offset 11655 */ - "\xe5\x88\xa9\0" /* offset 11659 */ - "\xe5\x90\x8f\0" /* offset 11663 */ - "\xe5\xb1\xa5\0" /* offset 11667 */ - "\xe6\x98\x93\0" /* offset 11671 */ - "\xe6\x9d\x8e\0" /* offset 11675 */ - "\xe6\xa2\xa8\0" /* offset 11679 */ - "\xe6\xb3\xa5\0" /* offset 11683 */ - "\xe7\x90\x86\0" /* offset 11687 */ - "\xe7\x97\xa2\0" /* offset 11691 */ - "\xe7\xbd\xb9\0" /* offset 11695 */ - "\xe8\xa3\x8f\0" /* offset 11699 */ - "\xe8\xa3\xa1\0" /* offset 11703 */ - "\xe9\x9b\xa2\0" /* offset 11707 */ - "\xe5\x8c\xbf\0" /* offset 11711 */ - "\xe6\xba\xba\0" /* offset 11715 */ - "\xe5\x90\x9d\0" /* offset 11719 */ - "\xe7\x87\x90\0" /* offset 11723 */ - "\xe7\x92\x98\0" /* offset 11727 */ - "\xe8\x97\xba\0" /* offset 11731 */ - "\xe9\x9a\xa3\0" /* offset 11735 */ - "\xe9\xb1\x97\0" /* offset 11739 */ - "\xe9\xba\x9f\0" /* offset 11743 */ - "\xe6\x9e\x97\0" /* offset 11747 */ - "\xe6\xb7\x8b\0" /* offset 11751 */ - "\xe8\x87\xa8\0" /* offset 11755 */ - "\xe7\xac\xa0\0" /* offset 11759 */ - "\xe7\xb2\x92\0" /* offset 11763 */ - "\xe7\x8b\x80\0" /* offset 11767 */ - "\xe7\x82\x99\0" /* offset 11771 */ - "\xe8\xad\x98\0" /* offset 11775 */ - "\xe4\xbb\x80\0" /* offset 11779 */ - "\xe8\x8c\xb6\0" /* offset 11783 */ - "\xe5\x88\xba\0" /* offset 11787 */ - "\xe5\x88\x87\0" /* offset 11791 */ - "\xe5\xba\xa6\0" /* offset 11795 */ - "\xe6\x8b\x93\0" /* offset 11799 */ - "\xe7\xb3\x96\0" /* offset 11803 */ - "\xe5\xae\x85\0" /* offset 11807 */ - "\xe6\xb4\x9e\0" /* offset 11811 */ - "\xe6\x9a\xb4\0" /* offset 11815 */ - "\xe8\xbc\xbb\0" /* offset 11819 */ - "\xe9\x99\x8d\0" /* offset 11823 */ - "\xe5\xbb\x93\0" /* offset 11827 */ - "\xe5\x85\x80\0" /* offset 11831 */ - "\xe5\x97\x80\0" /* offset 11835 */ - "\xe5\xa1\x9a\0" /* offset 11839 */ - "\xe6\x99\xb4\0" /* offset 11843 */ - "\xe5\x87\x9e\0" /* offset 11847 */ - "\xe7\x8c\xaa\0" /* offset 11851 */ - "\xe7\x9b\x8a\0" /* offset 11855 */ - "\xe7\xa4\xbc\0" /* offset 11859 */ - "\xe7\xa5\x9e\0" /* offset 11863 */ - "\xe7\xa5\xa5\0" /* offset 11867 */ - "\xe7\xa6\x8f\0" /* offset 11871 */ - "\xe9\x9d\x96\0" /* offset 11875 */ - "\xe7\xb2\xbe\0" /* offset 11879 */ - "\xe8\x98\x92\0" /* offset 11883 */ - "\xe8\xab\xb8\0" /* offset 11887 */ - "\xe9\x80\xb8\0" /* offset 11891 */ - "\xe9\x83\xbd\0" /* offset 11895 */ - "\xe9\xa3\xaf\0" /* offset 11899 */ - "\xe9\xa3\xbc\0" /* offset 11903 */ - "\xe9\xa4\xa8\0" /* offset 11907 */ - "\xe9\xb6\xb4\0" /* offset 11911 */ - "\xe4\xbe\xae\0" /* offset 11915 */ - "\xe5\x83\xa7\0" /* offset 11919 */ - "\xe5\x85\x8d\0" /* offset 11923 */ - "\xe5\x8b\x89\0" /* offset 11927 */ - "\xe5\x8b\xa4\0" /* offset 11931 */ - "\xe5\x8d\x91\0" /* offset 11935 */ - "\xe5\x96\x9d\0" /* offset 11939 */ - "\xe5\x98\x86\0" /* offset 11943 */ - "\xe5\x99\xa8\0" /* offset 11947 */ - "\xe5\xa1\x80\0" /* offset 11951 */ - "\xe5\xa2\xa8\0" /* offset 11955 */ - "\xe5\xb1\xa4\0" /* offset 11959 */ - "\xe6\x82\x94\0" /* offset 11963 */ - "\xe6\x85\xa8\0" /* offset 11967 */ - "\xe6\x86\x8e\0" /* offset 11971 */ - "\xe6\x87\xb2\0" /* offset 11975 */ - "\xe6\x95\x8f\0" /* offset 11979 */ - "\xe6\x97\xa2\0" /* offset 11983 */ - "\xe6\x9a\x91\0" /* offset 11987 */ - "\xe6\xa2\x85\0" /* offset 11991 */ - "\xe6\xb5\xb7\0" /* offset 11995 */ - "\xe6\xb8\x9a\0" /* offset 11999 */ - "\xe6\xbc\xa2\0" /* offset 12003 */ - "\xe7\x85\xae\0" /* offset 12007 */ - "\xe7\x88\xab\0" /* offset 12011 */ - "\xe7\x90\xa2\0" /* offset 12015 */ - "\xe7\xa2\x91\0" /* offset 12019 */ - "\xe7\xa5\x89\0" /* offset 12023 */ - "\xe7\xa5\x88\0" /* offset 12027 */ - "\xe7\xa5\x90\0" /* offset 12031 */ - "\xe7\xa5\x96\0" /* offset 12035 */ - "\xe7\xa6\x8d\0" /* offset 12039 */ - "\xe7\xa6\x8e\0" /* offset 12043 */ - "\xe7\xa9\x80\0" /* offset 12047 */ - "\xe7\xaa\x81\0" /* offset 12051 */ - "\xe7\xaf\x80\0" /* offset 12055 */ - "\xe7\xb8\x89\0" /* offset 12059 */ - "\xe7\xb9\x81\0" /* offset 12063 */ - "\xe7\xbd\xb2\0" /* offset 12067 */ - "\xe8\x80\x85\0" /* offset 12071 */ - "\xe8\x87\xad\0" /* offset 12075 */ - "\xe8\x89\xb9\0" /* offset 12079 */ - "\xe8\x91\x97\0" /* offset 12083 */ - "\xe8\xa4\x90\0" /* offset 12087 */ - "\xe8\xa6\x96\0" /* offset 12091 */ - "\xe8\xac\x81\0" /* offset 12095 */ - "\xe8\xac\xb9\0" /* offset 12099 */ - "\xe8\xb3\x93\0" /* offset 12103 */ - "\xe8\xb4\x88\0" /* offset 12107 */ - "\xe8\xbe\xb6\0" /* offset 12111 */ - "\xe9\x9b\xa3\0" /* offset 12115 */ - "\xe9\x9f\xbf\0" /* offset 12119 */ - "\xe9\xa0\xbb\0" /* offset 12123 */ - "\xe4\xb8\xa6\0" /* offset 12127 */ - "\xe5\x86\xb5\0" /* offset 12131 */ - "\xe5\x85\xa8\0" /* offset 12135 */ - "\xe4\xbe\x80\0" /* offset 12139 */ - "\xe5\x85\x85\0" /* offset 12143 */ - "\xe5\x86\x80\0" /* offset 12147 */ - "\xe5\x8b\x87\0" /* offset 12151 */ - "\xe5\x8b\xba\0" /* offset 12155 */ - "\xe5\x95\x95\0" /* offset 12159 */ - "\xe5\x96\x99\0" /* offset 12163 */ - "\xe5\x97\xa2\0" /* offset 12167 */ - "\xe5\xa2\xb3\0" /* offset 12171 */ - "\xe5\xa5\x84\0" /* offset 12175 */ - "\xe5\xa5\x94\0" /* offset 12179 */ - "\xe5\xa9\xa2\0" /* offset 12183 */ - "\xe5\xac\xa8\0" /* offset 12187 */ - "\xe5\xbb\x92\0" /* offset 12191 */ - "\xe5\xbb\x99\0" /* offset 12195 */ - "\xe5\xbd\xa9\0" /* offset 12199 */ - "\xe5\xbe\xad\0" /* offset 12203 */ - "\xe6\x83\x98\0" /* offset 12207 */ - "\xe6\x85\x8e\0" /* offset 12211 */ - "\xe6\x84\x88\0" /* offset 12215 */ - "\xe6\x85\xa0\0" /* offset 12219 */ - "\xe6\x88\xb4\0" /* offset 12223 */ - "\xe6\x8f\x84\0" /* offset 12227 */ - "\xe6\x90\x9c\0" /* offset 12231 */ - "\xe6\x91\x92\0" /* offset 12235 */ - "\xe6\x95\x96\0" /* offset 12239 */ - "\xe6\x9c\x9b\0" /* offset 12243 */ - "\xe6\x9d\x96\0" /* offset 12247 */ - "\xe6\xbb\x9b\0" /* offset 12251 */ - "\xe6\xbb\x8b\0" /* offset 12255 */ - "\xe7\x80\x9e\0" /* offset 12259 */ - "\xe7\x9e\xa7\0" /* offset 12263 */ - "\xe7\x88\xb5\0" /* offset 12267 */ - "\xe7\x8a\xaf\0" /* offset 12271 */ - "\xe7\x91\xb1\0" /* offset 12275 */ - "\xe7\x94\x86\0" /* offset 12279 */ - "\xe7\x94\xbb\0" /* offset 12283 */ - "\xe7\x98\x9d\0" /* offset 12287 */ - "\xe7\x98\x9f\0" /* offset 12291 */ - "\xe7\x9b\x9b\0" /* offset 12295 */ - "\xe7\x9b\xb4\0" /* offset 12299 */ - "\xe7\x9d\x8a\0" /* offset 12303 */ - "\xe7\x9d\x80\0" /* offset 12307 */ - "\xe7\xa3\x8c\0" /* offset 12311 */ - "\xe7\xaa\xb1\0" /* offset 12315 */ - "\xe7\xb1\xbb\0" /* offset 12319 */ - "\xe7\xb5\x9b\0" /* offset 12323 */ - "\xe7\xbc\xbe\0" /* offset 12327 */ - "\xe8\x8d\x92\0" /* offset 12331 */ - "\xe8\x8f\xaf\0" /* offset 12335 */ - "\xe8\x9d\xb9\0" /* offset 12339 */ - "\xe8\xa5\x81\0" /* offset 12343 */ - "\xe8\xa6\x86\0" /* offset 12347 */ - "\xe8\xaa\xbf\0" /* offset 12351 */ - "\xe8\xab\x8b\0" /* offset 12355 */ - "\xe8\xab\xad\0" /* offset 12359 */ - "\xe8\xae\x8a\0" /* offset 12363 */ - "\xe8\xbc\xb8\0" /* offset 12367 */ - "\xe9\x81\xb2\0" /* offset 12371 */ - "\xe9\x86\x99\0" /* offset 12375 */ - "\xe9\x89\xb6\0" /* offset 12379 */ - "\xe9\x99\xbc\0" /* offset 12383 */ - "\xe9\x9f\x9b\0" /* offset 12387 */ - "\xe9\xa0\x8b\0" /* offset 12391 */ - "\xe9\xac\x92\0" /* offset 12395 */ - "\xf0\xa2\xa1\x8a\0" /* offset 12399 */ - "\xf0\xa2\xa1\x84\0" /* offset 12404 */ - "\xf0\xa3\x8f\x95\0" /* offset 12409 */ - "\xe3\xae\x9d\0" /* offset 12414 */ - "\xe4\x80\x98\0" /* offset 12418 */ - "\xe4\x80\xb9\0" /* offset 12422 */ - "\xf0\xa5\x89\x89\0" /* offset 12426 */ - "\xf0\xa5\xb3\x90\0" /* offset 12431 */ - "\xf0\xa7\xbb\x93\0" /* offset 12436 */ - "\xe9\xbd\x83\0" /* offset 12441 */ - "\xe9\xbe\x8e\0" /* offset 12445 */ - "\x66\x66\0" /* offset 12449 */ - "\x66\x69\0" /* offset 12452 */ - "\x66\x6c\0" /* offset 12455 */ - "\x66\x66\x69\0" /* offset 12458 */ - "\x66\x66\x6c\0" /* offset 12462 */ - "\x73\x74\0" /* offset 12466 */ - "\xd5\xb4\xd5\xb6\0" /* offset 12469 */ - "\xd5\xb4\xd5\xa5\0" /* offset 12474 */ - "\xd5\xb4\xd5\xab\0" /* offset 12479 */ - "\xd5\xbe\xd5\xb6\0" /* offset 12484 */ - "\xd5\xb4\xd5\xad\0" /* offset 12489 */ - "\xd7\x99\xd6\xb4\0" /* offset 12494 */ - "\xd7\xb2\xd6\xb7\0" /* offset 12499 */ - "\xd7\xa2\0" /* offset 12504 */ - "\xd7\x94\0" /* offset 12507 */ - "\xd7\x9b\0" /* offset 12510 */ - "\xd7\x9c\0" /* offset 12513 */ - "\xd7\x9d\0" /* offset 12516 */ - "\xd7\xa8\0" /* offset 12519 */ - "\xd7\xaa\0" /* offset 12522 */ - "\xd7\xa9\xd7\x81\0" /* offset 12525 */ - "\xd7\xa9\xd7\x82\0" /* offset 12530 */ - "\xd7\xa9\xd6\xbc\xd7\x81\0" /* offset 12535 */ - "\xd7\xa9\xd6\xbc\xd7\x82\0" /* offset 12542 */ - "\xd7\x90\xd6\xb7\0" /* offset 12549 */ - "\xd7\x90\xd6\xb8\0" /* offset 12554 */ - "\xd7\x90\xd6\xbc\0" /* offset 12559 */ - "\xd7\x91\xd6\xbc\0" /* offset 12564 */ - "\xd7\x92\xd6\xbc\0" /* offset 12569 */ - "\xd7\x93\xd6\xbc\0" /* offset 12574 */ - "\xd7\x94\xd6\xbc\0" /* offset 12579 */ - "\xd7\x95\xd6\xbc\0" /* offset 12584 */ - "\xd7\x96\xd6\xbc\0" /* offset 12589 */ - "\xd7\x98\xd6\xbc\0" /* offset 12594 */ - "\xd7\x99\xd6\xbc\0" /* offset 12599 */ - "\xd7\x9a\xd6\xbc\0" /* offset 12604 */ - "\xd7\x9b\xd6\xbc\0" /* offset 12609 */ - "\xd7\x9c\xd6\xbc\0" /* offset 12614 */ - "\xd7\x9e\xd6\xbc\0" /* offset 12619 */ - "\xd7\xa0\xd6\xbc\0" /* offset 12624 */ - "\xd7\xa1\xd6\xbc\0" /* offset 12629 */ - "\xd7\xa3\xd6\xbc\0" /* offset 12634 */ - "\xd7\xa4\xd6\xbc\0" /* offset 12639 */ - "\xd7\xa6\xd6\xbc\0" /* offset 12644 */ - "\xd7\xa7\xd6\xbc\0" /* offset 12649 */ - "\xd7\xa8\xd6\xbc\0" /* offset 12654 */ - "\xd7\xa9\xd6\xbc\0" /* offset 12659 */ - "\xd7\xaa\xd6\xbc\0" /* offset 12664 */ - "\xd7\x95\xd6\xb9\0" /* offset 12669 */ - "\xd7\x91\xd6\xbf\0" /* offset 12674 */ - "\xd7\x9b\xd6\xbf\0" /* offset 12679 */ - "\xd7\xa4\xd6\xbf\0" /* offset 12684 */ - "\xd7\x90\xd7\x9c\0" /* offset 12689 */ - "\xd9\xb1\0" /* offset 12694 */ - "\xd9\xbb\0" /* offset 12697 */ - "\xd9\xbe\0" /* offset 12700 */ - "\xda\x80\0" /* offset 12703 */ - "\xd9\xba\0" /* offset 12706 */ - "\xd9\xbf\0" /* offset 12709 */ - "\xd9\xb9\0" /* offset 12712 */ - "\xda\xa4\0" /* offset 12715 */ - "\xda\xa6\0" /* offset 12718 */ - "\xda\x84\0" /* offset 12721 */ - "\xda\x83\0" /* offset 12724 */ - "\xda\x86\0" /* offset 12727 */ - "\xda\x87\0" /* offset 12730 */ - "\xda\x8d\0" /* offset 12733 */ - "\xda\x8c\0" /* offset 12736 */ - "\xda\x8e\0" /* offset 12739 */ - "\xda\x88\0" /* offset 12742 */ - "\xda\x98\0" /* offset 12745 */ - "\xda\x91\0" /* offset 12748 */ - "\xda\xa9\0" /* offset 12751 */ - "\xda\xaf\0" /* offset 12754 */ - "\xda\xb3\0" /* offset 12757 */ - "\xda\xb1\0" /* offset 12760 */ - "\xda\xba\0" /* offset 12763 */ - "\xda\xbb\0" /* offset 12766 */ - "\xdb\x81\0" /* offset 12769 */ - "\xda\xbe\0" /* offset 12772 */ - "\xdb\x92\0" /* offset 12775 */ - "\xda\xad\0" /* offset 12778 */ - "\xdb\x87\0" /* offset 12781 */ - "\xdb\x86\0" /* offset 12784 */ - "\xdb\x88\0" /* offset 12787 */ - "\xdb\x8b\0" /* offset 12790 */ - "\xdb\x85\0" /* offset 12793 */ - "\xdb\x89\0" /* offset 12796 */ - "\xdb\x90\0" /* offset 12799 */ - "\xd9\x89\0" /* offset 12802 */ - "\xd9\x8a\xd9\x94\xd8\xa7\0" /* offset 12805 */ - "\xd9\x8a\xd9\x94\xdb\x95\0" /* offset 12812 */ - "\xd9\x8a\xd9\x94\xd9\x88\0" /* offset 12819 */ - "\xd9\x8a\xd9\x94\xdb\x87\0" /* offset 12826 */ - "\xd9\x8a\xd9\x94\xdb\x86\0" /* offset 12833 */ - "\xd9\x8a\xd9\x94\xdb\x88\0" /* offset 12840 */ - "\xd9\x8a\xd9\x94\xdb\x90\0" /* offset 12847 */ - "\xd9\x8a\xd9\x94\xd9\x89\0" /* offset 12854 */ - "\xdb\x8c\0" /* offset 12861 */ - "\xd9\x8a\xd9\x94\xd8\xac\0" /* offset 12864 */ - "\xd9\x8a\xd9\x94\xd8\xad\0" /* offset 12871 */ - "\xd9\x8a\xd9\x94\xd9\x85\0" /* offset 12878 */ - "\xd9\x8a\xd9\x94\xd9\x8a\0" /* offset 12885 */ - "\xd8\xa8\xd8\xac\0" /* offset 12892 */ - "\xd8\xa8\xd8\xad\0" /* offset 12897 */ - "\xd8\xa8\xd8\xae\0" /* offset 12902 */ - "\xd8\xa8\xd9\x85\0" /* offset 12907 */ - "\xd8\xa8\xd9\x89\0" /* offset 12912 */ - "\xd8\xa8\xd9\x8a\0" /* offset 12917 */ - "\xd8\xaa\xd8\xac\0" /* offset 12922 */ - "\xd8\xaa\xd8\xad\0" /* offset 12927 */ - "\xd8\xaa\xd8\xae\0" /* offset 12932 */ - "\xd8\xaa\xd9\x85\0" /* offset 12937 */ - "\xd8\xaa\xd9\x89\0" /* offset 12942 */ - "\xd8\xaa\xd9\x8a\0" /* offset 12947 */ - "\xd8\xab\xd8\xac\0" /* offset 12952 */ - "\xd8\xab\xd9\x85\0" /* offset 12957 */ - "\xd8\xab\xd9\x89\0" /* offset 12962 */ - "\xd8\xab\xd9\x8a\0" /* offset 12967 */ - "\xd8\xac\xd8\xad\0" /* offset 12972 */ - "\xd8\xac\xd9\x85\0" /* offset 12977 */ - "\xd8\xad\xd8\xac\0" /* offset 12982 */ - "\xd8\xad\xd9\x85\0" /* offset 12987 */ - "\xd8\xae\xd8\xac\0" /* offset 12992 */ - "\xd8\xae\xd8\xad\0" /* offset 12997 */ - "\xd8\xae\xd9\x85\0" /* offset 13002 */ - "\xd8\xb3\xd8\xac\0" /* offset 13007 */ - "\xd8\xb3\xd8\xad\0" /* offset 13012 */ - "\xd8\xb3\xd8\xae\0" /* offset 13017 */ - "\xd8\xb3\xd9\x85\0" /* offset 13022 */ - "\xd8\xb5\xd8\xad\0" /* offset 13027 */ - "\xd8\xb5\xd9\x85\0" /* offset 13032 */ - "\xd8\xb6\xd8\xac\0" /* offset 13037 */ - "\xd8\xb6\xd8\xad\0" /* offset 13042 */ - "\xd8\xb6\xd8\xae\0" /* offset 13047 */ - "\xd8\xb6\xd9\x85\0" /* offset 13052 */ - "\xd8\xb7\xd8\xad\0" /* offset 13057 */ - "\xd8\xb7\xd9\x85\0" /* offset 13062 */ - "\xd8\xb8\xd9\x85\0" /* offset 13067 */ - "\xd8\xb9\xd8\xac\0" /* offset 13072 */ - "\xd8\xb9\xd9\x85\0" /* offset 13077 */ - "\xd8\xba\xd8\xac\0" /* offset 13082 */ - "\xd8\xba\xd9\x85\0" /* offset 13087 */ - "\xd9\x81\xd8\xac\0" /* offset 13092 */ - "\xd9\x81\xd8\xad\0" /* offset 13097 */ - "\xd9\x81\xd8\xae\0" /* offset 13102 */ - "\xd9\x81\xd9\x85\0" /* offset 13107 */ - "\xd9\x81\xd9\x89\0" /* offset 13112 */ - "\xd9\x81\xd9\x8a\0" /* offset 13117 */ - "\xd9\x82\xd8\xad\0" /* offset 13122 */ - "\xd9\x82\xd9\x85\0" /* offset 13127 */ - "\xd9\x82\xd9\x89\0" /* offset 13132 */ - "\xd9\x82\xd9\x8a\0" /* offset 13137 */ - "\xd9\x83\xd8\xa7\0" /* offset 13142 */ - "\xd9\x83\xd8\xac\0" /* offset 13147 */ - "\xd9\x83\xd8\xad\0" /* offset 13152 */ - "\xd9\x83\xd8\xae\0" /* offset 13157 */ - "\xd9\x83\xd9\x84\0" /* offset 13162 */ - "\xd9\x83\xd9\x85\0" /* offset 13167 */ - "\xd9\x83\xd9\x89\0" /* offset 13172 */ - "\xd9\x83\xd9\x8a\0" /* offset 13177 */ - "\xd9\x84\xd8\xac\0" /* offset 13182 */ - "\xd9\x84\xd8\xad\0" /* offset 13187 */ - "\xd9\x84\xd8\xae\0" /* offset 13192 */ - "\xd9\x84\xd9\x85\0" /* offset 13197 */ - "\xd9\x84\xd9\x89\0" /* offset 13202 */ - "\xd9\x84\xd9\x8a\0" /* offset 13207 */ - "\xd9\x85\xd8\xac\0" /* offset 13212 */ - "\xd9\x85\xd8\xad\0" /* offset 13217 */ - "\xd9\x85\xd8\xae\0" /* offset 13222 */ - "\xd9\x85\xd9\x85\0" /* offset 13227 */ - "\xd9\x85\xd9\x89\0" /* offset 13232 */ - "\xd9\x85\xd9\x8a\0" /* offset 13237 */ - "\xd9\x86\xd8\xac\0" /* offset 13242 */ - "\xd9\x86\xd8\xad\0" /* offset 13247 */ - "\xd9\x86\xd8\xae\0" /* offset 13252 */ - "\xd9\x86\xd9\x85\0" /* offset 13257 */ - "\xd9\x86\xd9\x89\0" /* offset 13262 */ - "\xd9\x86\xd9\x8a\0" /* offset 13267 */ - "\xd9\x87\xd8\xac\0" /* offset 13272 */ - "\xd9\x87\xd9\x85\0" /* offset 13277 */ - "\xd9\x87\xd9\x89\0" /* offset 13282 */ - "\xd9\x87\xd9\x8a\0" /* offset 13287 */ - "\xd9\x8a\xd8\xac\0" /* offset 13292 */ - "\xd9\x8a\xd8\xad\0" /* offset 13297 */ - "\xd9\x8a\xd8\xae\0" /* offset 13302 */ - "\xd9\x8a\xd9\x85\0" /* offset 13307 */ - "\xd9\x8a\xd9\x89\0" /* offset 13312 */ - "\xd9\x8a\xd9\x8a\0" /* offset 13317 */ - "\xd8\xb0\xd9\xb0\0" /* offset 13322 */ - "\xd8\xb1\xd9\xb0\0" /* offset 13327 */ - "\xd9\x89\xd9\xb0\0" /* offset 13332 */ - "\x20\xd9\x8c\xd9\x91\0" /* offset 13337 */ - "\x20\xd9\x8d\xd9\x91\0" /* offset 13343 */ - "\x20\xd9\x8e\xd9\x91\0" /* offset 13349 */ - "\x20\xd9\x8f\xd9\x91\0" /* offset 13355 */ - "\x20\xd9\x90\xd9\x91\0" /* offset 13361 */ - "\x20\xd9\x91\xd9\xb0\0" /* offset 13367 */ - "\xd9\x8a\xd9\x94\xd8\xb1\0" /* offset 13373 */ - "\xd9\x8a\xd9\x94\xd8\xb2\0" /* offset 13380 */ - "\xd9\x8a\xd9\x94\xd9\x86\0" /* offset 13387 */ - "\xd8\xa8\xd8\xb1\0" /* offset 13394 */ - "\xd8\xa8\xd8\xb2\0" /* offset 13399 */ - "\xd8\xa8\xd9\x86\0" /* offset 13404 */ - "\xd8\xaa\xd8\xb1\0" /* offset 13409 */ - "\xd8\xaa\xd8\xb2\0" /* offset 13414 */ - "\xd8\xaa\xd9\x86\0" /* offset 13419 */ - "\xd8\xab\xd8\xb1\0" /* offset 13424 */ - "\xd8\xab\xd8\xb2\0" /* offset 13429 */ - "\xd8\xab\xd9\x86\0" /* offset 13434 */ - "\xd9\x85\xd8\xa7\0" /* offset 13439 */ - "\xd9\x86\xd8\xb1\0" /* offset 13444 */ - "\xd9\x86\xd8\xb2\0" /* offset 13449 */ - "\xd9\x86\xd9\x86\0" /* offset 13454 */ - "\xd9\x8a\xd8\xb1\0" /* offset 13459 */ - "\xd9\x8a\xd8\xb2\0" /* offset 13464 */ - "\xd9\x8a\xd9\x86\0" /* offset 13469 */ - "\xd9\x8a\xd9\x94\xd8\xae\0" /* offset 13474 */ - "\xd9\x8a\xd9\x94\xd9\x87\0" /* offset 13481 */ - "\xd8\xa8\xd9\x87\0" /* offset 13488 */ - "\xd8\xaa\xd9\x87\0" /* offset 13493 */ - "\xd8\xb5\xd8\xae\0" /* offset 13498 */ - "\xd9\x84\xd9\x87\0" /* offset 13503 */ - "\xd9\x86\xd9\x87\0" /* offset 13508 */ - "\xd9\x87\xd9\xb0\0" /* offset 13513 */ - "\xd9\x8a\xd9\x87\0" /* offset 13518 */ - "\xd8\xab\xd9\x87\0" /* offset 13523 */ - "\xd8\xb3\xd9\x87\0" /* offset 13528 */ - "\xd8\xb4\xd9\x85\0" /* offset 13533 */ - "\xd8\xb4\xd9\x87\0" /* offset 13538 */ - "\xd9\x80\xd9\x8e\xd9\x91\0" /* offset 13543 */ - "\xd9\x80\xd9\x8f\xd9\x91\0" /* offset 13550 */ - "\xd9\x80\xd9\x90\xd9\x91\0" /* offset 13557 */ - "\xd8\xb7\xd9\x89\0" /* offset 13564 */ - "\xd8\xb7\xd9\x8a\0" /* offset 13569 */ - "\xd8\xb9\xd9\x89\0" /* offset 13574 */ - "\xd8\xb9\xd9\x8a\0" /* offset 13579 */ - "\xd8\xba\xd9\x89\0" /* offset 13584 */ - "\xd8\xba\xd9\x8a\0" /* offset 13589 */ - "\xd8\xb3\xd9\x89\0" /* offset 13594 */ - "\xd8\xb3\xd9\x8a\0" /* offset 13599 */ - "\xd8\xb4\xd9\x89\0" /* offset 13604 */ - "\xd8\xb4\xd9\x8a\0" /* offset 13609 */ - "\xd8\xad\xd9\x89\0" /* offset 13614 */ - "\xd8\xad\xd9\x8a\0" /* offset 13619 */ - "\xd8\xac\xd9\x89\0" /* offset 13624 */ - "\xd8\xac\xd9\x8a\0" /* offset 13629 */ - "\xd8\xae\xd9\x89\0" /* offset 13634 */ - "\xd8\xae\xd9\x8a\0" /* offset 13639 */ - "\xd8\xb5\xd9\x89\0" /* offset 13644 */ - "\xd8\xb5\xd9\x8a\0" /* offset 13649 */ - "\xd8\xb6\xd9\x89\0" /* offset 13654 */ - "\xd8\xb6\xd9\x8a\0" /* offset 13659 */ - "\xd8\xb4\xd8\xac\0" /* offset 13664 */ - "\xd8\xb4\xd8\xad\0" /* offset 13669 */ - "\xd8\xb4\xd8\xae\0" /* offset 13674 */ - "\xd8\xb4\xd8\xb1\0" /* offset 13679 */ - "\xd8\xb3\xd8\xb1\0" /* offset 13684 */ - "\xd8\xb5\xd8\xb1\0" /* offset 13689 */ - "\xd8\xb6\xd8\xb1\0" /* offset 13694 */ - "\xd8\xa7\xd9\x8b\0" /* offset 13699 */ - "\xd8\xaa\xd8\xac\xd9\x85\0" /* offset 13704 */ - "\xd8\xaa\xd8\xad\xd8\xac\0" /* offset 13711 */ - "\xd8\xaa\xd8\xad\xd9\x85\0" /* offset 13718 */ - "\xd8\xaa\xd8\xae\xd9\x85\0" /* offset 13725 */ - "\xd8\xaa\xd9\x85\xd8\xac\0" /* offset 13732 */ - "\xd8\xaa\xd9\x85\xd8\xad\0" /* offset 13739 */ - "\xd8\xaa\xd9\x85\xd8\xae\0" /* offset 13746 */ - "\xd8\xac\xd9\x85\xd8\xad\0" /* offset 13753 */ - "\xd8\xad\xd9\x85\xd9\x8a\0" /* offset 13760 */ - "\xd8\xad\xd9\x85\xd9\x89\0" /* offset 13767 */ - "\xd8\xb3\xd8\xad\xd8\xac\0" /* offset 13774 */ - "\xd8\xb3\xd8\xac\xd8\xad\0" /* offset 13781 */ - "\xd8\xb3\xd8\xac\xd9\x89\0" /* offset 13788 */ - "\xd8\xb3\xd9\x85\xd8\xad\0" /* offset 13795 */ - "\xd8\xb3\xd9\x85\xd8\xac\0" /* offset 13802 */ - "\xd8\xb3\xd9\x85\xd9\x85\0" /* offset 13809 */ - "\xd8\xb5\xd8\xad\xd8\xad\0" /* offset 13816 */ - "\xd8\xb5\xd9\x85\xd9\x85\0" /* offset 13823 */ - "\xd8\xb4\xd8\xad\xd9\x85\0" /* offset 13830 */ - "\xd8\xb4\xd8\xac\xd9\x8a\0" /* offset 13837 */ - "\xd8\xb4\xd9\x85\xd8\xae\0" /* offset 13844 */ - "\xd8\xb4\xd9\x85\xd9\x85\0" /* offset 13851 */ - "\xd8\xb6\xd8\xad\xd9\x89\0" /* offset 13858 */ - "\xd8\xb6\xd8\xae\xd9\x85\0" /* offset 13865 */ - "\xd8\xb7\xd9\x85\xd8\xad\0" /* offset 13872 */ - "\xd8\xb7\xd9\x85\xd9\x85\0" /* offset 13879 */ - "\xd8\xb7\xd9\x85\xd9\x8a\0" /* offset 13886 */ - "\xd8\xb9\xd8\xac\xd9\x85\0" /* offset 13893 */ - "\xd8\xb9\xd9\x85\xd9\x85\0" /* offset 13900 */ - "\xd8\xb9\xd9\x85\xd9\x89\0" /* offset 13907 */ - "\xd8\xba\xd9\x85\xd9\x85\0" /* offset 13914 */ - "\xd8\xba\xd9\x85\xd9\x8a\0" /* offset 13921 */ - "\xd8\xba\xd9\x85\xd9\x89\0" /* offset 13928 */ - "\xd9\x81\xd8\xae\xd9\x85\0" /* offset 13935 */ - "\xd9\x82\xd9\x85\xd8\xad\0" /* offset 13942 */ - "\xd9\x82\xd9\x85\xd9\x85\0" /* offset 13949 */ - "\xd9\x84\xd8\xad\xd9\x85\0" /* offset 13956 */ - "\xd9\x84\xd8\xad\xd9\x8a\0" /* offset 13963 */ - "\xd9\x84\xd8\xad\xd9\x89\0" /* offset 13970 */ - "\xd9\x84\xd8\xac\xd8\xac\0" /* offset 13977 */ - "\xd9\x84\xd8\xae\xd9\x85\0" /* offset 13984 */ - "\xd9\x84\xd9\x85\xd8\xad\0" /* offset 13991 */ - "\xd9\x85\xd8\xad\xd8\xac\0" /* offset 13998 */ - "\xd9\x85\xd8\xad\xd9\x85\0" /* offset 14005 */ - "\xd9\x85\xd8\xad\xd9\x8a\0" /* offset 14012 */ - "\xd9\x85\xd8\xac\xd8\xad\0" /* offset 14019 */ - "\xd9\x85\xd8\xac\xd9\x85\0" /* offset 14026 */ - "\xd9\x85\xd8\xae\xd8\xac\0" /* offset 14033 */ - "\xd9\x85\xd8\xae\xd9\x85\0" /* offset 14040 */ - "\xd9\x85\xd8\xac\xd8\xae\0" /* offset 14047 */ - "\xd9\x87\xd9\x85\xd8\xac\0" /* offset 14054 */ - "\xd9\x87\xd9\x85\xd9\x85\0" /* offset 14061 */ - "\xd9\x86\xd8\xad\xd9\x85\0" /* offset 14068 */ - "\xd9\x86\xd8\xad\xd9\x89\0" /* offset 14075 */ - "\xd9\x86\xd8\xac\xd9\x85\0" /* offset 14082 */ - "\xd9\x86\xd8\xac\xd9\x89\0" /* offset 14089 */ - "\xd9\x86\xd9\x85\xd9\x8a\0" /* offset 14096 */ - "\xd9\x86\xd9\x85\xd9\x89\0" /* offset 14103 */ - "\xd9\x8a\xd9\x85\xd9\x85\0" /* offset 14110 */ - "\xd8\xa8\xd8\xae\xd9\x8a\0" /* offset 14117 */ - "\xd8\xaa\xd8\xac\xd9\x8a\0" /* offset 14124 */ - "\xd8\xaa\xd8\xac\xd9\x89\0" /* offset 14131 */ - "\xd8\xaa\xd8\xae\xd9\x8a\0" /* offset 14138 */ - "\xd8\xaa\xd8\xae\xd9\x89\0" /* offset 14145 */ - "\xd8\xaa\xd9\x85\xd9\x8a\0" /* offset 14152 */ - "\xd8\xaa\xd9\x85\xd9\x89\0" /* offset 14159 */ - "\xd8\xac\xd9\x85\xd9\x8a\0" /* offset 14166 */ - "\xd8\xac\xd8\xad\xd9\x89\0" /* offset 14173 */ - "\xd8\xac\xd9\x85\xd9\x89\0" /* offset 14180 */ - "\xd8\xb3\xd8\xae\xd9\x89\0" /* offset 14187 */ - "\xd8\xb5\xd8\xad\xd9\x8a\0" /* offset 14194 */ - "\xd8\xb4\xd8\xad\xd9\x8a\0" /* offset 14201 */ - "\xd8\xb6\xd8\xad\xd9\x8a\0" /* offset 14208 */ - "\xd9\x84\xd8\xac\xd9\x8a\0" /* offset 14215 */ - "\xd9\x84\xd9\x85\xd9\x8a\0" /* offset 14222 */ - "\xd9\x8a\xd8\xad\xd9\x8a\0" /* offset 14229 */ - "\xd9\x8a\xd8\xac\xd9\x8a\0" /* offset 14236 */ - "\xd9\x8a\xd9\x85\xd9\x8a\0" /* offset 14243 */ - "\xd9\x85\xd9\x85\xd9\x8a\0" /* offset 14250 */ - "\xd9\x82\xd9\x85\xd9\x8a\0" /* offset 14257 */ - "\xd9\x86\xd8\xad\xd9\x8a\0" /* offset 14264 */ - "\xd8\xb9\xd9\x85\xd9\x8a\0" /* offset 14271 */ - "\xd9\x83\xd9\x85\xd9\x8a\0" /* offset 14278 */ - "\xd9\x86\xd8\xac\xd8\xad\0" /* offset 14285 */ - "\xd9\x85\xd8\xae\xd9\x8a\0" /* offset 14292 */ - "\xd9\x84\xd8\xac\xd9\x85\0" /* offset 14299 */ - "\xd9\x83\xd9\x85\xd9\x85\0" /* offset 14306 */ - "\xd8\xac\xd8\xad\xd9\x8a\0" /* offset 14313 */ - "\xd8\xad\xd8\xac\xd9\x8a\0" /* offset 14320 */ - "\xd9\x85\xd8\xac\xd9\x8a\0" /* offset 14327 */ - "\xd9\x81\xd9\x85\xd9\x8a\0" /* offset 14334 */ - "\xd8\xa8\xd8\xad\xd9\x8a\0" /* offset 14341 */ - "\xd8\xb3\xd8\xae\xd9\x8a\0" /* offset 14348 */ - "\xd9\x86\xd8\xac\xd9\x8a\0" /* offset 14355 */ - "\xd8\xb5\xd9\x84\xdb\x92\0" /* offset 14362 */ - "\xd9\x82\xd9\x84\xdb\x92\0" /* offset 14369 */ - "\xd8\xa7\xd9\x84\xd9\x84\xd9\x87\0" /* offset 14376 */ - "\xd8\xa7\xd9\x83\xd8\xa8\xd8\xb1\0" /* offset 14385 */ - "\xd9\x85\xd8\xad\xd9\x85\xd8\xaf\0" /* offset 14394 */ - "\xd8\xb5\xd9\x84\xd8\xb9\xd9\x85\0" /* offset 14403 */ - "\xd8\xb1\xd8\xb3\xd9\x88\xd9\x84\0" /* offset 14412 */ - "\xd8\xb9\xd9\x84\xd9\x8a\xd9\x87\0" /* offset 14421 */ - "\xd9\x88\xd8\xb3\xd9\x84\xd9\x85\0" /* offset 14430 */ - "\xd8\xb5\xd9\x84\xd9\x89\0" /* offset 14439 */ - "\xd8\xb5\xd9\x84\xd9\x89\x20\xd8\xa7\xd9\x84\xd9\x84\xd9\x87\x20\xd8\xb9\xd9\x84\xd9\x8a\xd9\x87\x20\xd9\x88\xd8\xb3\xd9\x84\xd9\x85\0" /* offset 14446 */ - "\xd8\xac\xd9\x84\x20\xd8\xac\xd9\x84\xd8\xa7\xd9\x84\xd9\x87\0" /* offset 14480 */ - "\xd8\xb1\xdb\x8c\xd8\xa7\xd9\x84\0" /* offset 14496 */ - "\x2c\0" /* offset 14505 */ - "\xe3\x80\x81\0" /* offset 14507 */ - "\xe3\x80\x82\0" /* offset 14511 */ - "\x3a\0" /* offset 14515 */ - "\x21\0" /* offset 14517 */ - "\x3f\0" /* offset 14519 */ - "\xe3\x80\x96\0" /* offset 14521 */ - "\xe3\x80\x97\0" /* offset 14525 */ - "\xe2\x80\x94\0" /* offset 14529 */ - "\xe2\x80\x93\0" /* offset 14533 */ - "\x5f\0" /* offset 14537 */ - "\x7b\0" /* offset 14539 */ - "\x7d\0" /* offset 14541 */ - "\xe3\x80\x94\0" /* offset 14543 */ - "\xe3\x80\x95\0" /* offset 14547 */ - "\xe3\x80\x90\0" /* offset 14551 */ - "\xe3\x80\x91\0" /* offset 14555 */ - "\xe3\x80\x8a\0" /* offset 14559 */ - "\xe3\x80\x8b\0" /* offset 14563 */ - "\xe3\x80\x8c\0" /* offset 14567 */ - "\xe3\x80\x8d\0" /* offset 14571 */ - "\xe3\x80\x8e\0" /* offset 14575 */ - "\xe3\x80\x8f\0" /* offset 14579 */ - "\x5b\0" /* offset 14583 */ - "\x5d\0" /* offset 14585 */ - "\x23\0" /* offset 14587 */ - "\x26\0" /* offset 14589 */ - "\x2a\0" /* offset 14591 */ - "\x2d\0" /* offset 14593 */ - "\x3c\0" /* offset 14595 */ - "\x3e\0" /* offset 14597 */ - "\x5c\0" /* offset 14599 */ - "\x24\0" /* offset 14601 */ - "\x25\0" /* offset 14603 */ - "\x40\0" /* offset 14605 */ - "\x20\xd9\x8b\0" /* offset 14607 */ - "\xd9\x80\xd9\x8b\0" /* offset 14611 */ - "\x20\xd9\x8c\0" /* offset 14616 */ - "\x20\xd9\x8d\0" /* offset 14620 */ - "\x20\xd9\x8e\0" /* offset 14624 */ - "\xd9\x80\xd9\x8e\0" /* offset 14628 */ - "\x20\xd9\x8f\0" /* offset 14633 */ - "\xd9\x80\xd9\x8f\0" /* offset 14637 */ - "\x20\xd9\x90\0" /* offset 14642 */ - "\xd9\x80\xd9\x90\0" /* offset 14646 */ - "\x20\xd9\x91\0" /* offset 14651 */ - "\xd9\x80\xd9\x91\0" /* offset 14655 */ - "\x20\xd9\x92\0" /* offset 14660 */ - "\xd9\x80\xd9\x92\0" /* offset 14664 */ - "\xd8\xa1\0" /* offset 14669 */ - "\xd8\xa7\0" /* offset 14672 */ - "\xd8\xa8\0" /* offset 14675 */ - "\xd8\xa9\0" /* offset 14678 */ - "\xd8\xaa\0" /* offset 14681 */ - "\xd8\xab\0" /* offset 14684 */ - "\xd8\xac\0" /* offset 14687 */ - "\xd8\xad\0" /* offset 14690 */ - "\xd8\xae\0" /* offset 14693 */ - "\xd8\xaf\0" /* offset 14696 */ - "\xd8\xb0\0" /* offset 14699 */ - "\xd8\xb1\0" /* offset 14702 */ - "\xd8\xb2\0" /* offset 14705 */ - "\xd8\xb3\0" /* offset 14708 */ - "\xd8\xb4\0" /* offset 14711 */ - "\xd8\xb5\0" /* offset 14714 */ - "\xd8\xb6\0" /* offset 14717 */ - "\xd8\xb7\0" /* offset 14720 */ - "\xd8\xb8\0" /* offset 14723 */ - "\xd8\xb9\0" /* offset 14726 */ - "\xd8\xba\0" /* offset 14729 */ - "\xd9\x81\0" /* offset 14732 */ - "\xd9\x82\0" /* offset 14735 */ - "\xd9\x83\0" /* offset 14738 */ - "\xd9\x84\0" /* offset 14741 */ - "\xd9\x85\0" /* offset 14744 */ - "\xd9\x86\0" /* offset 14747 */ - "\xd9\x87\0" /* offset 14750 */ - "\xd9\x88\0" /* offset 14753 */ - "\xd9\x8a\0" /* offset 14756 */ - "\xd9\x84\xd8\xa7\xd9\x93\0" /* offset 14759 */ - "\xd9\x84\xd8\xa7\xd9\x94\0" /* offset 14766 */ - "\xd9\x84\xd8\xa7\xd9\x95\0" /* offset 14773 */ - "\xd9\x84\xd8\xa7\0" /* offset 14780 */ - "\x22\0" /* offset 14785 */ - "\x27\0" /* offset 14787 */ - "\x2f\0" /* offset 14789 */ - "\x5e\0" /* offset 14791 */ - "\x7c\0" /* offset 14793 */ - "\x7e\0" /* offset 14795 */ - "\xe2\xa6\x85\0" /* offset 14797 */ - "\xe2\xa6\x86\0" /* offset 14801 */ - "\xe3\x83\xbb\0" /* offset 14805 */ - "\xe3\x82\xa1\0" /* offset 14809 */ - "\xe3\x82\xa3\0" /* offset 14813 */ - "\xe3\x82\xa5\0" /* offset 14817 */ - "\xe3\x82\xa7\0" /* offset 14821 */ - "\xe3\x82\xa9\0" /* offset 14825 */ - "\xe3\x83\xa3\0" /* offset 14829 */ - "\xe3\x83\xa5\0" /* offset 14833 */ - "\xe3\x83\xa7\0" /* offset 14837 */ - "\xe3\x83\x83\0" /* offset 14841 */ - "\xe3\x83\xbc\0" /* offset 14845 */ - "\xe3\x83\xb3\0" /* offset 14849 */ - "\xe3\x82\x99\0" /* offset 14853 */ - "\xe3\x82\x9a\0" /* offset 14857 */ - "\xc2\xa2\0" /* offset 14861 */ - "\xc2\xa3\0" /* offset 14864 */ - "\xc2\xac\0" /* offset 14867 */ - "\xc2\xa6\0" /* offset 14870 */ - "\xc2\xa5\0" /* offset 14873 */ - "\xe2\x82\xa9\0" /* offset 14876 */ - "\xe2\x94\x82\0" /* offset 14880 */ - "\xe2\x86\x90\0" /* offset 14884 */ - "\xe2\x86\x91\0" /* offset 14888 */ - "\xe2\x86\x92\0" /* offset 14892 */ - "\xe2\x86\x93\0" /* offset 14896 */ - "\xe2\x96\xa0\0" /* offset 14900 */ - "\xe2\x97\x8b\0" /* offset 14904 */ - "\xf0\x9d\x85\x97\xf0\x9d\x85\xa5\0" /* offset 14908 */ - "\xf0\x9d\x85\x98\xf0\x9d\x85\xa5\0" /* offset 14917 */ - "\xf0\x9d\x85\x98\xf0\x9d\x85\xa5\xf0\x9d\x85\xae\0" /* offset 14926 */ - "\xf0\x9d\x85\x98\xf0\x9d\x85\xa5\xf0\x9d\x85\xaf\0" /* offset 14939 */ - "\xf0\x9d\x85\x98\xf0\x9d\x85\xa5\xf0\x9d\x85\xb0\0" /* offset 14952 */ - "\xf0\x9d\x85\x98\xf0\x9d\x85\xa5\xf0\x9d\x85\xb1\0" /* offset 14965 */ - "\xf0\x9d\x85\x98\xf0\x9d\x85\xa5\xf0\x9d\x85\xb2\0" /* offset 14978 */ - "\xf0\x9d\x86\xb9\xf0\x9d\x85\xa5\0" /* offset 14991 */ - "\xf0\x9d\x86\xba\xf0\x9d\x85\xa5\0" /* offset 15000 */ - "\xf0\x9d\x86\xb9\xf0\x9d\x85\xa5\xf0\x9d\x85\xae\0" /* offset 15009 */ - "\xf0\x9d\x86\xba\xf0\x9d\x85\xa5\xf0\x9d\x85\xae\0" /* offset 15022 */ - "\xf0\x9d\x86\xb9\xf0\x9d\x85\xa5\xf0\x9d\x85\xaf\0" /* offset 15035 */ - "\xf0\x9d\x86\xba\xf0\x9d\x85\xa5\xf0\x9d\x85\xaf\0" /* offset 15048 */ - "\xc4\xb1\0" /* offset 15061 */ - "\xc8\xb7\0" /* offset 15064 */ - "\xce\x91\0" /* offset 15067 */ - "\xce\x92\0" /* offset 15070 */ - "\xce\x94\0" /* offset 15073 */ - "\xce\x95\0" /* offset 15076 */ - "\xce\x96\0" /* offset 15079 */ - "\xce\x97\0" /* offset 15082 */ - "\xce\x99\0" /* offset 15085 */ - "\xce\x9a\0" /* offset 15088 */ - "\xce\x9b\0" /* offset 15091 */ - "\xce\x9c\0" /* offset 15094 */ - "\xce\x9d\0" /* offset 15097 */ - "\xce\x9e\0" /* offset 15100 */ - "\xce\x9f\0" /* offset 15103 */ - "\xce\xa1\0" /* offset 15106 */ - "\xce\xa4\0" /* offset 15109 */ - "\xce\xa6\0" /* offset 15112 */ - "\xce\xa7\0" /* offset 15115 */ - "\xce\xa8\0" /* offset 15118 */ - "\xe2\x88\x87\0" /* offset 15121 */ - "\xce\xb1\0" /* offset 15125 */ - "\xce\xb6\0" /* offset 15128 */ - "\xce\xb7\0" /* offset 15131 */ - "\xce\xbb\0" /* offset 15134 */ - "\xce\xbd\0" /* offset 15137 */ - "\xce\xbe\0" /* offset 15140 */ - "\xce\xbf\0" /* offset 15143 */ - "\xcf\x83\0" /* offset 15146 */ - "\xcf\x84\0" /* offset 15149 */ - "\xcf\x85\0" /* offset 15152 */ - "\xcf\x88\0" /* offset 15155 */ - "\xcf\x89\0" /* offset 15158 */ - "\xe2\x88\x82\0" /* offset 15161 */ - "\xcf\x9c\0" /* offset 15165 */ - "\xcf\x9d\0" /* offset 15168 */ - "\xe4\xb8\xbd\0" /* offset 15171 */ - "\xe4\xb8\xb8\0" /* offset 15175 */ - "\xe4\xb9\x81\0" /* offset 15179 */ - "\xf0\xa0\x84\xa2\0" /* offset 15183 */ - "\xe4\xbd\xa0\0" /* offset 15188 */ - "\xe4\xbe\xbb\0" /* offset 15192 */ - "\xe5\x80\x82\0" /* offset 15196 */ - "\xe5\x81\xba\0" /* offset 15200 */ - "\xe5\x82\x99\0" /* offset 15204 */ - "\xe5\x83\x8f\0" /* offset 15208 */ - "\xe3\x92\x9e\0" /* offset 15212 */ - "\xf0\xa0\x98\xba\0" /* offset 15216 */ - "\xe5\x85\x94\0" /* offset 15221 */ - "\xe5\x85\xa4\0" /* offset 15225 */ - "\xe5\x85\xb7\0" /* offset 15229 */ - "\xf0\xa0\x94\x9c\0" /* offset 15233 */ - "\xe3\x92\xb9\0" /* offset 15238 */ - "\xe5\x85\xa7\0" /* offset 15242 */ - "\xe5\x86\x8d\0" /* offset 15246 */ - "\xf0\xa0\x95\x8b\0" /* offset 15250 */ - "\xe5\x86\x97\0" /* offset 15255 */ - "\xe5\x86\xa4\0" /* offset 15259 */ - "\xe4\xbb\x8c\0" /* offset 15263 */ - "\xe5\x86\xac\0" /* offset 15267 */ - "\xf0\xa9\x87\x9f\0" /* offset 15271 */ - "\xe5\x88\x83\0" /* offset 15276 */ - "\xe3\x93\x9f\0" /* offset 15280 */ - "\xe5\x88\xbb\0" /* offset 15284 */ - "\xe5\x89\x86\0" /* offset 15288 */ - "\xe5\x89\xb2\0" /* offset 15292 */ - "\xe5\x89\xb7\0" /* offset 15296 */ - "\xe3\x94\x95\0" /* offset 15300 */ - "\xe5\x8c\x85\0" /* offset 15304 */ - "\xe5\x8c\x86\0" /* offset 15308 */ - "\xe5\x8d\x89\0" /* offset 15312 */ - "\xe5\x8d\x9a\0" /* offset 15316 */ - "\xe5\x8d\xb3\0" /* offset 15320 */ - "\xe5\x8d\xbd\0" /* offset 15324 */ - "\xe5\x8d\xbf\0" /* offset 15328 */ - "\xf0\xa0\xa8\xac\0" /* offset 15332 */ - "\xe7\x81\xb0\0" /* offset 15337 */ - "\xe5\x8f\x8a\0" /* offset 15341 */ - "\xe5\x8f\x9f\0" /* offset 15345 */ - "\xf0\xa0\xad\xa3\0" /* offset 15349 */ - "\xe5\x8f\xab\0" /* offset 15354 */ - "\xe5\x8f\xb1\0" /* offset 15358 */ - "\xe5\x90\x86\0" /* offset 15362 */ - "\xe5\x92\x9e\0" /* offset 15366 */ - "\xe5\x90\xb8\0" /* offset 15370 */ - "\xe5\x91\x88\0" /* offset 15374 */ - "\xe5\x91\xa8\0" /* offset 15378 */ - "\xe5\x92\xa2\0" /* offset 15382 */ - "\xe5\x93\xb6\0" /* offset 15386 */ - "\xe5\x94\x90\0" /* offset 15390 */ - "\xe5\x95\x93\0" /* offset 15394 */ - "\xe5\x95\xa3\0" /* offset 15398 */ - "\xe5\x96\x84\0" /* offset 15402 */ - "\xe5\x96\xab\0" /* offset 15406 */ - "\xe5\x96\xb3\0" /* offset 15410 */ - "\xe5\x97\x82\0" /* offset 15414 */ - "\xe5\x9c\x96\0" /* offset 15418 */ - "\xe5\x9c\x97\0" /* offset 15422 */ - "\xe5\x99\x91\0" /* offset 15426 */ - "\xe5\x99\xb4\0" /* offset 15430 */ - "\xe5\xa3\xae\0" /* offset 15434 */ - "\xe5\x9f\x8e\0" /* offset 15438 */ - "\xe5\x9f\xb4\0" /* offset 15442 */ - "\xe5\xa0\x8d\0" /* offset 15446 */ - "\xe5\x9e\x8b\0" /* offset 15450 */ - "\xe5\xa0\xb2\0" /* offset 15454 */ - "\xe5\xa0\xb1\0" /* offset 15458 */ - "\xe5\xa2\xac\0" /* offset 15462 */ - "\xf0\xa1\x93\xa4\0" /* offset 15466 */ - "\xe5\xa3\xb2\0" /* offset 15471 */ - "\xe5\xa3\xb7\0" /* offset 15475 */ - "\xe5\xa4\x86\0" /* offset 15479 */ - "\xe5\xa4\x9a\0" /* offset 15483 */ - "\xe5\xa4\xa2\0" /* offset 15487 */ - "\xe5\xa5\xa2\0" /* offset 15491 */ - "\xf0\xa1\x9a\xa8\0" /* offset 15495 */ - "\xf0\xa1\x9b\xaa\0" /* offset 15500 */ - "\xe5\xa7\xac\0" /* offset 15505 */ - "\xe5\xa8\x9b\0" /* offset 15509 */ - "\xe5\xa8\xa7\0" /* offset 15513 */ - "\xe5\xa7\x98\0" /* offset 15517 */ - "\xe5\xa9\xa6\0" /* offset 15521 */ - "\xe3\x9b\xae\0" /* offset 15525 */ - "\xe3\x9b\xbc\0" /* offset 15529 */ - "\xe5\xac\x88\0" /* offset 15533 */ - "\xe5\xac\xbe\0" /* offset 15537 */ - "\xf0\xa1\xa7\x88\0" /* offset 15541 */ - "\xe5\xaf\x83\0" /* offset 15546 */ - "\xe5\xaf\x98\0" /* offset 15550 */ - "\xe5\xaf\xb3\0" /* offset 15554 */ - "\xf0\xa1\xac\x98\0" /* offset 15558 */ - "\xe5\xaf\xbf\0" /* offset 15563 */ - "\xe5\xb0\x86\0" /* offset 15567 */ - "\xe5\xbd\x93\0" /* offset 15571 */ - "\xe3\x9e\x81\0" /* offset 15575 */ - "\xe5\xb1\xa0\0" /* offset 15579 */ - "\xe5\xb3\x80\0" /* offset 15583 */ - "\xe5\xb2\x8d\0" /* offset 15587 */ - "\xf0\xa1\xb7\xa4\0" /* offset 15591 */ - "\xe5\xb5\x83\0" /* offset 15596 */ - "\xf0\xa1\xb7\xa6\0" /* offset 15600 */ - "\xe5\xb5\xae\0" /* offset 15605 */ - "\xe5\xb5\xab\0" /* offset 15609 */ - "\xe5\xb5\xbc\0" /* offset 15613 */ - "\xe5\xb7\xa1\0" /* offset 15617 */ - "\xe5\xb7\xa2\0" /* offset 15621 */ - "\xe3\xa0\xaf\0" /* offset 15625 */ - "\xe5\xb7\xbd\0" /* offset 15629 */ - "\xe5\xb8\xa8\0" /* offset 15633 */ - "\xe5\xb8\xbd\0" /* offset 15637 */ - "\xe5\xb9\xa9\0" /* offset 15641 */ - "\xe3\xa1\xa2\0" /* offset 15645 */ - "\xf0\xa2\x86\x83\0" /* offset 15649 */ - "\xe3\xa1\xbc\0" /* offset 15654 */ - "\xe5\xba\xb0\0" /* offset 15658 */ - "\xe5\xba\xb3\0" /* offset 15662 */ - "\xe5\xba\xb6\0" /* offset 15666 */ - "\xf0\xaa\x8e\x92\0" /* offset 15670 */ - "\xf0\xa2\x8c\xb1\0" /* offset 15675 */ - "\xe8\x88\x81\0" /* offset 15680 */ - "\xe5\xbc\xa2\0" /* offset 15684 */ - "\xe3\xa3\x87\0" /* offset 15688 */ - "\xf0\xa3\x8a\xb8\0" /* offset 15692 */ - "\xf0\xa6\x87\x9a\0" /* offset 15697 */ - "\xe5\xbd\xa2\0" /* offset 15702 */ - "\xe5\xbd\xab\0" /* offset 15706 */ - "\xe3\xa3\xa3\0" /* offset 15710 */ - "\xe5\xbe\x9a\0" /* offset 15714 */ - "\xe5\xbf\x8d\0" /* offset 15718 */ - "\xe5\xbf\x97\0" /* offset 15722 */ - "\xe5\xbf\xb9\0" /* offset 15726 */ - "\xe6\x82\x81\0" /* offset 15730 */ - "\xe3\xa4\xba\0" /* offset 15734 */ - "\xe3\xa4\x9c\0" /* offset 15738 */ - "\xf0\xa2\x9b\x94\0" /* offset 15742 */ - "\xe6\x83\x87\0" /* offset 15747 */ - "\xe6\x85\x88\0" /* offset 15751 */ - "\xe6\x85\x8c\0" /* offset 15755 */ - "\xe6\x85\xba\0" /* offset 15759 */ - "\xe6\x86\xb2\0" /* offset 15763 */ - "\xe6\x86\xa4\0" /* offset 15767 */ - "\xe6\x86\xaf\0" /* offset 15771 */ - "\xe6\x87\x9e\0" /* offset 15775 */ - "\xe6\x88\x90\0" /* offset 15779 */ - "\xe6\x88\x9b\0" /* offset 15783 */ - "\xe6\x89\x9d\0" /* offset 15787 */ - "\xe6\x8a\xb1\0" /* offset 15791 */ - "\xe6\x8b\x94\0" /* offset 15795 */ - "\xe6\x8d\x90\0" /* offset 15799 */ - "\xf0\xa2\xac\x8c\0" /* offset 15803 */ - "\xe6\x8c\xbd\0" /* offset 15808 */ - "\xe6\x8b\xbc\0" /* offset 15812 */ - "\xe6\x8d\xa8\0" /* offset 15816 */ - "\xe6\x8e\x83\0" /* offset 15820 */ - "\xe6\x8f\xa4\0" /* offset 15824 */ - "\xf0\xa2\xaf\xb1\0" /* offset 15828 */ - "\xe6\x90\xa2\0" /* offset 15833 */ - "\xe6\x8f\x85\0" /* offset 15837 */ - "\xe6\x8e\xa9\0" /* offset 15841 */ - "\xe3\xa8\xae\0" /* offset 15845 */ - "\xe6\x91\xa9\0" /* offset 15849 */ - "\xe6\x91\xbe\0" /* offset 15853 */ - "\xe6\x92\x9d\0" /* offset 15857 */ - "\xe6\x91\xb7\0" /* offset 15861 */ - "\xe3\xa9\xac\0" /* offset 15865 */ - "\xe6\x95\xac\0" /* offset 15869 */ - "\xf0\xa3\x80\x8a\0" /* offset 15873 */ - "\xe6\x97\xa3\0" /* offset 15878 */ - "\xe6\x9b\xb8\0" /* offset 15882 */ - "\xe6\x99\x89\0" /* offset 15886 */ - "\xe3\xac\x99\0" /* offset 15890 */ - "\xe3\xac\x88\0" /* offset 15894 */ - "\xe3\xab\xa4\0" /* offset 15898 */ - "\xe5\x86\x92\0" /* offset 15902 */ - "\xe5\x86\x95\0" /* offset 15906 */ - "\xe6\x9c\x80\0" /* offset 15910 */ - "\xe6\x9a\x9c\0" /* offset 15914 */ - "\xe8\x82\xad\0" /* offset 15918 */ - "\xe4\x8f\x99\0" /* offset 15922 */ - "\xe6\x9c\xa1\0" /* offset 15926 */ - "\xe6\x9d\x9e\0" /* offset 15930 */ - "\xe6\x9d\x93\0" /* offset 15934 */ - "\xf0\xa3\x8f\x83\0" /* offset 15938 */ - "\xe3\xad\x89\0" /* offset 15943 */ - "\xe6\x9f\xba\0" /* offset 15947 */ - "\xe6\x9e\x85\0" /* offset 15951 */ - "\xe6\xa1\x92\0" /* offset 15955 */ - "\xf0\xa3\x91\xad\0" /* offset 15959 */ - "\xe6\xa2\x8e\0" /* offset 15964 */ - "\xe6\xa0\x9f\0" /* offset 15968 */ - "\xe6\xa4\x94\0" /* offset 15972 */ - "\xe6\xa5\x82\0" /* offset 15976 */ - "\xe6\xa6\xa3\0" /* offset 15980 */ - "\xe6\xa7\xaa\0" /* offset 15984 */ - "\xe6\xaa\xa8\0" /* offset 15988 */ - "\xf0\xa3\x9a\xa3\0" /* offset 15992 */ - "\xe6\xab\x9b\0" /* offset 15997 */ - "\xe3\xb0\x98\0" /* offset 16001 */ - "\xe6\xac\xa1\0" /* offset 16005 */ - "\xf0\xa3\xa2\xa7\0" /* offset 16009 */ - "\xe6\xad\x94\0" /* offset 16014 */ - "\xe3\xb1\x8e\0" /* offset 16018 */ - "\xe6\xad\xb2\0" /* offset 16022 */ - "\xe6\xae\x9f\0" /* offset 16026 */ - "\xe6\xae\xbb\0" /* offset 16030 */ - "\xf0\xa3\xaa\x8d\0" /* offset 16034 */ - "\xf0\xa1\xb4\x8b\0" /* offset 16039 */ - "\xf0\xa3\xab\xba\0" /* offset 16044 */ - "\xe6\xb1\x8e\0" /* offset 16049 */ - "\xf0\xa3\xb2\xbc\0" /* offset 16053 */ - "\xe6\xb2\xbf\0" /* offset 16058 */ - "\xe6\xb3\x8d\0" /* offset 16062 */ - "\xe6\xb1\xa7\0" /* offset 16066 */ - "\xe6\xb4\x96\0" /* offset 16070 */ - "\xe6\xb4\xbe\0" /* offset 16074 */ - "\xe6\xb5\xa9\0" /* offset 16078 */ - "\xe6\xb5\xb8\0" /* offset 16082 */ - "\xe6\xb6\x85\0" /* offset 16086 */ - "\xf0\xa3\xb4\x9e\0" /* offset 16090 */ - "\xe6\xb4\xb4\0" /* offset 16095 */ - "\xe6\xb8\xaf\0" /* offset 16099 */ - "\xe6\xb9\xae\0" /* offset 16103 */ - "\xe3\xb4\xb3\0" /* offset 16107 */ - "\xe6\xbb\x87\0" /* offset 16111 */ - "\xf0\xa3\xbb\x91\0" /* offset 16115 */ - "\xe6\xb7\xb9\0" /* offset 16120 */ - "\xe6\xbd\xae\0" /* offset 16124 */ - "\xf0\xa3\xbd\x9e\0" /* offset 16128 */ - "\xf0\xa3\xbe\x8e\0" /* offset 16133 */ - "\xe6\xbf\x86\0" /* offset 16138 */ - "\xe7\x80\xb9\0" /* offset 16142 */ - "\xe7\x80\x9b\0" /* offset 16146 */ - "\xe3\xb6\x96\0" /* offset 16150 */ - "\xe7\x81\x8a\0" /* offset 16154 */ - "\xe7\x81\xbd\0" /* offset 16158 */ - "\xe7\x81\xb7\0" /* offset 16162 */ - "\xe7\x82\xad\0" /* offset 16166 */ - "\xf0\xa0\x94\xa5\0" /* offset 16170 */ - "\xe7\x85\x85\0" /* offset 16175 */ - "\xf0\xa4\x89\xa3\0" /* offset 16179 */ - "\xe7\x86\x9c\0" /* offset 16184 */ - "\xf0\xa4\x8e\xab\0" /* offset 16188 */ - "\xe7\x88\xa8\0" /* offset 16193 */ - "\xe7\x89\x90\0" /* offset 16197 */ - "\xf0\xa4\x98\x88\0" /* offset 16201 */ - "\xe7\x8a\x80\0" /* offset 16206 */ - "\xe7\x8a\x95\0" /* offset 16210 */ - "\xf0\xa4\x9c\xb5\0" /* offset 16214 */ - "\xf0\xa4\xa0\x94\0" /* offset 16219 */ - "\xe7\x8d\xba\0" /* offset 16224 */ - "\xe7\x8e\x8b\0" /* offset 16228 */ - "\xe3\xba\xac\0" /* offset 16232 */ - "\xe7\x8e\xa5\0" /* offset 16236 */ - "\xe3\xba\xb8\0" /* offset 16240 */ - "\xe7\x91\x87\0" /* offset 16244 */ - "\xe7\x91\x9c\0" /* offset 16248 */ - "\xe7\x92\x85\0" /* offset 16252 */ - "\xe7\x93\x8a\0" /* offset 16256 */ - "\xe3\xbc\x9b\0" /* offset 16260 */ - "\xe7\x94\xa4\0" /* offset 16264 */ - "\xf0\xa4\xb0\xb6\0" /* offset 16268 */ - "\xe7\x94\xbe\0" /* offset 16273 */ - "\xf0\xa4\xb2\x92\0" /* offset 16277 */ - "\xf0\xa2\x86\x9f\0" /* offset 16282 */ - "\xe7\x98\x90\0" /* offset 16287 */ - "\xf0\xa4\xbe\xa1\0" /* offset 16291 */ - "\xf0\xa4\xbe\xb8\0" /* offset 16296 */ - "\xf0\xa5\x81\x84\0" /* offset 16301 */ - "\xe3\xbf\xbc\0" /* offset 16306 */ - "\xe4\x80\x88\0" /* offset 16310 */ - "\xf0\xa5\x83\xb3\0" /* offset 16314 */ - "\xf0\xa5\x83\xb2\0" /* offset 16319 */ - "\xf0\xa5\x84\x99\0" /* offset 16324 */ - "\xf0\xa5\x84\xb3\0" /* offset 16329 */ - "\xe7\x9c\x9e\0" /* offset 16334 */ - "\xe7\x9c\x9f\0" /* offset 16338 */ - "\xe7\x9e\x8b\0" /* offset 16342 */ - "\xe4\x81\x86\0" /* offset 16346 */ - "\xe4\x82\x96\0" /* offset 16350 */ - "\xf0\xa5\x90\x9d\0" /* offset 16354 */ - "\xe7\xa1\x8e\0" /* offset 16359 */ - "\xe4\x83\xa3\0" /* offset 16363 */ - "\xf0\xa5\x98\xa6\0" /* offset 16367 */ - "\xf0\xa5\x9a\x9a\0" /* offset 16372 */ - "\xf0\xa5\x9b\x85\0" /* offset 16377 */ - "\xe7\xa7\xab\0" /* offset 16382 */ - "\xe4\x84\xaf\0" /* offset 16386 */ - "\xe7\xa9\x8a\0" /* offset 16390 */ - "\xe7\xa9\x8f\0" /* offset 16394 */ - "\xf0\xa5\xa5\xbc\0" /* offset 16398 */ - "\xf0\xa5\xaa\xa7\0" /* offset 16403 */ - "\xe7\xab\xae\0" /* offset 16408 */ - "\xe4\x88\x82\0" /* offset 16412 */ - "\xf0\xa5\xae\xab\0" /* offset 16416 */ - "\xe7\xaf\x86\0" /* offset 16421 */ - "\xe7\xaf\x89\0" /* offset 16425 */ - "\xe4\x88\xa7\0" /* offset 16429 */ - "\xf0\xa5\xb2\x80\0" /* offset 16433 */ - "\xe7\xb3\x92\0" /* offset 16438 */ - "\xe4\x8a\xa0\0" /* offset 16442 */ - "\xe7\xb3\xa8\0" /* offset 16446 */ - "\xe7\xb3\xa3\0" /* offset 16450 */ - "\xe7\xb4\x80\0" /* offset 16454 */ - "\xf0\xa5\xbe\x86\0" /* offset 16458 */ - "\xe7\xb5\xa3\0" /* offset 16463 */ - "\xe4\x8c\x81\0" /* offset 16467 */ - "\xe7\xb7\x87\0" /* offset 16471 */ - "\xe7\xb8\x82\0" /* offset 16475 */ - "\xe7\xb9\x85\0" /* offset 16479 */ - "\xe4\x8c\xb4\0" /* offset 16483 */ - "\xf0\xa6\x88\xa8\0" /* offset 16487 */ - "\xf0\xa6\x89\x87\0" /* offset 16492 */ - "\xe4\x8d\x99\0" /* offset 16497 */ - "\xf0\xa6\x8b\x99\0" /* offset 16501 */ - "\xe7\xbd\xba\0" /* offset 16506 */ - "\xf0\xa6\x8c\xbe\0" /* offset 16510 */ - "\xe7\xbe\x95\0" /* offset 16515 */ - "\xe7\xbf\xba\0" /* offset 16519 */ - "\xf0\xa6\x93\x9a\0" /* offset 16523 */ - "\xf0\xa6\x94\xa3\0" /* offset 16528 */ - "\xe8\x81\xa0\0" /* offset 16533 */ - "\xf0\xa6\x96\xa8\0" /* offset 16537 */ - "\xe8\x81\xb0\0" /* offset 16542 */ - "\xf0\xa3\x8d\x9f\0" /* offset 16546 */ - "\xe4\x8f\x95\0" /* offset 16551 */ - "\xe8\x82\xb2\0" /* offset 16555 */ - "\xe8\x84\x83\0" /* offset 16559 */ - "\xe4\x90\x8b\0" /* offset 16563 */ - "\xe8\x84\xbe\0" /* offset 16567 */ - "\xe5\xaa\xb5\0" /* offset 16571 */ - "\xf0\xa6\x9e\xa7\0" /* offset 16575 */ - "\xf0\xa6\x9e\xb5\0" /* offset 16580 */ - "\xf0\xa3\x8e\x93\0" /* offset 16585 */ - "\xf0\xa3\x8e\x9c\0" /* offset 16590 */ - "\xe8\x88\x84\0" /* offset 16595 */ - "\xe8\xbe\x9e\0" /* offset 16599 */ - "\xe4\x91\xab\0" /* offset 16603 */ - "\xe8\x8a\x91\0" /* offset 16607 */ - "\xe8\x8a\x8b\0" /* offset 16611 */ - "\xe8\x8a\x9d\0" /* offset 16615 */ - "\xe5\x8a\xb3\0" /* offset 16619 */ - "\xe8\x8a\xb1\0" /* offset 16623 */ - "\xe8\x8a\xb3\0" /* offset 16627 */ - "\xe8\x8a\xbd\0" /* offset 16631 */ - "\xe8\x8b\xa6\0" /* offset 16635 */ - "\xf0\xa6\xac\xbc\0" /* offset 16639 */ - "\xe8\x8c\x9d\0" /* offset 16644 */ - "\xe8\x8d\xa3\0" /* offset 16648 */ - "\xe8\x8e\xad\0" /* offset 16652 */ - "\xe8\x8c\xa3\0" /* offset 16656 */ - "\xe8\x8e\xbd\0" /* offset 16660 */ - "\xe8\x8f\xa7\0" /* offset 16664 */ - "\xe8\x8d\x93\0" /* offset 16668 */ - "\xe8\x8f\x8a\0" /* offset 16672 */ - "\xe8\x8f\x8c\0" /* offset 16676 */ - "\xe8\x8f\x9c\0" /* offset 16680 */ - "\xf0\xa6\xb0\xb6\0" /* offset 16684 */ - "\xf0\xa6\xb5\xab\0" /* offset 16689 */ - "\xf0\xa6\xb3\x95\0" /* offset 16694 */ - "\xe4\x94\xab\0" /* offset 16699 */ - "\xe8\x93\xb1\0" /* offset 16703 */ - "\xe8\x93\xb3\0" /* offset 16707 */ - "\xe8\x94\x96\0" /* offset 16711 */ - "\xf0\xa7\x8f\x8a\0" /* offset 16715 */ - "\xe8\x95\xa4\0" /* offset 16720 */ - "\xf0\xa6\xbc\xac\0" /* offset 16724 */ - "\xe4\x95\x9d\0" /* offset 16729 */ - "\xe4\x95\xa1\0" /* offset 16733 */ - "\xf0\xa6\xbe\xb1\0" /* offset 16737 */ - "\xf0\xa7\x83\x92\0" /* offset 16742 */ - "\xe4\x95\xab\0" /* offset 16747 */ - "\xe8\x99\x90\0" /* offset 16751 */ - "\xe8\x99\xa7\0" /* offset 16755 */ - "\xe8\x99\xa9\0" /* offset 16759 */ - "\xe8\x9a\xa9\0" /* offset 16763 */ - "\xe8\x9a\x88\0" /* offset 16767 */ - "\xe8\x9c\x8e\0" /* offset 16771 */ - "\xe8\x9b\xa2\0" /* offset 16775 */ - "\xe8\x9c\xa8\0" /* offset 16779 */ - "\xe8\x9d\xab\0" /* offset 16783 */ - "\xe8\x9e\x86\0" /* offset 16787 */ - "\xe4\x97\x97\0" /* offset 16791 */ - "\xe8\x9f\xa1\0" /* offset 16795 */ - "\xe8\xa0\x81\0" /* offset 16799 */ - "\xe4\x97\xb9\0" /* offset 16803 */ - "\xe8\xa1\xa0\0" /* offset 16807 */ - "\xf0\xa7\x99\xa7\0" /* offset 16811 */ - "\xe8\xa3\x97\0" /* offset 16816 */ - "\xe8\xa3\x9e\0" /* offset 16820 */ - "\xe4\x98\xb5\0" /* offset 16824 */ - "\xe8\xa3\xba\0" /* offset 16828 */ - "\xe3\x92\xbb\0" /* offset 16832 */ - "\xf0\xa7\xa2\xae\0" /* offset 16836 */ - "\xf0\xa7\xa5\xa6\0" /* offset 16841 */ - "\xe4\x9a\xbe\0" /* offset 16846 */ - "\xe4\x9b\x87\0" /* offset 16850 */ - "\xe8\xaa\xa0\0" /* offset 16854 */ - "\xf0\xa7\xb2\xa8\0" /* offset 16858 */ - "\xe8\xb2\xab\0" /* offset 16863 */ - "\xe8\xb3\x81\0" /* offset 16867 */ - "\xe8\xb4\x9b\0" /* offset 16871 */ - "\xe8\xb5\xb7\0" /* offset 16875 */ - "\xf0\xa7\xbc\xaf\0" /* offset 16879 */ - "\xf0\xa0\xa0\x84\0" /* offset 16884 */ - "\xe8\xb7\x8b\0" /* offset 16889 */ - "\xe8\xb6\xbc\0" /* offset 16893 */ - "\xe8\xb7\xb0\0" /* offset 16897 */ - "\xf0\xa0\xa3\x9e\0" /* offset 16901 */ - "\xe8\xbb\x94\0" /* offset 16906 */ - "\xf0\xa8\x97\x92\0" /* offset 16910 */ - "\xf0\xa8\x97\xad\0" /* offset 16915 */ - "\xe9\x82\x94\0" /* offset 16920 */ - "\xe9\x83\xb1\0" /* offset 16924 */ - "\xe9\x84\x91\0" /* offset 16928 */ - "\xf0\xa8\x9c\xae\0" /* offset 16932 */ - "\xe9\x84\x9b\0" /* offset 16937 */ - "\xe9\x88\xb8\0" /* offset 16941 */ - "\xe9\x8b\x97\0" /* offset 16945 */ - "\xe9\x8b\x98\0" /* offset 16949 */ - "\xe9\x89\xbc\0" /* offset 16953 */ - "\xe9\x8f\xb9\0" /* offset 16957 */ - "\xe9\x90\x95\0" /* offset 16961 */ - "\xf0\xa8\xaf\xba\0" /* offset 16965 */ - "\xe9\x96\x8b\0" /* offset 16970 */ - "\xe4\xa6\x95\0" /* offset 16974 */ - "\xe9\x96\xb7\0" /* offset 16978 */ - "\xf0\xa8\xb5\xb7\0" /* offset 16982 */ - "\xe4\xa7\xa6\0" /* offset 16987 */ - "\xe9\x9b\x83\0" /* offset 16991 */ - "\xe5\xb6\xb2\0" /* offset 16995 */ - "\xe9\x9c\xa3\0" /* offset 16999 */ - "\xf0\xa9\x85\x85\0" /* offset 17003 */ - "\xf0\xa9\x88\x9a\0" /* offset 17008 */ - "\xe4\xa9\xae\0" /* offset 17013 */ - "\xe4\xa9\xb6\0" /* offset 17017 */ - "\xe9\x9f\xa0\0" /* offset 17021 */ - "\xf0\xa9\x90\x8a\0" /* offset 17025 */ - "\xe4\xaa\xb2\0" /* offset 17030 */ - "\xf0\xa9\x92\x96\0" /* offset 17034 */ - "\xe9\xa0\xa9\0" /* offset 17039 */ - "\xf0\xa9\x96\xb6\0" /* offset 17043 */ - "\xe9\xa3\xa2\0" /* offset 17048 */ - "\xe4\xac\xb3\0" /* offset 17052 */ - "\xe9\xa4\xa9\0" /* offset 17056 */ - "\xe9\xa6\xa7\0" /* offset 17060 */ - "\xe9\xa7\x82\0" /* offset 17064 */ - "\xe9\xa7\xbe\0" /* offset 17068 */ - "\xe4\xaf\x8e\0" /* offset 17072 */ - "\xf0\xa9\xac\xb0\0" /* offset 17076 */ - "\xe9\xb1\x80\0" /* offset 17081 */ - "\xe9\xb3\xbd\0" /* offset 17085 */ - "\xe4\xb3\x8e\0" /* offset 17089 */ - "\xe4\xb3\xad\0" /* offset 17093 */ - "\xe9\xb5\xa7\0" /* offset 17097 */ - "\xf0\xaa\x83\x8e\0" /* offset 17101 */ - "\xe4\xb3\xb8\0" /* offset 17106 */ - "\xf0\xaa\x84\x85\0" /* offset 17110 */ - "\xf0\xaa\x88\x8e\0" /* offset 17115 */ - "\xf0\xaa\x8a\x91\0" /* offset 17120 */ - "\xe4\xb5\x96\0" /* offset 17125 */ - "\xe9\xbb\xbe\0" /* offset 17129 */ - "\xe9\xbc\x85\0" /* offset 17133 */ - "\xe9\xbc\x8f\0" /* offset 17137 */ - "\xe9\xbc\x96\0" /* offset 17141 */ - "\xf0\xaa\x98\x80\0" /* offset 17145 */; - -#endif /* DECOMP_H */ diff --git a/lib/win32/glib-2.20.4/glib/guniprop.c b/lib/win32/glib-2.20.4/glib/guniprop.c deleted file mode 100644 index 8a28513edc161..0000000000000 --- a/lib/win32/glib-2.20.4/glib/guniprop.c +++ /dev/null @@ -1,1302 +0,0 @@ -/* guniprop.c - Unicode character properties. - * - * Copyright (C) 1999 Tom Tromey - * Copyright (C) 2000 Red Hat, Inc. - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library 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 - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ - -#include "config.h" - -#include -#include -#include -#include - -#include "glib.h" -#include "gunichartables.h" -#include "gmirroringtable.h" -#include "gscripttable.h" -#include "gunicodeprivate.h" -#include "galias.h" - -#define ATTR_TABLE(Page) (((Page) <= G_UNICODE_LAST_PAGE_PART1) \ - ? attr_table_part1[Page] \ - : attr_table_part2[(Page) - 0xe00]) - -#define ATTTABLE(Page, Char) \ - ((ATTR_TABLE(Page) == G_UNICODE_MAX_TABLE_INDEX) ? 0 : (attr_data[ATTR_TABLE(Page)][Char])) - -#define TTYPE_PART1(Page, Char) \ - ((type_table_part1[Page] >= G_UNICODE_MAX_TABLE_INDEX) \ - ? (type_table_part1[Page] - G_UNICODE_MAX_TABLE_INDEX) \ - : (type_data[type_table_part1[Page]][Char])) - -#define TTYPE_PART2(Page, Char) \ - ((type_table_part2[Page] >= G_UNICODE_MAX_TABLE_INDEX) \ - ? (type_table_part2[Page] - G_UNICODE_MAX_TABLE_INDEX) \ - : (type_data[type_table_part2[Page]][Char])) - -#define TYPE(Char) \ - (((Char) <= G_UNICODE_LAST_CHAR_PART1) \ - ? TTYPE_PART1 ((Char) >> 8, (Char) & 0xff) \ - : (((Char) >= 0xe0000 && (Char) <= G_UNICODE_LAST_CHAR) \ - ? TTYPE_PART2 (((Char) - 0xe0000) >> 8, (Char) & 0xff) \ - : G_UNICODE_UNASSIGNED)) - - -#define IS(Type, Class) (((guint)1 << (Type)) & (Class)) -#define OR(Type, Rest) (((guint)1 << (Type)) | (Rest)) - - - -#define ISALPHA(Type) IS ((Type), \ - OR (G_UNICODE_LOWERCASE_LETTER, \ - OR (G_UNICODE_UPPERCASE_LETTER, \ - OR (G_UNICODE_TITLECASE_LETTER, \ - OR (G_UNICODE_MODIFIER_LETTER, \ - OR (G_UNICODE_OTHER_LETTER, 0)))))) - -#define ISALDIGIT(Type) IS ((Type), \ - OR (G_UNICODE_DECIMAL_NUMBER, \ - OR (G_UNICODE_LETTER_NUMBER, \ - OR (G_UNICODE_OTHER_NUMBER, \ - OR (G_UNICODE_LOWERCASE_LETTER, \ - OR (G_UNICODE_UPPERCASE_LETTER, \ - OR (G_UNICODE_TITLECASE_LETTER, \ - OR (G_UNICODE_MODIFIER_LETTER, \ - OR (G_UNICODE_OTHER_LETTER, 0))))))))) - -#define ISMARK(Type) IS ((Type), \ - OR (G_UNICODE_NON_SPACING_MARK, \ - OR (G_UNICODE_COMBINING_MARK, \ - OR (G_UNICODE_ENCLOSING_MARK, 0)))) - -#define ISZEROWIDTHTYPE(Type) IS ((Type), \ - OR (G_UNICODE_NON_SPACING_MARK, \ - OR (G_UNICODE_ENCLOSING_MARK, \ - OR (G_UNICODE_FORMAT, 0)))) - -/** - * g_unichar_isalnum: - * @c: a Unicode character - * - * Determines whether a character is alphanumeric. - * Given some UTF-8 text, obtain a character value - * with g_utf8_get_char(). - * - * Return value: %TRUE if @c is an alphanumeric character - **/ -gboolean -g_unichar_isalnum (gunichar c) -{ - return ISALDIGIT (TYPE (c)) ? TRUE : FALSE; -} - -/** - * g_unichar_isalpha: - * @c: a Unicode character - * - * Determines whether a character is alphabetic (i.e. a letter). - * Given some UTF-8 text, obtain a character value with - * g_utf8_get_char(). - * - * Return value: %TRUE if @c is an alphabetic character - **/ -gboolean -g_unichar_isalpha (gunichar c) -{ - return ISALPHA (TYPE (c)) ? TRUE : FALSE; -} - - -/** - * g_unichar_iscntrl: - * @c: a Unicode character - * - * Determines whether a character is a control character. - * Given some UTF-8 text, obtain a character value with - * g_utf8_get_char(). - * - * Return value: %TRUE if @c is a control character - **/ -gboolean -g_unichar_iscntrl (gunichar c) -{ - return TYPE (c) == G_UNICODE_CONTROL; -} - -/** - * g_unichar_isdigit: - * @c: a Unicode character - * - * Determines whether a character is numeric (i.e. a digit). This - * covers ASCII 0-9 and also digits in other languages/scripts. Given - * some UTF-8 text, obtain a character value with g_utf8_get_char(). - * - * Return value: %TRUE if @c is a digit - **/ -gboolean -g_unichar_isdigit (gunichar c) -{ - return TYPE (c) == G_UNICODE_DECIMAL_NUMBER; -} - - -/** - * g_unichar_isgraph: - * @c: a Unicode character - * - * Determines whether a character is printable and not a space - * (returns %FALSE for control characters, format characters, and - * spaces). g_unichar_isprint() is similar, but returns %TRUE for - * spaces. Given some UTF-8 text, obtain a character value with - * g_utf8_get_char(). - * - * Return value: %TRUE if @c is printable unless it's a space - **/ -gboolean -g_unichar_isgraph (gunichar c) -{ - return !IS (TYPE(c), - OR (G_UNICODE_CONTROL, - OR (G_UNICODE_FORMAT, - OR (G_UNICODE_UNASSIGNED, - OR (G_UNICODE_SURROGATE, - OR (G_UNICODE_SPACE_SEPARATOR, - 0)))))); -} - -/** - * g_unichar_islower: - * @c: a Unicode character - * - * Determines whether a character is a lowercase letter. - * Given some UTF-8 text, obtain a character value with - * g_utf8_get_char(). - * - * Return value: %TRUE if @c is a lowercase letter - **/ -gboolean -g_unichar_islower (gunichar c) -{ - return TYPE (c) == G_UNICODE_LOWERCASE_LETTER; -} - - -/** - * g_unichar_isprint: - * @c: a Unicode character - * - * Determines whether a character is printable. - * Unlike g_unichar_isgraph(), returns %TRUE for spaces. - * Given some UTF-8 text, obtain a character value with - * g_utf8_get_char(). - * - * Return value: %TRUE if @c is printable - **/ -gboolean -g_unichar_isprint (gunichar c) -{ - return !IS (TYPE(c), - OR (G_UNICODE_CONTROL, - OR (G_UNICODE_FORMAT, - OR (G_UNICODE_UNASSIGNED, - OR (G_UNICODE_SURROGATE, - 0))))); -} - -/** - * g_unichar_ispunct: - * @c: a Unicode character - * - * Determines whether a character is punctuation or a symbol. - * Given some UTF-8 text, obtain a character value with - * g_utf8_get_char(). - * - * Return value: %TRUE if @c is a punctuation or symbol character - **/ -gboolean -g_unichar_ispunct (gunichar c) -{ - return IS (TYPE(c), - OR (G_UNICODE_CONNECT_PUNCTUATION, - OR (G_UNICODE_DASH_PUNCTUATION, - OR (G_UNICODE_CLOSE_PUNCTUATION, - OR (G_UNICODE_FINAL_PUNCTUATION, - OR (G_UNICODE_INITIAL_PUNCTUATION, - OR (G_UNICODE_OTHER_PUNCTUATION, - OR (G_UNICODE_OPEN_PUNCTUATION, - OR (G_UNICODE_CURRENCY_SYMBOL, - OR (G_UNICODE_MODIFIER_SYMBOL, - OR (G_UNICODE_MATH_SYMBOL, - OR (G_UNICODE_OTHER_SYMBOL, - 0)))))))))))) ? TRUE : FALSE; -} - -/** - * g_unichar_isspace: - * @c: a Unicode character - * - * Determines whether a character is a space, tab, or line separator - * (newline, carriage return, etc.). Given some UTF-8 text, obtain a - * character value with g_utf8_get_char(). - * - * (Note: don't use this to do word breaking; you have to use - * Pango or equivalent to get word breaking right, the algorithm - * is fairly complex.) - * - * Return value: %TRUE if @c is a space character - **/ -gboolean -g_unichar_isspace (gunichar c) -{ - switch (c) - { - /* special-case these since Unicode thinks they are not spaces */ - case '\t': - case '\n': - case '\r': - case '\f': - return TRUE; - break; - - default: - { - return IS (TYPE(c), - OR (G_UNICODE_SPACE_SEPARATOR, - OR (G_UNICODE_LINE_SEPARATOR, - OR (G_UNICODE_PARAGRAPH_SEPARATOR, - 0)))) ? TRUE : FALSE; - } - break; - } -} - -/** - * g_unichar_ismark: - * @c: a Unicode character - * - * Determines whether a character is a mark (non-spacing mark, - * combining mark, or enclosing mark in Unicode speak). - * Given some UTF-8 text, obtain a character value - * with g_utf8_get_char(). - * - * Note: in most cases where isalpha characters are allowed, - * ismark characters should be allowed to as they are essential - * for writing most European languages as well as many non-Latin - * scripts. - * - * Return value: %TRUE if @c is a mark character - * - * Since: 2.14 - **/ -gboolean -g_unichar_ismark (gunichar c) -{ - return ISMARK (TYPE (c)); -} - -/** - * g_unichar_isupper: - * @c: a Unicode character - * - * Determines if a character is uppercase. - * - * Return value: %TRUE if @c is an uppercase character - **/ -gboolean -g_unichar_isupper (gunichar c) -{ - return TYPE (c) == G_UNICODE_UPPERCASE_LETTER; -} - -/** - * g_unichar_istitle: - * @c: a Unicode character - * - * Determines if a character is titlecase. Some characters in - * Unicode which are composites, such as the DZ digraph - * have three case variants instead of just two. The titlecase - * form is used at the beginning of a word where only the - * first letter is capitalized. The titlecase form of the DZ - * digraph is U+01F2 LATIN CAPITAL LETTTER D WITH SMALL LETTER Z. - * - * Return value: %TRUE if the character is titlecase - **/ -gboolean -g_unichar_istitle (gunichar c) -{ - unsigned int i; - for (i = 0; i < G_N_ELEMENTS (title_table); ++i) - if (title_table[i][0] == c) - return TRUE; - return FALSE; -} - -/** - * g_unichar_isxdigit: - * @c: a Unicode character. - * - * Determines if a character is a hexidecimal digit. - * - * Return value: %TRUE if the character is a hexadecimal digit - **/ -gboolean -g_unichar_isxdigit (gunichar c) -{ - return ((c >= 'a' && c <= 'f') - || (c >= 'A' && c <= 'F') - || (TYPE (c) == G_UNICODE_DECIMAL_NUMBER)); -} - -/** - * g_unichar_isdefined: - * @c: a Unicode character - * - * Determines if a given character is assigned in the Unicode - * standard. - * - * Return value: %TRUE if the character has an assigned value - **/ -gboolean -g_unichar_isdefined (gunichar c) -{ - return !IS (TYPE(c), - OR (G_UNICODE_UNASSIGNED, - OR (G_UNICODE_SURROGATE, - 0))); -} - -/** - * g_unichar_iszerowidth: - * @c: a Unicode character - * - * Determines if a given character typically takes zero width when rendered. - * The return value is %TRUE for all non-spacing and enclosing marks - * (e.g., combining accents), format characters, zero-width - * space, but not U+00AD SOFT HYPHEN. - * - * A typical use of this function is with one of g_unichar_iswide() or - * g_unichar_iswide_cjk() to determine the number of cells a string occupies - * when displayed on a grid display (terminals). However, note that not all - * terminals support zero-width rendering of zero-width marks. - * - * Return value: %TRUE if the character has zero width - * - * Since: 2.14 - **/ -gboolean -g_unichar_iszerowidth (gunichar c) -{ - if (G_UNLIKELY (c == 0x00AD)) - return FALSE; - - if (G_UNLIKELY (ISZEROWIDTHTYPE (TYPE (c)))) - return TRUE; - - if (G_UNLIKELY ((c >= 0x1160 && c < 0x1200) || - c == 0x200B)) - return TRUE; - - return FALSE; -} - -struct Interval -{ - gunichar start, end; -}; - -static int -interval_compare (const void *key, const void *elt) -{ - gunichar c = GPOINTER_TO_UINT (key); - struct Interval *interval = (struct Interval *)elt; - - if (c < interval->start) - return -1; - if (c > interval->end) - return +1; - - return 0; -} - -/** - * g_unichar_iswide: - * @c: a Unicode character - * - * Determines if a character is typically rendered in a double-width - * cell. - * - * Return value: %TRUE if the character is wide - **/ -gboolean -g_unichar_iswide (gunichar c) -{ - /* sorted list of intervals of East_Asian_Width = W and F characters - * from Unicode 5.1.0. produced by mungling output of: - * grep ';[FW]\>' EastAsianWidth.txt */ - static const struct Interval wide[] = { - {0x1100, 0x1159}, {0x115F, 0x115F}, {0x2329, 0x232A}, {0x2E80, 0x2E99}, - {0x2E9B, 0x2EF3}, {0x2F00, 0x2FD5}, {0x2FF0, 0x2FFB}, {0x3000, 0x303E}, - {0x3041, 0x3096}, {0x3099, 0x30FF}, {0x3105, 0x312D}, {0x3131, 0x318E}, - {0x3190, 0x31B7}, {0x31C0, 0x31E3}, {0x31F0, 0x321E}, {0x3220, 0x3243}, - {0x3250, 0x32FE}, {0x3300, 0x4DB5}, {0x4E00, 0x9FC3}, {0xA000, 0xA48C}, - {0xA490, 0xA4C6}, {0xAC00, 0xD7A3}, {0xF900, 0xFA2D}, {0xFA30, 0xFA6A}, - {0xFA70, 0xFAD9}, {0xFE10, 0xFE19}, {0xFE30, 0xFE52}, {0xFE54, 0xFE66}, - {0xFE68, 0xFE6B}, {0xFF01, 0xFF60}, {0xFFE0, 0xFFE6}, {0x20000, 0x2FFFD}, - {0x30000, 0x3FFFD} - }; - - if (bsearch (GUINT_TO_POINTER (c), wide, G_N_ELEMENTS (wide), sizeof wide[0], - interval_compare)) - return TRUE; - - return FALSE; -} - - -/** - * g_unichar_iswide_cjk: - * @c: a Unicode character - * - * Determines if a character is typically rendered in a double-width - * cell under legacy East Asian locales. If a character is wide according to - * g_unichar_iswide(), then it is also reported wide with this function, but - * the converse is not necessarily true. See the - * Unicode Standard - * Annex #11 for details. - * - * If a character passes the g_unichar_iswide() test then it will also pass - * this test, but not the other way around. Note that some characters may - * pas both this test and g_unichar_iszerowidth(). - * - * Return value: %TRUE if the character is wide in legacy East Asian locales - * - * Since: 2.12 - */ -gboolean -g_unichar_iswide_cjk (gunichar c) -{ - /* sorted list of intervals of East_Asian_Width = A and F characters - * from Unicode 5.1.0. produced by mungling output of: - * grep ';[A]\>' EastAsianWidth.txt */ - static const struct Interval ambiguous[] = { - {0x00A1, 0x00A1}, {0x00A4, 0x00A4}, {0x00A7, 0x00A8}, {0x00AA, 0x00AA}, - {0x00AD, 0x00AE}, {0x00B0, 0x00B4}, {0x00B6, 0x00BA}, {0x00BC, 0x00BF}, - {0x00C6, 0x00C6}, {0x00D0, 0x00D0}, {0x00D7, 0x00D8}, {0x00DE, 0x00E1}, - {0x00E6, 0x00E6}, {0x00E8, 0x00EA}, {0x00EC, 0x00ED}, {0x00F0, 0x00F0}, - {0x00F2, 0x00F3}, {0x00F7, 0x00FA}, {0x00FC, 0x00FC}, {0x00FE, 0x00FE}, - {0x0101, 0x0101}, {0x0111, 0x0111}, {0x0113, 0x0113}, {0x011B, 0x011B}, - {0x0126, 0x0127}, {0x012B, 0x012B}, {0x0131, 0x0133}, {0x0138, 0x0138}, - {0x013F, 0x0142}, {0x0144, 0x0144}, {0x0148, 0x014B}, {0x014D, 0x014D}, - {0x0152, 0x0153}, {0x0166, 0x0167}, {0x016B, 0x016B}, {0x01CE, 0x01CE}, - {0x01D0, 0x01D0}, {0x01D2, 0x01D2}, {0x01D4, 0x01D4}, {0x01D6, 0x01D6}, - {0x01D8, 0x01D8}, {0x01DA, 0x01DA}, {0x01DC, 0x01DC}, {0x0251, 0x0251}, - {0x0261, 0x0261}, {0x02C4, 0x02C4}, {0x02C7, 0x02C7}, {0x02C9, 0x02CB}, - {0x02CD, 0x02CD}, {0x02D0, 0x02D0}, {0x02D8, 0x02DB}, {0x02DD, 0x02DD}, - {0x02DF, 0x02DF}, {0x0300, 0x036F}, {0x0391, 0x03A1}, {0x03A3, 0x03A9}, - {0x03B1, 0x03C1}, {0x03C3, 0x03C9}, {0x0401, 0x0401}, {0x0410, 0x044F}, - {0x0451, 0x0451}, {0x2010, 0x2010}, {0x2013, 0x2016}, {0x2018, 0x2019}, - {0x201C, 0x201D}, {0x2020, 0x2022}, {0x2024, 0x2027}, {0x2030, 0x2030}, - {0x2032, 0x2033}, {0x2035, 0x2035}, {0x203B, 0x203B}, {0x203E, 0x203E}, - {0x2074, 0x2074}, {0x207F, 0x207F}, {0x2081, 0x2084}, {0x20AC, 0x20AC}, - {0x2103, 0x2103}, {0x2105, 0x2105}, {0x2109, 0x2109}, {0x2113, 0x2113}, - {0x2116, 0x2116}, {0x2121, 0x2122}, {0x2126, 0x2126}, {0x212B, 0x212B}, - {0x2153, 0x2154}, {0x215B, 0x215E}, {0x2160, 0x216B}, {0x2170, 0x2179}, - {0x2190, 0x2199}, {0x21B8, 0x21B9}, {0x21D2, 0x21D2}, {0x21D4, 0x21D4}, - {0x21E7, 0x21E7}, {0x2200, 0x2200}, {0x2202, 0x2203}, {0x2207, 0x2208}, - {0x220B, 0x220B}, {0x220F, 0x220F}, {0x2211, 0x2211}, {0x2215, 0x2215}, - {0x221A, 0x221A}, {0x221D, 0x2220}, {0x2223, 0x2223}, {0x2225, 0x2225}, - {0x2227, 0x222C}, {0x222E, 0x222E}, {0x2234, 0x2237}, {0x223C, 0x223D}, - {0x2248, 0x2248}, {0x224C, 0x224C}, {0x2252, 0x2252}, {0x2260, 0x2261}, - {0x2264, 0x2267}, {0x226A, 0x226B}, {0x226E, 0x226F}, {0x2282, 0x2283}, - {0x2286, 0x2287}, {0x2295, 0x2295}, {0x2299, 0x2299}, {0x22A5, 0x22A5}, - {0x22BF, 0x22BF}, {0x2312, 0x2312}, {0x2460, 0x24E9}, {0x24EB, 0x254B}, - {0x2550, 0x2573}, {0x2580, 0x258F}, {0x2592, 0x2595}, {0x25A0, 0x25A1}, - {0x25A3, 0x25A9}, {0x25B2, 0x25B3}, {0x25B6, 0x25B7}, {0x25BC, 0x25BD}, - {0x25C0, 0x25C1}, {0x25C6, 0x25C8}, {0x25CB, 0x25CB}, {0x25CE, 0x25D1}, - {0x25E2, 0x25E5}, {0x25EF, 0x25EF}, {0x2605, 0x2606}, {0x2609, 0x2609}, - {0x260E, 0x260F}, {0x2614, 0x2615}, {0x261C, 0x261C}, {0x261E, 0x261E}, - {0x2640, 0x2640}, {0x2642, 0x2642}, {0x2660, 0x2661}, {0x2663, 0x2665}, - {0x2667, 0x266A}, {0x266C, 0x266D}, {0x266F, 0x266F}, {0x273D, 0x273D}, - {0x2776, 0x277F}, {0xE000, 0xF8FF}, {0xFE00, 0xFE0F}, {0xFFFD, 0xFFFD}, - {0xE0100, 0xE01EF}, {0xF0000, 0xFFFFD}, {0x100000, 0x10FFFD} - }; - - if (g_unichar_iswide (c)) - return TRUE; - - if (bsearch (GUINT_TO_POINTER (c), ambiguous, G_N_ELEMENTS (ambiguous), sizeof ambiguous[0], - interval_compare)) - return TRUE; - - return FALSE; -} - - -/** - * g_unichar_toupper: - * @c: a Unicode character - * - * Converts a character to uppercase. - * - * Return value: the result of converting @c to uppercase. - * If @c is not an lowercase or titlecase character, - * or has no upper case equivalent @c is returned unchanged. - **/ -gunichar -g_unichar_toupper (gunichar c) -{ - int t = TYPE (c); - if (t == G_UNICODE_LOWERCASE_LETTER) - { - gunichar val = ATTTABLE (c >> 8, c & 0xff); - if (val >= 0x1000000) - { - const gchar *p = special_case_table + val - 0x1000000; - val = g_utf8_get_char (p); - } - /* Some lowercase letters, e.g., U+000AA, FEMININE ORDINAL INDICATOR, - * do not have an uppercase equivalent, in which case val will be - * zero. - */ - return val ? val : c; - } - else if (t == G_UNICODE_TITLECASE_LETTER) - { - unsigned int i; - for (i = 0; i < G_N_ELEMENTS (title_table); ++i) - { - if (title_table[i][0] == c) - return title_table[i][1]; - } - } - return c; -} - -/** - * g_unichar_tolower: - * @c: a Unicode character. - * - * Converts a character to lower case. - * - * Return value: the result of converting @c to lower case. - * If @c is not an upperlower or titlecase character, - * or has no lowercase equivalent @c is returned unchanged. - **/ -gunichar -g_unichar_tolower (gunichar c) -{ - int t = TYPE (c); - if (t == G_UNICODE_UPPERCASE_LETTER) - { - gunichar val = ATTTABLE (c >> 8, c & 0xff); - if (val >= 0x1000000) - { - const gchar *p = special_case_table + val - 0x1000000; - return g_utf8_get_char (p); - } - else - { - /* Not all uppercase letters are guaranteed to have a lowercase - * equivalent. If this is the case, val will be zero. */ - return val ? val : c; - } - } - else if (t == G_UNICODE_TITLECASE_LETTER) - { - unsigned int i; - for (i = 0; i < G_N_ELEMENTS (title_table); ++i) - { - if (title_table[i][0] == c) - return title_table[i][2]; - } - } - return c; -} - -/** - * g_unichar_totitle: - * @c: a Unicode character - * - * Converts a character to the titlecase. - * - * Return value: the result of converting @c to titlecase. - * If @c is not an uppercase or lowercase character, - * @c is returned unchanged. - **/ -gunichar -g_unichar_totitle (gunichar c) -{ - unsigned int i; - for (i = 0; i < G_N_ELEMENTS (title_table); ++i) - { - if (title_table[i][0] == c || title_table[i][1] == c - || title_table[i][2] == c) - return title_table[i][0]; - } - - if (TYPE (c) == G_UNICODE_LOWERCASE_LETTER) - return g_unichar_toupper (c); - - return c; -} - -/** - * g_unichar_digit_value: - * @c: a Unicode character - * - * Determines the numeric value of a character as a decimal - * digit. - * - * Return value: If @c is a decimal digit (according to - * g_unichar_isdigit()), its numeric value. Otherwise, -1. - **/ -int -g_unichar_digit_value (gunichar c) -{ - if (TYPE (c) == G_UNICODE_DECIMAL_NUMBER) - return ATTTABLE (c >> 8, c & 0xff); - return -1; -} - -/** - * g_unichar_xdigit_value: - * @c: a Unicode character - * - * Determines the numeric value of a character as a hexidecimal - * digit. - * - * Return value: If @c is a hex digit (according to - * g_unichar_isxdigit()), its numeric value. Otherwise, -1. - **/ -int -g_unichar_xdigit_value (gunichar c) -{ - if (c >= 'A' && c <= 'F') - return c - 'A' + 10; - if (c >= 'a' && c <= 'f') - return c - 'a' + 10; - if (TYPE (c) == G_UNICODE_DECIMAL_NUMBER) - return ATTTABLE (c >> 8, c & 0xff); - return -1; -} - -/** - * g_unichar_type: - * @c: a Unicode character - * - * Classifies a Unicode character by type. - * - * Return value: the type of the character. - **/ -GUnicodeType -g_unichar_type (gunichar c) -{ - return TYPE (c); -} - -/* - * Case mapping functions - */ - -typedef enum { - LOCALE_NORMAL, - LOCALE_TURKIC, - LOCALE_LITHUANIAN -} LocaleType; - -static LocaleType -get_locale_type (void) -{ -#ifdef G_OS_WIN32 - char *tem = g_win32_getlocale (); - char locale[2]; - - locale[0] = tem[0]; - locale[1] = tem[1]; - g_free (tem); -#else - const char *locale = setlocale (LC_CTYPE, NULL); -#endif - - switch (locale[0]) - { - case 'a': - if (locale[1] == 'z') - return LOCALE_TURKIC; - break; - case 'l': - if (locale[1] == 't') - return LOCALE_LITHUANIAN; - break; - case 't': - if (locale[1] == 'r') - return LOCALE_TURKIC; - break; - } - - return LOCALE_NORMAL; -} - -static gint -output_marks (const char **p_inout, - char *out_buffer, - gboolean remove_dot) -{ - const char *p = *p_inout; - gint len = 0; - - while (*p) - { - gunichar c = g_utf8_get_char (p); - - if (ISMARK (TYPE (c))) - { - if (!remove_dot || c != 0x307 /* COMBINING DOT ABOVE */) - len += g_unichar_to_utf8 (c, out_buffer ? out_buffer + len : NULL); - p = g_utf8_next_char (p); - } - else - break; - } - - *p_inout = p; - return len; -} - -static gint -output_special_case (gchar *out_buffer, - int offset, - int type, - int which) -{ - const gchar *p = special_case_table + offset; - gint len; - - if (type != G_UNICODE_TITLECASE_LETTER) - p = g_utf8_next_char (p); - - if (which == 1) - p += strlen (p) + 1; - - len = strlen (p); - if (out_buffer) - memcpy (out_buffer, p, len); - - return len; -} - -static gsize -real_toupper (const gchar *str, - gssize max_len, - gchar *out_buffer, - LocaleType locale_type) -{ - const gchar *p = str; - const char *last = NULL; - gsize len = 0; - gboolean last_was_i = FALSE; - - while ((max_len < 0 || p < str + max_len) && *p) - { - gunichar c = g_utf8_get_char (p); - int t = TYPE (c); - gunichar val; - - last = p; - p = g_utf8_next_char (p); - - if (locale_type == LOCALE_LITHUANIAN) - { - if (c == 'i') - last_was_i = TRUE; - else - { - if (last_was_i) - { - /* Nasty, need to remove any dot above. Though - * I think only E WITH DOT ABOVE occurs in practice - * which could simplify this considerably. - */ - gsize decomp_len, i; - gunichar *decomp; - - decomp = g_unicode_canonical_decomposition (c, &decomp_len); - for (i=0; i < decomp_len; i++) - { - if (decomp[i] != 0x307 /* COMBINING DOT ABOVE */) - len += g_unichar_to_utf8 (g_unichar_toupper (decomp[i]), out_buffer ? out_buffer + len : NULL); - } - g_free (decomp); - - len += output_marks (&p, out_buffer ? out_buffer + len : NULL, TRUE); - - continue; - } - - if (!ISMARK (t)) - last_was_i = FALSE; - } - } - - if (locale_type == LOCALE_TURKIC && c == 'i') - { - /* i => LATIN CAPITAL LETTER I WITH DOT ABOVE */ - len += g_unichar_to_utf8 (0x130, out_buffer ? out_buffer + len : NULL); - } - else if (c == 0x0345) /* COMBINING GREEK YPOGEGRAMMENI */ - { - /* Nasty, need to move it after other combining marks .. this would go away if - * we normalized first. - */ - len += output_marks (&p, out_buffer ? out_buffer + len : NULL, FALSE); - - /* And output as GREEK CAPITAL LETTER IOTA */ - len += g_unichar_to_utf8 (0x399, out_buffer ? out_buffer + len : NULL); - } - else if (IS (t, - OR (G_UNICODE_LOWERCASE_LETTER, - OR (G_UNICODE_TITLECASE_LETTER, - 0)))) - { - val = ATTTABLE (c >> 8, c & 0xff); - - if (val >= 0x1000000) - { - len += output_special_case (out_buffer ? out_buffer + len : NULL, val - 0x1000000, t, - t == G_UNICODE_LOWERCASE_LETTER ? 0 : 1); - } - else - { - if (t == G_UNICODE_TITLECASE_LETTER) - { - unsigned int i; - for (i = 0; i < G_N_ELEMENTS (title_table); ++i) - { - if (title_table[i][0] == c) - { - val = title_table[i][1]; - break; - } - } - } - - /* Some lowercase letters, e.g., U+000AA, FEMININE ORDINAL INDICATOR, - * do not have an uppercase equivalent, in which case val will be - * zero. */ - len += g_unichar_to_utf8 (val ? val : c, out_buffer ? out_buffer + len : NULL); - } - } - else - { - gsize char_len = g_utf8_skip[*(guchar *)last]; - - if (out_buffer) - memcpy (out_buffer + len, last, char_len); - - len += char_len; - } - - } - - return len; -} - -/** - * g_utf8_strup: - * @str: a UTF-8 encoded string - * @len: length of @str, in bytes, or -1 if @str is nul-terminated. - * - * Converts all Unicode characters in the string that have a case - * to uppercase. The exact manner that this is done depends - * on the current locale, and may result in the number of - * characters in the string increasing. (For instance, the - * German ess-zet will be changed to SS.) - * - * Return value: a newly allocated string, with all characters - * converted to uppercase. - **/ -gchar * -g_utf8_strup (const gchar *str, - gssize len) -{ - gsize result_len; - LocaleType locale_type; - gchar *result; - - g_return_val_if_fail (str != NULL, NULL); - - locale_type = get_locale_type (); - - /* - * We use a two pass approach to keep memory management simple - */ - result_len = real_toupper (str, len, NULL, locale_type); - result = g_malloc (result_len + 1); - real_toupper (str, len, result, locale_type); - result[result_len] = '\0'; - - return result; -} - -/* traverses the string checking for characters with combining class == 230 - * until a base character is found */ -static gboolean -has_more_above (const gchar *str) -{ - const gchar *p = str; - gint combining_class; - - while (*p) - { - combining_class = g_unichar_combining_class (g_utf8_get_char (p)); - if (combining_class == 230) - return TRUE; - else if (combining_class == 0) - break; - - p = g_utf8_next_char (p); - } - - return FALSE; -} - -static gsize -real_tolower (const gchar *str, - gssize max_len, - gchar *out_buffer, - LocaleType locale_type) -{ - const gchar *p = str; - const char *last = NULL; - gsize len = 0; - - while ((max_len < 0 || p < str + max_len) && *p) - { - gunichar c = g_utf8_get_char (p); - int t = TYPE (c); - gunichar val; - - last = p; - p = g_utf8_next_char (p); - - if (locale_type == LOCALE_TURKIC && c == 'I') - { - if (g_utf8_get_char (p) == 0x0307) - { - /* I + COMBINING DOT ABOVE => i (U+0069) */ - len += g_unichar_to_utf8 (0x0069, out_buffer ? out_buffer + len : NULL); - p = g_utf8_next_char (p); - } - else - { - /* I => LATIN SMALL LETTER DOTLESS I */ - len += g_unichar_to_utf8 (0x131, out_buffer ? out_buffer + len : NULL); - } - } - /* Introduce an explicit dot above when lowercasing capital I's and J's - * whenever there are more accents above. [SpecialCasing.txt] */ - else if (locale_type == LOCALE_LITHUANIAN && - (c == 0x00cc || c == 0x00cd || c == 0x0128)) - { - len += g_unichar_to_utf8 (0x0069, out_buffer ? out_buffer + len : NULL); - len += g_unichar_to_utf8 (0x0307, out_buffer ? out_buffer + len : NULL); - - switch (c) - { - case 0x00cc: - len += g_unichar_to_utf8 (0x0300, out_buffer ? out_buffer + len : NULL); - break; - case 0x00cd: - len += g_unichar_to_utf8 (0x0301, out_buffer ? out_buffer + len : NULL); - break; - case 0x0128: - len += g_unichar_to_utf8 (0x0303, out_buffer ? out_buffer + len : NULL); - break; - } - } - else if (locale_type == LOCALE_LITHUANIAN && - (c == 'I' || c == 'J' || c == 0x012e) && - has_more_above (p)) - { - len += g_unichar_to_utf8 (g_unichar_tolower (c), out_buffer ? out_buffer + len : NULL); - len += g_unichar_to_utf8 (0x0307, out_buffer ? out_buffer + len : NULL); - } - else if (c == 0x03A3) /* GREEK CAPITAL LETTER SIGMA */ - { - if ((max_len < 0 || p < str + max_len) && *p) - { - gunichar next_c = g_utf8_get_char (p); - int next_type = TYPE(next_c); - - /* SIGMA mapps differently depending on whether it is - * final or not. The following simplified test would - * fail in the case of combining marks following the - * sigma, but I don't think that occurs in real text. - * The test here matches that in ICU. - */ - if (ISALPHA (next_type)) /* Lu,Ll,Lt,Lm,Lo */ - val = 0x3c3; /* GREEK SMALL SIGMA */ - else - val = 0x3c2; /* GREEK SMALL FINAL SIGMA */ - } - else - val = 0x3c2; /* GREEK SMALL FINAL SIGMA */ - - len += g_unichar_to_utf8 (val, out_buffer ? out_buffer + len : NULL); - } - else if (IS (t, - OR (G_UNICODE_UPPERCASE_LETTER, - OR (G_UNICODE_TITLECASE_LETTER, - 0)))) - { - val = ATTTABLE (c >> 8, c & 0xff); - - if (val >= 0x1000000) - { - len += output_special_case (out_buffer ? out_buffer + len : NULL, val - 0x1000000, t, 0); - } - else - { - if (t == G_UNICODE_TITLECASE_LETTER) - { - unsigned int i; - for (i = 0; i < G_N_ELEMENTS (title_table); ++i) - { - if (title_table[i][0] == c) - { - val = title_table[i][2]; - break; - } - } - } - - /* Not all uppercase letters are guaranteed to have a lowercase - * equivalent. If this is the case, val will be zero. */ - len += g_unichar_to_utf8 (val ? val : c, out_buffer ? out_buffer + len : NULL); - } - } - else - { - gsize char_len = g_utf8_skip[*(guchar *)last]; - - if (out_buffer) - memcpy (out_buffer + len, last, char_len); - - len += char_len; - } - - } - - return len; -} - -/** - * g_utf8_strdown: - * @str: a UTF-8 encoded string - * @len: length of @str, in bytes, or -1 if @str is nul-terminated. - * - * Converts all Unicode characters in the string that have a case - * to lowercase. The exact manner that this is done depends - * on the current locale, and may result in the number of - * characters in the string changing. - * - * Return value: a newly allocated string, with all characters - * converted to lowercase. - **/ -gchar * -g_utf8_strdown (const gchar *str, - gssize len) -{ - gsize result_len; - LocaleType locale_type; - gchar *result; - - g_return_val_if_fail (str != NULL, NULL); - - locale_type = get_locale_type (); - - /* - * We use a two pass approach to keep memory management simple - */ - result_len = real_tolower (str, len, NULL, locale_type); - result = g_malloc (result_len + 1); - real_tolower (str, len, result, locale_type); - result[result_len] = '\0'; - - return result; -} - -/** - * g_utf8_casefold: - * @str: a UTF-8 encoded string - * @len: length of @str, in bytes, or -1 if @str is nul-terminated. - * - * Converts a string into a form that is independent of case. The - * result will not correspond to any particular case, but can be - * compared for equality or ordered with the results of calling - * g_utf8_casefold() on other strings. - * - * Note that calling g_utf8_casefold() followed by g_utf8_collate() is - * only an approximation to the correct linguistic case insensitive - * ordering, though it is a fairly good one. Getting this exactly - * right would require a more sophisticated collation function that - * takes case sensitivity into account. GLib does not currently - * provide such a function. - * - * Return value: a newly allocated string, that is a - * case independent form of @str. - **/ -gchar * -g_utf8_casefold (const gchar *str, - gssize len) -{ - GString *result; - const char *p; - - g_return_val_if_fail (str != NULL, NULL); - - result = g_string_new (NULL); - p = str; - while ((len < 0 || p < str + len) && *p) - { - gunichar ch = g_utf8_get_char (p); - - int start = 0; - int end = G_N_ELEMENTS (casefold_table); - - if (ch >= casefold_table[start].ch && - ch <= casefold_table[end - 1].ch) - { - while (TRUE) - { - int half = (start + end) / 2; - if (ch == casefold_table[half].ch) - { - g_string_append (result, casefold_table[half].data); - goto next; - } - else if (half == start) - break; - else if (ch > casefold_table[half].ch) - start = half; - else - end = half; - } - } - - g_string_append_unichar (result, g_unichar_tolower (ch)); - - next: - p = g_utf8_next_char (p); - } - - return g_string_free (result, FALSE); -} - -/** - * g_unichar_get_mirror_char: - * @ch: a Unicode character - * @mirrored_ch: location to store the mirrored character - * - * In Unicode, some characters are mirrored. This - * means that their images are mirrored horizontally in text that is laid - * out from right to left. For instance, "(" would become its mirror image, - * ")", in right-to-left text. - * - * If @ch has the Unicode mirrored property and there is another unicode - * character that typically has a glyph that is the mirror image of @ch's - * glyph and @mirrored_ch is set, it puts that character in the address - * pointed to by @mirrored_ch. Otherwise the original character is put. - * - * Return value: %TRUE if @ch has a mirrored character, %FALSE otherwise - * - * Since: 2.4 - **/ -gboolean -g_unichar_get_mirror_char (gunichar ch, - gunichar *mirrored_ch) -{ - gboolean found; - gunichar mirrored; - - mirrored = GLIB_GET_MIRRORING(ch); - - found = ch != mirrored; - if (mirrored_ch) - *mirrored_ch = mirrored; - - return found; - -} - -#define G_SCRIPT_TABLE_MIDPOINT (G_N_ELEMENTS (g_script_table) / 2) - -static inline GUnicodeScript -g_unichar_get_script_bsearch (gunichar ch) -{ - int lower = 0; - int upper = G_N_ELEMENTS (g_script_table) - 1; - static int saved_mid = G_SCRIPT_TABLE_MIDPOINT; - int mid = saved_mid; - - - do - { - if (ch < g_script_table[mid].start) - upper = mid - 1; - else if (ch >= g_script_table[mid].start + g_script_table[mid].chars) - lower = mid + 1; - else - return g_script_table[saved_mid = mid].script; - - mid = (lower + upper) / 2; - } - while (lower <= upper); - - return G_UNICODE_SCRIPT_UNKNOWN; -} - -/** - * g_unichar_get_script: - * @ch: a Unicode character - * - * Looks up the #GUnicodeScript for a particular character (as defined - * by Unicode Standard Annex #24). No check is made for @ch being a - * valid Unicode character; if you pass in invalid character, the - * result is undefined. - * - * This function is equivalent to pango_script_for_unichar() and the - * two are interchangeable. - * - * Return value: the #GUnicodeScript for the character. - * - * Since: 2.14 - */ -GUnicodeScript -g_unichar_get_script (gunichar ch) -{ - if (ch < G_EASY_SCRIPTS_RANGE) - return g_script_easy_table[ch]; - else - return g_unichar_get_script_bsearch (ch); -} - - -#define __G_UNIPROP_C__ -#include "galiasdef.c" diff --git a/lib/win32/glib-2.20.4/glib/gurifuncs.c b/lib/win32/glib-2.20.4/glib/gurifuncs.c deleted file mode 100644 index 40f97498da32b..0000000000000 --- a/lib/win32/glib-2.20.4/glib/gurifuncs.c +++ /dev/null @@ -1,245 +0,0 @@ -/* GIO - GLib Input, Output and Streaming Library - * - * Copyright (C) 2006-2007 Red Hat, Inc. - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library 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 - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General - * Public License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place, Suite 330, - * Boston, MA 02111-1307, USA. - * - * Author: Alexander Larsson - */ - -#include "config.h" -#include "gurifuncs.h" -#include "string.h" - -#include "galias.h" - -/** - * SECTION:gurifuncs - * @short_description: URI Functions - * - * Functions for manipulating Universal Resource Identifiers (URIs) as - * defined by - * RFC 3986. It is highly recommended that you have read and - * understand RFC 3986 for understanding this API. - */ - -static int -unescape_character (const char *scanner) -{ - int first_digit; - int second_digit; - - first_digit = g_ascii_xdigit_value (*scanner++); - if (first_digit < 0) - return -1; - - second_digit = g_ascii_xdigit_value (*scanner++); - if (second_digit < 0) - return -1; - - return (first_digit << 4) | second_digit; -} - -/** - * g_uri_unescape_segment: - * @escaped_string: a string. - * @escaped_string_end: a string. - * @illegal_characters: an optional string of illegal characters not to be allowed. - * - * Unescapes a segment of an escaped string. - * - * If any of the characters in @illegal_characters or the character zero appears - * as an escaped character in @escaped_string then that is an error and %NULL - * will be returned. This is useful it you want to avoid for instance having a - * slash being expanded in an escaped path element, which might confuse pathname - * handling. - * - * Returns: an unescaped version of @escaped_string or %NULL on error. - * The returned string should be freed when no longer needed. - * - * Since: 2.16 - **/ -char * -g_uri_unescape_segment (const char *escaped_string, - const char *escaped_string_end, - const char *illegal_characters) -{ - const char *in; - char *out, *result; - gint character; - - if (escaped_string == NULL) - return NULL; - - if (escaped_string_end == NULL) - escaped_string_end = escaped_string + strlen (escaped_string); - - result = g_malloc (escaped_string_end - escaped_string + 1); - - out = result; - for (in = escaped_string; in < escaped_string_end; in++) - { - character = *in; - - if (*in == '%') - { - in++; - - if (escaped_string_end - in < 2) - { - /* Invalid escaped char (to short) */ - g_free (result); - return NULL; - } - - character = unescape_character (in); - - /* Check for an illegal character. We consider '\0' illegal here. */ - if (character <= 0 || - (illegal_characters != NULL && - strchr (illegal_characters, (char)character) != NULL)) - { - g_free (result); - return NULL; - } - - in++; /* The other char will be eaten in the loop header */ - } - *out++ = (char)character; - } - - *out = '\0'; - - return result; -} - -/** - * g_uri_unescape_string: - * @escaped_string: an escaped string to be unescaped. - * @illegal_characters: an optional string of illegal characters not to be allowed. - * - * Unescapes a whole escaped string. - * - * If any of the characters in @illegal_characters or the character zero appears - * as an escaped character in @escaped_string then that is an error and %NULL - * will be returned. This is useful it you want to avoid for instance having a - * slash being expanded in an escaped path element, which might confuse pathname - * handling. - * - * Returns: an unescaped version of @escaped_string. The returned string - * should be freed when no longer needed. - * - * Since: 2.16 - **/ -char * -g_uri_unescape_string (const char *escaped_string, - const char *illegal_characters) -{ - return g_uri_unescape_segment (escaped_string, NULL, illegal_characters); -} - -/** - * g_uri_parse_scheme: - * @uri: a valid URI. - * - * Gets the scheme portion of a URI string. RFC 3986 decodes the scheme as: - * - * URI = scheme ":" hier-part [ "?" query ] [ "#" fragment ] - * - * Common schemes include "file", "http", "svn+ssh", etc. - * - * Returns: The "Scheme" component of the URI, or %NULL on error. - * The returned string should be freed when no longer needed. - * - * Since: 2.16 - **/ -char * -g_uri_parse_scheme (const char *uri) -{ - const char *p; - char c; - - g_return_val_if_fail (uri != NULL, NULL); - - /* From RFC 3986 Decodes: - * URI = scheme ":" hier-part [ "?" query ] [ "#" fragment ] - */ - - p = uri; - - /* Decode scheme: - scheme = ALPHA *( ALPHA / DIGIT / "+" / "-" / "." ) - */ - - if (!g_ascii_isalpha (*p)) - return NULL; - - while (1) - { - c = *p++; - - if (c == ':') - break; - - if (!(g_ascii_isalnum(c) || - c == '+' || - c == '-' || - c == '.')) - return NULL; - } - - return g_strndup (uri, p - uri - 1); -} - -/** - * g_uri_escape_string: - * @unescaped: the unescaped input string. - * @reserved_chars_allowed: a string of reserved characters that are - * allowed to be used. - * @allow_utf8: %TRUE if the result can include UTF-8 characters. - * - * Escapes a string for use in a URI. - * - * Normally all characters that are not "unreserved" (i.e. ASCII alphanumerical - * characters plus dash, dot, underscore and tilde) are escaped. - * But if you specify characters in @reserved_chars_allowed they are not - * escaped. This is useful for the "reserved" characters in the URI - * specification, since those are allowed unescaped in some portions of - * a URI. - * - * Returns: an escaped version of @unescaped. The returned string should be - * freed when no longer needed. - * - * Since: 2.16 - **/ -char * -g_uri_escape_string (const char *unescaped, - const char *reserved_chars_allowed, - gboolean allow_utf8) -{ - GString *s; - - g_return_val_if_fail (unescaped != NULL, NULL); - - s = g_string_sized_new (strlen (unescaped) + 10); - - g_string_append_uri_escaped (s, unescaped, reserved_chars_allowed, allow_utf8); - - return g_string_free (s, FALSE); -} - -#define __G_URI_FUNCS_C__ -#include "galiasdef.c" diff --git a/lib/win32/glib-2.20.4/glib/gurifuncs.h b/lib/win32/glib-2.20.4/glib/gurifuncs.h deleted file mode 100644 index bcdeed9792986..0000000000000 --- a/lib/win32/glib-2.20.4/glib/gurifuncs.h +++ /dev/null @@ -1,81 +0,0 @@ -/* GIO - GLib Input, Output and Streaming Library - * - * Copyright (C) 2006-2007 Red Hat, Inc. - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library 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 - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General - * Public License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place, Suite 330, - * Boston, MA 02111-1307, USA. - * - * Author: Alexander Larsson - */ - -#if defined(G_DISABLE_SINGLE_INCLUDES) && !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION) -#error "Only can be included directly." -#endif - -#ifndef __G_URI_FUNCS_H__ -#define __G_URI_FUNCS_H__ - -#include - -G_BEGIN_DECLS - -/** - * G_URI_RESERVED_CHARS_GENERIC_DELIMITERS: - * - * Generic delimiters characters as defined in RFC 3986. Includes ":/?#[]@". - **/ -#define G_URI_RESERVED_CHARS_GENERIC_DELIMITERS ":/?#[]@" - -/** - * G_URI_RESERVED_CHARS_SUBCOMPONENT_DELIMITERS - * - * Subcomponent delimiter characters as defined in RFC 3986. Includes "!$&'()*+,;=". - **/ -#define G_URI_RESERVED_CHARS_SUBCOMPONENT_DELIMITERS "!$&'()*+,;=" - -/** - * G_URI_RESERVED_CHARS_ALLOWED_IN_PATH_ELEMENT: - * - * Allowed characters in path elements. Includes "!$&'()*+,;=:@". - **/ -#define G_URI_RESERVED_CHARS_ALLOWED_IN_PATH_ELEMENT G_URI_RESERVED_CHARS_SUBCOMPONENT_DELIMITERS ":@" - -/** - * G_URI_RESERVED_CHARS_ALLOWED_IN_PATH: - * - * Allowed characters in a path. Includes "!$&'()*+,;=:@/". - **/ -#define G_URI_RESERVED_CHARS_ALLOWED_IN_PATH G_URI_RESERVED_CHARS_ALLOWED_IN_PATH_ELEMENT "/" - -/** - * G_URI_RESERVED_CHARS_ALLOWED_IN_USERINFO: - * - * Allowed characters in userinfo as defined in RFC 3986. Includes "!$&'()*+,;=:". - **/ -#define G_URI_RESERVED_CHARS_ALLOWED_IN_USERINFO G_URI_RESERVED_CHARS_SUBCOMPONENT_DELIMITERS ":" - -char * g_uri_unescape_string (const char *escaped_string, - const char *illegal_characters); -char * g_uri_unescape_segment (const char *escaped_string, - const char *escaped_string_end, - const char *illegal_characters); -char * g_uri_parse_scheme (const char *uri); -char * g_uri_escape_string (const char *unescaped, - const char *reserved_chars_allowed, - gboolean allow_utf8); - -G_END_DECLS - -#endif /* __G_URI_FUNCS_H__ */ diff --git a/lib/win32/glib-2.20.4/glib/gutf8.c b/lib/win32/glib-2.20.4/glib/gutf8.c deleted file mode 100644 index da4a769ccfd98..0000000000000 --- a/lib/win32/glib-2.20.4/glib/gutf8.c +++ /dev/null @@ -1,1872 +0,0 @@ -/* gutf8.c - Operations on UTF-8 strings. - * - * Copyright (C) 1999 Tom Tromey - * Copyright (C) 2000 Red Hat, Inc. - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library 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 - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ - -#include "config.h" - -#include -#ifdef HAVE_CODESET -#include -#endif -#include - -#include "glib.h" - -#ifdef G_PLATFORM_WIN32 -#include -#define STRICT -#include -#undef STRICT -#endif - -#include "libcharset/libcharset.h" - -#include "glibintl.h" -#include "galias.h" - -#define UTF8_COMPUTE(Char, Mask, Len) \ - if (Char < 128) \ - { \ - Len = 1; \ - Mask = 0x7f; \ - } \ - else if ((Char & 0xe0) == 0xc0) \ - { \ - Len = 2; \ - Mask = 0x1f; \ - } \ - else if ((Char & 0xf0) == 0xe0) \ - { \ - Len = 3; \ - Mask = 0x0f; \ - } \ - else if ((Char & 0xf8) == 0xf0) \ - { \ - Len = 4; \ - Mask = 0x07; \ - } \ - else if ((Char & 0xfc) == 0xf8) \ - { \ - Len = 5; \ - Mask = 0x03; \ - } \ - else if ((Char & 0xfe) == 0xfc) \ - { \ - Len = 6; \ - Mask = 0x01; \ - } \ - else \ - Len = -1; - -#define UTF8_LENGTH(Char) \ - ((Char) < 0x80 ? 1 : \ - ((Char) < 0x800 ? 2 : \ - ((Char) < 0x10000 ? 3 : \ - ((Char) < 0x200000 ? 4 : \ - ((Char) < 0x4000000 ? 5 : 6))))) - - -#define UTF8_GET(Result, Chars, Count, Mask, Len) \ - (Result) = (Chars)[0] & (Mask); \ - for ((Count) = 1; (Count) < (Len); ++(Count)) \ - { \ - if (((Chars)[(Count)] & 0xc0) != 0x80) \ - { \ - (Result) = -1; \ - break; \ - } \ - (Result) <<= 6; \ - (Result) |= ((Chars)[(Count)] & 0x3f); \ - } - -#define UNICODE_VALID(Char) \ - ((Char) < 0x110000 && \ - (((Char) & 0xFFFFF800) != 0xD800) && \ - ((Char) < 0xFDD0 || (Char) > 0xFDEF) && \ - ((Char) & 0xFFFE) != 0xFFFE) - - -static const gchar utf8_skip_data[256] = { - 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,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,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, - 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, - 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,4,4,4,4,4,4,4,5,5,5,5,6,6,1,1 -}; - -const gchar * const g_utf8_skip = utf8_skip_data; - -/** - * g_utf8_find_prev_char: - * @str: pointer to the beginning of a UTF-8 encoded string - * @p: pointer to some position within @str - * - * Given a position @p with a UTF-8 encoded string @str, find the start - * of the previous UTF-8 character starting before @p. Returns %NULL if no - * UTF-8 characters are present in @str before @p. - * - * @p does not have to be at the beginning of a UTF-8 character. No check - * is made to see if the character found is actually valid other than - * it starts with an appropriate byte. - * - * Return value: a pointer to the found character or %NULL. - **/ -gchar * -g_utf8_find_prev_char (const char *str, - const char *p) -{ - for (--p; p >= str; --p) - { - if ((*p & 0xc0) != 0x80) - return (gchar *)p; - } - return NULL; -} - -/** - * g_utf8_find_next_char: - * @p: a pointer to a position within a UTF-8 encoded string - * @end: a pointer to the byte following the end of the string, - * or %NULL to indicate that the string is nul-terminated. - * - * Finds the start of the next UTF-8 character in the string after @p. - * - * @p does not have to be at the beginning of a UTF-8 character. No check - * is made to see if the character found is actually valid other than - * it starts with an appropriate byte. - * - * Return value: a pointer to the found character or %NULL - **/ -gchar * -g_utf8_find_next_char (const gchar *p, - const gchar *end) -{ - if (*p) - { - if (end) - for (++p; p < end && (*p & 0xc0) == 0x80; ++p) - ; - else - for (++p; (*p & 0xc0) == 0x80; ++p) - ; - } - return (p == end) ? NULL : (gchar *)p; -} - -/** - * g_utf8_prev_char: - * @p: a pointer to a position within a UTF-8 encoded string - * - * Finds the previous UTF-8 character in the string before @p. - * - * @p does not have to be at the beginning of a UTF-8 character. No check - * is made to see if the character found is actually valid other than - * it starts with an appropriate byte. If @p might be the first - * character of the string, you must use g_utf8_find_prev_char() instead. - * - * Return value: a pointer to the found character. - **/ -gchar * -g_utf8_prev_char (const gchar *p) -{ - while (TRUE) - { - p--; - if ((*p & 0xc0) != 0x80) - return (gchar *)p; - } -} - -/** - * g_utf8_strlen: - * @p: pointer to the start of a UTF-8 encoded string. - * @max: the maximum number of bytes to examine. If @max - * is less than 0, then the string is assumed to be - * nul-terminated. If @max is 0, @p will not be examined and - * may be %NULL. - * - * Returns the length of the string in characters. - * - * Return value: the length of the string in characters - **/ -glong -g_utf8_strlen (const gchar *p, - gssize max) -{ - glong len = 0; - const gchar *start = p; - g_return_val_if_fail (p != NULL || max == 0, 0); - - if (max < 0) - { - while (*p) - { - p = g_utf8_next_char (p); - ++len; - } - } - else - { - if (max == 0 || !*p) - return 0; - - p = g_utf8_next_char (p); - - while (p - start < max && *p) - { - ++len; - p = g_utf8_next_char (p); - } - - /* only do the last len increment if we got a complete - * char (don't count partial chars) - */ - if (p - start <= max) - ++len; - } - - return len; -} - -/** - * g_utf8_get_char: - * @p: a pointer to Unicode character encoded as UTF-8 - * - * Converts a sequence of bytes encoded as UTF-8 to a Unicode character. - * If @p does not point to a valid UTF-8 encoded character, results are - * undefined. If you are not sure that the bytes are complete - * valid Unicode characters, you should use g_utf8_get_char_validated() - * instead. - * - * Return value: the resulting character - **/ -gunichar -g_utf8_get_char (const gchar *p) -{ - int i, mask = 0, len; - gunichar result; - unsigned char c = (unsigned char) *p; - - UTF8_COMPUTE (c, mask, len); - if (len == -1) - return (gunichar)-1; - UTF8_GET (result, p, i, mask, len); - - return result; -} - -/** - * g_utf8_offset_to_pointer: - * @str: a UTF-8 encoded string - * @offset: a character offset within @str - * - * Converts from an integer character offset to a pointer to a position - * within the string. - * - * Since 2.10, this function allows to pass a negative @offset to - * step backwards. It is usually worth stepping backwards from the end - * instead of forwards if @offset is in the last fourth of the string, - * since moving forward is about 3 times faster than moving backward. - * - * - * This function doesn't abort when reaching the end of @str. Therefore - * you should be sure that @offset is within string boundaries before - * calling that function. Call g_utf8_strlen() when unsure. - * - * This limitation exists as this function is called frequently during - * text rendering and therefore has to be as fast as possible. - * - * - * Return value: the resulting pointer - **/ -gchar * -g_utf8_offset_to_pointer (const gchar *str, - glong offset) -{ - const gchar *s = str; - - if (offset > 0) - while (offset--) - s = g_utf8_next_char (s); - else - { - const char *s1; - - /* This nice technique for fast backwards stepping - * through a UTF-8 string was dubbed "stutter stepping" - * by its inventor, Larry Ewing. - */ - while (offset) - { - s1 = s; - s += offset; - while ((*s & 0xc0) == 0x80) - s--; - - offset += g_utf8_pointer_to_offset (s, s1); - } - } - - return (gchar *)s; -} - -/** - * g_utf8_pointer_to_offset: - * @str: a UTF-8 encoded string - * @pos: a pointer to a position within @str - * - * Converts from a pointer to position within a string to a integer - * character offset. - * - * Since 2.10, this function allows @pos to be before @str, and returns - * a negative offset in this case. - * - * Return value: the resulting character offset - **/ -glong -g_utf8_pointer_to_offset (const gchar *str, - const gchar *pos) -{ - const gchar *s = str; - glong offset = 0; - - if (pos < str) - offset = - g_utf8_pointer_to_offset (pos, str); - else - while (s < pos) - { - s = g_utf8_next_char (s); - offset++; - } - - return offset; -} - - -/** - * g_utf8_strncpy: - * @dest: buffer to fill with characters from @src - * @src: UTF-8 encoded string - * @n: character count - * - * Like the standard C strncpy() function, but - * copies a given number of characters instead of a given number of - * bytes. The @src string must be valid UTF-8 encoded text. - * (Use g_utf8_validate() on all text before trying to use UTF-8 - * utility functions with it.) - * - * Return value: @dest - **/ -gchar * -g_utf8_strncpy (gchar *dest, - const gchar *src, - gsize n) -{ - const gchar *s = src; - while (n && *s) - { - s = g_utf8_next_char(s); - n--; - } - strncpy(dest, src, s - src); - dest[s - src] = 0; - return dest; -} - -G_LOCK_DEFINE_STATIC (aliases); - -static GHashTable * -get_alias_hash (void) -{ - static GHashTable *alias_hash = NULL; - const char *aliases; - - G_LOCK (aliases); - - if (!alias_hash) - { - alias_hash = g_hash_table_new (g_str_hash, g_str_equal); - - aliases = _g_locale_get_charset_aliases (); - while (*aliases != '\0') - { - const char *canonical; - const char *alias; - const char **alias_array; - int count = 0; - - alias = aliases; - aliases += strlen (aliases) + 1; - canonical = aliases; - aliases += strlen (aliases) + 1; - - alias_array = g_hash_table_lookup (alias_hash, canonical); - if (alias_array) - { - while (alias_array[count]) - count++; - } - - alias_array = g_renew (const char *, alias_array, count + 2); - alias_array[count] = alias; - alias_array[count + 1] = NULL; - - g_hash_table_insert (alias_hash, (char *)canonical, alias_array); - } - } - - G_UNLOCK (aliases); - - return alias_hash; -} - -/* As an abuse of the alias table, the following routines gets - * the charsets that are aliases for the canonical name. - */ -G_GNUC_INTERNAL const char ** -_g_charset_get_aliases (const char *canonical_name) -{ - GHashTable *alias_hash = get_alias_hash (); - - return g_hash_table_lookup (alias_hash, canonical_name); -} - -static gboolean -g_utf8_get_charset_internal (const char *raw_data, - const char **a) -{ - const char *charset = getenv("CHARSET"); - - if (charset && *charset) - { - *a = charset; - - if (charset && strstr (charset, "UTF-8")) - return TRUE; - else - return FALSE; - } - - /* The libcharset code tries to be thread-safe without - * a lock, but has a memory leak and a missing memory - * barrier, so we lock for it - */ - G_LOCK (aliases); - charset = _g_locale_charset_unalias (raw_data); - G_UNLOCK (aliases); - - if (charset && *charset) - { - *a = charset; - - if (charset && strstr (charset, "UTF-8")) - return TRUE; - else - return FALSE; - } - - /* Assume this for compatibility at present. */ - *a = "US-ASCII"; - - return FALSE; -} - -typedef struct _GCharsetCache GCharsetCache; - -struct _GCharsetCache { - gboolean is_utf8; - gchar *raw; - gchar *charset; -}; - -static void -charset_cache_free (gpointer data) -{ - GCharsetCache *cache = data; - g_free (cache->raw); - g_free (cache->charset); - g_free (cache); -} - -/** - * g_get_charset: - * @charset: return location for character set name - * - * Obtains the character set for the current - * locale; you might use this character set as an argument to - * g_convert(), to convert from the current locale's encoding to some - * other encoding. (Frequently g_locale_to_utf8() and g_locale_from_utf8() - * are nice shortcuts, though.) - * - * On Windows the character set returned by this function is the - * so-called system default ANSI code-page. That is the character set - * used by the "narrow" versions of C library and Win32 functions that - * handle file names. It might be different from the character set - * used by the C library's current locale. - * - * The return value is %TRUE if the locale's encoding is UTF-8, in that - * case you can perhaps avoid calling g_convert(). - * - * The string returned in @charset is not allocated, and should not be - * freed. - * - * Return value: %TRUE if the returned charset is UTF-8 - **/ -gboolean -g_get_charset (G_CONST_RETURN char **charset) -{ - static GStaticPrivate cache_private = G_STATIC_PRIVATE_INIT; - GCharsetCache *cache = g_static_private_get (&cache_private); - const gchar *raw; - - if (!cache) - { - cache = g_new0 (GCharsetCache, 1); - g_static_private_set (&cache_private, cache, charset_cache_free); - } - - raw = _g_locale_charset_raw (); - - if (!(cache->raw && strcmp (cache->raw, raw) == 0)) - { - const gchar *new_charset; - - g_free (cache->raw); - g_free (cache->charset); - cache->raw = g_strdup (raw); - cache->is_utf8 = g_utf8_get_charset_internal (raw, &new_charset); - cache->charset = g_strdup (new_charset); - } - - if (charset) - *charset = cache->charset; - - return cache->is_utf8; -} - -/* unicode_strchr */ - -/** - * g_unichar_to_utf8: - * @c: a Unicode character code - * @outbuf: output buffer, must have at least 6 bytes of space. - * If %NULL, the length will be computed and returned - * and nothing will be written to @outbuf. - * - * Converts a single character to UTF-8. - * - * Return value: number of bytes written - **/ -int -g_unichar_to_utf8 (gunichar c, - gchar *outbuf) -{ - /* If this gets modified, also update the copy in g_string_insert_unichar() */ - guint len = 0; - int first; - int i; - - if (c < 0x80) - { - first = 0; - len = 1; - } - else if (c < 0x800) - { - first = 0xc0; - len = 2; - } - else if (c < 0x10000) - { - first = 0xe0; - len = 3; - } - else if (c < 0x200000) - { - first = 0xf0; - len = 4; - } - else if (c < 0x4000000) - { - first = 0xf8; - len = 5; - } - else - { - first = 0xfc; - len = 6; - } - - if (outbuf) - { - for (i = len - 1; i > 0; --i) - { - outbuf[i] = (c & 0x3f) | 0x80; - c >>= 6; - } - outbuf[0] = c | first; - } - - return len; -} - -/** - * g_utf8_strchr: - * @p: a nul-terminated UTF-8 encoded string - * @len: the maximum length of @p - * @c: a Unicode character - * - * Finds the leftmost occurrence of the given Unicode character - * in a UTF-8 encoded string, while limiting the search to @len bytes. - * If @len is -1, allow unbounded search. - * - * Return value: %NULL if the string does not contain the character, - * otherwise, a pointer to the start of the leftmost occurrence of - * the character in the string. - **/ -gchar * -g_utf8_strchr (const char *p, - gssize len, - gunichar c) -{ - gchar ch[10]; - - gint charlen = g_unichar_to_utf8 (c, ch); - ch[charlen] = '\0'; - - return g_strstr_len (p, len, ch); -} - - -/** - * g_utf8_strrchr: - * @p: a nul-terminated UTF-8 encoded string - * @len: the maximum length of @p - * @c: a Unicode character - * - * Find the rightmost occurrence of the given Unicode character - * in a UTF-8 encoded string, while limiting the search to @len bytes. - * If @len is -1, allow unbounded search. - * - * Return value: %NULL if the string does not contain the character, - * otherwise, a pointer to the start of the rightmost occurrence of the - * character in the string. - **/ -gchar * -g_utf8_strrchr (const char *p, - gssize len, - gunichar c) -{ - gchar ch[10]; - - gint charlen = g_unichar_to_utf8 (c, ch); - ch[charlen] = '\0'; - - return g_strrstr_len (p, len, ch); -} - - -/* Like g_utf8_get_char, but take a maximum length - * and return (gunichar)-2 on incomplete trailing character - */ -static inline gunichar -g_utf8_get_char_extended (const gchar *p, - gssize max_len) -{ - guint i, len; - gunichar wc = (guchar) *p; - - if (wc < 0x80) - { - return wc; - } - else if (wc < 0xc0) - { - return (gunichar)-1; - } - else if (wc < 0xe0) - { - len = 2; - wc &= 0x1f; - } - else if (wc < 0xf0) - { - len = 3; - wc &= 0x0f; - } - else if (wc < 0xf8) - { - len = 4; - wc &= 0x07; - } - else if (wc < 0xfc) - { - len = 5; - wc &= 0x03; - } - else if (wc < 0xfe) - { - len = 6; - wc &= 0x01; - } - else - { - return (gunichar)-1; - } - - if (max_len >= 0 && len > max_len) - { - for (i = 1; i < max_len; i++) - { - if ((((guchar *)p)[i] & 0xc0) != 0x80) - return (gunichar)-1; - } - return (gunichar)-2; - } - - for (i = 1; i < len; ++i) - { - gunichar ch = ((guchar *)p)[i]; - - if ((ch & 0xc0) != 0x80) - { - if (ch) - return (gunichar)-1; - else - return (gunichar)-2; - } - - wc <<= 6; - wc |= (ch & 0x3f); - } - - if (UTF8_LENGTH(wc) != len) - return (gunichar)-1; - - return wc; -} - -/** - * g_utf8_get_char_validated: - * @p: a pointer to Unicode character encoded as UTF-8 - * @max_len: the maximum number of bytes to read, or -1, for no maximum or - * if @p is nul-terminated - * - * Convert a sequence of bytes encoded as UTF-8 to a Unicode character. - * This function checks for incomplete characters, for invalid characters - * such as characters that are out of the range of Unicode, and for - * overlong encodings of valid characters. - * - * Return value: the resulting character. If @p points to a partial - * sequence at the end of a string that could begin a valid - * character (or if @max_len is zero), returns (gunichar)-2; - * otherwise, if @p does not point to a valid UTF-8 encoded - * Unicode character, returns (gunichar)-1. - **/ -gunichar -g_utf8_get_char_validated (const gchar *p, - gssize max_len) -{ - gunichar result; - - if (max_len == 0) - return (gunichar)-2; - - result = g_utf8_get_char_extended (p, max_len); - - if (result & 0x80000000) - return result; - else if (!UNICODE_VALID (result)) - return (gunichar)-1; - else - return result; -} - -/** - * g_utf8_to_ucs4_fast: - * @str: a UTF-8 encoded string - * @len: the maximum length of @str to use, in bytes. If @len < 0, - * then the string is nul-terminated. - * @items_written: location to store the number of characters in the - * result, or %NULL. - * - * Convert a string from UTF-8 to a 32-bit fixed width - * representation as UCS-4, assuming valid UTF-8 input. - * This function is roughly twice as fast as g_utf8_to_ucs4() - * but does no error checking on the input. - * - * Return value: a pointer to a newly allocated UCS-4 string. - * This value must be freed with g_free(). - **/ -gunichar * -g_utf8_to_ucs4_fast (const gchar *str, - glong len, - glong *items_written) -{ - gint j, charlen; - gunichar *result; - gint n_chars, i; - const gchar *p; - - g_return_val_if_fail (str != NULL, NULL); - - p = str; - n_chars = 0; - if (len < 0) - { - while (*p) - { - p = g_utf8_next_char (p); - ++n_chars; - } - } - else - { - while (p < str + len && *p) - { - p = g_utf8_next_char (p); - ++n_chars; - } - } - - result = g_new (gunichar, n_chars + 1); - - p = str; - for (i=0; i < n_chars; i++) - { - gunichar wc = ((unsigned char *)p)[0]; - - if (wc < 0x80) - { - result[i] = wc; - p++; - } - else - { - if (wc < 0xe0) - { - charlen = 2; - wc &= 0x1f; - } - else if (wc < 0xf0) - { - charlen = 3; - wc &= 0x0f; - } - else if (wc < 0xf8) - { - charlen = 4; - wc &= 0x07; - } - else if (wc < 0xfc) - { - charlen = 5; - wc &= 0x03; - } - else - { - charlen = 6; - wc &= 0x01; - } - - for (j = 1; j < charlen; j++) - { - wc <<= 6; - wc |= ((unsigned char *)p)[j] & 0x3f; - } - - result[i] = wc; - p += charlen; - } - } - result[i] = 0; - - if (items_written) - *items_written = i; - - return result; -} - -/** - * g_utf8_to_ucs4: - * @str: a UTF-8 encoded string - * @len: the maximum length of @str to use, in bytes. If @len < 0, - * then the string is nul-terminated. - * @items_read: location to store number of bytes read, or %NULL. - * If %NULL, then %G_CONVERT_ERROR_PARTIAL_INPUT will be - * returned in case @str contains a trailing partial - * character. If an error occurs then the index of the - * invalid input is stored here. - * @items_written: location to store number of characters written or %NULL. - * The value here stored does not include the trailing 0 - * character. - * @error: location to store the error occuring, or %NULL to ignore - * errors. Any of the errors in #GConvertError other than - * %G_CONVERT_ERROR_NO_CONVERSION may occur. - * - * Convert a string from UTF-8 to a 32-bit fixed width - * representation as UCS-4. A trailing 0 will be added to the - * string after the converted text. - * - * Return value: a pointer to a newly allocated UCS-4 string. - * This value must be freed with g_free(). If an - * error occurs, %NULL will be returned and - * @error set. - **/ -gunichar * -g_utf8_to_ucs4 (const gchar *str, - glong len, - glong *items_read, - glong *items_written, - GError **error) -{ - gunichar *result = NULL; - gint n_chars, i; - const gchar *in; - - in = str; - n_chars = 0; - while ((len < 0 || str + len - in > 0) && *in) - { - gunichar wc = g_utf8_get_char_extended (in, len < 0 ? 6 : str + len - in); - if (wc & 0x80000000) - { - if (wc == (gunichar)-2) - { - if (items_read) - break; - else - g_set_error_literal (error, G_CONVERT_ERROR, G_CONVERT_ERROR_PARTIAL_INPUT, - _("Partial character sequence at end of input")); - } - else - g_set_error_literal (error, G_CONVERT_ERROR, G_CONVERT_ERROR_ILLEGAL_SEQUENCE, - _("Invalid byte sequence in conversion input")); - - goto err_out; - } - - n_chars++; - - in = g_utf8_next_char (in); - } - - result = g_new (gunichar, n_chars + 1); - - in = str; - for (i=0; i < n_chars; i++) - { - result[i] = g_utf8_get_char (in); - in = g_utf8_next_char (in); - } - result[i] = 0; - - if (items_written) - *items_written = n_chars; - - err_out: - if (items_read) - *items_read = in - str; - - return result; -} - -/** - * g_ucs4_to_utf8: - * @str: a UCS-4 encoded string - * @len: the maximum length (number of characters) of @str to use. - * If @len < 0, then the string is nul-terminated. - * @items_read: location to store number of characters read, or %NULL. - * @items_written: location to store number of bytes written or %NULL. - * The value here stored does not include the trailing 0 - * byte. - * @error: location to store the error occuring, or %NULL to ignore - * errors. Any of the errors in #GConvertError other than - * %G_CONVERT_ERROR_NO_CONVERSION may occur. - * - * Convert a string from a 32-bit fixed width representation as UCS-4. - * to UTF-8. The result will be terminated with a 0 byte. - * - * Return value: a pointer to a newly allocated UTF-8 string. - * This value must be freed with g_free(). If an - * error occurs, %NULL will be returned and - * @error set. In that case, @items_read will be - * set to the position of the first invalid input - * character. - **/ -gchar * -g_ucs4_to_utf8 (const gunichar *str, - glong len, - glong *items_read, - glong *items_written, - GError **error) -{ - gint result_length; - gchar *result = NULL; - gchar *p; - gint i; - - result_length = 0; - for (i = 0; len < 0 || i < len ; i++) - { - if (!str[i]) - break; - - if (str[i] >= 0x80000000) - { - g_set_error_literal (error, G_CONVERT_ERROR, G_CONVERT_ERROR_ILLEGAL_SEQUENCE, - _("Character out of range for UTF-8")); - goto err_out; - } - - result_length += UTF8_LENGTH (str[i]); - } - - result = g_malloc (result_length + 1); - p = result; - - i = 0; - while (p < result + result_length) - p += g_unichar_to_utf8 (str[i++], p); - - *p = '\0'; - - if (items_written) - *items_written = p - result; - - err_out: - if (items_read) - *items_read = i; - - return result; -} - -#define SURROGATE_VALUE(h,l) (((h) - 0xd800) * 0x400 + (l) - 0xdc00 + 0x10000) - -/** - * g_utf16_to_utf8: - * @str: a UTF-16 encoded string - * @len: the maximum length (number of gunichar2) of @str to use. - * If @len < 0, then the string is nul-terminated. - * @items_read: location to store number of words read, or %NULL. - * If %NULL, then %G_CONVERT_ERROR_PARTIAL_INPUT will be - * returned in case @str contains a trailing partial - * character. If an error occurs then the index of the - * invalid input is stored here. - * @items_written: location to store number of bytes written, or %NULL. - * The value stored here does not include the trailing - * 0 byte. - * @error: location to store the error occuring, or %NULL to ignore - * errors. Any of the errors in #GConvertError other than - * %G_CONVERT_ERROR_NO_CONVERSION may occur. - * - * Convert a string from UTF-16 to UTF-8. The result will be - * terminated with a 0 byte. - * - * Note that the input is expected to be already in native endianness, - * an initial byte-order-mark character is not handled specially. - * g_convert() can be used to convert a byte buffer of UTF-16 data of - * ambiguous endianess. - * - * Return value: a pointer to a newly allocated UTF-8 string. - * This value must be freed with g_free(). If an - * error occurs, %NULL will be returned and - * @error set. - **/ -gchar * -g_utf16_to_utf8 (const gunichar2 *str, - glong len, - glong *items_read, - glong *items_written, - GError **error) -{ - /* This function and g_utf16_to_ucs4 are almost exactly identical - The lines that differ - * are marked. - */ - const gunichar2 *in; - gchar *out; - gchar *result = NULL; - gint n_bytes; - gunichar high_surrogate; - - g_return_val_if_fail (str != NULL, NULL); - - n_bytes = 0; - in = str; - high_surrogate = 0; - while ((len < 0 || in - str < len) && *in) - { - gunichar2 c = *in; - gunichar wc; - - if (c >= 0xdc00 && c < 0xe000) /* low surrogate */ - { - if (high_surrogate) - { - wc = SURROGATE_VALUE (high_surrogate, c); - high_surrogate = 0; - } - else - { - g_set_error_literal (error, G_CONVERT_ERROR, G_CONVERT_ERROR_ILLEGAL_SEQUENCE, - _("Invalid sequence in conversion input")); - goto err_out; - } - } - else - { - if (high_surrogate) - { - g_set_error_literal (error, G_CONVERT_ERROR, G_CONVERT_ERROR_ILLEGAL_SEQUENCE, - _("Invalid sequence in conversion input")); - goto err_out; - } - - if (c >= 0xd800 && c < 0xdc00) /* high surrogate */ - { - high_surrogate = c; - goto next1; - } - else - wc = c; - } - - /********** DIFFERENT for UTF8/UCS4 **********/ - n_bytes += UTF8_LENGTH (wc); - - next1: - in++; - } - - if (high_surrogate && !items_read) - { - g_set_error_literal (error, G_CONVERT_ERROR, G_CONVERT_ERROR_PARTIAL_INPUT, - _("Partial character sequence at end of input")); - goto err_out; - } - - /* At this point, everything is valid, and we just need to convert - */ - /********** DIFFERENT for UTF8/UCS4 **********/ - result = g_malloc (n_bytes + 1); - - high_surrogate = 0; - out = result; - in = str; - while (out < result + n_bytes) - { - gunichar2 c = *in; - gunichar wc; - - if (c >= 0xdc00 && c < 0xe000) /* low surrogate */ - { - wc = SURROGATE_VALUE (high_surrogate, c); - high_surrogate = 0; - } - else if (c >= 0xd800 && c < 0xdc00) /* high surrogate */ - { - high_surrogate = c; - goto next2; - } - else - wc = c; - - /********** DIFFERENT for UTF8/UCS4 **********/ - out += g_unichar_to_utf8 (wc, out); - - next2: - in++; - } - - /********** DIFFERENT for UTF8/UCS4 **********/ - *out = '\0'; - - if (items_written) - /********** DIFFERENT for UTF8/UCS4 **********/ - *items_written = out - result; - - err_out: - if (items_read) - *items_read = in - str; - - return result; -} - -/** - * g_utf16_to_ucs4: - * @str: a UTF-16 encoded string - * @len: the maximum length (number of gunichar2) of @str to use. - * If @len < 0, then the string is nul-terminated. - * @items_read: location to store number of words read, or %NULL. - * If %NULL, then %G_CONVERT_ERROR_PARTIAL_INPUT will be - * returned in case @str contains a trailing partial - * character. If an error occurs then the index of the - * invalid input is stored here. - * @items_written: location to store number of characters written, or %NULL. - * The value stored here does not include the trailing - * 0 character. - * @error: location to store the error occuring, or %NULL to ignore - * errors. Any of the errors in #GConvertError other than - * %G_CONVERT_ERROR_NO_CONVERSION may occur. - * - * Convert a string from UTF-16 to UCS-4. The result will be - * nul-terminated. - * - * Return value: a pointer to a newly allocated UCS-4 string. - * This value must be freed with g_free(). If an - * error occurs, %NULL will be returned and - * @error set. - **/ -gunichar * -g_utf16_to_ucs4 (const gunichar2 *str, - glong len, - glong *items_read, - glong *items_written, - GError **error) -{ - const gunichar2 *in; - gchar *out; - gchar *result = NULL; - gint n_bytes; - gunichar high_surrogate; - - g_return_val_if_fail (str != NULL, NULL); - - n_bytes = 0; - in = str; - high_surrogate = 0; - while ((len < 0 || in - str < len) && *in) - { - gunichar2 c = *in; - gunichar wc; - - if (c >= 0xdc00 && c < 0xe000) /* low surrogate */ - { - if (high_surrogate) - { - wc = SURROGATE_VALUE (high_surrogate, c); - high_surrogate = 0; - } - else - { - g_set_error_literal (error, G_CONVERT_ERROR, G_CONVERT_ERROR_ILLEGAL_SEQUENCE, - _("Invalid sequence in conversion input")); - goto err_out; - } - } - else - { - if (high_surrogate) - { - g_set_error_literal (error, G_CONVERT_ERROR, G_CONVERT_ERROR_ILLEGAL_SEQUENCE, - _("Invalid sequence in conversion input")); - goto err_out; - } - - if (c >= 0xd800 && c < 0xdc00) /* high surrogate */ - { - high_surrogate = c; - goto next1; - } - else - wc = c; - } - - /********** DIFFERENT for UTF8/UCS4 **********/ - n_bytes += sizeof (gunichar); - - next1: - in++; - } - - if (high_surrogate && !items_read) - { - g_set_error_literal (error, G_CONVERT_ERROR, G_CONVERT_ERROR_PARTIAL_INPUT, - _("Partial character sequence at end of input")); - goto err_out; - } - - /* At this point, everything is valid, and we just need to convert - */ - /********** DIFFERENT for UTF8/UCS4 **********/ - result = g_malloc (n_bytes + 4); - - high_surrogate = 0; - out = result; - in = str; - while (out < result + n_bytes) - { - gunichar2 c = *in; - gunichar wc; - - if (c >= 0xdc00 && c < 0xe000) /* low surrogate */ - { - wc = SURROGATE_VALUE (high_surrogate, c); - high_surrogate = 0; - } - else if (c >= 0xd800 && c < 0xdc00) /* high surrogate */ - { - high_surrogate = c; - goto next2; - } - else - wc = c; - - /********** DIFFERENT for UTF8/UCS4 **********/ - *(gunichar *)out = wc; - out += sizeof (gunichar); - - next2: - in++; - } - - /********** DIFFERENT for UTF8/UCS4 **********/ - *(gunichar *)out = 0; - - if (items_written) - /********** DIFFERENT for UTF8/UCS4 **********/ - *items_written = (out - result) / sizeof (gunichar); - - err_out: - if (items_read) - *items_read = in - str; - - return (gunichar *)result; -} - -/** - * g_utf8_to_utf16: - * @str: a UTF-8 encoded string - * @len: the maximum length (number of characters) of @str to use. - * If @len < 0, then the string is nul-terminated. - * @items_read: location to store number of bytes read, or %NULL. - * If %NULL, then %G_CONVERT_ERROR_PARTIAL_INPUT will be - * returned in case @str contains a trailing partial - * character. If an error occurs then the index of the - * invalid input is stored here. - * @items_written: location to store number of gunichar2 written, - * or %NULL. - * The value stored here does not include the trailing 0. - * @error: location to store the error occuring, or %NULL to ignore - * errors. Any of the errors in #GConvertError other than - * %G_CONVERT_ERROR_NO_CONVERSION may occur. - * - * Convert a string from UTF-8 to UTF-16. A 0 character will be - * added to the result after the converted text. - * - * Return value: a pointer to a newly allocated UTF-16 string. - * This value must be freed with g_free(). If an - * error occurs, %NULL will be returned and - * @error set. - **/ -gunichar2 * -g_utf8_to_utf16 (const gchar *str, - glong len, - glong *items_read, - glong *items_written, - GError **error) -{ - gunichar2 *result = NULL; - gint n16; - const gchar *in; - gint i; - - g_return_val_if_fail (str != NULL, NULL); - - in = str; - n16 = 0; - while ((len < 0 || str + len - in > 0) && *in) - { - gunichar wc = g_utf8_get_char_extended (in, len < 0 ? 6 : str + len - in); - if (wc & 0x80000000) - { - if (wc == (gunichar)-2) - { - if (items_read) - break; - else - g_set_error_literal (error, G_CONVERT_ERROR, G_CONVERT_ERROR_PARTIAL_INPUT, - _("Partial character sequence at end of input")); - } - else - g_set_error_literal (error, G_CONVERT_ERROR, G_CONVERT_ERROR_ILLEGAL_SEQUENCE, - _("Invalid byte sequence in conversion input")); - - goto err_out; - } - - if (wc < 0xd800) - n16 += 1; - else if (wc < 0xe000) - { - g_set_error_literal (error, G_CONVERT_ERROR, G_CONVERT_ERROR_ILLEGAL_SEQUENCE, - _("Invalid sequence in conversion input")); - - goto err_out; - } - else if (wc < 0x10000) - n16 += 1; - else if (wc < 0x110000) - n16 += 2; - else - { - g_set_error_literal (error, G_CONVERT_ERROR, G_CONVERT_ERROR_ILLEGAL_SEQUENCE, - _("Character out of range for UTF-16")); - - goto err_out; - } - - in = g_utf8_next_char (in); - } - - result = g_new (gunichar2, n16 + 1); - - in = str; - for (i = 0; i < n16;) - { - gunichar wc = g_utf8_get_char (in); - - if (wc < 0x10000) - { - result[i++] = wc; - } - else - { - result[i++] = (wc - 0x10000) / 0x400 + 0xd800; - result[i++] = (wc - 0x10000) % 0x400 + 0xdc00; - } - - in = g_utf8_next_char (in); - } - - result[i] = 0; - - if (items_written) - *items_written = n16; - - err_out: - if (items_read) - *items_read = in - str; - - return result; -} - -/** - * g_ucs4_to_utf16: - * @str: a UCS-4 encoded string - * @len: the maximum length (number of characters) of @str to use. - * If @len < 0, then the string is nul-terminated. - * @items_read: location to store number of bytes read, or %NULL. - * If an error occurs then the index of the invalid input - * is stored here. - * @items_written: location to store number of gunichar2 - * written, or %NULL. The value stored here does not - * include the trailing 0. - * @error: location to store the error occuring, or %NULL to ignore - * errors. Any of the errors in #GConvertError other than - * %G_CONVERT_ERROR_NO_CONVERSION may occur. - * - * Convert a string from UCS-4 to UTF-16. A 0 character will be - * added to the result after the converted text. - * - * Return value: a pointer to a newly allocated UTF-16 string. - * This value must be freed with g_free(). If an - * error occurs, %NULL will be returned and - * @error set. - **/ -gunichar2 * -g_ucs4_to_utf16 (const gunichar *str, - glong len, - glong *items_read, - glong *items_written, - GError **error) -{ - gunichar2 *result = NULL; - gint n16; - gint i, j; - - n16 = 0; - i = 0; - while ((len < 0 || i < len) && str[i]) - { - gunichar wc = str[i]; - - if (wc < 0xd800) - n16 += 1; - else if (wc < 0xe000) - { - g_set_error_literal (error, G_CONVERT_ERROR, G_CONVERT_ERROR_ILLEGAL_SEQUENCE, - _("Invalid sequence in conversion input")); - - goto err_out; - } - else if (wc < 0x10000) - n16 += 1; - else if (wc < 0x110000) - n16 += 2; - else - { - g_set_error_literal (error, G_CONVERT_ERROR, G_CONVERT_ERROR_ILLEGAL_SEQUENCE, - _("Character out of range for UTF-16")); - - goto err_out; - } - - i++; - } - - result = g_new (gunichar2, n16 + 1); - - for (i = 0, j = 0; j < n16; i++) - { - gunichar wc = str[i]; - - if (wc < 0x10000) - { - result[j++] = wc; - } - else - { - result[j++] = (wc - 0x10000) / 0x400 + 0xd800; - result[j++] = (wc - 0x10000) % 0x400 + 0xdc00; - } - } - result[j] = 0; - - if (items_written) - *items_written = n16; - - err_out: - if (items_read) - *items_read = i; - - return result; -} - -#define CONTINUATION_CHAR \ - G_STMT_START { \ - if ((*(guchar *)p & 0xc0) != 0x80) /* 10xxxxxx */ \ - goto error; \ - val <<= 6; \ - val |= (*(guchar *)p) & 0x3f; \ - } G_STMT_END - -static const gchar * -fast_validate (const char *str) - -{ - gunichar val = 0; - gunichar min = 0; - const gchar *p; - - for (p = str; *p; p++) - { - if (*(guchar *)p < 128) - /* done */; - else - { - const gchar *last; - - last = p; - if ((*(guchar *)p & 0xe0) == 0xc0) /* 110xxxxx */ - { - if (G_UNLIKELY ((*(guchar *)p & 0x1e) == 0)) - goto error; - p++; - if (G_UNLIKELY ((*(guchar *)p & 0xc0) != 0x80)) /* 10xxxxxx */ - goto error; - } - else - { - if ((*(guchar *)p & 0xf0) == 0xe0) /* 1110xxxx */ - { - min = (1 << 11); - val = *(guchar *)p & 0x0f; - goto TWO_REMAINING; - } - else if ((*(guchar *)p & 0xf8) == 0xf0) /* 11110xxx */ - { - min = (1 << 16); - val = *(guchar *)p & 0x07; - } - else - goto error; - - p++; - CONTINUATION_CHAR; - TWO_REMAINING: - p++; - CONTINUATION_CHAR; - p++; - CONTINUATION_CHAR; - - if (G_UNLIKELY (val < min)) - goto error; - - if (G_UNLIKELY (!UNICODE_VALID(val))) - goto error; - } - - continue; - - error: - return last; - } - } - - return p; -} - -static const gchar * -fast_validate_len (const char *str, - gssize max_len) - -{ - gunichar val = 0; - gunichar min = 0; - const gchar *p; - - g_assert (max_len >= 0); - - for (p = str; ((p - str) < max_len) && *p; p++) - { - if (*(guchar *)p < 128) - /* done */; - else - { - const gchar *last; - - last = p; - if ((*(guchar *)p & 0xe0) == 0xc0) /* 110xxxxx */ - { - if (G_UNLIKELY (max_len - (p - str) < 2)) - goto error; - - if (G_UNLIKELY ((*(guchar *)p & 0x1e) == 0)) - goto error; - p++; - if (G_UNLIKELY ((*(guchar *)p & 0xc0) != 0x80)) /* 10xxxxxx */ - goto error; - } - else - { - if ((*(guchar *)p & 0xf0) == 0xe0) /* 1110xxxx */ - { - if (G_UNLIKELY (max_len - (p - str) < 3)) - goto error; - - min = (1 << 11); - val = *(guchar *)p & 0x0f; - goto TWO_REMAINING; - } - else if ((*(guchar *)p & 0xf8) == 0xf0) /* 11110xxx */ - { - if (G_UNLIKELY (max_len - (p - str) < 4)) - goto error; - - min = (1 << 16); - val = *(guchar *)p & 0x07; - } - else - goto error; - - p++; - CONTINUATION_CHAR; - TWO_REMAINING: - p++; - CONTINUATION_CHAR; - p++; - CONTINUATION_CHAR; - - if (G_UNLIKELY (val < min)) - goto error; - if (G_UNLIKELY (!UNICODE_VALID(val))) - goto error; - } - - continue; - - error: - return last; - } - } - - return p; -} - -/** - * g_utf8_validate: - * @str: a pointer to character data - * @max_len: max bytes to validate, or -1 to go until NUL - * @end: return location for end of valid data - * - * Validates UTF-8 encoded text. @str is the text to validate; - * if @str is nul-terminated, then @max_len can be -1, otherwise - * @max_len should be the number of bytes to validate. - * If @end is non-%NULL, then the end of the valid range - * will be stored there (i.e. the start of the first invalid - * character if some bytes were invalid, or the end of the text - * being validated otherwise). - * - * Note that g_utf8_validate() returns %FALSE if @max_len is - * positive and NUL is met before @max_len bytes have been read. - * - * Returns %TRUE if all of @str was valid. Many GLib and GTK+ - * routines require valid UTF-8 as input; - * so data read from a file or the network should be checked - * with g_utf8_validate() before doing anything else with it. - * - * Return value: %TRUE if the text was valid UTF-8 - **/ -gboolean -g_utf8_validate (const char *str, - gssize max_len, - const gchar **end) - -{ - const gchar *p; - - if (max_len < 0) - p = fast_validate (str); - else - p = fast_validate_len (str, max_len); - - if (end) - *end = p; - - if ((max_len >= 0 && p != str + max_len) || - (max_len < 0 && *p != '\0')) - return FALSE; - else - return TRUE; -} - -/** - * g_unichar_validate: - * @ch: a Unicode character - * - * Checks whether @ch is a valid Unicode character. Some possible - * integer values of @ch will not be valid. 0 is considered a valid - * character, though it's normally a string terminator. - * - * Return value: %TRUE if @ch is a valid Unicode character - **/ -gboolean -g_unichar_validate (gunichar ch) -{ - return UNICODE_VALID (ch); -} - -/** - * g_utf8_strreverse: - * @str: a UTF-8 encoded string - * @len: the maximum length of @str to use, in bytes. If @len < 0, - * then the string is nul-terminated. - * - * Reverses a UTF-8 string. @str must be valid UTF-8 encoded text. - * (Use g_utf8_validate() on all text before trying to use UTF-8 - * utility functions with it.) - * - * This function is intended for programmatic uses of reversed strings. - * It pays no attention to decomposed characters, combining marks, byte - * order marks, directional indicators (LRM, LRO, etc) and similar - * characters which might need special handling when reversing a string - * for display purposes. - * - * Note that unlike g_strreverse(), this function returns - * newly-allocated memory, which should be freed with g_free() when - * no longer needed. - * - * Returns: a newly-allocated string which is the reverse of @str. - * - * Since: 2.2 - */ -gchar * -g_utf8_strreverse (const gchar *str, - gssize len) -{ - gchar *r, *result; - const gchar *p; - - if (len < 0) - len = strlen (str); - - result = g_new (gchar, len + 1); - r = result + len; - p = str; - while (r > result) - { - gchar *m, skip = g_utf8_skip[*(guchar*) p]; - r -= skip; - for (m = r; skip; skip--) - *m++ = *p++; - } - result[len] = 0; - - return result; -} - - -gchar * -_g_utf8_make_valid (const gchar *name) -{ - GString *string; - const gchar *remainder, *invalid; - gint remaining_bytes, valid_bytes; - - g_return_val_if_fail (name != NULL, NULL); - - string = NULL; - remainder = name; - remaining_bytes = strlen (name); - - while (remaining_bytes != 0) - { - if (g_utf8_validate (remainder, remaining_bytes, &invalid)) - break; - valid_bytes = invalid - remainder; - - if (string == NULL) - string = g_string_sized_new (remaining_bytes); - - g_string_append_len (string, remainder, valid_bytes); - /* append U+FFFD REPLACEMENT CHARACTER */ - g_string_append (string, "\357\277\275"); - - remaining_bytes -= valid_bytes + 1; - remainder = invalid + 1; - } - - if (string == NULL) - return g_strdup (name); - - g_string_append (string, remainder); - - g_assert (g_utf8_validate (string->str, -1, NULL)); - - return g_string_free (string, FALSE); -} - - -#define __G_UTF8_C__ -#include "galiasdef.c" diff --git a/lib/win32/glib-2.20.4/glib/gutils.c b/lib/win32/glib-2.20.4/glib/gutils.c deleted file mode 100644 index 858603b8d410b..0000000000000 --- a/lib/win32/glib-2.20.4/glib/gutils.c +++ /dev/null @@ -1,3442 +0,0 @@ -/* GLIB - Library of useful routines for C programming - * Copyright (C) 1995-1998 Peter Mattis, Spencer Kimball and Josh MacDonald - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library 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 - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ - -/* - * Modified by the GLib Team and others 1997-2000. See the AUTHORS - * file for a list of people on the GLib Team. See the ChangeLog - * files for a list of changes. These files are distributed with - * GLib at ftp://ftp.gtk.org/pub/gtk/. - */ - -/* - * MT safe for the unix part, FIXME: make the win32 part MT safe as well. - */ - -#include "config.h" - -#ifdef HAVE_UNISTD_H -#include -#endif -#include -#include -#include -#include -#include -#include /* For tolower() */ -#include -#include -#include -#ifdef HAVE_PWD_H -#include -#endif -#include -#ifdef HAVE_SYS_PARAM_H -#include -#endif -#ifdef HAVE_CRT_EXTERNS_H -#include /* for _NSGetEnviron */ -#endif - -/* implement gutils's inline functions - */ -#define G_IMPLEMENT_INLINES 1 -#define __G_UTILS_C__ -#include "glib.h" -#include "gprintfint.h" -#include "gthreadprivate.h" -#include "glibintl.h" -#include "galias.h" - -#ifdef MAXPATHLEN -#define G_PATH_LENGTH MAXPATHLEN -#elif defined (PATH_MAX) -#define G_PATH_LENGTH PATH_MAX -#elif defined (_PC_PATH_MAX) -#define G_PATH_LENGTH sysconf(_PC_PATH_MAX) -#else -#define G_PATH_LENGTH 2048 -#endif - -#ifdef G_PLATFORM_WIN32 -# define STRICT /* Strict typing, please */ -# include -# undef STRICT -# ifndef GET_MODULE_HANDLE_EX_FLAG_FROM_ADDRESS -# define GET_MODULE_HANDLE_EX_FLAG_UNCHANGED_REFCOUNT 2 -# define GET_MODULE_HANDLE_EX_FLAG_FROM_ADDRESS 4 -# endif -# include /* For UNLEN */ -#endif /* G_PLATFORM_WIN32 */ - -#ifdef G_OS_WIN32 -# include -# include - /* older SDK (e.g. msvc 5.0) does not have these*/ -# ifndef CSIDL_MYMUSIC -# define CSIDL_MYMUSIC 13 -# endif -# ifndef CSIDL_MYVIDEO -# define CSIDL_MYVIDEO 14 -# endif -# ifndef CSIDL_INTERNET_CACHE -# define CSIDL_INTERNET_CACHE 32 -# endif -# ifndef CSIDL_COMMON_APPDATA -# define CSIDL_COMMON_APPDATA 35 -# endif -# ifndef CSIDL_MYPICTURES -# define CSIDL_MYPICTURES 0x27 -# endif -# ifndef CSIDL_COMMON_DOCUMENTS -# define CSIDL_COMMON_DOCUMENTS 46 -# endif -# ifndef CSIDL_PROFILE -# define CSIDL_PROFILE 40 -# endif -# include -#endif - -#ifdef HAVE_CARBON -#include -#endif - -#ifdef HAVE_CODESET -#include -#endif - -const guint glib_major_version = GLIB_MAJOR_VERSION; -const guint glib_minor_version = GLIB_MINOR_VERSION; -const guint glib_micro_version = GLIB_MICRO_VERSION; -const guint glib_interface_age = GLIB_INTERFACE_AGE; -const guint glib_binary_age = GLIB_BINARY_AGE; - -#ifdef G_PLATFORM_WIN32 - -static HMODULE glib_dll = NULL; - -#ifdef DLL_EXPORT - -BOOL WINAPI -DllMain (HINSTANCE hinstDLL, - DWORD fdwReason, - LPVOID lpvReserved) -{ - if (fdwReason == DLL_PROCESS_ATTACH) - glib_dll = hinstDLL; - - return TRUE; -} - -#endif - -gchar * -_glib_get_dll_directory (void) -{ - gchar *retval; - gchar *p; - wchar_t wc_fn[MAX_PATH]; - -#ifdef DLL_EXPORT - if (glib_dll == NULL) - return NULL; -#endif - - /* This code is different from that in - * g_win32_get_package_installation_directory_of_module() in that - * here we return the actual folder where the GLib DLL is. We don't - * do the check for it being in a "bin" or "lib" subfolder and then - * returning the parent of that. - * - * In a statically built GLib, glib_dll will be NULL and we will - * thus look up the application's .exe file's location. - */ - if (!GetModuleFileNameW (glib_dll, wc_fn, MAX_PATH)) - return NULL; - - retval = g_utf16_to_utf8 (wc_fn, -1, NULL, NULL, NULL); - - p = strrchr (retval, G_DIR_SEPARATOR); - if (p == NULL) - { - /* Wtf? */ - return NULL; - } - *p = '\0'; - - return retval; -} - -#endif - -/** - * glib_check_version: - * @required_major: the required major version. - * @required_minor: the required minor version. - * @required_micro: the required micro version. - * - * Checks that the GLib library in use is compatible with the - * given version. Generally you would pass in the constants - * #GLIB_MAJOR_VERSION, #GLIB_MINOR_VERSION, #GLIB_MICRO_VERSION - * as the three arguments to this function; that produces - * a check that the library in use is compatible with - * the version of GLib the application or module was compiled - * against. - * - * Compatibility is defined by two things: first the version - * of the running library is newer than the version - * @required_major.required_minor.@required_micro. Second - * the running library must be binary compatible with the - * version @required_major.required_minor.@required_micro - * (same major version.) - * - * Return value: %NULL if the GLib library is compatible with the - * given version, or a string describing the version mismatch. - * The returned string is owned by GLib and must not be modified - * or freed. - * - * Since: 2.6 - **/ -const gchar * -glib_check_version (guint required_major, - guint required_minor, - guint required_micro) -{ - gint glib_effective_micro = 100 * GLIB_MINOR_VERSION + GLIB_MICRO_VERSION; - gint required_effective_micro = 100 * required_minor + required_micro; - - if (required_major > GLIB_MAJOR_VERSION) - return "GLib version too old (major mismatch)"; - if (required_major < GLIB_MAJOR_VERSION) - return "GLib version too new (major mismatch)"; - if (required_effective_micro < glib_effective_micro - GLIB_BINARY_AGE) - return "GLib version too new (micro mismatch)"; - if (required_effective_micro > glib_effective_micro) - return "GLib version too old (micro mismatch)"; - return NULL; -} - -#if !defined (HAVE_MEMMOVE) && !defined (HAVE_WORKING_BCOPY) -/** - * g_memmove: - * @dest: the destination address to copy the bytes to. - * @src: the source address to copy the bytes from. - * @len: the number of bytes to copy. - * - * Copies a block of memory @len bytes long, from @src to @dest. - * The source and destination areas may overlap. - * - * In order to use this function, you must include - * string.h yourself, because this macro will - * typically simply resolve to memmove() and GLib does not include - * string.h for you. - */ -void -g_memmove (gpointer dest, - gconstpointer src, - gulong len) -{ - gchar* destptr = dest; - const gchar* srcptr = src; - if (src + len < dest || dest + len < src) - { - bcopy (src, dest, len); - return; - } - else if (dest <= src) - { - while (len--) - *(destptr++) = *(srcptr++); - } - else - { - destptr += len; - srcptr += len; - while (len--) - *(--destptr) = *(--srcptr); - } -} -#endif /* !HAVE_MEMMOVE && !HAVE_WORKING_BCOPY */ - -#ifdef G_OS_WIN32 -#undef g_atexit -#endif - -/** - * g_atexit: - * @func: the function to call on normal program termination. - * - * Specifies a function to be called at normal program termination. - * - * Since GLib 2.8.2, on Windows g_atexit() actually is a preprocessor - * macro that maps to a call to the atexit() function in the C - * library. This means that in case the code that calls g_atexit(), - * i.e. atexit(), is in a DLL, the function will be called when the - * DLL is detached from the program. This typically makes more sense - * than that the function is called when the GLib DLL is detached, - * which happened earlier when g_atexit() was a function in the GLib - * DLL. - * - * The behaviour of atexit() in the context of dynamically loaded - * modules is not formally specified and varies wildly. - * - * On POSIX systems, calling g_atexit() (or atexit()) in a dynamically - * loaded module which is unloaded before the program terminates might - * well cause a crash at program exit. - * - * Some POSIX systems implement atexit() like Windows, and have each - * dynamically loaded module maintain an own atexit chain that is - * called when the module is unloaded. - * - * On other POSIX systems, before a dynamically loaded module is - * unloaded, the registered atexit functions (if any) residing in that - * module are called, regardless where the code that registered them - * resided. This is presumably the most robust approach. - * - * As can be seen from the above, for portability it's best to avoid - * calling g_atexit() (or atexit()) except in the main executable of a - * program. - */ -void -g_atexit (GVoidFunc func) -{ - gint result; - const gchar *error = NULL; - - /* keep this in sync with glib.h */ - -#ifdef G_NATIVE_ATEXIT - result = ATEXIT (func); - if (result) - error = g_strerror (errno); -#elif defined (HAVE_ATEXIT) -# ifdef NeXT /* @#%@! NeXTStep */ - result = !atexit ((void (*)(void)) func); - if (result) - error = g_strerror (errno); -# else - result = atexit ((void (*)(void)) func); - if (result) - error = g_strerror (errno); -# endif /* NeXT */ -#elif defined (HAVE_ON_EXIT) - result = on_exit ((void (*)(int, void *)) func, NULL); - if (result) - error = g_strerror (errno); -#else - result = 0; - error = "no implementation"; -#endif /* G_NATIVE_ATEXIT */ - - if (error) - g_error ("Could not register atexit() function: %s", error); -} - -/* Based on execvp() from GNU Libc. - * Some of this code is cut-and-pasted into gspawn.c - */ - -static gchar* -my_strchrnul (const gchar *str, - gchar c) -{ - gchar *p = (gchar*)str; - while (*p && (*p != c)) - ++p; - - return p; -} - -#ifdef G_OS_WIN32 - -static gchar *inner_find_program_in_path (const gchar *program); - -gchar* -g_find_program_in_path (const gchar *program) -{ - const gchar *last_dot = strrchr (program, '.'); - - if (last_dot == NULL || - strchr (last_dot, '\\') != NULL || - strchr (last_dot, '/') != NULL) - { - const gint program_length = strlen (program); - gchar *pathext = g_build_path (";", - ".exe;.cmd;.bat;.com", - g_getenv ("PATHEXT"), - NULL); - gchar *p; - gchar *decorated_program; - gchar *retval; - - p = pathext; - do - { - gchar *q = my_strchrnul (p, ';'); - - decorated_program = g_malloc (program_length + (q-p) + 1); - memcpy (decorated_program, program, program_length); - memcpy (decorated_program+program_length, p, q-p); - decorated_program [program_length + (q-p)] = '\0'; - - retval = inner_find_program_in_path (decorated_program); - g_free (decorated_program); - - if (retval != NULL) - { - g_free (pathext); - return retval; - } - p = q; - } while (*p++ != '\0'); - g_free (pathext); - return NULL; - } - else - return inner_find_program_in_path (program); -} - -#endif - -/** - * g_find_program_in_path: - * @program: a program name in the GLib file name encoding - * - * Locates the first executable named @program in the user's path, in the - * same way that execvp() would locate it. Returns an allocated string - * with the absolute path name, or %NULL if the program is not found in - * the path. If @program is already an absolute path, returns a copy of - * @program if @program exists and is executable, and %NULL otherwise. - * - * On Windows, if @program does not have a file type suffix, tries - * with the suffixes .exe, .cmd, .bat and .com, and the suffixes in - * the PATHEXT environment variable. - * - * On Windows, it looks for the file in the same way as CreateProcess() - * would. This means first in the directory where the executing - * program was loaded from, then in the current directory, then in the - * Windows 32-bit system directory, then in the Windows directory, and - * finally in the directories in the PATH environment - * variable. If the program is found, the return value contains the - * full name including the type suffix. - * - * Return value: absolute path, or %NULL - **/ -#ifdef G_OS_WIN32 -static gchar * -inner_find_program_in_path (const gchar *program) -#else -gchar* -g_find_program_in_path (const gchar *program) -#endif -{ - const gchar *path, *p; - gchar *name, *freeme; -#ifdef G_OS_WIN32 - const gchar *path_copy; - gchar *filename = NULL, *appdir = NULL; - gchar *sysdir = NULL, *windir = NULL; - int n; - wchar_t wfilename[MAXPATHLEN], wsysdir[MAXPATHLEN], - wwindir[MAXPATHLEN]; -#endif - gsize len; - gsize pathlen; - - g_return_val_if_fail (program != NULL, NULL); - - /* If it is an absolute path, or a relative path including subdirectories, - * don't look in PATH. - */ - if (g_path_is_absolute (program) - || strchr (program, G_DIR_SEPARATOR) != NULL -#ifdef G_OS_WIN32 - || strchr (program, '/') != NULL -#endif - ) - { - if (g_file_test (program, G_FILE_TEST_IS_EXECUTABLE) && - !g_file_test (program, G_FILE_TEST_IS_DIR)) - return g_strdup (program); - else - return NULL; - } - - path = g_getenv ("PATH"); -#if defined(G_OS_UNIX) || defined(G_OS_BEOS) - if (path == NULL) - { - /* There is no `PATH' in the environment. The default - * search path in GNU libc is the current directory followed by - * the path `confstr' returns for `_CS_PATH'. - */ - - /* In GLib we put . last, for security, and don't use the - * unportable confstr(); UNIX98 does not actually specify - * what to search if PATH is unset. POSIX may, dunno. - */ - - path = "/bin:/usr/bin:."; - } -#else - n = GetModuleFileNameW (NULL, wfilename, MAXPATHLEN); - if (n > 0 && n < MAXPATHLEN) - filename = g_utf16_to_utf8 (wfilename, -1, NULL, NULL, NULL); - - n = GetSystemDirectoryW (wsysdir, MAXPATHLEN); - if (n > 0 && n < MAXPATHLEN) - sysdir = g_utf16_to_utf8 (wsysdir, -1, NULL, NULL, NULL); - - n = GetWindowsDirectoryW (wwindir, MAXPATHLEN); - if (n > 0 && n < MAXPATHLEN) - windir = g_utf16_to_utf8 (wwindir, -1, NULL, NULL, NULL); - - if (filename) - { - appdir = g_path_get_dirname (filename); - g_free (filename); - } - - path = g_strdup (path); - - if (windir) - { - const gchar *tem = path; - path = g_strconcat (windir, ";", path, NULL); - g_free ((gchar *) tem); - g_free (windir); - } - - if (sysdir) - { - const gchar *tem = path; - path = g_strconcat (sysdir, ";", path, NULL); - g_free ((gchar *) tem); - g_free (sysdir); - } - - { - const gchar *tem = path; - path = g_strconcat (".;", path, NULL); - g_free ((gchar *) tem); - } - - if (appdir) - { - const gchar *tem = path; - path = g_strconcat (appdir, ";", path, NULL); - g_free ((gchar *) tem); - g_free (appdir); - } - - path_copy = path; -#endif - - len = strlen (program) + 1; - pathlen = strlen (path); - freeme = name = g_malloc (pathlen + len + 1); - - /* Copy the file name at the top, including '\0' */ - memcpy (name + pathlen + 1, program, len); - name = name + pathlen; - /* And add the slash before the filename */ - *name = G_DIR_SEPARATOR; - - p = path; - do - { - char *startp; - - path = p; - p = my_strchrnul (path, G_SEARCHPATH_SEPARATOR); - - if (p == path) - /* Two adjacent colons, or a colon at the beginning or the end - * of `PATH' means to search the current directory. - */ - startp = name + 1; - else - startp = memcpy (name - (p - path), path, p - path); - - if (g_file_test (startp, G_FILE_TEST_IS_EXECUTABLE) && - !g_file_test (startp, G_FILE_TEST_IS_DIR)) - { - gchar *ret; - ret = g_strdup (startp); - g_free (freeme); -#ifdef G_OS_WIN32 - g_free ((gchar *) path_copy); -#endif - return ret; - } - } - while (*p++ != '\0'); - - g_free (freeme); -#ifdef G_OS_WIN32 - g_free ((gchar *) path_copy); -#endif - - return NULL; -} - -static gboolean -debug_key_matches (const gchar *key, - const gchar *token, - guint length) -{ - for (; length; length--, key++, token++) - { - char k = (*key == '_') ? '-' : tolower (*key ); - char t = (*token == '_') ? '-' : tolower (*token); - - if (k != t) - return FALSE; - } - - return *key == '\0'; -} - -/** - * g_parse_debug_string: - * @string: a list of debug options separated by colons, spaces, or - * commas, or %NULL. - * @keys: pointer to an array of #GDebugKey which associate - * strings with bit flags. - * @nkeys: the number of #GDebugKeys in the array. - * - * Parses a string containing debugging options - * into a %guint containing bit flags. This is used - * within GDK and GTK+ to parse the debug options passed on the - * command line or through environment variables. - * - * If @string is equal to "all", all flags are set. If @string - * is equal to "help", all the available keys in @keys are printed - * out to standard error. - * - * Returns: the combined set of bit flags. - */ -guint -g_parse_debug_string (const gchar *string, - const GDebugKey *keys, - guint nkeys) -{ - guint i; - guint result = 0; - - if (string == NULL) - return 0; - - /* this function is used by gmem.c/gslice.c initialization code, - * so introducing malloc dependencies here would require adaptions - * of those code portions. - */ - - if (!g_ascii_strcasecmp (string, "all")) - { - for (i=0; i base)) - base = q; - } -#endif - - if (base) - return base + 1; - -#ifdef G_OS_WIN32 - if (g_ascii_isalpha (file_name[0]) && file_name[1] == ':') - return (gchar*) file_name + 2; -#endif /* G_OS_WIN32 */ - - return (gchar*) file_name; -} - -/** - * g_path_get_basename: - * @file_name: the name of the file. - * - * Gets the last component of the filename. If @file_name ends with a - * directory separator it gets the component before the last slash. If - * @file_name consists only of directory separators (and on Windows, - * possibly a drive letter), a single separator is returned. If - * @file_name is empty, it gets ".". - * - * Return value: a newly allocated string containing the last component of - * the filename. - */ -gchar* -g_path_get_basename (const gchar *file_name) -{ - register gssize base; - register gssize last_nonslash; - gsize len; - gchar *retval; - - g_return_val_if_fail (file_name != NULL, NULL); - - if (file_name[0] == '\0') - /* empty string */ - return g_strdup ("."); - - last_nonslash = strlen (file_name) - 1; - - while (last_nonslash >= 0 && G_IS_DIR_SEPARATOR (file_name [last_nonslash])) - last_nonslash--; - - if (last_nonslash == -1) - /* string only containing slashes */ - return g_strdup (G_DIR_SEPARATOR_S); - -#ifdef G_OS_WIN32 - if (last_nonslash == 1 && g_ascii_isalpha (file_name[0]) && file_name[1] == ':') - /* string only containing slashes and a drive */ - return g_strdup (G_DIR_SEPARATOR_S); -#endif /* G_OS_WIN32 */ - - base = last_nonslash; - - while (base >=0 && !G_IS_DIR_SEPARATOR (file_name [base])) - base--; - -#ifdef G_OS_WIN32 - if (base == -1 && g_ascii_isalpha (file_name[0]) && file_name[1] == ':') - base = 1; -#endif /* G_OS_WIN32 */ - - len = last_nonslash - base; - retval = g_malloc (len + 1); - memcpy (retval, file_name + base + 1, len); - retval [len] = '\0'; - return retval; -} - -/** - * g_path_is_absolute: - * @file_name: a file name. - * - * Returns %TRUE if the given @file_name is an absolute file name, - * i.e. it contains a full path from the root directory such as "/usr/local" - * on UNIX or "C:\windows" on Windows systems. - * - * Returns: %TRUE if @file_name is an absolute path. - */ -gboolean -g_path_is_absolute (const gchar *file_name) -{ - g_return_val_if_fail (file_name != NULL, FALSE); - - if (G_IS_DIR_SEPARATOR (file_name[0])) - return TRUE; - -#ifdef G_OS_WIN32 - /* Recognize drive letter on native Windows */ - if (g_ascii_isalpha (file_name[0]) && - file_name[1] == ':' && G_IS_DIR_SEPARATOR (file_name[2])) - return TRUE; -#endif /* G_OS_WIN32 */ - - return FALSE; -} - -/** - * g_path_skip_root: - * @file_name: a file name. - * - * Returns a pointer into @file_name after the root component, i.e. after - * the "/" in UNIX or "C:\" under Windows. If @file_name is not an absolute - * path it returns %NULL. - * - * Returns: a pointer into @file_name after the root component. - */ -G_CONST_RETURN gchar* -g_path_skip_root (const gchar *file_name) -{ - g_return_val_if_fail (file_name != NULL, NULL); - -#ifdef G_PLATFORM_WIN32 - /* Skip \\server\share or //server/share */ - if (G_IS_DIR_SEPARATOR (file_name[0]) && - G_IS_DIR_SEPARATOR (file_name[1]) && - file_name[2] && - !G_IS_DIR_SEPARATOR (file_name[2])) - { - gchar *p; - - p = strchr (file_name + 2, G_DIR_SEPARATOR); -#ifdef G_OS_WIN32 - { - gchar *q = strchr (file_name + 2, '/'); - if (p == NULL || (q != NULL && q < p)) - p = q; - } -#endif - if (p && - p > file_name + 2 && - p[1]) - { - file_name = p + 1; - - while (file_name[0] && !G_IS_DIR_SEPARATOR (file_name[0])) - file_name++; - - /* Possibly skip a backslash after the share name */ - if (G_IS_DIR_SEPARATOR (file_name[0])) - file_name++; - - return (gchar *)file_name; - } - } -#endif - - /* Skip initial slashes */ - if (G_IS_DIR_SEPARATOR (file_name[0])) - { - while (G_IS_DIR_SEPARATOR (file_name[0])) - file_name++; - return (gchar *)file_name; - } - -#ifdef G_OS_WIN32 - /* Skip X:\ */ - if (g_ascii_isalpha (file_name[0]) && file_name[1] == ':' && G_IS_DIR_SEPARATOR (file_name[2])) - return (gchar *)file_name + 3; -#endif - - return NULL; -} - -/** - * g_path_get_dirname: - * @file_name: the name of the file. - * - * Gets the directory components of a file name. If the file name has no - * directory components "." is returned. The returned string should be - * freed when no longer needed. - * - * Returns: the directory components of the file. - */ -gchar* -g_path_get_dirname (const gchar *file_name) -{ - register gchar *base; - register gsize len; - - g_return_val_if_fail (file_name != NULL, NULL); - - base = strrchr (file_name, G_DIR_SEPARATOR); -#ifdef G_OS_WIN32 - { - gchar *q = strrchr (file_name, '/'); - if (base == NULL || (q != NULL && q > base)) - base = q; - } -#endif - if (!base) - { -#ifdef G_OS_WIN32 - if (g_ascii_isalpha (file_name[0]) && file_name[1] == ':') - { - gchar drive_colon_dot[4]; - - drive_colon_dot[0] = file_name[0]; - drive_colon_dot[1] = ':'; - drive_colon_dot[2] = '.'; - drive_colon_dot[3] = '\0'; - - return g_strdup (drive_colon_dot); - } -#endif - return g_strdup ("."); - } - - while (base > file_name && G_IS_DIR_SEPARATOR (*base)) - base--; - -#ifdef G_OS_WIN32 - /* base points to the char before the last slash. - * - * In case file_name is the root of a drive (X:\) or a child of the - * root of a drive (X:\foo), include the slash. - * - * In case file_name is the root share of an UNC path - * (\\server\share), add a slash, returning \\server\share\ . - * - * In case file_name is a direct child of a share in an UNC path - * (\\server\share\foo), include the slash after the share name, - * returning \\server\share\ . - */ - if (base == file_name + 1 && g_ascii_isalpha (file_name[0]) && file_name[1] == ':') - base++; - else if (G_IS_DIR_SEPARATOR (file_name[0]) && - G_IS_DIR_SEPARATOR (file_name[1]) && - file_name[2] && - !G_IS_DIR_SEPARATOR (file_name[2]) && - base >= file_name + 2) - { - const gchar *p = file_name + 2; - while (*p && !G_IS_DIR_SEPARATOR (*p)) - p++; - if (p == base + 1) - { - len = (guint) strlen (file_name) + 1; - base = g_new (gchar, len + 1); - strcpy (base, file_name); - base[len-1] = G_DIR_SEPARATOR; - base[len] = 0; - return base; - } - if (G_IS_DIR_SEPARATOR (*p)) - { - p++; - while (*p && !G_IS_DIR_SEPARATOR (*p)) - p++; - if (p == base + 1) - base++; - } - } -#endif - - len = (guint) 1 + base - file_name; - - base = g_new (gchar, len + 1); - g_memmove (base, file_name, len); - base[len] = 0; - - return base; -} - -/** - * g_get_current_dir: - * - * Gets the current directory. - * The returned string should be freed when no longer needed. The encoding - * of the returned string is system defined. On Windows, it is always UTF-8. - * - * Returns: the current directory. - */ -gchar* -g_get_current_dir (void) -{ -#ifdef G_OS_WIN32 - - gchar *dir = NULL; - wchar_t dummy[2], *wdir; - int len; - - len = GetCurrentDirectoryW (2, dummy); - wdir = g_new (wchar_t, len); - - if (GetCurrentDirectoryW (len, wdir) == len - 1) - dir = g_utf16_to_utf8 (wdir, -1, NULL, NULL, NULL); - - g_free (wdir); - - if (dir == NULL) - dir = g_strdup ("\\"); - - return dir; - -#else - - gchar *buffer = NULL; - gchar *dir = NULL; - static gulong max_len = 0; - - if (max_len == 0) - max_len = (G_PATH_LENGTH == -1) ? 2048 : G_PATH_LENGTH; - - /* We don't use getcwd(3) on SUNOS, because, it does a popen("pwd") - * and, if that wasn't bad enough, hangs in doing so. - */ -#if (defined (sun) && !defined (__SVR4)) || !defined(HAVE_GETCWD) - buffer = g_new (gchar, max_len + 1); - *buffer = 0; - dir = getwd (buffer); -#else /* !sun || !HAVE_GETCWD */ - while (max_len < G_MAXULONG / 2) - { - g_free (buffer); - buffer = g_new (gchar, max_len + 1); - *buffer = 0; - dir = getcwd (buffer, max_len); - - if (dir || errno != ERANGE) - break; - - max_len *= 2; - } -#endif /* !sun || !HAVE_GETCWD */ - - if (!dir || !*buffer) - { - /* hm, should we g_error() out here? - * this can happen if e.g. "./" has mode \0000 - */ - buffer[0] = G_DIR_SEPARATOR; - buffer[1] = 0; - } - - dir = g_strdup (buffer); - g_free (buffer); - - return dir; -#endif /* !Win32 */ -} - -/** - * g_getenv: - * @variable: the environment variable to get, in the GLib file name encoding. - * - * Returns the value of an environment variable. The name and value - * are in the GLib file name encoding. On UNIX, this means the actual - * bytes which might or might not be in some consistent character set - * and encoding. On Windows, it is in UTF-8. On Windows, in case the - * environment variable's value contains references to other - * environment variables, they are expanded. - * - * Return value: the value of the environment variable, or %NULL if - * the environment variable is not found. The returned string may be - * overwritten by the next call to g_getenv(), g_setenv() or - * g_unsetenv(). - **/ -G_CONST_RETURN gchar* -g_getenv (const gchar *variable) -{ -#ifndef G_OS_WIN32 - - g_return_val_if_fail (variable != NULL, NULL); - - return getenv (variable); - -#else /* G_OS_WIN32 */ - - GQuark quark; - gchar *value; - wchar_t dummy[2], *wname, *wvalue; - int len; - - g_return_val_if_fail (variable != NULL, NULL); - g_return_val_if_fail (g_utf8_validate (variable, -1, NULL), NULL); - - /* On Windows NT, it is relatively typical that environment - * variables contain references to other environment variables. If - * so, use ExpandEnvironmentStrings(). (In an ideal world, such - * environment variables would be stored in the Registry as - * REG_EXPAND_SZ type values, and would then get automatically - * expanded before a program sees them. But there is broken software - * that stores environment variables as REG_SZ values even if they - * contain references to other environment variables.) - */ - - wname = g_utf8_to_utf16 (variable, -1, NULL, NULL, NULL); - - len = GetEnvironmentVariableW (wname, dummy, 2); - - if (len == 0) - { - g_free (wname); - return NULL; - } - else if (len == 1) - len = 2; - - wvalue = g_new (wchar_t, len); - - if (GetEnvironmentVariableW (wname, wvalue, len) != len - 1) - { - g_free (wname); - g_free (wvalue); - return NULL; - } - - if (wcschr (wvalue, L'%') != NULL) - { - wchar_t *tem = wvalue; - - len = ExpandEnvironmentStringsW (wvalue, dummy, 2); - - if (len > 0) - { - wvalue = g_new (wchar_t, len); - - if (ExpandEnvironmentStringsW (tem, wvalue, len) != len) - { - g_free (wvalue); - wvalue = tem; - } - else - g_free (tem); - } - } - - value = g_utf16_to_utf8 (wvalue, -1, NULL, NULL, NULL); - - g_free (wname); - g_free (wvalue); - - quark = g_quark_from_string (value); - g_free (value); - - return g_quark_to_string (quark); - -#endif /* G_OS_WIN32 */ -} - -/* _g_getenv_nomalloc - * this function does a getenv() without doing any kind of allocation - * through glib. it's suitable for chars <= 127 only (both, for the - * variable name and the contents) and for contents < 1024 chars in - * length. also, it aliases "" to a NULL return value. - **/ -const gchar* -_g_getenv_nomalloc (const gchar *variable, - gchar buffer[1024]) -{ - const gchar *retval = getenv (variable); - if (retval && retval[0]) - { - gint l = strlen (retval); - if (l < 1024) - { - strncpy (buffer, retval, l); - buffer[l] = 0; - return buffer; - } - } - return NULL; -} - -/** - * g_setenv: - * @variable: the environment variable to set, must not contain '='. - * @value: the value for to set the variable to. - * @overwrite: whether to change the variable if it already exists. - * - * Sets an environment variable. Both the variable's name and value - * should be in the GLib file name encoding. On UNIX, this means that - * they can be any sequence of bytes. On Windows, they should be in - * UTF-8. - * - * Note that on some systems, when variables are overwritten, the memory - * used for the previous variables and its value isn't reclaimed. - * - * Returns: %FALSE if the environment variable couldn't be set. - * - * Since: 2.4 - */ -gboolean -g_setenv (const gchar *variable, - const gchar *value, - gboolean overwrite) -{ -#ifndef G_OS_WIN32 - - gint result; -#ifndef HAVE_SETENV - gchar *string; -#endif - - g_return_val_if_fail (variable != NULL, FALSE); - g_return_val_if_fail (strchr (variable, '=') == NULL, FALSE); - -#ifdef HAVE_SETENV - result = setenv (variable, value, overwrite); -#else - if (!overwrite && getenv (variable) != NULL) - return TRUE; - - /* This results in a leak when you overwrite existing - * settings. It would be fairly easy to fix this by keeping - * our own parallel array or hash table. - */ - string = g_strconcat (variable, "=", value, NULL); - result = putenv (string); -#endif - return result == 0; - -#else /* G_OS_WIN32 */ - - gboolean retval; - wchar_t *wname, *wvalue, *wassignment; - gchar *tem; - - g_return_val_if_fail (variable != NULL, FALSE); - g_return_val_if_fail (strchr (variable, '=') == NULL, FALSE); - g_return_val_if_fail (g_utf8_validate (variable, -1, NULL), FALSE); - g_return_val_if_fail (g_utf8_validate (value, -1, NULL), FALSE); - - if (!overwrite && g_getenv (variable) != NULL) - return TRUE; - - /* We want to (if possible) set both the environment variable copy - * kept by the C runtime and the one kept by the system. - * - * We can't use only the C runtime's putenv or _wputenv() as that - * won't work for arbitrary Unicode strings in a "non-Unicode" app - * (with main() and not wmain()). In a "main()" app the C runtime - * initializes the C runtime's environment table by converting the - * real (wide char) environment variables to system codepage, thus - * breaking those that aren't representable in the system codepage. - * - * As the C runtime's putenv() will also set the system copy, we do - * the putenv() first, then call SetEnvironmentValueW ourselves. - */ - - wname = g_utf8_to_utf16 (variable, -1, NULL, NULL, NULL); - wvalue = g_utf8_to_utf16 (value, -1, NULL, NULL, NULL); - tem = g_strconcat (variable, "=", value, NULL); - wassignment = g_utf8_to_utf16 (tem, -1, NULL, NULL, NULL); - - g_free (tem); - _wputenv (wassignment); - g_free (wassignment); - - retval = (SetEnvironmentVariableW (wname, wvalue) != 0); - - g_free (wname); - g_free (wvalue); - - return retval; - -#endif /* G_OS_WIN32 */ -} - -#ifdef HAVE__NSGETENVIRON -#define environ (*_NSGetEnviron()) -#elif !defined(G_OS_WIN32) - -/* According to the Single Unix Specification, environ is not in - * any system header, although unistd.h often declares it. - */ -extern char **environ; -#endif - -/** - * g_unsetenv: - * @variable: the environment variable to remove, must not contain '='. - * - * Removes an environment variable from the environment. - * - * Note that on some systems, when variables are overwritten, the memory - * used for the previous variables and its value isn't reclaimed. - * Furthermore, this function can't be guaranteed to operate in a - * threadsafe way. - * - * Since: 2.4 - **/ -void -g_unsetenv (const gchar *variable) -{ -#ifndef G_OS_WIN32 - -#ifdef HAVE_UNSETENV - g_return_if_fail (variable != NULL); - g_return_if_fail (strchr (variable, '=') == NULL); - - unsetenv (variable); -#else /* !HAVE_UNSETENV */ - int len; - gchar **e, **f; - - g_return_if_fail (variable != NULL); - g_return_if_fail (strchr (variable, '=') == NULL); - - len = strlen (variable); - - /* Mess directly with the environ array. - * This seems to be the only portable way to do this. - * - * Note that we remove *all* environment entries for - * the variable name, not just the first. - */ - e = f = environ; - while (*e != NULL) - { - if (strncmp (*e, variable, len) != 0 || (*e)[len] != '=') - { - *f = *e; - f++; - } - e++; - } - *f = NULL; -#endif /* !HAVE_UNSETENV */ - -#else /* G_OS_WIN32 */ - - wchar_t *wname, *wassignment; - gchar *tem; - - g_return_if_fail (variable != NULL); - g_return_if_fail (strchr (variable, '=') == NULL); - g_return_if_fail (g_utf8_validate (variable, -1, NULL)); - - wname = g_utf8_to_utf16 (variable, -1, NULL, NULL, NULL); - tem = g_strconcat (variable, "=", NULL); - wassignment = g_utf8_to_utf16 (tem, -1, NULL, NULL, NULL); - - g_free (tem); - _wputenv (wassignment); - g_free (wassignment); - - SetEnvironmentVariableW (wname, NULL); - - g_free (wname); - -#endif /* G_OS_WIN32 */ -} - -/** - * g_listenv: - * - * Gets the names of all variables set in the environment. - * - * Returns: a %NULL-terminated list of strings which must be freed - * with g_strfreev(). - * - * Programs that want to be portable to Windows should typically use - * this function and g_getenv() instead of using the environ array - * from the C library directly. On Windows, the strings in the environ - * array are in system codepage encoding, while in most of the typical - * use cases for environment variables in GLib-using programs you want - * the UTF-8 encoding that this function and g_getenv() provide. - * - * Since: 2.8 - */ -gchar ** -g_listenv (void) -{ -#ifndef G_OS_WIN32 - gchar **result, *eq; - gint len, i, j; - - len = g_strv_length (environ); - result = g_new0 (gchar *, len + 1); - - j = 0; - for (i = 0; i < len; i++) - { - eq = strchr (environ[i], '='); - if (eq) - result[j++] = g_strndup (environ[i], eq - environ[i]); - } - - result[j] = NULL; - - return result; -#else - gchar **result, *eq; - gint len = 0, j; - wchar_t *p, *q; - - p = (wchar_t *) GetEnvironmentStringsW (); - if (p != NULL) - { - q = p; - while (*q) - { - q += wcslen (q) + 1; - len++; - } - } - result = g_new0 (gchar *, len + 1); - - j = 0; - q = p; - while (*q) - { - result[j] = g_utf16_to_utf8 (q, -1, NULL, NULL, NULL); - if (result[j] != NULL) - { - eq = strchr (result[j], '='); - if (eq && eq > result[j]) - { - *eq = '\0'; - j++; - } - else - g_free (result[j]); - } - q += wcslen (q) + 1; - } - result[j] = NULL; - FreeEnvironmentStringsW (p); - - return result; -#endif -} - -G_LOCK_DEFINE_STATIC (g_utils_global); - -static gchar *g_tmp_dir = NULL; -static gchar *g_user_name = NULL; -static gchar *g_real_name = NULL; -static gchar *g_home_dir = NULL; -static gchar *g_host_name = NULL; - -#ifdef G_OS_WIN32 -/* System codepage versions of the above, kept at file level so that they, - * too, are produced only once. - */ -static gchar *g_tmp_dir_cp = NULL; -static gchar *g_user_name_cp = NULL; -static gchar *g_real_name_cp = NULL; -static gchar *g_home_dir_cp = NULL; -#endif - -static gchar *g_user_data_dir = NULL; -static gchar **g_system_data_dirs = NULL; -static gchar *g_user_cache_dir = NULL; -static gchar *g_user_config_dir = NULL; -static gchar **g_system_config_dirs = NULL; - -static gchar **g_user_special_dirs = NULL; - -/* fifteen minutes of fame for everybody */ -#define G_USER_DIRS_EXPIRE 15 * 60 - -#ifdef G_OS_WIN32 - -static gchar * -get_special_folder (int csidl) -{ - wchar_t path[MAX_PATH+1]; - HRESULT hr; - LPITEMIDLIST pidl = NULL; - BOOL b; - gchar *retval = NULL; - - hr = SHGetSpecialFolderLocation (NULL, csidl, &pidl); - if (hr == S_OK) - { - b = SHGetPathFromIDListW (pidl, path); - if (b) - retval = g_utf16_to_utf8 (path, -1, NULL, NULL, NULL); - CoTaskMemFree (pidl); - } - return retval; -} - -static char * -get_windows_directory_root (void) -{ - wchar_t wwindowsdir[MAX_PATH]; - - if (GetWindowsDirectoryW (wwindowsdir, G_N_ELEMENTS (wwindowsdir))) - { - /* Usually X:\Windows, but in terminal server environments - * might be an UNC path, AFAIK. - */ - char *windowsdir = g_utf16_to_utf8 (wwindowsdir, -1, NULL, NULL, NULL); - char *p; - - if (windowsdir == NULL) - return g_strdup ("C:\\"); - - p = (char *) g_path_skip_root (windowsdir); - if (G_IS_DIR_SEPARATOR (p[-1]) && p[-2] != ':') - p--; - *p = '\0'; - return windowsdir; - } - else - return g_strdup ("C:\\"); -} - -#endif - -/* HOLDS: g_utils_global_lock */ -static void -g_get_any_init_do (void) -{ - gchar hostname[100]; - - g_tmp_dir = g_strdup (g_getenv ("TMPDIR")); - if (!g_tmp_dir) - g_tmp_dir = g_strdup (g_getenv ("TMP")); - if (!g_tmp_dir) - g_tmp_dir = g_strdup (g_getenv ("TEMP")); - -#ifdef G_OS_WIN32 - if (!g_tmp_dir) - g_tmp_dir = get_windows_directory_root (); -#else -#ifdef P_tmpdir - if (!g_tmp_dir) - { - gsize k; - g_tmp_dir = g_strdup (P_tmpdir); - k = strlen (g_tmp_dir); - if (k > 1 && G_IS_DIR_SEPARATOR (g_tmp_dir[k - 1])) - g_tmp_dir[k - 1] = '\0'; - } -#endif - - if (!g_tmp_dir) - { - g_tmp_dir = g_strdup ("/tmp"); - } -#endif /* !G_OS_WIN32 */ - -#ifdef G_OS_WIN32 - /* We check $HOME first for Win32, though it is a last resort for Unix - * where we prefer the results of getpwuid(). - */ - g_home_dir = g_strdup (g_getenv ("HOME")); - - /* Only believe HOME if it is an absolute path and exists */ - if (g_home_dir) - { - if (!(g_path_is_absolute (g_home_dir) && - g_file_test (g_home_dir, G_FILE_TEST_IS_DIR))) - { - g_free (g_home_dir); - g_home_dir = NULL; - } - } - - /* In case HOME is Unix-style (it happens), convert it to - * Windows style. - */ - if (g_home_dir) - { - gchar *p; - while ((p = strchr (g_home_dir, '/')) != NULL) - *p = '\\'; - } - - if (!g_home_dir) - { - /* USERPROFILE is probably the closest equivalent to $HOME? */ - if (g_getenv ("USERPROFILE") != NULL) - g_home_dir = g_strdup (g_getenv ("USERPROFILE")); - } - - if (!g_home_dir) - g_home_dir = get_special_folder (CSIDL_PROFILE); - - if (!g_home_dir) - g_home_dir = get_windows_directory_root (); -#endif /* G_OS_WIN32 */ - -#ifdef HAVE_PWD_H - { - struct passwd *pw = NULL; - gpointer buffer = NULL; - gint error; - gchar *logname; - -# if defined (HAVE_POSIX_GETPWUID_R) || defined (HAVE_NONPOSIX_GETPWUID_R) - struct passwd pwd; -# ifdef _SC_GETPW_R_SIZE_MAX - /* This reurns the maximum length */ - glong bufsize = sysconf (_SC_GETPW_R_SIZE_MAX); - - if (bufsize < 0) - bufsize = 64; -# else /* _SC_GETPW_R_SIZE_MAX */ - glong bufsize = 64; -# endif /* _SC_GETPW_R_SIZE_MAX */ - - logname = (gchar *) g_getenv ("LOGNAME"); - - do - { - g_free (buffer); - /* we allocate 6 extra bytes to work around a bug in - * Mac OS < 10.3. See #156446 - */ - buffer = g_malloc (bufsize + 6); - errno = 0; - -# ifdef HAVE_POSIX_GETPWUID_R - if (logname) { - error = getpwnam_r (logname, &pwd, buffer, bufsize, &pw); - if (!pw || (pw->pw_uid != getuid ())) { - /* LOGNAME is lying, fall back to looking up the uid */ - error = getpwuid_r (getuid (), &pwd, buffer, bufsize, &pw); - } - } else { - error = getpwuid_r (getuid (), &pwd, buffer, bufsize, &pw); - } - error = error < 0 ? errno : error; -# else /* HAVE_NONPOSIX_GETPWUID_R */ - /* HPUX 11 falls into the HAVE_POSIX_GETPWUID_R case */ -# if defined(_AIX) || defined(__hpux) - error = getpwuid_r (getuid (), &pwd, buffer, bufsize); - pw = error == 0 ? &pwd : NULL; -# else /* !_AIX */ - if (logname) { - pw = getpwnam_r (logname, &pwd, buffer, bufsize); - if (!pw || (pw->pw_uid != getuid ())) { - /* LOGNAME is lying, fall back to looking up the uid */ - pw = getpwuid_r (getuid (), &pwd, buffer, bufsize); - } - } else { - pw = getpwuid_r (getuid (), &pwd, buffer, bufsize); - } - error = pw ? 0 : errno; -# endif /* !_AIX */ -# endif /* HAVE_NONPOSIX_GETPWUID_R */ - - if (!pw) - { - /* we bail out prematurely if the user id can't be found - * (should be pretty rare case actually), or if the buffer - * should be sufficiently big and lookups are still not - * successfull. - */ - if (error == 0 || error == ENOENT) - { - g_warning ("getpwuid_r(): failed due to unknown user id (%lu)", - (gulong) getuid ()); - break; - } - if (bufsize > 32 * 1024) - { - g_warning ("getpwuid_r(): failed due to: %s.", - g_strerror (error)); - break; - } - - bufsize *= 2; - } - } - while (!pw); -# endif /* HAVE_POSIX_GETPWUID_R || HAVE_NONPOSIX_GETPWUID_R */ - - if (!pw) - { - setpwent (); - pw = getpwuid (getuid ()); - endpwent (); - } - if (pw) - { - g_user_name = g_strdup (pw->pw_name); - - if (pw->pw_gecos && *pw->pw_gecos != '\0') - { - gchar **gecos_fields; - gchar **name_parts; - - /* split the gecos field and substitute '&' */ - gecos_fields = g_strsplit (pw->pw_gecos, ",", 0); - name_parts = g_strsplit (gecos_fields[0], "&", 0); - pw->pw_name[0] = g_ascii_toupper (pw->pw_name[0]); - g_real_name = g_strjoinv (pw->pw_name, name_parts); - g_strfreev (gecos_fields); - g_strfreev (name_parts); - } - - if (!g_home_dir) - g_home_dir = g_strdup (pw->pw_dir); - } - g_free (buffer); - } - -#else /* !HAVE_PWD_H */ - -#ifdef G_OS_WIN32 - { - guint len = UNLEN+1; - wchar_t buffer[UNLEN+1]; - - if (GetUserNameW (buffer, (LPDWORD) &len)) - { - g_user_name = g_utf16_to_utf8 (buffer, -1, NULL, NULL, NULL); - g_real_name = g_strdup (g_user_name); - } - } -#endif /* G_OS_WIN32 */ - -#endif /* !HAVE_PWD_H */ - -#ifndef G_OS_WIN32 - if (!g_home_dir) - g_home_dir = g_strdup (g_getenv ("HOME")); -#endif - -#ifdef __EMX__ - /* change '\\' in %HOME% to '/' */ - g_strdelimit (g_home_dir, "\\",'/'); -#endif - if (!g_user_name) - g_user_name = g_strdup ("somebody"); - if (!g_real_name) - g_real_name = g_strdup ("Unknown"); - - { -#ifndef G_OS_WIN32 - gboolean hostname_fail = (gethostname (hostname, sizeof (hostname)) == -1); -#else - DWORD size = sizeof (hostname); - gboolean hostname_fail = (!GetComputerName (hostname, &size)); -#endif - g_host_name = g_strdup (hostname_fail ? "localhost" : hostname); - } - -#ifdef G_OS_WIN32 - g_tmp_dir_cp = g_locale_from_utf8 (g_tmp_dir, -1, NULL, NULL, NULL); - g_user_name_cp = g_locale_from_utf8 (g_user_name, -1, NULL, NULL, NULL); - g_real_name_cp = g_locale_from_utf8 (g_real_name, -1, NULL, NULL, NULL); - - if (!g_tmp_dir_cp) - g_tmp_dir_cp = g_strdup ("\\"); - if (!g_user_name_cp) - g_user_name_cp = g_strdup ("somebody"); - if (!g_real_name_cp) - g_real_name_cp = g_strdup ("Unknown"); - - /* home_dir might be NULL, unlike tmp_dir, user_name and - * real_name. - */ - if (g_home_dir) - g_home_dir_cp = g_locale_from_utf8 (g_home_dir, -1, NULL, NULL, NULL); - else - g_home_dir_cp = NULL; -#endif /* G_OS_WIN32 */ -} - -static inline void -g_get_any_init (void) -{ - if (!g_tmp_dir) - g_get_any_init_do (); -} - -static inline void -g_get_any_init_locked (void) -{ - G_LOCK (g_utils_global); - g_get_any_init (); - G_UNLOCK (g_utils_global); -} - - -/** - * g_get_user_name: - * - * Gets the user name of the current user. The encoding of the returned - * string is system-defined. On UNIX, it might be the preferred file name - * encoding, or something else, and there is no guarantee that it is even - * consistent on a machine. On Windows, it is always UTF-8. - * - * Returns: the user name of the current user. - */ -G_CONST_RETURN gchar* -g_get_user_name (void) -{ - g_get_any_init_locked (); - return g_user_name; -} - -/** - * g_get_real_name: - * - * Gets the real name of the user. This usually comes from the user's entry - * in the passwd file. The encoding of the returned - * string is system-defined. (On Windows, it is, however, always UTF-8.) - * If the real user name cannot be determined, the string "Unknown" is - * returned. - * - * Returns: the user's real name. - */ -G_CONST_RETURN gchar* -g_get_real_name (void) -{ - g_get_any_init_locked (); - return g_real_name; -} - -/** - * g_get_home_dir: - * - * Gets the current user's home directory as defined in the - * password database. - * - * Note that in contrast to traditional UNIX tools, this function - * prefers passwd entries over the HOME - * environment variable. - * - * One of the reasons for this decision is that applications in many - * cases need special handling to deal with the case where - * HOME is - * - * Not owned by the user - * Not writeable - * Not even readable - * - * Since applications are in general not written - * to deal with these situations it was considered better to make - * g_get_home_dir() not pay attention to HOME and to - * return the real home directory for the user. If applications - * want to pay attention to HOME, they can do: - * |[ - * const char *homedir = g_getenv ("HOME"); - * if (!homedir) - * homedir = g_get_home_dir (); - * ]| - * - * Returns: the current user's home directory - */ -G_CONST_RETURN gchar* -g_get_home_dir (void) -{ - g_get_any_init_locked (); - return g_home_dir; -} - -/** - * g_get_tmp_dir: - * - * Gets the directory to use for temporary files. This is found from - * inspecting the environment variables TMPDIR, - * TMP, and TEMP in that order. If none - * of those are defined "/tmp" is returned on UNIX and "C:\" on Windows. - * The encoding of the returned string is system-defined. On Windows, - * it is always UTF-8. The return value is never %NULL. - * - * Returns: the directory to use for temporary files. - */ -G_CONST_RETURN gchar* -g_get_tmp_dir (void) -{ - g_get_any_init_locked (); - return g_tmp_dir; -} - -/** - * g_get_host_name: - * - * Return a name for the machine. - * - * The returned name is not necessarily a fully-qualified domain name, - * or even present in DNS or some other name service at all. It need - * not even be unique on your local network or site, but usually it - * is. Callers should not rely on the return value having any specific - * properties like uniqueness for security purposes. Even if the name - * of the machine is changed while an application is running, the - * return value from this function does not change. The returned - * string is owned by GLib and should not be modified or freed. If no - * name can be determined, a default fixed string "localhost" is - * returned. - * - * Returns: the host name of the machine. - * - * Since: 2.8 - */ -const gchar * -g_get_host_name (void) -{ - g_get_any_init_locked (); - return g_host_name; -} - -G_LOCK_DEFINE_STATIC (g_prgname); -static gchar *g_prgname = NULL; - -/** - * g_get_prgname: - * - * Gets the name of the program. This name should not - * be localized, contrast with g_get_application_name(). - * (If you are using GDK or GTK+ the program name is set in gdk_init(), - * which is called by gtk_init(). The program name is found by taking - * the last component of argv[0].) - * - * Returns: the name of the program. The returned string belongs - * to GLib and must not be modified or freed. - */ -gchar* -g_get_prgname (void) -{ - gchar* retval; - - G_LOCK (g_prgname); -#ifdef G_OS_WIN32 - if (g_prgname == NULL) - { - static gboolean beenhere = FALSE; - - if (!beenhere) - { - gchar *utf8_buf = NULL; - wchar_t buf[MAX_PATH+1]; - - beenhere = TRUE; - if (GetModuleFileNameW (GetModuleHandle (NULL), - buf, G_N_ELEMENTS (buf)) > 0) - utf8_buf = g_utf16_to_utf8 (buf, -1, NULL, NULL, NULL); - - if (utf8_buf) - { - g_prgname = g_path_get_basename (utf8_buf); - g_free (utf8_buf); - } - } - } -#endif - retval = g_prgname; - G_UNLOCK (g_prgname); - - return retval; -} - -/** - * g_set_prgname: - * @prgname: the name of the program. - * - * Sets the name of the program. This name should not - * be localized, contrast with g_set_application_name(). Note that for - * thread-safety reasons this function can only be called once. - */ -void -g_set_prgname (const gchar *prgname) -{ - G_LOCK (g_prgname); - g_free (g_prgname); - g_prgname = g_strdup (prgname); - G_UNLOCK (g_prgname); -} - -G_LOCK_DEFINE_STATIC (g_application_name); -static gchar *g_application_name = NULL; - -/** - * g_get_application_name: - * - * Gets a human-readable name for the application, as set by - * g_set_application_name(). This name should be localized if - * possible, and is intended for display to the user. Contrast with - * g_get_prgname(), which gets a non-localized name. If - * g_set_application_name() has not been called, returns the result of - * g_get_prgname() (which may be %NULL if g_set_prgname() has also not - * been called). - * - * Return value: human-readable application name. may return %NULL - * - * Since: 2.2 - **/ -G_CONST_RETURN gchar* -g_get_application_name (void) -{ - gchar* retval; - - G_LOCK (g_application_name); - retval = g_application_name; - G_UNLOCK (g_application_name); - - if (retval == NULL) - return g_get_prgname (); - - return retval; -} - -/** - * g_set_application_name: - * @application_name: localized name of the application - * - * Sets a human-readable name for the application. This name should be - * localized if possible, and is intended for display to the user. - * Contrast with g_set_prgname(), which sets a non-localized name. - * g_set_prgname() will be called automatically by gtk_init(), - * but g_set_application_name() will not. - * - * Note that for thread safety reasons, this function can only - * be called once. - * - * The application name will be used in contexts such as error messages, - * or when displaying an application's name in the task list. - * - * Since: 2.2 - **/ -void -g_set_application_name (const gchar *application_name) -{ - gboolean already_set = FALSE; - - G_LOCK (g_application_name); - if (g_application_name) - already_set = TRUE; - else - g_application_name = g_strdup (application_name); - G_UNLOCK (g_application_name); - - if (already_set) - g_warning ("g_set_application() name called multiple times"); -} - -/** - * g_get_user_data_dir: - * - * Returns a base directory in which to access application data such - * as icons that is customized for a particular user. - * - * On UNIX platforms this is determined using the mechanisms described in - * the - * XDG Base Directory Specification - * - * Return value: a string owned by GLib that must not be modified - * or freed. - * Since: 2.6 - **/ -G_CONST_RETURN gchar* -g_get_user_data_dir (void) -{ - gchar *data_dir; - - G_LOCK (g_utils_global); - - if (!g_user_data_dir) - { -#ifdef G_OS_WIN32 - data_dir = get_special_folder (CSIDL_PERSONAL); -#else - data_dir = (gchar *) g_getenv ("XDG_DATA_HOME"); - - if (data_dir && data_dir[0]) - data_dir = g_strdup (data_dir); -#endif - if (!data_dir || !data_dir[0]) - { - g_get_any_init (); - - if (g_home_dir) - data_dir = g_build_filename (g_home_dir, ".local", - "share", NULL); - else - data_dir = g_build_filename (g_tmp_dir, g_user_name, ".local", - "share", NULL); - } - - g_user_data_dir = data_dir; - } - else - data_dir = g_user_data_dir; - - G_UNLOCK (g_utils_global); - - return data_dir; -} - -static void -g_init_user_config_dir (void) -{ - gchar *config_dir; - - if (!g_user_config_dir) - { -#ifdef G_OS_WIN32 - config_dir = get_special_folder (CSIDL_APPDATA); -#else - config_dir = (gchar *) g_getenv ("XDG_CONFIG_HOME"); - - if (config_dir && config_dir[0]) - config_dir = g_strdup (config_dir); -#endif - if (!config_dir || !config_dir[0]) - { - g_get_any_init (); - - if (g_home_dir) - config_dir = g_build_filename (g_home_dir, ".config", NULL); - else - config_dir = g_build_filename (g_tmp_dir, g_user_name, ".config", NULL); - } - - g_user_config_dir = config_dir; - } -} - -/** - * g_get_user_config_dir: - * - * Returns a base directory in which to store user-specific application - * configuration information such as user preferences and settings. - * - * On UNIX platforms this is determined using the mechanisms described in - * the - * XDG Base Directory Specification - * - * Return value: a string owned by GLib that must not be modified - * or freed. - * Since: 2.6 - **/ -G_CONST_RETURN gchar* -g_get_user_config_dir (void) -{ - G_LOCK (g_utils_global); - - g_init_user_config_dir (); - - G_UNLOCK (g_utils_global); - - return g_user_config_dir; -} - -/** - * g_get_user_cache_dir: - * - * Returns a base directory in which to store non-essential, cached - * data specific to particular user. - * - * On UNIX platforms this is determined using the mechanisms described in - * the - * XDG Base Directory Specification - * - * Return value: a string owned by GLib that must not be modified - * or freed. - * Since: 2.6 - **/ -G_CONST_RETURN gchar* -g_get_user_cache_dir (void) -{ - gchar *cache_dir; - - G_LOCK (g_utils_global); - - if (!g_user_cache_dir) - { -#ifdef G_OS_WIN32 - cache_dir = get_special_folder (CSIDL_INTERNET_CACHE); /* XXX correct? */ -#else - cache_dir = (gchar *) g_getenv ("XDG_CACHE_HOME"); - - if (cache_dir && cache_dir[0]) - cache_dir = g_strdup (cache_dir); -#endif - if (!cache_dir || !cache_dir[0]) - { - g_get_any_init (); - - if (g_home_dir) - cache_dir = g_build_filename (g_home_dir, ".cache", NULL); - else - cache_dir = g_build_filename (g_tmp_dir, g_user_name, ".cache", NULL); - } - g_user_cache_dir = cache_dir; - } - else - cache_dir = g_user_cache_dir; - - G_UNLOCK (g_utils_global); - - return cache_dir; -} - -#ifdef HAVE_CARBON - -static gchar * -find_folder (OSType type) -{ - gchar *filename = NULL; - FSRef found; - - if (FSFindFolder (kUserDomain, type, kDontCreateFolder, &found) == noErr) - { - CFURLRef url = CFURLCreateFromFSRef (kCFAllocatorSystemDefault, &found); - - if (url) - { - CFStringRef path = CFURLCopyFileSystemPath (url, kCFURLPOSIXPathStyle); - - if (path) - { - filename = g_strdup (CFStringGetCStringPtr (path, kCFStringEncodingUTF8)); - - if (! filename) - { - filename = g_new0 (gchar, CFStringGetLength (path) * 3 + 1); - - CFStringGetCString (path, filename, - CFStringGetLength (path) * 3 + 1, - kCFStringEncodingUTF8); - } - - CFRelease (path); - } - - CFRelease (url); - } - } - - return filename; -} - -static void -load_user_special_dirs (void) -{ - g_user_special_dirs[G_USER_DIRECTORY_DESKTOP] = find_folder (kDesktopFolderType); - g_user_special_dirs[G_USER_DIRECTORY_DOCUMENTS] = find_folder (kDocumentsFolderType); - g_user_special_dirs[G_USER_DIRECTORY_DOWNLOAD] = find_folder (kDesktopFolderType); /* XXX correct ? */ - g_user_special_dirs[G_USER_DIRECTORY_MUSIC] = find_folder (kMusicDocumentsFolderType); - g_user_special_dirs[G_USER_DIRECTORY_PICTURES] = find_folder (kPictureDocumentsFolderType); - g_user_special_dirs[G_USER_DIRECTORY_PUBLIC_SHARE] = NULL; - g_user_special_dirs[G_USER_DIRECTORY_TEMPLATES] = NULL; - g_user_special_dirs[G_USER_DIRECTORY_VIDEOS] = find_folder (kMovieDocumentsFolderType); -} - -#endif /* HAVE_CARBON */ - -#if defined(G_OS_WIN32) -static void -load_user_special_dirs (void) -{ - typedef HRESULT (WINAPI *t_SHGetKnownFolderPath) (const GUID *rfid, - DWORD dwFlags, - HANDLE hToken, - PWSTR *ppszPath); - t_SHGetKnownFolderPath p_SHGetKnownFolderPath; - static const GUID FOLDERID_Downloads = - { 0x374de290, 0x123f, 0x4565, { 0x91, 0x64, 0x39, 0xc4, 0x92, 0x5e, 0x46, 0x7b } }; - static const GUID FOLDERID_Public = - { 0xDFDF76A2, 0xC82A, 0x4D63, { 0x90, 0x6A, 0x56, 0x44, 0xAC, 0x45, 0x73, 0x85 } }; - wchar_t *wcp; - - p_SHGetKnownFolderPath = (t_SHGetKnownFolderPath) GetProcAddress (LoadLibrary ("shell32.dll"), - "SHGetKnownFolderPath"); - - g_user_special_dirs[G_USER_DIRECTORY_DESKTOP] = get_special_folder (CSIDL_DESKTOPDIRECTORY); - g_user_special_dirs[G_USER_DIRECTORY_DOCUMENTS] = get_special_folder (CSIDL_PERSONAL); - - if (p_SHGetKnownFolderPath == NULL) - { - g_user_special_dirs[G_USER_DIRECTORY_DOWNLOAD] = get_special_folder (CSIDL_DESKTOPDIRECTORY); - } - else - { - wcp = NULL; - (*p_SHGetKnownFolderPath) (&FOLDERID_Downloads, 0, NULL, &wcp); - g_user_special_dirs[G_USER_DIRECTORY_DOWNLOAD] = g_utf16_to_utf8 (wcp, -1, NULL, NULL, NULL); - if (g_user_special_dirs[G_USER_DIRECTORY_DOWNLOAD] == NULL) - g_user_special_dirs[G_USER_DIRECTORY_DOWNLOAD] = get_special_folder (CSIDL_DESKTOPDIRECTORY); - CoTaskMemFree (wcp); - } - - g_user_special_dirs[G_USER_DIRECTORY_MUSIC] = get_special_folder (CSIDL_MYMUSIC); - g_user_special_dirs[G_USER_DIRECTORY_PICTURES] = get_special_folder (CSIDL_MYPICTURES); - - if (p_SHGetKnownFolderPath == NULL) - { - /* XXX */ - g_user_special_dirs[G_USER_DIRECTORY_PUBLIC_SHARE] = get_special_folder (CSIDL_COMMON_DOCUMENTS); - } - else - { - wcp = NULL; - (*p_SHGetKnownFolderPath) (&FOLDERID_Public, 0, NULL, &wcp); - g_user_special_dirs[G_USER_DIRECTORY_PUBLIC_SHARE] = g_utf16_to_utf8 (wcp, -1, NULL, NULL, NULL); - if (g_user_special_dirs[G_USER_DIRECTORY_PUBLIC_SHARE] == NULL) - g_user_special_dirs[G_USER_DIRECTORY_PUBLIC_SHARE] = get_special_folder (CSIDL_COMMON_DOCUMENTS); - CoTaskMemFree (wcp); - } - - g_user_special_dirs[G_USER_DIRECTORY_TEMPLATES] = get_special_folder (CSIDL_TEMPLATES); - g_user_special_dirs[G_USER_DIRECTORY_VIDEOS] = get_special_folder (CSIDL_MYVIDEO); -} -#endif /* G_OS_WIN32 */ - -static void g_init_user_config_dir (void); - -#if defined(G_OS_UNIX) && !defined(HAVE_CARBON) - -/* adapted from xdg-user-dir-lookup.c - * - * Copyright (C) 2007 Red Hat Inc. - * - * Permission is hereby granted, free of charge, to any person - * obtaining a copy of this software and associated documentation files - * (the "Software"), to deal in the Software without restriction, - * including without limitation the rights to use, copy, modify, merge, - * publish, distribute, sublicense, and/or sell copies of the Software, - * and to permit persons to whom the Software is furnished to do so, - * subject to the following conditions: - * - * The above copyright notice and this permission notice shall be - * included in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND - * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS - * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN - * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN - * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ -static void -load_user_special_dirs (void) -{ - gchar *config_file; - gchar *data; - gchar **lines; - gint n_lines, i; - - g_init_user_config_dir (); - config_file = g_build_filename (g_user_config_dir, - "user-dirs.dirs", - NULL); - - if (!g_file_get_contents (config_file, &data, NULL, NULL)) - { - g_free (config_file); - return; - } - - lines = g_strsplit (data, "\n", -1); - n_lines = g_strv_length (lines); - g_free (data); - - for (i = 0; i < n_lines; i++) - { - gchar *buffer = lines[i]; - gchar *d, *p; - gint len; - gboolean is_relative = FALSE; - GUserDirectory directory; - - /* Remove newline at end */ - len = strlen (buffer); - if (len > 0 && buffer[len - 1] == '\n') - buffer[len - 1] = 0; - - p = buffer; - while (*p == ' ' || *p == '\t') - p++; - - if (strncmp (p, "XDG_DESKTOP_DIR", strlen ("XDG_DESKTOP_DIR")) == 0) - { - directory = G_USER_DIRECTORY_DESKTOP; - p += strlen ("XDG_DESKTOP_DIR"); - } - else if (strncmp (p, "XDG_DOCUMENTS_DIR", strlen ("XDG_DOCUMENTS_DIR")) == 0) - { - directory = G_USER_DIRECTORY_DOCUMENTS; - p += strlen ("XDG_DOCUMENTS_DIR"); - } - else if (strncmp (p, "XDG_DOWNLOAD_DIR", strlen ("XDG_DOWNLOAD_DIR")) == 0) - { - directory = G_USER_DIRECTORY_DOWNLOAD; - p += strlen ("XDG_DOWNLOAD_DIR"); - } - else if (strncmp (p, "XDG_MUSIC_DIR", strlen ("XDG_MUSIC_DIR")) == 0) - { - directory = G_USER_DIRECTORY_MUSIC; - p += strlen ("XDG_MUSIC_DIR"); - } - else if (strncmp (p, "XDG_PICTURES_DIR", strlen ("XDG_PICTURES_DIR")) == 0) - { - directory = G_USER_DIRECTORY_PICTURES; - p += strlen ("XDG_PICTURES_DIR"); - } - else if (strncmp (p, "XDG_PUBLICSHARE_DIR", strlen ("XDG_PUBLICSHARE_DIR")) == 0) - { - directory = G_USER_DIRECTORY_PUBLIC_SHARE; - p += strlen ("XDG_PUBLICSHARE_DIR"); - } - else if (strncmp (p, "XDG_TEMPLATES_DIR", strlen ("XDG_TEMPLATES_DIR")) == 0) - { - directory = G_USER_DIRECTORY_TEMPLATES; - p += strlen ("XDG_TEMPLATES_DIR"); - } - else if (strncmp (p, "XDG_VIDEOS_DIR", strlen ("XDG_VIDEOS_DIR")) == 0) - { - directory = G_USER_DIRECTORY_VIDEOS; - p += strlen ("XDG_VIDEOS_DIR"); - } - else - continue; - - while (*p == ' ' || *p == '\t') - p++; - - if (*p != '=') - continue; - p++; - - while (*p == ' ' || *p == '\t') - p++; - - if (*p != '"') - continue; - p++; - - if (strncmp (p, "$HOME", 5) == 0) - { - p += 5; - is_relative = TRUE; - } - else if (*p != '/') - continue; - - d = strrchr (p, '"'); - if (!d) - continue; - *d = 0; - - d = p; - - /* remove trailing slashes */ - len = strlen (d); - if (d[len - 1] == '/') - d[len - 1] = 0; - - if (is_relative) - { - g_get_any_init (); - g_user_special_dirs[directory] = g_build_filename (g_home_dir, d, NULL); - } - else - g_user_special_dirs[directory] = g_strdup (d); - } - - g_strfreev (lines); - g_free (config_file); -} - -#endif /* G_OS_UNIX && !HAVE_CARBON */ - -/** - * g_get_user_special_dir: - * @directory: the logical id of special directory - * - * Returns the full path of a special directory using its logical id. - * - * On Unix this is done using the XDG special user directories. - * For compatibility with existing practise, %G_USER_DIRECTORY_DESKTOP - * falls back to $HOME/Desktop when XDG special - * user directories have not been set up. - * - * Depending on the platform, the user might be able to change the path - * of the special directory without requiring the session to restart; GLib - * will not reflect any change once the special directories are loaded. - * - * Return value: the path to the specified special directory, or %NULL - * if the logical id was not found. The returned string is owned by - * GLib and should not be modified or freed. - * - * Since: 2.14 - */ -G_CONST_RETURN gchar * -g_get_user_special_dir (GUserDirectory directory) -{ - g_return_val_if_fail (directory >= G_USER_DIRECTORY_DESKTOP && - directory < G_USER_N_DIRECTORIES, NULL); - - G_LOCK (g_utils_global); - - if (G_UNLIKELY (g_user_special_dirs == NULL)) - { - g_user_special_dirs = g_new0 (gchar *, G_USER_N_DIRECTORIES); - - load_user_special_dirs (); - - /* Special-case desktop for historical compatibility */ - if (g_user_special_dirs[G_USER_DIRECTORY_DESKTOP] == NULL) - { - g_get_any_init (); - - g_user_special_dirs[G_USER_DIRECTORY_DESKTOP] = - g_build_filename (g_home_dir, "Desktop", NULL); - } - } - - G_UNLOCK (g_utils_global); - - return g_user_special_dirs[directory]; -} - -#ifdef G_OS_WIN32 - -#undef g_get_system_data_dirs - -static HMODULE -get_module_for_address (gconstpointer address) -{ - /* Holds the g_utils_global lock */ - - static gboolean beenhere = FALSE; - typedef BOOL (WINAPI *t_GetModuleHandleExA) (DWORD, LPCTSTR, HMODULE *); - static t_GetModuleHandleExA p_GetModuleHandleExA = NULL; - HMODULE hmodule = NULL; - - if (!address) - return NULL; - - if (!beenhere) - { - p_GetModuleHandleExA = - (t_GetModuleHandleExA) GetProcAddress (LoadLibrary ("kernel32.dll"), - "GetModuleHandleExA"); - beenhere = TRUE; - } - - if (p_GetModuleHandleExA == NULL || - !(*p_GetModuleHandleExA) (GET_MODULE_HANDLE_EX_FLAG_UNCHANGED_REFCOUNT | - GET_MODULE_HANDLE_EX_FLAG_FROM_ADDRESS, - address, &hmodule)) - { - MEMORY_BASIC_INFORMATION mbi; - VirtualQuery (address, &mbi, sizeof (mbi)); - hmodule = (HMODULE) mbi.AllocationBase; - } - - return hmodule; -} - -static gchar * -get_module_share_dir (gconstpointer address) -{ - HMODULE hmodule; - gchar *filename; - gchar *retval; - - hmodule = get_module_for_address (address); - if (hmodule == NULL) - return NULL; - - filename = g_win32_get_package_installation_directory_of_module (hmodule); - retval = g_build_filename (filename, "share", NULL); - g_free (filename); - - return retval; -} - -G_CONST_RETURN gchar * G_CONST_RETURN * -g_win32_get_system_data_dirs_for_module (void (*address_of_function)()) -{ - GArray *data_dirs; - HMODULE hmodule; - static GHashTable *per_module_data_dirs = NULL; - gchar **retval; - gchar *p; - gchar *exe_root; - - if (address_of_function) - { - G_LOCK (g_utils_global); - hmodule = get_module_for_address (address_of_function); - if (hmodule != NULL) - { - if (per_module_data_dirs == NULL) - per_module_data_dirs = g_hash_table_new (NULL, NULL); - else - { - retval = g_hash_table_lookup (per_module_data_dirs, hmodule); - - if (retval != NULL) - { - G_UNLOCK (g_utils_global); - return (G_CONST_RETURN gchar * G_CONST_RETURN *) retval; - } - } - } - } - - data_dirs = g_array_new (TRUE, TRUE, sizeof (char *)); - - /* Documents and Settings\All Users\Application Data */ - p = get_special_folder (CSIDL_COMMON_APPDATA); - if (p) - g_array_append_val (data_dirs, p); - - /* Documents and Settings\All Users\Documents */ - p = get_special_folder (CSIDL_COMMON_DOCUMENTS); - if (p) - g_array_append_val (data_dirs, p); - - /* Using the above subfolders of Documents and Settings perhaps - * makes sense from a Windows perspective. - * - * But looking at the actual use cases of this function in GTK+ - * and GNOME software, what we really want is the "share" - * subdirectory of the installation directory for the package - * our caller is a part of. - * - * The address_of_function parameter, if non-NULL, points to a - * function in the calling module. Use that to determine that - * module's installation folder, and use its "share" subfolder. - * - * Additionally, also use the "share" subfolder of the installation - * locations of GLib and the .exe file being run. - * - * To guard against none of the above being what is really wanted, - * callers of this function should have Win32-specific code to look - * up their installation folder themselves, and handle a subfolder - * "share" of it in the same way as the folders returned from this - * function. - */ - - p = get_module_share_dir (address_of_function); - if (p) - g_array_append_val (data_dirs, p); - - if (glib_dll != NULL) - { - gchar *glib_root = g_win32_get_package_installation_directory_of_module (glib_dll); - p = g_build_filename (glib_root, "share", NULL); - if (p) - g_array_append_val (data_dirs, p); - g_free (glib_root); - } - - exe_root = g_win32_get_package_installation_directory_of_module (NULL); - p = g_build_filename (exe_root, "share", NULL); - if (p) - g_array_append_val (data_dirs, p); - g_free (exe_root); - - retval = (gchar **) g_array_free (data_dirs, FALSE); - - if (address_of_function) - { - if (hmodule != NULL) - g_hash_table_insert (per_module_data_dirs, hmodule, retval); - G_UNLOCK (g_utils_global); - } - - return (G_CONST_RETURN gchar * G_CONST_RETURN *) retval; -} - -#endif - -/** - * g_get_system_data_dirs: - * - * Returns an ordered list of base directories in which to access - * system-wide application data. - * - * On UNIX platforms this is determined using the mechanisms described in - * the - * XDG Base Directory Specification - * - * On Windows the first elements in the list are the Application Data - * and Documents folders for All Users. (These can be determined only - * on Windows 2000 or later and are not present in the list on other - * Windows versions.) See documentation for CSIDL_COMMON_APPDATA and - * CSIDL_COMMON_DOCUMENTS. - * - * Then follows the "share" subfolder in the installation folder for - * the package containing the DLL that calls this function, if it can - * be determined. - * - * Finally the list contains the "share" subfolder in the installation - * folder for GLib, and in the installation folder for the package the - * application's .exe file belongs to. - * - * The installation folders above are determined by looking up the - * folder where the module (DLL or EXE) in question is located. If the - * folder's name is "bin", its parent is used, otherwise the folder - * itself. - * - * Note that on Windows the returned list can vary depending on where - * this function is called. - * - * Return value: a %NULL-terminated array of strings owned by GLib that must - * not be modified or freed. - * Since: 2.6 - **/ -G_CONST_RETURN gchar * G_CONST_RETURN * -g_get_system_data_dirs (void) -{ - gchar **data_dir_vector; - - G_LOCK (g_utils_global); - - if (!g_system_data_dirs) - { -#ifdef G_OS_WIN32 - data_dir_vector = (gchar **) g_win32_get_system_data_dirs_for_module (NULL); -#else - gchar *data_dirs = (gchar *) g_getenv ("XDG_DATA_DIRS"); - - if (!data_dirs || !data_dirs[0]) - data_dirs = "/usr/local/share/:/usr/share/"; - - data_dir_vector = g_strsplit (data_dirs, G_SEARCHPATH_SEPARATOR_S, 0); -#endif - - g_system_data_dirs = data_dir_vector; - } - else - data_dir_vector = g_system_data_dirs; - - G_UNLOCK (g_utils_global); - - return (G_CONST_RETURN gchar * G_CONST_RETURN *) data_dir_vector; -} - -/** - * g_get_system_config_dirs: - * - * Returns an ordered list of base directories in which to access - * system-wide configuration information. - * - * On UNIX platforms this is determined using the mechanisms described in - * the - * XDG Base Directory Specification - * - * Return value: a %NULL-terminated array of strings owned by GLib that must - * not be modified or freed. - * Since: 2.6 - **/ -G_CONST_RETURN gchar * G_CONST_RETURN * -g_get_system_config_dirs (void) -{ - gchar *conf_dirs, **conf_dir_vector; - - G_LOCK (g_utils_global); - - if (!g_system_config_dirs) - { -#ifdef G_OS_WIN32 - conf_dirs = get_special_folder (CSIDL_COMMON_APPDATA); - if (conf_dirs) - { - conf_dir_vector = g_strsplit (conf_dirs, G_SEARCHPATH_SEPARATOR_S, 0); - g_free (conf_dirs); - } - else - { - /* Return empty list */ - conf_dir_vector = g_strsplit ("", G_SEARCHPATH_SEPARATOR_S, 0); - } -#else - conf_dirs = (gchar *) g_getenv ("XDG_CONFIG_DIRS"); - - if (!conf_dirs || !conf_dirs[0]) - conf_dirs = "/etc/xdg"; - - conf_dir_vector = g_strsplit (conf_dirs, G_SEARCHPATH_SEPARATOR_S, 0); -#endif - - g_system_config_dirs = conf_dir_vector; - } - else - conf_dir_vector = g_system_config_dirs; - G_UNLOCK (g_utils_global); - - return (G_CONST_RETURN gchar * G_CONST_RETURN *) conf_dir_vector; -} - -#ifndef G_OS_WIN32 - -static GHashTable *alias_table = NULL; - -/* read an alias file for the locales */ -static void -read_aliases (gchar *file) -{ - FILE *fp; - char buf[256]; - - if (!alias_table) - alias_table = g_hash_table_new (g_str_hash, g_str_equal); - fp = fopen (file,"r"); - if (!fp) - return; - while (fgets (buf, 256, fp)) - { - char *p, *q; - - g_strstrip (buf); - - /* Line is a comment */ - if ((buf[0] == '#') || (buf[0] == '\0')) - continue; - - /* Reads first column */ - for (p = buf, q = NULL; *p; p++) { - if ((*p == '\t') || (*p == ' ') || (*p == ':')) { - *p = '\0'; - q = p+1; - while ((*q == '\t') || (*q == ' ')) { - q++; - } - break; - } - } - /* The line only had one column */ - if (!q || *q == '\0') - continue; - - /* Read second column */ - for (p = q; *p; p++) { - if ((*p == '\t') || (*p == ' ')) { - *p = '\0'; - break; - } - } - - /* Add to alias table if necessary */ - if (!g_hash_table_lookup (alias_table, buf)) { - g_hash_table_insert (alias_table, g_strdup (buf), g_strdup (q)); - } - } - fclose (fp); -} - -#endif - -static char * -unalias_lang (char *lang) -{ -#ifndef G_OS_WIN32 - char *p; - int i; - - if (!alias_table) - read_aliases ("/usr/share/locale/locale.alias"); - - i = 0; - while ((p = g_hash_table_lookup (alias_table, lang)) && (strcmp (p, lang) != 0)) - { - lang = p; - if (i++ == 30) - { - static gboolean said_before = FALSE; - if (!said_before) - g_warning ("Too many alias levels for a locale, " - "may indicate a loop"); - said_before = TRUE; - return lang; - } - } -#endif - return lang; -} - -/* Mask for components of locale spec. The ordering here is from - * least significant to most significant - */ -enum -{ - COMPONENT_CODESET = 1 << 0, - COMPONENT_TERRITORY = 1 << 1, - COMPONENT_MODIFIER = 1 << 2 -}; - -/* Break an X/Open style locale specification into components - */ -static guint -explode_locale (const gchar *locale, - gchar **language, - gchar **territory, - gchar **codeset, - gchar **modifier) -{ - const gchar *uscore_pos; - const gchar *at_pos; - const gchar *dot_pos; - - guint mask = 0; - - uscore_pos = strchr (locale, '_'); - dot_pos = strchr (uscore_pos ? uscore_pos : locale, '.'); - at_pos = strchr (dot_pos ? dot_pos : (uscore_pos ? uscore_pos : locale), '@'); - - if (at_pos) - { - mask |= COMPONENT_MODIFIER; - *modifier = g_strdup (at_pos); - } - else - at_pos = locale + strlen (locale); - - if (dot_pos) - { - mask |= COMPONENT_CODESET; - *codeset = g_strndup (dot_pos, at_pos - dot_pos); - } - else - dot_pos = at_pos; - - if (uscore_pos) - { - mask |= COMPONENT_TERRITORY; - *territory = g_strndup (uscore_pos, dot_pos - uscore_pos); - } - else - uscore_pos = dot_pos; - - *language = g_strndup (locale, uscore_pos - locale); - - return mask; -} - -/* - * Compute all interesting variants for a given locale name - - * by stripping off different components of the value. - * - * For simplicity, we assume that the locale is in - * X/Open format: language[_territory][.codeset][@modifier] - * - * TODO: Extend this to handle the CEN format (see the GNUlibc docs) - * as well. We could just copy the code from glibc wholesale - * but it is big, ugly, and complicated, so I'm reluctant - * to do so when this should handle 99% of the time... - */ -GSList * -_g_compute_locale_variants (const gchar *locale) -{ - GSList *retval = NULL; - - gchar *language = NULL; - gchar *territory = NULL; - gchar *codeset = NULL; - gchar *modifier = NULL; - - guint mask; - guint i; - - g_return_val_if_fail (locale != NULL, NULL); - - mask = explode_locale (locale, &language, &territory, &codeset, &modifier); - - /* Iterate through all possible combinations, from least attractive - * to most attractive. - */ - for (i = 0; i <= mask; i++) - if ((i & ~mask) == 0) - { - gchar *val = g_strconcat (language, - (i & COMPONENT_TERRITORY) ? territory : "", - (i & COMPONENT_CODESET) ? codeset : "", - (i & COMPONENT_MODIFIER) ? modifier : "", - NULL); - retval = g_slist_prepend (retval, val); - } - - g_free (language); - if (mask & COMPONENT_CODESET) - g_free (codeset); - if (mask & COMPONENT_TERRITORY) - g_free (territory); - if (mask & COMPONENT_MODIFIER) - g_free (modifier); - - return retval; -} - -/* The following is (partly) taken from the gettext package. - Copyright (C) 1995, 1996, 1997, 1998 Free Software Foundation, Inc. */ - -static const gchar * -guess_category_value (const gchar *category_name) -{ - const gchar *retval; - - /* The highest priority value is the `LANGUAGE' environment - variable. This is a GNU extension. */ - retval = g_getenv ("LANGUAGE"); - if ((retval != NULL) && (retval[0] != '\0')) - return retval; - - /* `LANGUAGE' is not set. So we have to proceed with the POSIX - methods of looking to `LC_ALL', `LC_xxx', and `LANG'. On some - systems this can be done by the `setlocale' function itself. */ - - /* Setting of LC_ALL overwrites all other. */ - retval = g_getenv ("LC_ALL"); - if ((retval != NULL) && (retval[0] != '\0')) - return retval; - - /* Next comes the name of the desired category. */ - retval = g_getenv (category_name); - if ((retval != NULL) && (retval[0] != '\0')) - return retval; - - /* Last possibility is the LANG environment variable. */ - retval = g_getenv ("LANG"); - if ((retval != NULL) && (retval[0] != '\0')) - return retval; - -#ifdef G_PLATFORM_WIN32 - /* g_win32_getlocale() first checks for LC_ALL, LC_MESSAGES and - * LANG, which we already did above. Oh well. The main point of - * calling g_win32_getlocale() is to get the thread's locale as used - * by Windows and the Microsoft C runtime (in the "English_United - * States" format) translated into the Unixish format. - */ - retval = g_win32_getlocale (); - if ((retval != NULL) && (retval[0] != '\0')) - return retval; -#endif - - return NULL; -} - -typedef struct _GLanguageNamesCache GLanguageNamesCache; - -struct _GLanguageNamesCache { - gchar *languages; - gchar **language_names; -}; - -static void -language_names_cache_free (gpointer data) -{ - GLanguageNamesCache *cache = data; - g_free (cache->languages); - g_strfreev (cache->language_names); - g_free (cache); -} - -/** - * g_get_language_names: - * - * Computes a list of applicable locale names, which can be used to - * e.g. construct locale-dependent filenames or search paths. The returned - * list is sorted from most desirable to least desirable and always contains - * the default locale "C". - * - * For example, if LANGUAGE=de:en_US, then the returned list is - * "de", "en_US", "en", "C". - * - * This function consults the environment variables LANGUAGE, - * LC_ALL, LC_MESSAGES and LANG - * to find the list of locales specified by the user. - * - * Return value: a %NULL-terminated array of strings owned by GLib - * that must not be modified or freed. - * - * Since: 2.6 - **/ -G_CONST_RETURN gchar * G_CONST_RETURN * -g_get_language_names (void) -{ - static GStaticPrivate cache_private = G_STATIC_PRIVATE_INIT; - GLanguageNamesCache *cache = g_static_private_get (&cache_private); - const gchar *value; - - if (!cache) - { - cache = g_new0 (GLanguageNamesCache, 1); - g_static_private_set (&cache_private, cache, language_names_cache_free); - } - - value = guess_category_value ("LC_MESSAGES"); - if (!value) - value = "C"; - - if (!(cache->languages && strcmp (cache->languages, value) == 0)) - { - gchar **languages; - gchar **alist, **a; - GSList *list, *l; - gint i; - - g_free (cache->languages); - g_strfreev (cache->language_names); - cache->languages = g_strdup (value); - - alist = g_strsplit (value, ":", 0); - list = NULL; - for (a = alist; *a; a++) - { - gchar *b = unalias_lang (*a); - list = g_slist_concat (list, _g_compute_locale_variants (b)); - } - g_strfreev (alist); - list = g_slist_append (list, g_strdup ("C")); - - cache->language_names = languages = g_new (gchar *, g_slist_length (list) + 1); - for (l = list, i = 0; l; l = l->next, i++) - languages[i] = l->data; - languages[i] = NULL; - - g_slist_free (list); - } - - return (G_CONST_RETURN gchar * G_CONST_RETURN *) cache->language_names; -} - -/** - * g_direct_hash: - * @v: a #gpointer key - * - * Converts a gpointer to a hash value. - * It can be passed to g_hash_table_new() as the @hash_func parameter, - * when using pointers as keys in a #GHashTable. - * - * Returns: a hash value corresponding to the key. - */ -guint -g_direct_hash (gconstpointer v) -{ - return GPOINTER_TO_UINT (v); -} - -/** - * g_direct_equal: - * @v1: a key. - * @v2: a key to compare with @v1. - * - * Compares two #gpointer arguments and returns %TRUE if they are equal. - * It can be passed to g_hash_table_new() as the @key_equal_func - * parameter, when using pointers as keys in a #GHashTable. - * - * Returns: %TRUE if the two keys match. - */ -gboolean -g_direct_equal (gconstpointer v1, - gconstpointer v2) -{ - return v1 == v2; -} - -/** - * g_int_equal: - * @v1: a pointer to a #gint key. - * @v2: a pointer to a #gint key to compare with @v1. - * - * Compares the two #gint values being pointed to and returns - * %TRUE if they are equal. - * It can be passed to g_hash_table_new() as the @key_equal_func - * parameter, when using pointers to integers as keys in a #GHashTable. - * - * Returns: %TRUE if the two keys match. - */ -gboolean -g_int_equal (gconstpointer v1, - gconstpointer v2) -{ - return *((const gint*) v1) == *((const gint*) v2); -} - -/** - * g_int_hash: - * @v: a pointer to a #gint key - * - * Converts a pointer to a #gint to a hash value. - * It can be passed to g_hash_table_new() as the @hash_func parameter, - * when using pointers to integers values as keys in a #GHashTable. - * - * Returns: a hash value corresponding to the key. - */ -guint -g_int_hash (gconstpointer v) -{ - return *(const gint*) v; -} - -/** - * g_nullify_pointer: - * @nullify_location: the memory address of the pointer. - * - * Set the pointer at the specified location to %NULL. - **/ -void -g_nullify_pointer (gpointer *nullify_location) -{ - g_return_if_fail (nullify_location != NULL); - - *nullify_location = NULL; -} - -/** - * g_get_codeset: - * - * Get the codeset for the current locale. - * - * Return value: a newly allocated string containing the name - * of the codeset. This string must be freed with g_free(). - **/ -gchar * -g_get_codeset (void) -{ - const gchar *charset; - - g_get_charset (&charset); - - return g_strdup (charset); -} - -/* This is called from g_thread_init(). It's used to - * initialize some static data in a threadsafe way. - */ -void -_g_utils_thread_init (void) -{ - g_get_language_names (); -} - -#ifdef G_OS_WIN32 - -/** - * _glib_get_locale_dir: - * - * Return the path to the share\locale or lib\locale subfolder of the - * GLib installation folder. The path is in the system codepage. We - * have to use system codepage as bindtextdomain() doesn't have a - * UTF-8 interface. - */ -static gchar * -_glib_get_locale_dir (void) -{ - gchar *install_dir = NULL, *locale_dir; - gchar *retval = NULL; - - if (glib_dll != NULL) - install_dir = g_win32_get_package_installation_directory_of_module (glib_dll); - - if (install_dir) - { - /* - * Append "/share/locale" or "/lib/locale" depending on whether - * autoconfigury detected GNU gettext or not. - */ - const char *p = GLIB_LOCALE_DIR + strlen (GLIB_LOCALE_DIR); - while (*--p != '/') - ; - while (*--p != '/') - ; - - locale_dir = g_build_filename (install_dir, p, NULL); - - retval = g_win32_locale_filename_from_utf8 (locale_dir); - - g_free (install_dir); - g_free (locale_dir); - } - - if (retval) - return retval; - else - return g_strdup (""); -} - -#undef GLIB_LOCALE_DIR - -#endif /* G_OS_WIN32 */ - -/** - * glib_gettext: - * @str: The string to be translated - * - * Returns the translated string from the glib translations. - * This is an internal function and should only be used by - * the internals of glib (such as libgio). - * - * Returns: the transation of @str to the current locale - */ -G_CONST_RETURN gchar * -glib_gettext (const gchar *str) -{ - static gboolean _glib_gettext_initialized = FALSE; - - if (!_glib_gettext_initialized) - { -#ifdef G_OS_WIN32 - gchar *tmp = _glib_get_locale_dir (); - bindtextdomain (GETTEXT_PACKAGE, tmp); - g_free (tmp); -#else - bindtextdomain (GETTEXT_PACKAGE, GLIB_LOCALE_DIR); -#endif -# ifdef HAVE_BIND_TEXTDOMAIN_CODESET - bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8"); -# endif - _glib_gettext_initialized = TRUE; - } - - return g_dgettext (GETTEXT_PACKAGE, str); -} - -#if defined (G_OS_WIN32) && !defined (_WIN64) - -/* Binary compatibility versions. Not for newly compiled code. */ - -#undef g_find_program_in_path - -gchar* -g_find_program_in_path (const gchar *program) -{ - gchar *utf8_program = g_locale_to_utf8 (program, -1, NULL, NULL, NULL); - gchar *utf8_retval = g_find_program_in_path_utf8 (utf8_program); - gchar *retval; - - g_free (utf8_program); - if (utf8_retval == NULL) - return NULL; - retval = g_locale_from_utf8 (utf8_retval, -1, NULL, NULL, NULL); - g_free (utf8_retval); - - return retval; -} - -#undef g_get_current_dir - -gchar* -g_get_current_dir (void) -{ - gchar *utf8_dir = g_get_current_dir_utf8 (); - gchar *dir = g_locale_from_utf8 (utf8_dir, -1, NULL, NULL, NULL); - g_free (utf8_dir); - return dir; -} - -#undef g_getenv - -G_CONST_RETURN gchar* -g_getenv (const gchar *variable) -{ - gchar *utf8_variable = g_locale_to_utf8 (variable, -1, NULL, NULL, NULL); - const gchar *utf8_value = g_getenv_utf8 (utf8_variable); - gchar *value; - GQuark quark; - - g_free (utf8_variable); - if (!utf8_value) - return NULL; - value = g_locale_from_utf8 (utf8_value, -1, NULL, NULL, NULL); - quark = g_quark_from_string (value); - g_free (value); - - return g_quark_to_string (quark); -} - -#undef g_setenv - -gboolean -g_setenv (const gchar *variable, - const gchar *value, - gboolean overwrite) -{ - gchar *utf8_variable = g_locale_to_utf8 (variable, -1, NULL, NULL, NULL); - gchar *utf8_value = g_locale_to_utf8 (value, -1, NULL, NULL, NULL); - gboolean retval = g_setenv_utf8 (utf8_variable, utf8_value, overwrite); - - g_free (utf8_variable); - g_free (utf8_value); - - return retval; -} - -#undef g_unsetenv - -void -g_unsetenv (const gchar *variable) -{ - gchar *utf8_variable = g_locale_to_utf8 (variable, -1, NULL, NULL, NULL); - - g_unsetenv_utf8 (utf8_variable); - - g_free (utf8_variable); -} - -#undef g_get_user_name - -G_CONST_RETURN gchar* -g_get_user_name (void) -{ - g_get_any_init_locked (); - return g_user_name_cp; -} - -#undef g_get_real_name - -G_CONST_RETURN gchar* -g_get_real_name (void) -{ - g_get_any_init_locked (); - return g_real_name_cp; -} - -#undef g_get_home_dir - -G_CONST_RETURN gchar* -g_get_home_dir (void) -{ - g_get_any_init_locked (); - return g_home_dir_cp; -} - -#undef g_get_tmp_dir - -G_CONST_RETURN gchar* -g_get_tmp_dir (void) -{ - g_get_any_init_locked (); - return g_tmp_dir_cp; -} - -#endif - -#define __G_UTILS_C__ -#include "galiasdef.c" diff --git a/lib/win32/glib-2.20.4/glib/gutils.h b/lib/win32/glib-2.20.4/glib/gutils.h deleted file mode 100644 index 68a27ed809eab..0000000000000 --- a/lib/win32/glib-2.20.4/glib/gutils.h +++ /dev/null @@ -1,487 +0,0 @@ -/* GLIB - Library of useful routines for C programming - * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library 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 - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ - -/* - * Modified by the GLib Team and others 1997-2000. See the AUTHORS - * file for a list of people on the GLib Team. See the ChangeLog - * files for a list of changes. These files are distributed with - * GLib at ftp://ftp.gtk.org/pub/gtk/. - */ - -#if defined(G_DISABLE_SINGLE_INCLUDES) && !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION) -#error "Only can be included directly." -#endif - -#ifndef __G_UTILS_H__ -#define __G_UTILS_H__ - -#include -#include - -G_BEGIN_DECLS - -#ifdef G_OS_WIN32 - -/* On Win32, the canonical directory separator is the backslash, and - * the search path separator is the semicolon. Note that also the - * (forward) slash works as directory separator. - */ -#define G_DIR_SEPARATOR '\\' -#define G_DIR_SEPARATOR_S "\\" -#define G_IS_DIR_SEPARATOR(c) ((c) == G_DIR_SEPARATOR || (c) == '/') -#define G_SEARCHPATH_SEPARATOR ';' -#define G_SEARCHPATH_SEPARATOR_S ";" - -#else /* !G_OS_WIN32 */ - -/* Unix */ - -#define G_DIR_SEPARATOR '/' -#define G_DIR_SEPARATOR_S "/" -#define G_IS_DIR_SEPARATOR(c) ((c) == G_DIR_SEPARATOR) -#define G_SEARCHPATH_SEPARATOR ':' -#define G_SEARCHPATH_SEPARATOR_S ":" - -#endif /* !G_OS_WIN32 */ - -/* Define G_VA_COPY() to do the right thing for copying va_list variables. - * glibconfig.h may have already defined G_VA_COPY as va_copy or __va_copy. - */ -#if !defined (G_VA_COPY) -# if defined (__GNUC__) && defined (__PPC__) && (defined (_CALL_SYSV) || defined (_WIN32)) -# define G_VA_COPY(ap1, ap2) (*(ap1) = *(ap2)) -# elif defined (G_VA_COPY_AS_ARRAY) -# define G_VA_COPY(ap1, ap2) g_memmove ((ap1), (ap2), sizeof (va_list)) -# else /* va_list is a pointer */ -# define G_VA_COPY(ap1, ap2) ((ap1) = (ap2)) -# endif /* va_list is a pointer */ -#endif /* !G_VA_COPY */ - -/* inlining hassle. for compilers that don't allow the `inline' keyword, - * mostly because of strict ANSI C compliance or dumbness, we try to fall - * back to either `__inline__' or `__inline'. - * G_CAN_INLINE is defined in glibconfig.h if the compiler seems to be - * actually *capable* to do function inlining, in which case inline - * function bodies do make sense. we also define G_INLINE_FUNC to properly - * export the function prototypes if no inlining can be performed. - * inline function bodies have to be special cased with G_CAN_INLINE and a - * .c file specific macro to allow one compiled instance with extern linkage - * of the functions by defining G_IMPLEMENT_INLINES and the .c file macro. - */ -#if defined (G_HAVE_INLINE) && defined (__GNUC__) && defined (__STRICT_ANSI__) -# undef inline -# define inline __inline__ -#elif !defined (G_HAVE_INLINE) -# undef inline -# if defined (G_HAVE___INLINE__) -# define inline __inline__ -# elif defined (G_HAVE___INLINE) -# define inline __inline -# else /* !inline && !__inline__ && !__inline */ -# define inline /* don't inline, then */ -# endif -#endif -#ifdef G_IMPLEMENT_INLINES -# define G_INLINE_FUNC -# undef G_CAN_INLINE -#elif defined (__GNUC__) -# define G_INLINE_FUNC static __inline __attribute__ ((unused)) -#elif defined (G_CAN_INLINE) -# define G_INLINE_FUNC static inline -#else /* can't inline */ -# define G_INLINE_FUNC -#endif /* !G_INLINE_FUNC */ - -/* Retrive static string info - */ -#ifdef G_OS_WIN32 -#define g_get_user_name g_get_user_name_utf8 -#define g_get_real_name g_get_real_name_utf8 -#define g_get_home_dir g_get_home_dir_utf8 -#define g_get_tmp_dir g_get_tmp_dir_utf8 -#endif - -G_CONST_RETURN gchar* g_get_user_name (void); -G_CONST_RETURN gchar* g_get_real_name (void); -G_CONST_RETURN gchar* g_get_home_dir (void); -G_CONST_RETURN gchar* g_get_tmp_dir (void); -G_CONST_RETURN gchar* g_get_host_name (void); -gchar* g_get_prgname (void); -void g_set_prgname (const gchar *prgname); -G_CONST_RETURN gchar* g_get_application_name (void); -void g_set_application_name (const gchar *application_name); - -G_CONST_RETURN gchar* g_get_user_data_dir (void); -G_CONST_RETURN gchar* g_get_user_config_dir (void); -G_CONST_RETURN gchar* g_get_user_cache_dir (void); -G_CONST_RETURN gchar* G_CONST_RETURN * g_get_system_data_dirs (void); - -#ifdef G_OS_WIN32 -/* This functions is not part of the public GLib API */ -G_CONST_RETURN gchar* G_CONST_RETURN * g_win32_get_system_data_dirs_for_module (void (*address_of_function)()); -#endif - -#if defined (G_OS_WIN32) && defined (G_CAN_INLINE) && !defined (__cplusplus) -/* This function is not part of the public GLib API either. Just call - * g_get_system_data_dirs() in your code, never mind that that is - * actually a macro and you will in fact call this inline function. - */ -static inline G_CONST_RETURN gchar * G_CONST_RETURN * -_g_win32_get_system_data_dirs (void) -{ - return g_win32_get_system_data_dirs_for_module ((void (*)()) &_g_win32_get_system_data_dirs); -} -#define g_get_system_data_dirs _g_win32_get_system_data_dirs -#endif - -G_CONST_RETURN gchar* G_CONST_RETURN * g_get_system_config_dirs (void); - -G_CONST_RETURN gchar* G_CONST_RETURN * g_get_language_names (void); - -/** - * GUserDirectory: - * @G_USER_DIRECTORY_DESKTOP: the user's Desktop directory - * @G_USER_DIRECTORY_DOCUMENTS: the user's Documents directory - * @G_USER_DIRECTORY_DOWNLOAD: the user's Downloads directory - * @G_USER_DIRECTORY_MUSIC: the user's Music directory - * @G_USER_DIRECTORY_PICTURES: the user's Pictures directory - * @G_USER_DIRECTORY_PUBLIC_SHARE: the user's shared directory - * @G_USER_DIRECTORY_TEMPLATES: the user's Templates directory - * @G_USER_DIRECTORY_VIDEOS: the user's Movies directory - * @G_USER_N_DIRECTORIES: the number of enum values - * - * These are logical ids for special directories which are defined - * depending on the platform used. You should use g_get_user_special_dir() - * to retrieve the full path associated to the logical id. - * - * The #GUserDirectory enumeration can be extended at later date. Not - * every platform has a directory for every logical id in this - * enumeration. - * - * Since: 2.14 - */ -typedef enum { - G_USER_DIRECTORY_DESKTOP, - G_USER_DIRECTORY_DOCUMENTS, - G_USER_DIRECTORY_DOWNLOAD, - G_USER_DIRECTORY_MUSIC, - G_USER_DIRECTORY_PICTURES, - G_USER_DIRECTORY_PUBLIC_SHARE, - G_USER_DIRECTORY_TEMPLATES, - G_USER_DIRECTORY_VIDEOS, - - G_USER_N_DIRECTORIES -} GUserDirectory; - -G_CONST_RETURN gchar* g_get_user_special_dir (GUserDirectory directory); - -typedef struct _GDebugKey GDebugKey; -struct _GDebugKey -{ - const gchar *key; - guint value; -}; - -/* Miscellaneous utility functions - */ -guint g_parse_debug_string (const gchar *string, - const GDebugKey *keys, - guint nkeys); - -gint g_snprintf (gchar *string, - gulong n, - gchar const *format, - ...) G_GNUC_PRINTF (3, 4); -gint g_vsnprintf (gchar *string, - gulong n, - gchar const *format, - va_list args); - -/* Check if a file name is an absolute path */ -gboolean g_path_is_absolute (const gchar *file_name); - -/* In case of absolute paths, skip the root part */ -G_CONST_RETURN gchar* g_path_skip_root (const gchar *file_name); - -#ifndef G_DISABLE_DEPRECATED - -/* These two functions are deprecated and will be removed in the next - * major release of GLib. Use g_path_get_dirname/g_path_get_basename - * instead. Whatch out! The string returned by g_path_get_basename - * must be g_freed, while the string returned by g_basename must not.*/ -G_CONST_RETURN gchar* g_basename (const gchar *file_name); -#define g_dirname g_path_get_dirname - -#endif /* G_DISABLE_DEPRECATED */ - -#ifdef G_OS_WIN32 -#define g_get_current_dir g_get_current_dir_utf8 -#endif - -/* The returned strings are newly allocated with g_malloc() */ -gchar* g_get_current_dir (void); -gchar* g_path_get_basename (const gchar *file_name) G_GNUC_MALLOC; -gchar* g_path_get_dirname (const gchar *file_name) G_GNUC_MALLOC; - -/* Set the pointer at the specified location to NULL */ -void g_nullify_pointer (gpointer *nullify_location); - -/* return the environment string for the variable. The returned memory - * must not be freed. */ -#ifdef G_OS_WIN32 -#define g_getenv g_getenv_utf8 -#define g_setenv g_setenv_utf8 -#define g_unsetenv g_unsetenv_utf8 -#define g_find_program_in_path g_find_program_in_path_utf8 -#endif - -G_CONST_RETURN gchar* g_getenv (const gchar *variable); -gboolean g_setenv (const gchar *variable, - const gchar *value, - gboolean overwrite); -void g_unsetenv (const gchar *variable); -gchar** g_listenv (void); - -/* private */ -const gchar* _g_getenv_nomalloc (const gchar *variable, - gchar buffer[1024]); - -/* we try to provide a useful equivalent for ATEXIT if it is - * not defined, but use is actually abandoned. people should - * use g_atexit() instead. - */ -typedef void (*GVoidFunc) (void); -#ifndef ATEXIT -# define ATEXIT(proc) g_ATEXIT(proc) -#else -# define G_NATIVE_ATEXIT -#endif /* ATEXIT */ -/* we use a GLib function as a replacement for ATEXIT, so - * the programmer is not required to check the return value - * (if there is any in the implementation) and doesn't encounter - * missing include files. - */ -void g_atexit (GVoidFunc func); - -#ifdef G_OS_WIN32 -/* It's a bad idea to wrap atexit() on Windows. If the GLib DLL calls - * atexit(), the function will be called when the GLib DLL is detached - * from the program, which is not what the caller wants. The caller - * wants the function to be called when it *itself* exits (or is - * detached, in case the caller, too, is a DLL). - */ -int atexit (void (*)(void)); -#define g_atexit(func) atexit(func) -#endif - -/* Look for an executable in PATH, following execvp() rules */ -gchar* g_find_program_in_path (const gchar *program); - -/* Bit tests - */ -G_INLINE_FUNC gint g_bit_nth_lsf (gulong mask, - gint nth_bit) G_GNUC_CONST; -G_INLINE_FUNC gint g_bit_nth_msf (gulong mask, - gint nth_bit) G_GNUC_CONST; -G_INLINE_FUNC guint g_bit_storage (gulong number) G_GNUC_CONST; - -/* Trash Stacks - * elements need to be >= sizeof (gpointer) - */ -typedef struct _GTrashStack GTrashStack; -struct _GTrashStack -{ - GTrashStack *next; -}; - -G_INLINE_FUNC void g_trash_stack_push (GTrashStack **stack_p, - gpointer data_p); -G_INLINE_FUNC gpointer g_trash_stack_pop (GTrashStack **stack_p); -G_INLINE_FUNC gpointer g_trash_stack_peek (GTrashStack **stack_p); -G_INLINE_FUNC guint g_trash_stack_height (GTrashStack **stack_p); - -/* inline function implementations - */ -#if defined (G_CAN_INLINE) || defined (__G_UTILS_C__) -G_INLINE_FUNC gint -g_bit_nth_lsf (gulong mask, - gint nth_bit) -{ - if (G_UNLIKELY (nth_bit < -1)) - nth_bit = -1; - while (nth_bit < ((GLIB_SIZEOF_LONG * 8) - 1)) - { - nth_bit++; - if (mask & (1UL << nth_bit)) - return nth_bit; - } - return -1; -} -G_INLINE_FUNC gint -g_bit_nth_msf (gulong mask, - gint nth_bit) -{ - if (nth_bit < 0 || G_UNLIKELY (nth_bit > GLIB_SIZEOF_LONG * 8)) - nth_bit = GLIB_SIZEOF_LONG * 8; - while (nth_bit > 0) - { - nth_bit--; - if (mask & (1UL << nth_bit)) - return nth_bit; - } - return -1; -} -G_INLINE_FUNC guint -g_bit_storage (gulong number) -{ -#if defined(__GNUC__) && (__GNUC__ >= 4) && defined(__OPTIMIZE__) - return G_LIKELY (number) ? - ((GLIB_SIZEOF_LONG * 8 - 1) ^ __builtin_clzl(number)) + 1 : 1; -#else - register guint n_bits = 0; - - do - { - n_bits++; - number >>= 1; - } - while (number); - return n_bits; -#endif -} -G_INLINE_FUNC void -g_trash_stack_push (GTrashStack **stack_p, - gpointer data_p) -{ - GTrashStack *data = (GTrashStack *) data_p; - - data->next = *stack_p; - *stack_p = data; -} -G_INLINE_FUNC gpointer -g_trash_stack_pop (GTrashStack **stack_p) -{ - GTrashStack *data; - - data = *stack_p; - if (data) - { - *stack_p = data->next; - /* NULLify private pointer here, most platforms store NULL as - * subsequent 0 bytes - */ - data->next = NULL; - } - - return data; -} -G_INLINE_FUNC gpointer -g_trash_stack_peek (GTrashStack **stack_p) -{ - GTrashStack *data; - - data = *stack_p; - - return data; -} -G_INLINE_FUNC guint -g_trash_stack_height (GTrashStack **stack_p) -{ - GTrashStack *data; - guint i = 0; - - for (data = *stack_p; data; data = data->next) - i++; - - return i; -} -#endif /* G_CAN_INLINE || __G_UTILS_C__ */ - -/* Glib version. - * we prefix variable declarations so they can - * properly get exported in windows dlls. - */ -GLIB_VAR const guint glib_major_version; -GLIB_VAR const guint glib_minor_version; -GLIB_VAR const guint glib_micro_version; -GLIB_VAR const guint glib_interface_age; -GLIB_VAR const guint glib_binary_age; - -const gchar * glib_check_version (guint required_major, - guint required_minor, - guint required_micro); - -#define GLIB_CHECK_VERSION(major,minor,micro) \ - (GLIB_MAJOR_VERSION > (major) || \ - (GLIB_MAJOR_VERSION == (major) && GLIB_MINOR_VERSION > (minor)) || \ - (GLIB_MAJOR_VERSION == (major) && GLIB_MINOR_VERSION == (minor) && \ - GLIB_MICRO_VERSION >= (micro))) - -G_END_DECLS - -#ifndef G_DISABLE_DEPRECATED - -/* - * This macro is deprecated. This DllMain() is too complex. It is - * recommended to write an explicit minimal DLlMain() that just saves - * the handle to the DLL and then use that handle instead, for - * instance passing it to - * g_win32_get_package_installation_directory_of_module(). - * - * On Windows, this macro defines a DllMain function that stores the - * actual DLL name that the code being compiled will be included in. - * STATIC should be empty or 'static'. DLL_NAME is the name of the - * (pointer to the) char array where the DLL name will be stored. If - * this is used, you must also include . If you need a more complex - * DLL entry point function, you cannot use this. - * - * On non-Windows platforms, expands to nothing. - */ - -#ifndef G_PLATFORM_WIN32 -# define G_WIN32_DLLMAIN_FOR_DLL_NAME(static, dll_name) -#else -# define G_WIN32_DLLMAIN_FOR_DLL_NAME(static, dll_name) \ -static char *dll_name; \ - \ -BOOL WINAPI \ -DllMain (HINSTANCE hinstDLL, \ - DWORD fdwReason, \ - LPVOID lpvReserved) \ -{ \ - wchar_t wcbfr[1000]; \ - char *tem; \ - switch (fdwReason) \ - { \ - case DLL_PROCESS_ATTACH: \ - GetModuleFileNameW ((HMODULE) hinstDLL, wcbfr, G_N_ELEMENTS (wcbfr)); \ - tem = g_utf16_to_utf8 (wcbfr, -1, NULL, NULL, NULL); \ - dll_name = g_path_get_basename (tem); \ - g_free (tem); \ - break; \ - } \ - \ - return TRUE; \ -} - -#endif /* !G_DISABLE_DEPRECATED */ - -#endif /* G_PLATFORM_WIN32 */ - -#endif /* __G_UTILS_H__ */ diff --git a/lib/win32/glib-2.20.4/glib/gwin32.c b/lib/win32/glib-2.20.4/glib/gwin32.c deleted file mode 100644 index c2ced69d4e1ca..0000000000000 --- a/lib/win32/glib-2.20.4/glib/gwin32.c +++ /dev/null @@ -1,600 +0,0 @@ -/* GLIB - Library of useful routines for C programming - * Copyright (C) 1995-1998 Peter Mattis, Spencer Kimball and Josh MacDonald - * Copyright (C) 1998-1999 Tor Lillqvist - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library 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 - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ - -/* - * Modified by the GLib Team and others 1997-2000. See the AUTHORS - * file for a list of people on the GLib Team. See the ChangeLog - * files for a list of changes. These files are distributed with - * GLib at ftp://ftp.gtk.org/pub/gtk/. - */ - -/* - * MT safe for the unix part, FIXME: make the win32 part MT safe as well. - */ - -#include "config.h" - -#include "glibconfig.h" - -#include -#include -#include -#include -#include - -#define STRICT /* Strict typing, please */ -#include -#undef STRICT -#ifndef G_WITH_CYGWIN -#include -#endif -#include -#include -#if defined(_MSC_VER) || defined(__DMC__) -# include -#endif /* _MSC_VER || __DMC__ */ - -#include "glib.h" -#include "galias.h" - -#ifdef G_WITH_CYGWIN -#include -#endif - -#ifndef G_WITH_CYGWIN - -gint -g_win32_ftruncate (gint fd, - guint size) -{ - return _chsize (fd, size); -} - -#endif - -/** - * g_win32_getlocale: - * - * The setlocale() function in the Microsoft C library uses locale - * names of the form "English_United States.1252" etc. We want the - * UNIXish standard form "en_US", "zh_TW" etc. This function gets the - * current thread locale from Windows - without any encoding info - - * and returns it as a string of the above form for use in forming - * file names etc. The returned string should be deallocated with - * g_free(). - * - * Returns: newly-allocated locale name. - **/ - -#ifndef SUBLANG_SERBIAN_LATIN_BA -#define SUBLANG_SERBIAN_LATIN_BA 0x06 -#endif - -gchar * -g_win32_getlocale (void) -{ - LCID lcid; - LANGID langid; - gchar *ev; - gint primary, sub; - char iso639[10]; - char iso3166[10]; - const gchar *script = NULL; - - /* Let the user override the system settings through environment - * variables, as on POSIX systems. Note that in GTK+ applications - * since GTK+ 2.10.7 setting either LC_ALL or LANG also sets the - * Win32 locale and C library locale through code in gtkmain.c. - */ - if (((ev = getenv ("LC_ALL")) != NULL && ev[0] != '\0') - || ((ev = getenv ("LC_MESSAGES")) != NULL && ev[0] != '\0') - || ((ev = getenv ("LANG")) != NULL && ev[0] != '\0')) - return g_strdup (ev); - - lcid = GetThreadLocale (); - - if (!GetLocaleInfo (lcid, LOCALE_SISO639LANGNAME, iso639, sizeof (iso639)) || - !GetLocaleInfo (lcid, LOCALE_SISO3166CTRYNAME, iso3166, sizeof (iso3166))) - return g_strdup ("C"); - - /* Strip off the sorting rules, keep only the language part. */ - langid = LANGIDFROMLCID (lcid); - - /* Split into language and territory part. */ - primary = PRIMARYLANGID (langid); - sub = SUBLANGID (langid); - - /* Handle special cases */ - switch (primary) - { - case LANG_AZERI: - switch (sub) - { - case SUBLANG_AZERI_LATIN: - script = "@Latn"; - break; - case SUBLANG_AZERI_CYRILLIC: - script = "@Cyrl"; - break; - } - break; - case LANG_SERBIAN: /* LANG_CROATIAN == LANG_SERBIAN */ - switch (sub) - { - case SUBLANG_SERBIAN_LATIN: - case 0x06: /* Serbian (Latin) - Bosnia and Herzegovina */ - script = "@Latn"; - break; - } - break; - case LANG_UZBEK: - switch (sub) - { - case SUBLANG_UZBEK_LATIN: - script = "@Latn"; - break; - case SUBLANG_UZBEK_CYRILLIC: - script = "@Cyrl"; - break; - } - break; - } - return g_strconcat (iso639, "_", iso3166, script, NULL); -} - -/** - * g_win32_error_message: - * @error: error code. - * - * Translate a Win32 error code (as returned by GetLastError()) into - * the corresponding message. The message is either language neutral, - * or in the thread's language, or the user's language, the system's - * language, or US English (see docs for FormatMessage()). The - * returned string is in UTF-8. It should be deallocated with - * g_free(). - * - * Returns: newly-allocated error message - **/ -gchar * -g_win32_error_message (gint error) -{ - gchar *retval; - wchar_t *msg = NULL; - int nchars; - - FormatMessageW (FORMAT_MESSAGE_ALLOCATE_BUFFER - |FORMAT_MESSAGE_IGNORE_INSERTS - |FORMAT_MESSAGE_FROM_SYSTEM, - NULL, error, 0, - (LPWSTR) &msg, 0, NULL); - if (msg != NULL) - { - nchars = wcslen (msg); - - if (nchars > 2 && msg[nchars-1] == '\n' && msg[nchars-2] == '\r') - msg[nchars-2] = '\0'; - - retval = g_utf16_to_utf8 (msg, -1, NULL, NULL, NULL); - - LocalFree (msg); - } - else - retval = g_strdup (""); - - return retval; -} - -/** - * g_win32_get_package_installation_directory_of_module: - * @hmodule: The Win32 handle for a DLL loaded into the current process, or %NULL - * - * This function tries to determine the installation directory of a - * software package based on the location of a DLL of the software - * package. - * - * @hmodule should be the handle of a loaded DLL or %NULL. The - * function looks up the directory that DLL was loaded from. If - * @hmodule is NULL, the directory the main executable of the current - * process is looked up. If that directory's last component is "bin" - * or "lib", its parent directory is returned, otherwise the directory - * itself. - * - * It thus makes sense to pass only the handle to a "public" DLL of a - * software package to this function, as such DLLs typically are known - * to be installed in a "bin" or occasionally "lib" subfolder of the - * installation folder. DLLs that are of the dynamically loaded module - * or plugin variety are often located in more private locations - * deeper down in the tree, from which it is impossible for GLib to - * deduce the root of the package installation. - * - * The typical use case for this function is to have a DllMain() that - * saves the handle for the DLL. Then when code in the DLL needs to - * construct names of files in the installation tree it calls this - * function passing the DLL handle. - * - * Returns: a string containing the guessed installation directory for - * the software package @hmodule is from. The string is in the GLib - * file name encoding, i.e. UTF-8. The return value should be freed - * with g_free() when not needed any longer. If the function fails - * %NULL is returned. - * - * Since: 2.16 - */ -gchar * -g_win32_get_package_installation_directory_of_module (gpointer hmodule) -{ - gchar *retval; - gchar *p; - wchar_t wc_fn[MAX_PATH]; - - if (!GetModuleFileNameW (hmodule, wc_fn, MAX_PATH)) - return NULL; - - retval = g_utf16_to_utf8 (wc_fn, -1, NULL, NULL, NULL); - - if ((p = strrchr (retval, G_DIR_SEPARATOR)) != NULL) - *p = '\0'; - - p = strrchr (retval, G_DIR_SEPARATOR); - if (p && (g_ascii_strcasecmp (p + 1, "bin") == 0 || - g_ascii_strcasecmp (p + 1, "lib") == 0)) - *p = '\0'; - -#ifdef G_WITH_CYGWIN - /* In Cygwin we need to have POSIX paths */ - { - gchar tmp[MAX_PATH]; - - cygwin_conv_to_posix_path (retval, tmp); - g_free (retval); - retval = g_strdup (tmp); - } -#endif - - return retval; -} - -static gchar * -get_package_directory_from_module (const gchar *module_name) -{ - static GHashTable *module_dirs = NULL; - G_LOCK_DEFINE_STATIC (module_dirs); - HMODULE hmodule = NULL; - gchar *fn; - - G_LOCK (module_dirs); - - if (module_dirs == NULL) - module_dirs = g_hash_table_new (g_str_hash, g_str_equal); - - fn = g_hash_table_lookup (module_dirs, module_name ? module_name : ""); - - if (fn) - { - G_UNLOCK (module_dirs); - return g_strdup (fn); - } - - if (module_name) - { - wchar_t *wc_module_name = g_utf8_to_utf16 (module_name, -1, NULL, NULL, NULL); - hmodule = GetModuleHandleW (wc_module_name); - g_free (wc_module_name); - - if (!hmodule) - { - G_UNLOCK (module_dirs); - return NULL; - } - } - - fn = g_win32_get_package_installation_directory_of_module (hmodule); - - if (fn == NULL) - { - G_UNLOCK (module_dirs); - return NULL; - } - - g_hash_table_insert (module_dirs, module_name ? g_strdup (module_name) : "", fn); - - G_UNLOCK (module_dirs); - - return g_strdup (fn); -} - -/** - * g_win32_get_package_installation_directory: - * @package: You should pass %NULL for this. - * @dll_name: The name of a DLL that a package provides in UTF-8, or %NULL. - * - * Try to determine the installation directory for a software package. - * - * This function is deprecated. Use - * g_win32_get_package_installation_directory_of_module() instead. - * - * The use of @package is deprecated. You should always pass %NULL. A - * warning is printed if non-NULL is passed as @package. - * - * The original intended use of @package was for a short identifier of - * the package, typically the same identifier as used for - * GETTEXT_PACKAGE in software configured using GNU - * autotools. The function first looks in the Windows Registry for the - * value #InstallationDirectory in the key - * #HKLM\Software\@package, and if that value - * exists and is a string, returns that. - * - * It is strongly recommended that packagers of GLib-using libraries - * for Windows do not store installation paths in the Registry to be - * used by this function as that interfers with having several - * parallel installations of the library. Enabling multiple - * installations of different versions of some GLib-using library, or - * GLib itself, is desirable for various reasons. - * - * For this reason it is recommeded to always pass %NULL as - * @package to this function, to avoid the temptation to use the - * Registry. In version 2.20 of GLib the @package parameter - * will be ignored and this function won't look in the Registry at all. - * - * If @package is %NULL, or the above value isn't found in the - * Registry, but @dll_name is non-%NULL, it should name a DLL loaded - * into the current process. Typically that would be the name of the - * DLL calling this function, looking for its installation - * directory. The function then asks Windows what directory that DLL - * was loaded from. If that directory's last component is "bin" or - * "lib", the parent directory is returned, otherwise the directory - * itself. If that DLL isn't loaded, the function proceeds as if - * @dll_name was %NULL. - * - * If both @package and @dll_name are %NULL, the directory from where - * the main executable of the process was loaded is used instead in - * the same way as above. - * - * Returns: a string containing the installation directory for - * @package. The string is in the GLib file name encoding, - * i.e. UTF-8. The return value should be freed with g_free() when not - * needed any longer. If the function fails %NULL is returned. - * - * @Deprecated:2.18: Pass the HMODULE of a DLL or EXE to - * g_win32_get_package_installation_directory_of_module() instead. - **/ - - gchar * -g_win32_get_package_installation_directory_utf8 (const gchar *package, - const gchar *dll_name) -{ - gchar *result = NULL; - - if (package != NULL) - g_warning ("Passing a non-NULL package to g_win32_get_package_installation_directory() is deprecated and it is ignored."); - - if (dll_name != NULL) - result = get_package_directory_from_module (dll_name); - - if (result == NULL) - result = get_package_directory_from_module (NULL); - - return result; -} - -#if !defined (_WIN64) - -/* DLL ABI binary compatibility version that uses system codepage file names */ - -gchar * -g_win32_get_package_installation_directory (const gchar *package, - const gchar *dll_name) -{ - gchar *utf8_package = NULL, *utf8_dll_name = NULL; - gchar *utf8_retval, *retval; - - if (package != NULL) - utf8_package = g_locale_to_utf8 (package, -1, NULL, NULL, NULL); - - if (dll_name != NULL) - utf8_dll_name = g_locale_to_utf8 (dll_name, -1, NULL, NULL, NULL); - - utf8_retval = - g_win32_get_package_installation_directory_utf8 (utf8_package, - utf8_dll_name); - - retval = g_locale_from_utf8 (utf8_retval, -1, NULL, NULL, NULL); - - g_free (utf8_package); - g_free (utf8_dll_name); - g_free (utf8_retval); - - return retval; -} - -#endif - -/** - * g_win32_get_package_installation_subdirectory: - * @package: You should pass %NULL for this. - * @dll_name: The name of a DLL that a package provides, in UTF-8, or %NULL. - * @subdir: A subdirectory of the package installation directory, also in UTF-8 - * - * This function is deprecated. Use - * g_win32_get_package_installation_directory_of_module() and - * g_build_filename() instead. - * - * Returns a newly-allocated string containing the path of the - * subdirectory @subdir in the return value from calling - * g_win32_get_package_installation_directory() with the @package and - * @dll_name parameters. See the documentation for - * g_win32_get_package_installation_directory() for more details. In - * particular, note that it is deprecated to pass anything except NULL - * as @package. - * - * Returns: a string containing the complete path to @subdir inside - * the installation directory of @package. The returned string is in - * the GLib file name encoding, i.e. UTF-8. The return value should be - * freed with g_free() when no longer needed. If something goes wrong, - * %NULL is returned. - * - * @Deprecated:2.18: Pass the HMODULE of a DLL or EXE to - * g_win32_get_package_installation_directory_of_module() instead, and - * then construct a subdirectory pathname with g_build_filename(). - **/ - -gchar * -g_win32_get_package_installation_subdirectory_utf8 (const gchar *package, - const gchar *dll_name, - const gchar *subdir) -{ - gchar *prefix; - gchar *dirname; - - prefix = g_win32_get_package_installation_directory_utf8 (package, dll_name); - - dirname = g_build_filename (prefix, subdir, NULL); - g_free (prefix); - - return dirname; -} - -#if !defined (_WIN64) - -/* DLL ABI binary compatibility version that uses system codepage file names */ - -gchar * -g_win32_get_package_installation_subdirectory (const gchar *package, - const gchar *dll_name, - const gchar *subdir) -{ - gchar *prefix; - gchar *dirname; - - prefix = g_win32_get_package_installation_directory (package, dll_name); - - dirname = g_build_filename (prefix, subdir, NULL); - g_free (prefix); - - return dirname; -} - -#endif - -static guint windows_version; - -static void -g_win32_windows_version_init (void) -{ - static gboolean beenhere = FALSE; - - if (!beenhere) - { - beenhere = TRUE; - windows_version = GetVersion (); - - if (windows_version & 0x80000000) - g_error ("This version of GLib requires NT-based Windows."); - } -} - -void -_g_win32_thread_init (void) -{ - g_win32_windows_version_init (); -} - -/** - * g_win32_get_windows_version: - * - * Returns version information for the Windows operating system the - * code is running on. See MSDN documentation for the GetVersion() - * function. To summarize, the most significant bit is one on Win9x, - * and zero on NT-based systems. Since version 2.14, GLib works only - * on NT-based systems, so checking whether your are running on Win9x - * in your own software is moot. The least significant byte is 4 on - * Windows NT 4, and 5 on Windows XP. Software that needs really - * detailled version and feature information should use Win32 API like - * GetVersionEx() and VerifyVersionInfo(). - * - * Returns: The version information. - * - * Since: 2.6 - **/ -guint -g_win32_get_windows_version (void) -{ - g_win32_windows_version_init (); - - return windows_version; -} - -/** - * g_win32_locale_filename_from_utf8: - * @utf8filename: a UTF-8 encoded filename. - * - * Converts a filename from UTF-8 to the system codepage. - * - * On NT-based Windows, on NTFS file systems, file names are in - * Unicode. It is quite possible that Unicode file names contain - * characters not representable in the system codepage. (For instance, - * Greek or Cyrillic characters on Western European or US Windows - * installations, or various less common CJK characters on CJK Windows - * installations.) - * - * In such a case, and if the filename refers to an existing file, and - * the file system stores alternate short (8.3) names for directory - * entries, the short form of the filename is returned. Note that the - * "short" name might in fact be longer than the Unicode name if the - * Unicode name has very short pathname components containing - * non-ASCII characters. If no system codepage name for the file is - * possible, %NULL is returned. - * - * The return value is dynamically allocated and should be freed with - * g_free() when no longer needed. - * - * Return value: The converted filename, or %NULL on conversion - * failure and lack of short names. - * - * Since: 2.8 - */ -gchar * -g_win32_locale_filename_from_utf8 (const gchar *utf8filename) -{ - gchar *retval = g_locale_from_utf8 (utf8filename, -1, NULL, NULL, NULL); - - if (retval == NULL) - { - /* Conversion failed, so convert to wide chars, check if there - * is a 8.3 version, and use that. - */ - wchar_t *wname = g_utf8_to_utf16 (utf8filename, -1, NULL, NULL, NULL); - if (wname != NULL) - { - wchar_t wshortname[MAX_PATH + 1]; - if (GetShortPathNameW (wname, wshortname, G_N_ELEMENTS (wshortname))) - { - gchar *tem = g_utf16_to_utf8 (wshortname, -1, NULL, NULL, NULL); - retval = g_locale_from_utf8 (tem, -1, NULL, NULL, NULL); - g_free (tem); - } - g_free (wname); - } - } - return retval; -} - -#define __G_WIN32_C__ -#include "galiasdef.c" diff --git a/lib/win32/glib-2.20.4/glib/gwin32.h b/lib/win32/glib-2.20.4/glib/gwin32.h deleted file mode 100644 index 57933354781c6..0000000000000 --- a/lib/win32/glib-2.20.4/glib/gwin32.h +++ /dev/null @@ -1,114 +0,0 @@ -/* GLIB - Library of useful routines for C programming - * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library 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 - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ - -/* - * Modified by the GLib Team and others 1997-2000. See the AUTHORS - * file for a list of people on the GLib Team. See the ChangeLog - * files for a list of changes. These files are distributed with - * GLib at ftp://ftp.gtk.org/pub/gtk/. - */ - -#if defined(G_DISABLE_SINGLE_INCLUDES) && !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION) -#error "Only can be included directly." -#endif - -#ifndef __G_WIN32_H__ -#define __G_WIN32_H__ - -#include - -#ifdef G_PLATFORM_WIN32 - -G_BEGIN_DECLS - -#ifndef MAXPATHLEN -#define MAXPATHLEN 1024 -#endif - -#ifdef G_OS_WIN32 - -/* - * To get prototypes for the following POSIXish functions, you have to - * include the indicated non-POSIX headers. The functions are defined - * in OLDNAMES.LIB (MSVC) or -lmoldname-msvc (mingw32). But note that - * for POSIX functions that take or return file names in the system - * codepage, in many cases you would want to use the GLib wrappers in - * gstdio.h and UTF-8 instead. - * - * getcwd: (MSVC), (mingw32) - * getpid: - * access: - * unlink: or - * open, read, write, lseek, close: - * rmdir: - * pipe: (actually, _pipe()) - */ - -/* For some POSIX functions that are not provided by the MS runtime, - * we provide emulation functions in glib, which are prefixed with - * g_win32_. Or that was the idea at some time, but there is just one - * of those: - */ -gint g_win32_ftruncate (gint f, - guint size); -#endif /* G_OS_WIN32 */ - -/* The MS setlocale uses locale names of the form "English_United - * States.1252" etc. We want the Unixish standard form "en", "zh_TW" - * etc. This function gets the current thread locale from Windows and - * returns it as a string of the above form for use in forming file - * names etc. The returned string should be deallocated with g_free(). - */ -gchar* g_win32_getlocale (void); - -/* Translate a Win32 error code (as returned by GetLastError()) into - * the corresponding message. The returned string should be deallocated - * with g_free(). - */ -gchar* g_win32_error_message (gint error); - -#ifndef G_DISABLE_DEPRECATED - -#define g_win32_get_package_installation_directory g_win32_get_package_installation_directory_utf8 -#define g_win32_get_package_installation_subdirectory g_win32_get_package_installation_subdirectory_utf8 - -gchar* g_win32_get_package_installation_directory (const gchar *package, - const gchar *dll_name); - -gchar* g_win32_get_package_installation_subdirectory (const gchar *package, - const gchar *dll_name, - const gchar *subdir); - -#endif - -gchar* g_win32_get_package_installation_directory_of_module (gpointer hmodule); - -guint g_win32_get_windows_version (void); - -gchar* g_win32_locale_filename_from_utf8 (const gchar *utf8filename); - -/* As of GLib 2.14 we only support NT-based Windows */ -#define G_WIN32_IS_NT_BASED() TRUE -#define G_WIN32_HAVE_WIDECHAR_API() TRUE - -G_END_DECLS - -#endif /* G_PLATFORM_WIN32 */ - -#endif /* __G_WIN32_H__ */ diff --git a/lib/win32/glib-2.20.4/glib/libcharset/Makefile.am b/lib/win32/glib-2.20.4/glib/libcharset/Makefile.am deleted file mode 100644 index cfa341218565c..0000000000000 --- a/lib/win32/glib-2.20.4/glib/libcharset/Makefile.am +++ /dev/null @@ -1,64 +0,0 @@ -## Process this file with automake to produce Makefile.in -include $(top_srcdir)/Makefile.decl - -INCLUDES = \ - -DLIBDIR=\"$(libdir)\" -I$(top_srcdir) - -noinst_LTLIBRARIES = libcharset.la - -libcharset_la_SOURCES = \ - libcharset.h \ - localcharset.h \ - localcharset.c - -EXTRA_DIST += \ - README \ - config.charset \ - ref-add.sin \ - ref-del.sin \ - glibc21.m4 \ - codeset.m4 \ - update.sh \ - make-patch.sh \ - libcharset-glib.patch - -charset_alias = $(DESTDIR)$(libdir)/charset.alias -charset_tmp = $(DESTDIR)$(libdir)/charset.tmp -install-exec-local: all-local - $(mkinstalldirs) $(DESTDIR)$(libdir) - if test -f $(charset_alias); then \ - sed -f ref-add.sed $(charset_alias) > $(charset_tmp) ; \ - $(INSTALL_DATA) $(charset_tmp) $(charset_alias) ; \ - rm -f $(charset_tmp) ; \ - else \ - if test @GLIBC21@ = no; then \ - sed -f ref-add.sed charset.alias > $(charset_tmp) ; \ - $(INSTALL_DATA) $(charset_tmp) $(charset_alias) ; \ - rm -f $(charset_tmp) ; \ - fi ; \ - fi - -uninstall-local: all-local - if test -f $(charset_alias); then \ - sed -f ref-del.sed $(charset_alias) > $(charset_tmp); \ - if grep '^# Packages using this file: $$' $(charset_tmp) \ - > /dev/null; then \ - rm -f $(charset_alias); \ - else \ - $(INSTALL_DATA) $(charset_tmp) $(charset_alias); \ - fi; \ - rm -f $(charset_tmp); \ - fi - -charset.alias: config.charset - $(SHELL) $(srcdir)/config.charset '@host@' > t-$@ - mv t-$@ $@ - -all-local: ref-add.sed ref-del.sed charset.alias - -SUFFIXES = .sed .sin -.sin.sed: - sed -e '/^#/d' -e 's/@''PACKAGE''@/@PACKAGE@/g' $< > t-$@ - mv t-$@ $@ - -CLEANFILES = charset.alias ref-add.sed ref-del.sed diff --git a/lib/win32/glib-2.20.4/glib/libcharset/Makefile.in b/lib/win32/glib-2.20.4/glib/libcharset/Makefile.in deleted file mode 100644 index 7b491b6ae3493..0000000000000 --- a/lib/win32/glib-2.20.4/glib/libcharset/Makefile.in +++ /dev/null @@ -1,672 +0,0 @@ -# Makefile.in generated by automake 1.11 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@ - -# GLIB - Library of useful C routines - -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@ -DIST_COMMON = README $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ - $(top_srcdir)/Makefile.decl -subdir = glib/libcharset -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ - $(top_srcdir)/acglib.m4 \ - $(top_srcdir)/glib/libcharset/codeset.m4 \ - $(top_srcdir)/glib/libcharset/glibc21.m4 \ - $(top_srcdir)/m4macros/glib-gettext.m4 \ - $(top_srcdir)/configure.in -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs -CONFIG_HEADER = $(top_builddir)/config.h -CONFIG_CLEAN_FILES = -CONFIG_CLEAN_VPATH_FILES = -LTLIBRARIES = $(noinst_LTLIBRARIES) -libcharset_la_LIBADD = -am_libcharset_la_OBJECTS = localcharset.lo -libcharset_la_OBJECTS = $(am_libcharset_la_OBJECTS) -DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) -depcomp = $(SHELL) $(top_srcdir)/depcomp -am__depfiles_maybe = depfiles -am__mv = mv -f -COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ - $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ - $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -CCLD = $(CC) -LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ - $(LDFLAGS) -o $@ -SOURCES = $(libcharset_la_SOURCES) -DIST_SOURCES = $(libcharset_la_SOURCES) -ETAGS = etags -CTAGS = ctags -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -ACLOCAL = @ACLOCAL@ -ALLOCA = @ALLOCA@ -AMTAR = @AMTAR@ -AR = @AR@ -AS = @AS@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -CATALOGS = @CATALOGS@ -CATOBJEXT = @CATOBJEXT@ -CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CFLAGS = @CFLAGS@ -CONFIG_STATUS_DEPENDENCIES = @CONFIG_STATUS_DEPENDENCIES@ -CPP = @CPP@ -CPPFLAGS = @CPPFLAGS@ -CXX = @CXX@ -CXXCPP = @CXXCPP@ -CXXDEPMODE = @CXXDEPMODE@ -CXXFLAGS = @CXXFLAGS@ -CYGPATH_W = @CYGPATH_W@ -DATADIRNAME = @DATADIRNAME@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -DISABLE_MEM_POOLS = @DISABLE_MEM_POOLS@ -DLLTOOL = @DLLTOOL@ -DSYMUTIL = @DSYMUTIL@ -DUMPBIN = @DUMPBIN@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -FAM_LIBS = @FAM_LIBS@ -FGREP = @FGREP@ -GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ -GIO = @GIO@ -GIO_MODULE_DIR = @GIO_MODULE_DIR@ -GLIBC21 = @GLIBC21@ -GLIB_BINARY_AGE = @GLIB_BINARY_AGE@ -GLIB_DEBUG_FLAGS = @GLIB_DEBUG_FLAGS@ -GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@ -GLIB_GENMARSHAL = @GLIB_GENMARSHAL@ -GLIB_INTERFACE_AGE = @GLIB_INTERFACE_AGE@ -GLIB_MAJOR_VERSION = @GLIB_MAJOR_VERSION@ -GLIB_MICRO_VERSION = @GLIB_MICRO_VERSION@ -GLIB_MINOR_VERSION = @GLIB_MINOR_VERSION@ -GLIB_VERSION = @GLIB_VERSION@ -GLIB_WIN32_STATIC_COMPILATION_DEFINE = @GLIB_WIN32_STATIC_COMPILATION_DEFINE@ -GMOFILES = @GMOFILES@ -GMSGFMT = @GMSGFMT@ -GREP = @GREP@ -GSPAWN = @GSPAWN@ -GTHREAD_COMPILE_IMPL_DEFINES = @GTHREAD_COMPILE_IMPL_DEFINES@ -GTKDOC_CHECK = @GTKDOC_CHECK@ -G_LIBS_EXTRA = @G_LIBS_EXTRA@ -G_MODULE_BROKEN_RTLD_GLOBAL = @G_MODULE_BROKEN_RTLD_GLOBAL@ -G_MODULE_HAVE_DLERROR = @G_MODULE_HAVE_DLERROR@ -G_MODULE_IMPL = @G_MODULE_IMPL@ -G_MODULE_LDFLAGS = @G_MODULE_LDFLAGS@ -G_MODULE_LIBS = @G_MODULE_LIBS@ -G_MODULE_LIBS_EXTRA = @G_MODULE_LIBS_EXTRA@ -G_MODULE_NEED_USCORE = @G_MODULE_NEED_USCORE@ -G_MODULE_PLUGIN_LIBS = @G_MODULE_PLUGIN_LIBS@ -G_MODULE_SUPPORTED = @G_MODULE_SUPPORTED@ -G_THREAD_CFLAGS = @G_THREAD_CFLAGS@ -G_THREAD_LIBS = @G_THREAD_LIBS@ -G_THREAD_LIBS_EXTRA = @G_THREAD_LIBS_EXTRA@ -G_THREAD_LIBS_FOR_GTHREAD = @G_THREAD_LIBS_FOR_GTHREAD@ -HTML_DIR = @HTML_DIR@ -ICONV_LIBS = @ICONV_LIBS@ -INDENT = @INDENT@ -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -INSTOBJEXT = @INSTOBJEXT@ -INTLLIBS = @INTLLIBS@ -LD = @LD@ -LDFLAGS = @LDFLAGS@ -LIBOBJS = @LIBOBJS@ -LIBS = @LIBS@ -LIBTOOL = @LIBTOOL@ -LIBTOOL_EXPORT_OPTIONS = @LIBTOOL_EXPORT_OPTIONS@ -LIB_EXE_MACHINE_FLAG = @LIB_EXE_MACHINE_FLAG@ -LIPO = @LIPO@ -LN_S = @LN_S@ -LTLIBOBJS = @LTLIBOBJS@ -LT_AGE = @LT_AGE@ -LT_CURRENT = @LT_CURRENT@ -LT_CURRENT_MINUS_AGE = @LT_CURRENT_MINUS_AGE@ -LT_RELEASE = @LT_RELEASE@ -LT_REVISION = @LT_REVISION@ -MAINT = @MAINT@ -MAKEINFO = @MAKEINFO@ -MKDIR_P = @MKDIR_P@ -MKINSTALLDIRS = @MKINSTALLDIRS@ -MSGFMT = @MSGFMT@ -MSGFMT_OPTS = @MSGFMT_OPTS@ -NM = @NM@ -NMEDIT = @NMEDIT@ -OBJDUMP = @OBJDUMP@ -OBJEXT = @OBJEXT@ -OTOOL = @OTOOL@ -OTOOL64 = @OTOOL64@ -PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -PCRE_CFLAGS = @PCRE_CFLAGS@ -PCRE_LIBS = @PCRE_LIBS@ -PCRE_REQUIRES = @PCRE_REQUIRES@ -PCRE_WARN_CFLAGS = @PCRE_WARN_CFLAGS@ -PERL = @PERL@ -PERL_PATH = @PERL_PATH@ -PKG_CONFIG = @PKG_CONFIG@ -PLATFORMDEP = @PLATFORMDEP@ -POFILES = @POFILES@ -POSUB = @POSUB@ -PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ -PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ -PYTHON = @PYTHON@ -PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ -PYTHON_PLATFORM = @PYTHON_PLATFORM@ -PYTHON_PREFIX = @PYTHON_PREFIX@ -PYTHON_VERSION = @PYTHON_VERSION@ -RANLIB = @RANLIB@ -REBUILD = @REBUILD@ -SED = @SED@ -SELINUX_LIBS = @SELINUX_LIBS@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRIP = @STRIP@ -USE_NLS = @USE_NLS@ -VERSION = @VERSION@ -WINDRES = @WINDRES@ -XATTR_LIBS = @XATTR_LIBS@ -XGETTEXT = @XGETTEXT@ -XMLCATALOG = @XMLCATALOG@ -XML_CATALOG_FILE = @XML_CATALOG_FILE@ -XSLTPROC = @XSLTPROC@ -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@ -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_os = @build_os@ -build_vendor = @build_vendor@ -builddir = @builddir@ -datadir = @datadir@ -datarootdir = @datarootdir@ -docdir = @docdir@ -dvidir = @dvidir@ -exec_prefix = @exec_prefix@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -htmldir = @htmldir@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localedir = @localedir@ -localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -ms_librarian = @ms_librarian@ -oldincludedir = @oldincludedir@ -pdfdir = @pdfdir@ -pkgpyexecdir = @pkgpyexecdir@ -pkgpythondir = @pkgpythondir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -psdir = @psdir@ -pyexecdir = @pyexecdir@ -pythondir = @pythondir@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -srcdir = @srcdir@ -sysconfdir = @sysconfdir@ -target_alias = @target_alias@ -top_build_prefix = @top_build_prefix@ -top_builddir = @top_builddir@ -top_srcdir = @top_srcdir@ - -#GTESTER = gtester # for non-GLIB packages -GTESTER = $(top_builddir)/glib/gtester # for the GLIB package -GTESTER_REPORT = $(top_builddir)/glib/gtester-report # for the GLIB package - -# initialize variables for unconditional += appending -EXTRA_DIST = README config.charset ref-add.sin ref-del.sin glibc21.m4 \ - codeset.m4 update.sh make-patch.sh libcharset-glib.patch -TEST_PROGS = -INCLUDES = \ - -DLIBDIR=\"$(libdir)\" -I$(top_srcdir) - -noinst_LTLIBRARIES = libcharset.la -libcharset_la_SOURCES = \ - libcharset.h \ - localcharset.h \ - localcharset.c - -charset_alias = $(DESTDIR)$(libdir)/charset.alias -charset_tmp = $(DESTDIR)$(libdir)/charset.tmp -SUFFIXES = .sed .sin -CLEANFILES = charset.alias ref-add.sed ref-del.sed -all: all-am - -.SUFFIXES: -.SUFFIXES: .sed .sin .c .lo .o .obj -$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(top_srcdir)/Makefile.decl $(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) --gnu glib/libcharset/Makefile'; \ - $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --gnu glib/libcharset/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): - -clean-noinstLTLIBRARIES: - -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) - @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \ - dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ - test "$$dir" != "$$p" || dir=.; \ - echo "rm -f \"$${dir}/so_locations\""; \ - rm -f "$${dir}/so_locations"; \ - done -libcharset.la: $(libcharset_la_OBJECTS) $(libcharset_la_DEPENDENCIES) - $(LINK) $(libcharset_la_OBJECTS) $(libcharset_la_LIBADD) $(LIBS) - -mostlyclean-compile: - -rm -f *.$(OBJEXT) - -distclean-compile: - -rm -f *.tab.c - -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/localcharset.Plo@am__quote@ - -.c.o: -@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< - -.c.obj: -@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` - -.c.lo: -@am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< - -mostlyclean-libtool: - -rm -f *.lo - -clean-libtool: - -rm -rf .libs _libs - -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) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - set x; \ - here=`pwd`; \ - 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; }; }'`; \ - 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) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - 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; }; }'`; \ - 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 - -distdir: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - list='$(DISTFILES)'; \ - dist_files=`for file in $$list; do echo $$file; done | \ - sed -e "s|^$$srcdirstrip/||;t" \ - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ - case $$dist_files in \ - */*) $(MKDIR_P) `echo "$$dist_files" | \ - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ - sort -u` ;; \ - esac; \ - for file in $$dist_files; do \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - if test -d $$d/$$file; then \ - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test -d "$(distdir)/$$file"; then \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ - else \ - test -f "$(distdir)/$$file" \ - || cp -p $$d/$$file "$(distdir)/$$file" \ - || exit 1; \ - fi; \ - done -check-am: all-am - $(MAKE) $(AM_MAKEFLAGS) check-local -check: check-am -all-am: Makefile $(LTLIBRARIES) all-local -installdirs: -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: - -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) - -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 clean-noinstLTLIBRARIES \ - mostlyclean-am - -distclean: distclean-am - -rm -rf ./$(DEPDIR) - -rm -f Makefile -distclean-am: clean-am distclean-compile distclean-generic \ - distclean-tags - -dvi: dvi-am - -dvi-am: - -html: html-am - -html-am: - -info: info-am - -info-am: - -install-data-am: - -install-dvi: install-dvi-am - -install-dvi-am: - -install-exec-am: install-exec-local - -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 -rf ./$(DEPDIR) - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-am - -mostlyclean-am: mostlyclean-compile mostlyclean-generic \ - mostlyclean-libtool - -pdf: pdf-am - -pdf-am: - -ps: ps-am - -ps-am: - -uninstall-am: uninstall-local - -.MAKE: check-am install-am install-strip - -.PHONY: CTAGS GTAGS all all-am all-local check check-am check-local \ - clean clean-generic clean-libtool clean-noinstLTLIBRARIES \ - ctags distclean distclean-compile distclean-generic \ - distclean-libtool distclean-tags distdir 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-exec-local install-html \ - install-html-am install-info install-info-am install-man \ - install-pdf install-pdf-am install-ps install-ps-am \ - install-strip installcheck installcheck-am installdirs \ - maintainer-clean maintainer-clean-generic mostlyclean \ - mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ - pdf pdf-am ps ps-am tags uninstall uninstall-am \ - uninstall-local - - -### testing rules - -# test: run all tests in cwd and subdirs -test: ${TEST_PROGS} -@OS_UNIX_TRUE@ @test -z "${TEST_PROGS}" || ${GTESTER} --verbose ${TEST_PROGS} -@OS_UNIX_TRUE@ @ for subdir in $(SUBDIRS) . ; do \ -@OS_UNIX_TRUE@ test "$$subdir" = "." -o "$$subdir" = "po" || \ -@OS_UNIX_TRUE@ ( cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $@ ) || exit $? ; \ -@OS_UNIX_TRUE@ done - -# test-report: run tests in subdirs and generate report -# perf-report: run tests in subdirs with -m perf and generate report -# full-report: like test-report: with -m perf and -m slow -test-report perf-report full-report: ${TEST_PROGS} - @test -z "${TEST_PROGS}" || { \ - case $@ in \ - test-report) test_options="-k";; \ - perf-report) test_options="-k -m=perf";; \ - full-report) test_options="-k -m=perf -m=slow";; \ - esac ; \ - if test -z "$$GTESTER_LOGDIR" ; then \ - ${GTESTER} --verbose $$test_options -o test-report.xml ${TEST_PROGS} ; \ - elif test -n "${TEST_PROGS}" ; then \ - ${GTESTER} --verbose $$test_options -o `mktemp "$$GTESTER_LOGDIR/log-XXXXXX"` ${TEST_PROGS} ; \ - fi ; \ - } - @ ignore_logdir=true ; \ - if test -z "$$GTESTER_LOGDIR" ; then \ - GTESTER_LOGDIR=`mktemp -d "\`pwd\`/.testlogs-XXXXXX"`; export GTESTER_LOGDIR ; \ - ignore_logdir=false ; \ - fi ; \ - for subdir in $(SUBDIRS) . ; do \ - test "$$subdir" = "." -o "$$subdir" = "po" || \ - ( cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $@ ) || exit $? ; \ - done ; \ - $$ignore_logdir || { \ - echo '' > $@.xml ; \ - echo '' >> $@.xml ; \ - for lf in `ls -L "$$GTESTER_LOGDIR"/.` ; do \ - sed '1,1s/^?]*?>//' <"$$GTESTER_LOGDIR"/"$$lf" >> $@.xml ; \ - done ; \ - echo >> $@.xml ; \ - echo '' >> $@.xml ; \ - rm -rf "$$GTESTER_LOGDIR"/ ; \ - ${GTESTER_REPORT} --version 2>/dev/null 1>&2 ; test "$$?" != 0 || ${GTESTER_REPORT} $@.xml >$@.html ; \ - } -.PHONY: test test-report perf-report full-report -# run make test as part of make check -check-local: test -install-exec-local: all-local - $(mkinstalldirs) $(DESTDIR)$(libdir) - if test -f $(charset_alias); then \ - sed -f ref-add.sed $(charset_alias) > $(charset_tmp) ; \ - $(INSTALL_DATA) $(charset_tmp) $(charset_alias) ; \ - rm -f $(charset_tmp) ; \ - else \ - if test @GLIBC21@ = no; then \ - sed -f ref-add.sed charset.alias > $(charset_tmp) ; \ - $(INSTALL_DATA) $(charset_tmp) $(charset_alias) ; \ - rm -f $(charset_tmp) ; \ - fi ; \ - fi - -uninstall-local: all-local - if test -f $(charset_alias); then \ - sed -f ref-del.sed $(charset_alias) > $(charset_tmp); \ - if grep '^# Packages using this file: $$' $(charset_tmp) \ - > /dev/null; then \ - rm -f $(charset_alias); \ - else \ - $(INSTALL_DATA) $(charset_tmp) $(charset_alias); \ - fi; \ - rm -f $(charset_tmp); \ - fi - -charset.alias: config.charset - $(SHELL) $(srcdir)/config.charset '@host@' > t-$@ - mv t-$@ $@ - -all-local: ref-add.sed ref-del.sed charset.alias -.sin.sed: - sed -e '/^#/d' -e 's/@''PACKAGE''@/@PACKAGE@/g' $< > t-$@ - mv t-$@ $@ - -# 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: diff --git a/lib/win32/glib-2.20.4/glib/libcharset/README b/lib/win32/glib-2.20.4/glib/libcharset/README deleted file mode 100644 index c8f53bde6fec3..0000000000000 --- a/lib/win32/glib-2.20.4/glib/libcharset/README +++ /dev/null @@ -1,46 +0,0 @@ -The sources are derived from Bruno Haible's libcharset library included -with libiconv: - - http//www.gnu.org/software/libiconv - -The 'update.sh' script in this directory, when pointed at -the original sources updates the files in this directory -(and elsewhere in the GLib distribution) to the new version - -The 'make-patch.sh' script in this directory regenerates -the patch files included in this directory from a copy -of the pristine sources and the files in this directory. - -The license on the portions from libiconv portions is reproduced -below. - -Owen Taylor -26 September 2001 - -Updated to libiconv-1.12. - -Behdad Esfahbod -20 May 2008 - -==== - -/* Determine a canonical name for the current locale's character encoding. - - Copyright (C) 2000-2001 Free Software Foundation, Inc. - - This program is free software; you can redistribute it and/or modify it - under the terms of the GNU Library General Public License as published - by the Free Software Foundation; either version 2, or (at your option) - any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Library General Public License for more details. - - You should have received a copy of the GNU Library General Public - License along with this program; if not, write to the Free Software - Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, - USA. */ - -/* Written by Bruno Haible . */ diff --git a/lib/win32/glib-2.20.4/glib/libcharset/codeset.m4 b/lib/win32/glib-2.20.4/glib/libcharset/codeset.m4 deleted file mode 100644 index a6e67ec498ff4..0000000000000 --- a/lib/win32/glib-2.20.4/glib/libcharset/codeset.m4 +++ /dev/null @@ -1,21 +0,0 @@ -# codeset.m4 serial AM1 (gettext-0.10.40) -dnl Copyright (C) 2000-2002 Free Software Foundation, Inc. -dnl This file is free software; the Free Software Foundation -dnl gives unlimited permission to copy and/or distribute it, -dnl with or without modifications, as long as this notice is preserved. - -dnl From Bruno Haible. - -AC_DEFUN([AM_LANGINFO_CODESET], -[ - AC_CACHE_CHECK([for nl_langinfo and CODESET], am_cv_langinfo_codeset, - [AC_TRY_LINK([#include ], - [char* cs = nl_langinfo(CODESET);], - am_cv_langinfo_codeset=yes, - am_cv_langinfo_codeset=no) - ]) - if test $am_cv_langinfo_codeset = yes; then - AC_DEFINE(HAVE_LANGINFO_CODESET, 1, - [Define if you have and nl_langinfo(CODESET).]) - fi -]) diff --git a/lib/win32/glib-2.20.4/glib/libcharset/config.charset b/lib/win32/glib-2.20.4/glib/libcharset/config.charset deleted file mode 100644 index e8c258b3fa421..0000000000000 --- a/lib/win32/glib-2.20.4/glib/libcharset/config.charset +++ /dev/null @@ -1,640 +0,0 @@ -#! /bin/sh -# Output a system dependent table of character encoding aliases. -# -# Copyright (C) 2000-2004, 2006 Free Software Foundation, Inc. -# -# This program is free software; you can redistribute it and/or modify it -# under the terms of the GNU Library General Public License as published -# by the Free Software Foundation; either version 2, or (at your option) -# any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Library General Public License for more details. -# -# You should have received a copy of the GNU Library General Public -# License along with this program; if not, write to the Free Software -# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, -# USA. -# -# The table consists of lines of the form -# ALIAS CANONICAL -# -# ALIAS is the (system dependent) result of "nl_langinfo (CODESET)". -# ALIAS is compared in a case sensitive way. -# -# CANONICAL is the GNU canonical name for this character encoding. -# It must be an encoding supported by libiconv. Support by GNU libc is -# also desirable. CANONICAL is case insensitive. Usually an upper case -# MIME charset name is preferred. -# The current list of GNU canonical charset names is as follows. -# -# name MIME? used by which systems -# ASCII, ANSI_X3.4-1968 glibc solaris freebsd netbsd darwin -# ISO-8859-1 Y glibc aix hpux irix osf solaris freebsd netbsd darwin -# ISO-8859-2 Y glibc aix hpux irix osf solaris freebsd netbsd darwin -# ISO-8859-3 Y glibc solaris -# ISO-8859-4 Y osf solaris freebsd netbsd darwin -# ISO-8859-5 Y glibc aix hpux irix osf solaris freebsd netbsd darwin -# ISO-8859-6 Y glibc aix hpux solaris -# ISO-8859-7 Y glibc aix hpux irix osf solaris netbsd darwin -# ISO-8859-8 Y glibc aix hpux osf solaris -# ISO-8859-9 Y glibc aix hpux irix osf solaris darwin -# ISO-8859-13 glibc netbsd darwin -# ISO-8859-14 glibc -# ISO-8859-15 glibc aix osf solaris freebsd darwin -# KOI8-R Y glibc solaris freebsd netbsd darwin -# KOI8-U Y glibc freebsd netbsd darwin -# KOI8-T glibc -# CP437 dos -# CP775 dos -# CP850 aix osf dos -# CP852 dos -# CP855 dos -# CP856 aix -# CP857 dos -# CP861 dos -# CP862 dos -# CP864 dos -# CP865 dos -# CP866 freebsd netbsd darwin dos -# CP869 dos -# CP874 woe32 dos -# CP922 aix -# CP932 aix woe32 dos -# CP943 aix -# CP949 osf woe32 dos -# CP950 woe32 dos -# CP1046 aix -# CP1124 aix -# CP1125 dos -# CP1129 aix -# CP1250 woe32 -# CP1251 glibc solaris netbsd darwin woe32 -# CP1252 aix woe32 -# CP1253 woe32 -# CP1254 woe32 -# CP1255 glibc woe32 -# CP1256 woe32 -# CP1257 woe32 -# GB2312 Y glibc aix hpux irix solaris freebsd netbsd darwin -# EUC-JP Y glibc aix hpux irix osf solaris freebsd netbsd darwin -# EUC-KR Y glibc aix hpux irix osf solaris freebsd netbsd darwin -# EUC-TW glibc aix hpux irix osf solaris netbsd -# BIG5 Y glibc aix hpux osf solaris freebsd netbsd darwin -# BIG5-HKSCS glibc solaris -# GBK glibc aix osf solaris woe32 dos -# GB18030 glibc solaris netbsd -# SHIFT_JIS Y hpux osf solaris freebsd netbsd darwin -# JOHAB glibc solaris woe32 -# TIS-620 glibc aix hpux osf solaris -# VISCII Y glibc -# TCVN5712-1 glibc -# GEORGIAN-PS glibc -# HP-ROMAN8 hpux -# HP-ARABIC8 hpux -# HP-GREEK8 hpux -# HP-HEBREW8 hpux -# HP-TURKISH8 hpux -# HP-KANA8 hpux -# DEC-KANJI osf -# DEC-HANYU osf -# UTF-8 Y glibc aix hpux osf solaris netbsd darwin -# -# Note: Names which are not marked as being a MIME name should not be used in -# Internet protocols for information interchange (mail, news, etc.). -# -# Note: ASCII and ANSI_X3.4-1968 are synonymous canonical names. Applications -# must understand both names and treat them as equivalent. -# -# The first argument passed to this file is the canonical host specification, -# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM -# or -# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM - -host="$1" -os=`echo "$host" | sed -e 's/^[^-]*-[^-]*-\(.*\)$/\1/'` -echo "# This file contains a table of character encoding aliases," -echo "# suitable for operating system '${os}'." -echo "# It was automatically generated from config.charset." -# List of references, updated during installation: -echo "# Packages using this file: " -case "$os" in - linux-gnulibc1*) - # Linux libc5 doesn't have nl_langinfo(CODESET); therefore - # localcharset.c falls back to using the full locale name - # from the environment variables. - echo "C ASCII" - echo "POSIX ASCII" - for l in af af_ZA ca ca_ES da da_DK de de_AT de_BE de_CH de_DE de_LU \ - en en_AU en_BW en_CA en_DK en_GB en_IE en_NZ en_US en_ZA \ - en_ZW es es_AR es_BO es_CL es_CO es_DO es_EC es_ES es_GT \ - es_HN es_MX es_PA es_PE es_PY es_SV es_US es_UY es_VE et \ - et_EE eu eu_ES fi fi_FI fo fo_FO fr fr_BE fr_CA fr_CH fr_FR \ - fr_LU ga ga_IE gl gl_ES id id_ID in in_ID is is_IS it it_CH \ - it_IT kl kl_GL nl nl_BE nl_NL no no_NO pt pt_BR pt_PT sv \ - sv_FI sv_SE; do - echo "$l ISO-8859-1" - echo "$l.iso-8859-1 ISO-8859-1" - echo "$l.iso-8859-15 ISO-8859-15" - echo "$l.iso-8859-15@euro ISO-8859-15" - echo "$l@euro ISO-8859-15" - echo "$l.cp-437 CP437" - echo "$l.cp-850 CP850" - echo "$l.cp-1252 CP1252" - echo "$l.cp-1252@euro CP1252" - #echo "$l.atari-st ATARI-ST" # not a commonly used encoding - echo "$l.utf-8 UTF-8" - echo "$l.utf-8@euro UTF-8" - done - for l in cs cs_CZ hr hr_HR hu hu_HU pl pl_PL ro ro_RO sk sk_SK sl \ - sl_SI sr sr_CS sr_YU; do - echo "$l ISO-8859-2" - echo "$l.iso-8859-2 ISO-8859-2" - echo "$l.cp-852 CP852" - echo "$l.cp-1250 CP1250" - echo "$l.utf-8 UTF-8" - done - for l in mk mk_MK ru ru_RU; do - echo "$l ISO-8859-5" - echo "$l.iso-8859-5 ISO-8859-5" - echo "$l.koi8-r KOI8-R" - echo "$l.cp-866 CP866" - echo "$l.cp-1251 CP1251" - echo "$l.utf-8 UTF-8" - done - for l in ar ar_SA; do - echo "$l ISO-8859-6" - echo "$l.iso-8859-6 ISO-8859-6" - echo "$l.cp-864 CP864" - #echo "$l.cp-868 CP868" # not a commonly used encoding - echo "$l.cp-1256 CP1256" - echo "$l.utf-8 UTF-8" - done - for l in el el_GR gr gr_GR; do - echo "$l ISO-8859-7" - echo "$l.iso-8859-7 ISO-8859-7" - echo "$l.cp-869 CP869" - echo "$l.cp-1253 CP1253" - echo "$l.cp-1253@euro CP1253" - echo "$l.utf-8 UTF-8" - echo "$l.utf-8@euro UTF-8" - done - for l in he he_IL iw iw_IL; do - echo "$l ISO-8859-8" - echo "$l.iso-8859-8 ISO-8859-8" - echo "$l.cp-862 CP862" - echo "$l.cp-1255 CP1255" - echo "$l.utf-8 UTF-8" - done - for l in tr tr_TR; do - echo "$l ISO-8859-9" - echo "$l.iso-8859-9 ISO-8859-9" - echo "$l.cp-857 CP857" - echo "$l.cp-1254 CP1254" - echo "$l.utf-8 UTF-8" - done - for l in lt lt_LT lv lv_LV; do - #echo "$l BALTIC" # not a commonly used encoding, wrong encoding name - echo "$l ISO-8859-13" - done - for l in ru_UA uk uk_UA; do - echo "$l KOI8-U" - done - for l in zh zh_CN; do - #echo "$l GB_2312-80" # not a commonly used encoding, wrong encoding name - echo "$l GB2312" - done - for l in ja ja_JP ja_JP.EUC; do - echo "$l EUC-JP" - done - for l in ko ko_KR; do - echo "$l EUC-KR" - done - for l in th th_TH; do - echo "$l TIS-620" - done - for l in fa fa_IR; do - #echo "$l ISIRI-3342" # a broken encoding - echo "$l.utf-8 UTF-8" - done - ;; - linux* | *-gnu*) - # With glibc-2.1 or newer, we don't need any canonicalization, - # because glibc has iconv and both glibc and libiconv support all - # GNU canonical names directly. Therefore, the Makefile does not - # need to install the alias file at all. - # The following applies only to glibc-2.0.x and older libcs. - echo "ISO_646.IRV:1983 ASCII" - ;; - aix*) - echo "ISO8859-1 ISO-8859-1" - echo "ISO8859-2 ISO-8859-2" - echo "ISO8859-5 ISO-8859-5" - echo "ISO8859-6 ISO-8859-6" - echo "ISO8859-7 ISO-8859-7" - echo "ISO8859-8 ISO-8859-8" - echo "ISO8859-9 ISO-8859-9" - echo "ISO8859-15 ISO-8859-15" - echo "IBM-850 CP850" - echo "IBM-856 CP856" - echo "IBM-921 ISO-8859-13" - echo "IBM-922 CP922" - echo "IBM-932 CP932" - echo "IBM-943 CP943" - echo "IBM-1046 CP1046" - echo "IBM-1124 CP1124" - echo "IBM-1129 CP1129" - echo "IBM-1252 CP1252" - echo "IBM-eucCN GB2312" - echo "IBM-eucJP EUC-JP" - echo "IBM-eucKR EUC-KR" - echo "IBM-eucTW EUC-TW" - echo "big5 BIG5" - echo "GBK GBK" - echo "TIS-620 TIS-620" - echo "UTF-8 UTF-8" - ;; - hpux*) - echo "iso88591 ISO-8859-1" - echo "iso88592 ISO-8859-2" - echo "iso88595 ISO-8859-5" - echo "iso88596 ISO-8859-6" - echo "iso88597 ISO-8859-7" - echo "iso88598 ISO-8859-8" - echo "iso88599 ISO-8859-9" - echo "iso885915 ISO-8859-15" - echo "roman8 HP-ROMAN8" - echo "arabic8 HP-ARABIC8" - echo "greek8 HP-GREEK8" - echo "hebrew8 HP-HEBREW8" - echo "turkish8 HP-TURKISH8" - echo "kana8 HP-KANA8" - echo "tis620 TIS-620" - echo "big5 BIG5" - echo "eucJP EUC-JP" - echo "eucKR EUC-KR" - echo "eucTW EUC-TW" - echo "hp15CN GB2312" - #echo "ccdc ?" # what is this? - echo "SJIS SHIFT_JIS" - echo "utf8 UTF-8" - ;; - irix*) - echo "ISO8859-1 ISO-8859-1" - echo "ISO8859-2 ISO-8859-2" - echo "ISO8859-5 ISO-8859-5" - echo "ISO8859-7 ISO-8859-7" - echo "ISO8859-9 ISO-8859-9" - echo "eucCN GB2312" - echo "eucJP EUC-JP" - echo "eucKR EUC-KR" - echo "eucTW EUC-TW" - ;; - osf*) - echo "ISO8859-1 ISO-8859-1" - echo "ISO8859-2 ISO-8859-2" - echo "ISO8859-4 ISO-8859-4" - echo "ISO8859-5 ISO-8859-5" - echo "ISO8859-7 ISO-8859-7" - echo "ISO8859-8 ISO-8859-8" - echo "ISO8859-9 ISO-8859-9" - echo "ISO8859-15 ISO-8859-15" - echo "cp850 CP850" - echo "big5 BIG5" - echo "dechanyu DEC-HANYU" - echo "dechanzi GB2312" - echo "deckanji DEC-KANJI" - echo "deckorean EUC-KR" - echo "eucJP EUC-JP" - echo "eucKR EUC-KR" - echo "eucTW EUC-TW" - echo "GBK GBK" - echo "KSC5601 CP949" - echo "sdeckanji EUC-JP" - echo "SJIS SHIFT_JIS" - echo "TACTIS TIS-620" - echo "UTF-8 UTF-8" - ;; - solaris*) - echo "646 ASCII" - echo "ISO8859-1 ISO-8859-1" - echo "ISO8859-2 ISO-8859-2" - echo "ISO8859-3 ISO-8859-3" - echo "ISO8859-4 ISO-8859-4" - echo "ISO8859-5 ISO-8859-5" - echo "ISO8859-6 ISO-8859-6" - echo "ISO8859-7 ISO-8859-7" - echo "ISO8859-8 ISO-8859-8" - echo "ISO8859-9 ISO-8859-9" - echo "ISO8859-15 ISO-8859-15" - echo "koi8-r KOI8-R" - echo "ansi-1251 CP1251" - echo "BIG5 BIG5" - echo "Big5-HKSCS BIG5-HKSCS" - echo "gb2312 GB2312" - echo "GBK GBK" - echo "GB18030 GB18030" - echo "cns11643 EUC-TW" - echo "5601 EUC-KR" - echo "ko_KR.johap92 JOHAB" - echo "eucJP EUC-JP" - echo "PCK SHIFT_JIS" - echo "TIS620.2533 TIS-620" - #echo "sun_eu_greek ?" # what is this? - echo "UTF-8 UTF-8" - ;; - freebsd* | os2*) - # FreeBSD 4.2 doesn't have nl_langinfo(CODESET); therefore - # localcharset.c falls back to using the full locale name - # from the environment variables. - # Likewise for OS/2. OS/2 has XFree86 just like FreeBSD. Just - # reuse FreeBSD's locale data for OS/2. - echo "C ASCII" - echo "US-ASCII ASCII" - for l in la_LN lt_LN; do - echo "$l.ASCII ASCII" - done - for l in da_DK de_AT de_CH de_DE en_AU en_CA en_GB en_US es_ES \ - fi_FI fr_BE fr_CA fr_CH fr_FR is_IS it_CH it_IT la_LN \ - lt_LN nl_BE nl_NL no_NO pt_PT sv_SE; do - echo "$l.ISO_8859-1 ISO-8859-1" - echo "$l.DIS_8859-15 ISO-8859-15" - done - for l in cs_CZ hr_HR hu_HU la_LN lt_LN pl_PL sl_SI; do - echo "$l.ISO_8859-2 ISO-8859-2" - done - for l in la_LN lt_LT; do - echo "$l.ISO_8859-4 ISO-8859-4" - done - for l in ru_RU ru_SU; do - echo "$l.KOI8-R KOI8-R" - echo "$l.ISO_8859-5 ISO-8859-5" - echo "$l.CP866 CP866" - done - echo "uk_UA.KOI8-U KOI8-U" - echo "zh_TW.BIG5 BIG5" - echo "zh_TW.Big5 BIG5" - echo "zh_CN.EUC GB2312" - echo "ja_JP.EUC EUC-JP" - echo "ja_JP.SJIS SHIFT_JIS" - echo "ja_JP.Shift_JIS SHIFT_JIS" - echo "ko_KR.EUC EUC-KR" - ;; - netbsd*) - echo "646 ASCII" - echo "ISO8859-1 ISO-8859-1" - echo "ISO8859-2 ISO-8859-2" - echo "ISO8859-4 ISO-8859-4" - echo "ISO8859-5 ISO-8859-5" - echo "ISO8859-7 ISO-8859-7" - echo "ISO8859-13 ISO-8859-13" - echo "ISO8859-15 ISO-8859-15" - echo "eucCN GB2312" - echo "eucJP EUC-JP" - echo "eucKR EUC-KR" - echo "eucTW EUC-TW" - echo "BIG5 BIG5" - echo "SJIS SHIFT_JIS" - ;; - darwin[56]*) - # Darwin 6.8 doesn't have nl_langinfo(CODESET); therefore - # localcharset.c falls back to using the full locale name - # from the environment variables. - echo "C ASCII" - for l in en_AU en_CA en_GB en_US la_LN; do - echo "$l.US-ASCII ASCII" - done - for l in da_DK de_AT de_CH de_DE en_AU en_CA en_GB en_US es_ES \ - fi_FI fr_BE fr_CA fr_CH fr_FR is_IS it_CH it_IT nl_BE \ - nl_NL no_NO pt_PT sv_SE; do - echo "$l ISO-8859-1" - echo "$l.ISO8859-1 ISO-8859-1" - echo "$l.ISO8859-15 ISO-8859-15" - done - for l in la_LN; do - echo "$l.ISO8859-1 ISO-8859-1" - echo "$l.ISO8859-15 ISO-8859-15" - done - for l in cs_CZ hr_HR hu_HU la_LN pl_PL sl_SI; do - echo "$l.ISO8859-2 ISO-8859-2" - done - for l in la_LN lt_LT; do - echo "$l.ISO8859-4 ISO-8859-4" - done - for l in ru_RU; do - echo "$l.KOI8-R KOI8-R" - echo "$l.ISO8859-5 ISO-8859-5" - echo "$l.CP866 CP866" - done - for l in bg_BG; do - echo "$l.CP1251 CP1251" - done - echo "uk_UA.KOI8-U KOI8-U" - echo "zh_TW.BIG5 BIG5" - echo "zh_TW.Big5 BIG5" - echo "zh_CN.EUC GB2312" - echo "ja_JP.EUC EUC-JP" - echo "ja_JP.SJIS SHIFT_JIS" - echo "ko_KR.EUC EUC-KR" - ;; - darwin*) - # Darwin 7.5 has nl_langinfo(CODESET), but it is useless: - # - It returns the empty string when LANG is set to a locale of the - # form ll_CC, although ll_CC/LC_CTYPE is a symlink to an UTF-8 - # LC_CTYPE file. - # - The environment variables LANG, LC_CTYPE, LC_ALL are not set by - # the system; nl_langinfo(CODESET) returns "US-ASCII" in this case. - # - The documentation says: - # "... all code that calls BSD system routines should ensure - # that the const *char parameters of these routines are in UTF-8 - # encoding. All BSD system functions expect their string - # parameters to be in UTF-8 encoding and nothing else." - # It also says - # "An additional caveat is that string parameters for files, - # paths, and other file-system entities must be in canonical - # UTF-8. In a canonical UTF-8 Unicode string, all decomposable - # characters are decomposed ..." - # but this is not true: You can pass non-decomposed UTF-8 strings - # to file system functions, and it is the OS which will convert - # them to decomposed UTF-8 before accessing the file system. - # - The Apple Terminal application displays UTF-8 by default. - # - However, other applications are free to use different encodings: - # - xterm uses ISO-8859-1 by default. - # - TextEdit uses MacRoman by default. - # We prefer UTF-8 over decomposed UTF-8-MAC because one should - # minimize the use of decomposed Unicode. Unfortunately, through the - # Darwin file system, decomposed UTF-8 strings are leaked into user - # space nevertheless. - echo "* UTF-8" - ;; - beos*) - # BeOS has a single locale, and it has UTF-8 encoding. - echo "* UTF-8" - ;; - msdosdjgpp*) - # DJGPP 2.03 doesn't have nl_langinfo(CODESET); therefore - # localcharset.c falls back to using the full locale name - # from the environment variables. - echo "#" - echo "# The encodings given here may not all be correct." - echo "# If you find that the encoding given for your language and" - echo "# country is not the one your DOS machine actually uses, just" - echo "# correct it in this file, and send a mail to" - echo "# Juan Manuel Guerrero " - echo "# and Bruno Haible ." - echo "#" - echo "C ASCII" - # ISO-8859-1 languages - echo "ca CP850" - echo "ca_ES CP850" - echo "da CP865" # not CP850 ?? - echo "da_DK CP865" # not CP850 ?? - echo "de CP850" - echo "de_AT CP850" - echo "de_CH CP850" - echo "de_DE CP850" - echo "en CP850" - echo "en_AU CP850" # not CP437 ?? - echo "en_CA CP850" - echo "en_GB CP850" - echo "en_NZ CP437" - echo "en_US CP437" - echo "en_ZA CP850" # not CP437 ?? - echo "es CP850" - echo "es_AR CP850" - echo "es_BO CP850" - echo "es_CL CP850" - echo "es_CO CP850" - echo "es_CR CP850" - echo "es_CU CP850" - echo "es_DO CP850" - echo "es_EC CP850" - echo "es_ES CP850" - echo "es_GT CP850" - echo "es_HN CP850" - echo "es_MX CP850" - echo "es_NI CP850" - echo "es_PA CP850" - echo "es_PY CP850" - echo "es_PE CP850" - echo "es_SV CP850" - echo "es_UY CP850" - echo "es_VE CP850" - echo "et CP850" - echo "et_EE CP850" - echo "eu CP850" - echo "eu_ES CP850" - echo "fi CP850" - echo "fi_FI CP850" - echo "fr CP850" - echo "fr_BE CP850" - echo "fr_CA CP850" - echo "fr_CH CP850" - echo "fr_FR CP850" - echo "ga CP850" - echo "ga_IE CP850" - echo "gd CP850" - echo "gd_GB CP850" - echo "gl CP850" - echo "gl_ES CP850" - echo "id CP850" # not CP437 ?? - echo "id_ID CP850" # not CP437 ?? - echo "is CP861" # not CP850 ?? - echo "is_IS CP861" # not CP850 ?? - echo "it CP850" - echo "it_CH CP850" - echo "it_IT CP850" - echo "lt CP775" - echo "lt_LT CP775" - echo "lv CP775" - echo "lv_LV CP775" - echo "nb CP865" # not CP850 ?? - echo "nb_NO CP865" # not CP850 ?? - echo "nl CP850" - echo "nl_BE CP850" - echo "nl_NL CP850" - echo "nn CP865" # not CP850 ?? - echo "nn_NO CP865" # not CP850 ?? - echo "no CP865" # not CP850 ?? - echo "no_NO CP865" # not CP850 ?? - echo "pt CP850" - echo "pt_BR CP850" - echo "pt_PT CP850" - echo "sv CP850" - echo "sv_SE CP850" - # ISO-8859-2 languages - echo "cs CP852" - echo "cs_CZ CP852" - echo "hr CP852" - echo "hr_HR CP852" - echo "hu CP852" - echo "hu_HU CP852" - echo "pl CP852" - echo "pl_PL CP852" - echo "ro CP852" - echo "ro_RO CP852" - echo "sk CP852" - echo "sk_SK CP852" - echo "sl CP852" - echo "sl_SI CP852" - echo "sq CP852" - echo "sq_AL CP852" - echo "sr CP852" # CP852 or CP866 or CP855 ?? - echo "sr_CS CP852" # CP852 or CP866 or CP855 ?? - echo "sr_YU CP852" # CP852 or CP866 or CP855 ?? - # ISO-8859-3 languages - echo "mt CP850" - echo "mt_MT CP850" - # ISO-8859-5 languages - echo "be CP866" - echo "be_BE CP866" - echo "bg CP866" # not CP855 ?? - echo "bg_BG CP866" # not CP855 ?? - echo "mk CP866" # not CP855 ?? - echo "mk_MK CP866" # not CP855 ?? - echo "ru CP866" - echo "ru_RU CP866" - echo "uk CP1125" - echo "uk_UA CP1125" - # ISO-8859-6 languages - echo "ar CP864" - echo "ar_AE CP864" - echo "ar_DZ CP864" - echo "ar_EG CP864" - echo "ar_IQ CP864" - echo "ar_IR CP864" - echo "ar_JO CP864" - echo "ar_KW CP864" - echo "ar_MA CP864" - echo "ar_OM CP864" - echo "ar_QA CP864" - echo "ar_SA CP864" - echo "ar_SY CP864" - # ISO-8859-7 languages - echo "el CP869" - echo "el_GR CP869" - # ISO-8859-8 languages - echo "he CP862" - echo "he_IL CP862" - # ISO-8859-9 languages - echo "tr CP857" - echo "tr_TR CP857" - # Japanese - echo "ja CP932" - echo "ja_JP CP932" - # Chinese - echo "zh_CN GBK" - echo "zh_TW CP950" # not CP938 ?? - # Korean - echo "kr CP949" # not CP934 ?? - echo "kr_KR CP949" # not CP934 ?? - # Thai - echo "th CP874" - echo "th_TH CP874" - # Other - echo "eo CP850" - echo "eo_EO CP850" - ;; -esac diff --git a/lib/win32/glib-2.20.4/glib/libcharset/glibc21.m4 b/lib/win32/glib-2.20.4/glib/libcharset/glibc21.m4 deleted file mode 100644 index d95fd9861322c..0000000000000 --- a/lib/win32/glib-2.20.4/glib/libcharset/glibc21.m4 +++ /dev/null @@ -1,30 +0,0 @@ -# glibc21.m4 serial 3 -dnl Copyright (C) 2000-2002, 2004 Free Software Foundation, Inc. -dnl This file is free software; the Free Software Foundation -dnl gives unlimited permission to copy and/or distribute it, -dnl with or without modifications, as long as this notice is preserved. - -# Test for the GNU C Library, version 2.1 or newer. -# From Bruno Haible. - -AC_DEFUN([gl_GLIBC21], - [ - AC_CACHE_CHECK(whether we are using the GNU C Library 2.1 or newer, - ac_cv_gnu_library_2_1, - [AC_EGREP_CPP([Lucky GNU user], - [ -#include -#ifdef __GNU_LIBRARY__ - #if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1) || (__GLIBC__ > 2) - Lucky GNU user - #endif -#endif - ], - ac_cv_gnu_library_2_1=yes, - ac_cv_gnu_library_2_1=no) - ] - ) - AC_SUBST(GLIBC21) - GLIBC21="$ac_cv_gnu_library_2_1" - ] -) diff --git a/lib/win32/glib-2.20.4/glib/libcharset/libcharset-glib.patch b/lib/win32/glib-2.20.4/glib/libcharset/libcharset-glib.patch deleted file mode 100644 index 358d774cf3869..0000000000000 --- a/lib/win32/glib-2.20.4/glib/libcharset/libcharset-glib.patch +++ /dev/null @@ -1,77 +0,0 @@ -# Patch against libcharset version 1.4 ---- libiconv-1.12/libcharset//lib/localcharset.c 2006-10-18 07:55:49.000000000 -0400 -+++ localcharset.c 2008-05-20 18:36:24.000000000 -0400 -@@ -103,8 +103,8 @@ - static const char * volatile charset_aliases; - - /* Return a pointer to the contents of the charset.alias file. */ --static const char * --get_charset_aliases (void) -+const char * -+_g_locale_get_charset_aliases (void) - { - const char *cp; - -@@ -280,14 +280,10 @@ - If the canonical name cannot be determined, the result is a non-canonical - name. */ - --#ifdef STATIC --STATIC --#endif - const char * --locale_charset (void) -+_g_locale_charset_raw (void) - { - const char *codeset; -- const char *aliases; - - #if !(defined WIN32_NATIVE || defined OS2) - -@@ -436,12 +432,20 @@ - - #endif - -+ return codeset; -+} -+ -+const char * -+_g_locale_charset_unalias (const char *codeset) -+{ -+ const char *aliases; -+ - if (codeset == NULL) - /* The canonical name cannot be determined. */ - codeset = ""; - - /* Resolve alias. */ -- for (aliases = get_charset_aliases (); -+ for (aliases = _g_locale_get_charset_aliases (); - *aliases != '\0'; - aliases += strlen (aliases) + 1, aliases += strlen (aliases) + 1) - if (strcmp (codeset, aliases) == 0 ---- libiconv-1.12/libcharset//include/libcharset.h.in 2005-05-19 13:14:56.000000000 -0400 -+++ libcharset.h 2008-05-20 18:39:44.000000000 -0400 -@@ -19,7 +19,7 @@ - #ifndef _LIBCHARSET_H - #define _LIBCHARSET_H - --#include -+#include "localcharset.h" - - - #ifdef __cplusplus ---- libiconv-1.12/libcharset//include/localcharset.h.in 2005-05-19 13:14:57.000000000 -0400 -+++ localcharset.h 2008-05-20 18:36:24.000000000 -0400 -@@ -31,8 +31,9 @@ - The result must not be freed; it is statically allocated. - If the canonical name cannot be determined, the result is a non-canonical - name. */ --extern const char * locale_charset (void); -- -+extern const char * _g_locale_charset_raw (void); -+extern const char * _g_locale_charset_unalias (const char *codeset); -+extern const char * _g_locale_get_charset_aliases (void); - - #ifdef __cplusplus - } diff --git a/lib/win32/glib-2.20.4/glib/libcharset/libcharset.h b/lib/win32/glib-2.20.4/glib/libcharset/libcharset.h deleted file mode 100644 index 686241e742c33..0000000000000 --- a/lib/win32/glib-2.20.4/glib/libcharset/libcharset.h +++ /dev/null @@ -1,46 +0,0 @@ -/* Copyright (C) 2003 Free Software Foundation, Inc. - This file is part of the GNU CHARSET Library. - - The GNU CHARSET Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Library General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - - The GNU CHARSET Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Library General Public License for more details. - - You should have received a copy of the GNU Library General Public License - along with the GNU CHARSET Library; see the file COPYING.LIB. If not, - write to the Free Software Foundation, Inc., 51 Franklin Street, - Fifth Floor, Boston, MA 02110-1301, USA. */ - -#ifndef _LIBCHARSET_H -#define _LIBCHARSET_H - -#include "localcharset.h" - - -#ifdef __cplusplus -extern "C" { -#endif - - -/* Support for relocatable packages. */ - -/* Sets the original and the current installation prefix of the package. - Relocation simply replaces a pathname starting with the original prefix - by the corresponding pathname with the current prefix instead. Both - prefixes should be directory names without trailing slash (i.e. use "" - instead of "/"). */ -extern void libcharset_set_relocation_prefix (const char *orig_prefix, - const char *curr_prefix); - - -#ifdef __cplusplus -} -#endif - - -#endif /* _LIBCHARSET_H */ diff --git a/lib/win32/glib-2.20.4/glib/libcharset/localcharset.c b/lib/win32/glib-2.20.4/glib/libcharset/localcharset.c deleted file mode 100644 index 0d001f94c1642..0000000000000 --- a/lib/win32/glib-2.20.4/glib/libcharset/localcharset.c +++ /dev/null @@ -1,465 +0,0 @@ -/* Determine a canonical name for the current locale's character encoding. - - Copyright (C) 2000-2006 Free Software Foundation, Inc. - - This program is free software; you can redistribute it and/or modify it - under the terms of the GNU Library General Public License as published - by the Free Software Foundation; either version 2, or (at your option) - any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Library General Public License for more details. - - You should have received a copy of the GNU Library General Public - License along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, - USA. */ - -/* Written by Bruno Haible . */ - -#include "config.h" - -/* Specification. */ -#include "localcharset.h" - -#include -#include -#include -#include - -#if defined _WIN32 || defined __WIN32__ -# define WIN32_NATIVE -#endif - -#if defined __EMX__ -/* Assume EMX program runs on OS/2, even if compiled under DOS. */ -# define OS2 -#endif - -#if !defined WIN32_NATIVE -# if HAVE_LANGINFO_CODESET -# include -# else -# if 0 /* see comment below */ -# include -# endif -# endif -# ifdef __CYGWIN__ -# define WIN32_LEAN_AND_MEAN -# include -# endif -#elif defined WIN32_NATIVE -# define WIN32_LEAN_AND_MEAN -# include -#endif -#if defined OS2 -# define INCL_DOS -# include -#endif - -#if ENABLE_RELOCATABLE -# include "relocatable.h" -#else -# define relocate(pathname) (pathname) -#endif - -/* Get LIBDIR. */ -#ifndef LIBDIR -# include "configmake.h" -#endif - -#if defined _WIN32 || defined __WIN32__ || defined __CYGWIN__ || defined __EMX__ || defined __DJGPP__ - /* Win32, Cygwin, OS/2, DOS */ -# define ISSLASH(C) ((C) == '/' || (C) == '\\') -#endif - -#ifndef DIRECTORY_SEPARATOR -# define DIRECTORY_SEPARATOR '/' -#endif - -#ifndef ISSLASH -# define ISSLASH(C) ((C) == DIRECTORY_SEPARATOR) -#endif - -#if HAVE_DECL_GETC_UNLOCKED -# undef getc -# define getc getc_unlocked -#endif - -/* The following static variable is declared 'volatile' to avoid a - possible multithread problem in the function get_charset_aliases. If we - are running in a threaded environment, and if two threads initialize - 'charset_aliases' simultaneously, both will produce the same value, - and everything will be ok if the two assignments to 'charset_aliases' - are atomic. But I don't know what will happen if the two assignments mix. */ -#if __STDC__ != 1 -# define volatile /* empty */ -#endif -/* Pointer to the contents of the charset.alias file, if it has already been - read, else NULL. Its format is: - ALIAS_1 '\0' CANONICAL_1 '\0' ... ALIAS_n '\0' CANONICAL_n '\0' '\0' */ -static const char * volatile charset_aliases; - -/* Return a pointer to the contents of the charset.alias file. */ -const char * -_g_locale_get_charset_aliases (void) -{ - const char *cp; - - cp = charset_aliases; - if (cp == NULL) - { -#if !(defined VMS || defined WIN32_NATIVE || defined __CYGWIN__) - FILE *fp; - const char *dir; - const char *base = "charset.alias"; - char *file_name; - - /* Make it possible to override the charset.alias location. This is - necessary for running the testsuite before "make install". */ - dir = getenv ("CHARSETALIASDIR"); - if (dir == NULL || dir[0] == '\0') - dir = relocate (LIBDIR); - - /* Concatenate dir and base into freshly allocated file_name. */ - { - size_t dir_len = strlen (dir); - size_t base_len = strlen (base); - int add_slash = (dir_len > 0 && !ISSLASH (dir[dir_len - 1])); - file_name = (char *) malloc (dir_len + add_slash + base_len + 1); - if (file_name != NULL) - { - memcpy (file_name, dir, dir_len); - if (add_slash) - file_name[dir_len] = DIRECTORY_SEPARATOR; - memcpy (file_name + dir_len + add_slash, base, base_len + 1); - } - } - - if (file_name == NULL || (fp = fopen (file_name, "r")) == NULL) - /* Out of memory or file not found, treat it as empty. */ - cp = ""; - else - { - /* Parse the file's contents. */ - char *res_ptr = NULL; - size_t res_size = 0; - - for (;;) - { - int c; - char buf1[50+1]; - char buf2[50+1]; - size_t l1, l2; - char *old_res_ptr; - - c = getc (fp); - if (c == EOF) - break; - if (c == '\n' || c == ' ' || c == '\t') - continue; - if (c == '#') - { - /* Skip comment, to end of line. */ - do - c = getc (fp); - while (!(c == EOF || c == '\n')); - if (c == EOF) - break; - continue; - } - ungetc (c, fp); - if (fscanf (fp, "%50s %50s", buf1, buf2) < 2) - break; - l1 = strlen (buf1); - l2 = strlen (buf2); - old_res_ptr = res_ptr; - if (res_size == 0) - { - res_size = l1 + 1 + l2 + 1; - res_ptr = (char *) malloc (res_size + 1); - } - else - { - res_size += l1 + 1 + l2 + 1; - res_ptr = (char *) realloc (res_ptr, res_size + 1); - } - if (res_ptr == NULL) - { - /* Out of memory. */ - res_size = 0; - if (old_res_ptr != NULL) - free (old_res_ptr); - break; - } - strcpy (res_ptr + res_size - (l2 + 1) - (l1 + 1), buf1); - strcpy (res_ptr + res_size - (l2 + 1), buf2); - } - fclose (fp); - if (res_size == 0) - cp = ""; - else - { - *(res_ptr + res_size) = '\0'; - cp = res_ptr; - } - } - - if (file_name != NULL) - free (file_name); - -#else - -# if defined VMS - /* To avoid the troubles of an extra file charset.alias_vms in the - sources of many GNU packages, simply inline the aliases here. */ - /* The list of encodings is taken from the OpenVMS 7.3-1 documentation - "Compaq C Run-Time Library Reference Manual for OpenVMS systems" - section 10.7 "Handling Different Character Sets". */ - cp = "ISO8859-1" "\0" "ISO-8859-1" "\0" - "ISO8859-2" "\0" "ISO-8859-2" "\0" - "ISO8859-5" "\0" "ISO-8859-5" "\0" - "ISO8859-7" "\0" "ISO-8859-7" "\0" - "ISO8859-8" "\0" "ISO-8859-8" "\0" - "ISO8859-9" "\0" "ISO-8859-9" "\0" - /* Japanese */ - "eucJP" "\0" "EUC-JP" "\0" - "SJIS" "\0" "SHIFT_JIS" "\0" - "DECKANJI" "\0" "DEC-KANJI" "\0" - "SDECKANJI" "\0" "EUC-JP" "\0" - /* Chinese */ - "eucTW" "\0" "EUC-TW" "\0" - "DECHANYU" "\0" "DEC-HANYU" "\0" - "DECHANZI" "\0" "GB2312" "\0" - /* Korean */ - "DECKOREAN" "\0" "EUC-KR" "\0"; -# endif - -# if defined WIN32_NATIVE || defined __CYGWIN__ - /* To avoid the troubles of installing a separate file in the same - directory as the DLL and of retrieving the DLL's directory at - runtime, simply inline the aliases here. */ - - cp = "CP936" "\0" "GBK" "\0" - "CP1361" "\0" "JOHAB" "\0" - "CP20127" "\0" "ASCII" "\0" - "CP20866" "\0" "KOI8-R" "\0" - "CP20936" "\0" "GB2312" "\0" - "CP21866" "\0" "KOI8-RU" "\0" - "CP28591" "\0" "ISO-8859-1" "\0" - "CP28592" "\0" "ISO-8859-2" "\0" - "CP28593" "\0" "ISO-8859-3" "\0" - "CP28594" "\0" "ISO-8859-4" "\0" - "CP28595" "\0" "ISO-8859-5" "\0" - "CP28596" "\0" "ISO-8859-6" "\0" - "CP28597" "\0" "ISO-8859-7" "\0" - "CP28598" "\0" "ISO-8859-8" "\0" - "CP28599" "\0" "ISO-8859-9" "\0" - "CP28605" "\0" "ISO-8859-15" "\0" - "CP38598" "\0" "ISO-8859-8" "\0" - "CP51932" "\0" "EUC-JP" "\0" - "CP51936" "\0" "GB2312" "\0" - "CP51949" "\0" "EUC-KR" "\0" - "CP51950" "\0" "EUC-TW" "\0" - "CP54936" "\0" "GB18030" "\0" - "CP65001" "\0" "UTF-8" "\0"; -# endif -#endif - - charset_aliases = cp; - } - - return cp; -} - -/* Determine the current locale's character encoding, and canonicalize it - into one of the canonical names listed in config.charset. - The result must not be freed; it is statically allocated. - If the canonical name cannot be determined, the result is a non-canonical - name. */ - -const char * -_g_locale_charset_raw (void) -{ - const char *codeset; - -#if !(defined WIN32_NATIVE || defined OS2) - -# if HAVE_LANGINFO_CODESET - - /* Most systems support nl_langinfo (CODESET) nowadays. */ - codeset = nl_langinfo (CODESET); - -# ifdef __CYGWIN__ - /* Cygwin 2006 does not have locales. nl_langinfo (CODESET) always - returns "US-ASCII". As long as this is not fixed, return the suffix - of the locale name from the environment variables (if present) or - the codepage as a number. */ - if (codeset != NULL && strcmp (codeset, "US-ASCII") == 0) - { - const char *locale; - static char buf[2 + 10 + 1]; - - locale = getenv ("LC_ALL"); - if (locale == NULL || locale[0] == '\0') - { - locale = getenv ("LC_CTYPE"); - if (locale == NULL || locale[0] == '\0') - locale = getenv ("LANG"); - } - if (locale != NULL && locale[0] != '\0') - { - /* If the locale name contains an encoding after the dot, return - it. */ - const char *dot = strchr (locale, '.'); - - if (dot != NULL) - { - const char *modifier; - - dot++; - /* Look for the possible @... trailer and remove it, if any. */ - modifier = strchr (dot, '@'); - if (modifier == NULL) - return dot; - if (modifier - dot < sizeof (buf)) - { - memcpy (buf, dot, modifier - dot); - buf [modifier - dot] = '\0'; - return buf; - } - } - } - - /* Woe32 has a function returning the locale's codepage as a number. */ - sprintf (buf, "CP%u", GetACP ()); - codeset = buf; - } -# endif - -# else - - /* On old systems which lack it, use setlocale or getenv. */ - const char *locale = NULL; - - /* But most old systems don't have a complete set of locales. Some - (like SunOS 4 or DJGPP) have only the C locale. Therefore we don't - use setlocale here; it would return "C" when it doesn't support the - locale name the user has set. */ -# if 0 - locale = setlocale (LC_CTYPE, NULL); -# endif - if (locale == NULL || locale[0] == '\0') - { - locale = getenv ("LC_ALL"); - if (locale == NULL || locale[0] == '\0') - { - locale = getenv ("LC_CTYPE"); - if (locale == NULL || locale[0] == '\0') - locale = getenv ("LANG"); - } - } - - /* On some old systems, one used to set locale = "iso8859_1". On others, - you set it to "language_COUNTRY.charset". In any case, we resolve it - through the charset.alias file. */ - codeset = locale; - -# endif - -#elif defined WIN32_NATIVE - - static char buf[2 + 10 + 1]; - - /* Woe32 has a function returning the locale's codepage as a number. */ - sprintf (buf, "CP%u", GetACP ()); - codeset = buf; - -#elif defined OS2 - - const char *locale; - static char buf[2 + 10 + 1]; - ULONG cp[3]; - ULONG cplen; - - /* Allow user to override the codeset, as set in the operating system, - with standard language environment variables. */ - locale = getenv ("LC_ALL"); - if (locale == NULL || locale[0] == '\0') - { - locale = getenv ("LC_CTYPE"); - if (locale == NULL || locale[0] == '\0') - locale = getenv ("LANG"); - } - if (locale != NULL && locale[0] != '\0') - { - /* If the locale name contains an encoding after the dot, return it. */ - const char *dot = strchr (locale, '.'); - - if (dot != NULL) - { - const char *modifier; - - dot++; - /* Look for the possible @... trailer and remove it, if any. */ - modifier = strchr (dot, '@'); - if (modifier == NULL) - return dot; - if (modifier - dot < sizeof (buf)) - { - memcpy (buf, dot, modifier - dot); - buf [modifier - dot] = '\0'; - return buf; - } - } - - /* Resolve through the charset.alias file. */ - codeset = locale; - } - else - { - /* OS/2 has a function returning the locale's codepage as a number. */ - if (DosQueryCp (sizeof (cp), cp, &cplen)) - codeset = ""; - else - { - sprintf (buf, "CP%u", cp[0]); - codeset = buf; - } - } - -#endif - - return codeset; -} - -const char * -_g_locale_charset_unalias (const char *codeset) -{ - const char *aliases; - - if (codeset == NULL) - /* The canonical name cannot be determined. */ - codeset = ""; - - /* Resolve alias. */ - for (aliases = _g_locale_get_charset_aliases (); - *aliases != '\0'; - aliases += strlen (aliases) + 1, aliases += strlen (aliases) + 1) - if (strcmp (codeset, aliases) == 0 - || (aliases[0] == '*' && aliases[1] == '\0')) - { - codeset = aliases + strlen (aliases) + 1; - break; - } - - /* Don't return an empty string. GNU libc and GNU libiconv interpret - the empty string as denoting "the locale's character encoding", - thus GNU libiconv would call this function a second time. */ - if (codeset[0] == '\0') - codeset = "ASCII"; - - return codeset; -} diff --git a/lib/win32/glib-2.20.4/glib/libcharset/localcharset.h b/lib/win32/glib-2.20.4/glib/libcharset/localcharset.h deleted file mode 100644 index 674aa3ab7261f..0000000000000 --- a/lib/win32/glib-2.20.4/glib/libcharset/localcharset.h +++ /dev/null @@ -1,43 +0,0 @@ -/* Determine a canonical name for the current locale's character encoding. - Copyright (C) 2000-2003 Free Software Foundation, Inc. - This file is part of the GNU CHARSET Library. - - This program is free software; you can redistribute it and/or modify it - under the terms of the GNU Library General Public License as published - by the Free Software Foundation; either version 2, or (at your option) - any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Library General Public License for more details. - - You should have received a copy of the GNU Library General Public - License along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, - USA. */ - -#ifndef _LOCALCHARSET_H -#define _LOCALCHARSET_H - - -#ifdef __cplusplus -extern "C" { -#endif - - -/* Determine the current locale's character encoding, and canonicalize it - into one of the canonical names listed in config.charset. - The result must not be freed; it is statically allocated. - If the canonical name cannot be determined, the result is a non-canonical - name. */ -extern const char * _g_locale_charset_raw (void); -extern const char * _g_locale_charset_unalias (const char *codeset); -extern const char * _g_locale_get_charset_aliases (void); - -#ifdef __cplusplus -} -#endif - - -#endif /* _LOCALCHARSET_H */ diff --git a/lib/win32/glib-2.20.4/glib/libcharset/make-patch.sh b/lib/win32/glib-2.20.4/glib/libcharset/make-patch.sh deleted file mode 100644 index e60014abdbe12..0000000000000 --- a/lib/win32/glib-2.20.4/glib/libcharset/make-patch.sh +++ /dev/null @@ -1,28 +0,0 @@ -#!/bin/sh - -if test $# = 1 ; then - ORIGINAL=$1 -else - echo "Usage: make-patch.sh /path/to/libcharset" 1>&2 - exit 1 -fi - -if test -f $ORIGINAL/lib/localcharset.c ; then : ; else - echo "Usage: make-patch.sh /path/to/libcharset" 1>&2 - exit 1 -fi - -VERSION=`grep VERSION= $ORIGINAL/configure.ac | sed s/VERSION=//` - -echo "# Patch against libcharset version $VERSION" > libcharset-glib.patch - -for i in localcharset.c ref-add.sin ref-del.sin ; do - diff -u $ORIGINAL/lib/$i $i >> libcharset-glib.patch -done - -for i in glibc21.m4 codeset.m4 ; do - diff -u $ORIGINAL/m4/$i $i >> libcharset-glib.patch -done - -diff -u $ORIGINAL/include/libcharset.h.in libcharset.h >> libcharset-glib.patch -diff -u $ORIGINAL/include/localcharset.h.in localcharset.h >> libcharset-glib.patch diff --git a/lib/win32/glib-2.20.4/glib/libcharset/ref-add.sin b/lib/win32/glib-2.20.4/glib/libcharset/ref-add.sin deleted file mode 100644 index 0e2b97b05afcc..0000000000000 --- a/lib/win32/glib-2.20.4/glib/libcharset/ref-add.sin +++ /dev/null @@ -1,31 +0,0 @@ -# Add this package to a list of references stored in a text file. -# -# Copyright (C) 2000 Free Software Foundation, Inc. -# -# This program is free software; you can redistribute it and/or modify it -# under the terms of the GNU Library General Public License as published -# by the Free Software Foundation; either version 2, or (at your option) -# any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Library General Public License for more details. -# -# You should have received a copy of the GNU Library General Public -# License along with this program; if not, write to the Free Software -# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, -# USA. -# -# Written by Bruno Haible . -# -/^# Packages using this file: / { - s/# Packages using this file:// - ta - :a - s/ @PACKAGE@ / @PACKAGE@ / - tb - s/ $/ @PACKAGE@ / - :b - s/^/# Packages using this file:/ -} diff --git a/lib/win32/glib-2.20.4/glib/libcharset/ref-del.sin b/lib/win32/glib-2.20.4/glib/libcharset/ref-del.sin deleted file mode 100644 index 1fafbfc02de03..0000000000000 --- a/lib/win32/glib-2.20.4/glib/libcharset/ref-del.sin +++ /dev/null @@ -1,26 +0,0 @@ -# Remove this package from a list of references stored in a text file. -# -# Copyright (C) 2000 Free Software Foundation, Inc. -# -# This program is free software; you can redistribute it and/or modify it -# under the terms of the GNU Library General Public License as published -# by the Free Software Foundation; either version 2, or (at your option) -# any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Library General Public License for more details. -# -# You should have received a copy of the GNU Library General Public -# License along with this program; if not, write to the Free Software -# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, -# USA. -# -# Written by Bruno Haible . -# -/^# Packages using this file: / { - s/# Packages using this file:// - s/ @PACKAGE@ / / - s/^/# Packages using this file:/ -} diff --git a/lib/win32/glib-2.20.4/glib/libcharset/update.sh b/lib/win32/glib-2.20.4/glib/libcharset/update.sh deleted file mode 100644 index 5873fc7681779..0000000000000 --- a/lib/win32/glib-2.20.4/glib/libcharset/update.sh +++ /dev/null @@ -1,33 +0,0 @@ -#!/bin/sh - -if test $# = 1 ; then - ORIGINAL=$1 -else - echo "Usage: update.sh /path/to/libcharset" 1>&2 - exit 1 -fi - -if test -f $ORIGINAL/lib/localcharset.c ; then : ; else - echo "Usage: update.sh /path/to/libcharset" 1>&2 - exit 1 -fi - -VERSION=`grep VERSION= $ORIGINAL/configure.ac | sed s/VERSION=//` - -for i in localcharset.c ref-add.sin ref-del.sin config.charset ; do - cp $ORIGINAL/lib/$i . -done - -for i in libcharset.h localcharset.h ; do - cp $ORIGINAL/include/$i.in ./$i -done - -for i in codeset.m4 glibc21.m4 ; do - cp $ORIGINAL/m4/$i . -done - -patch -p0 < libcharset-glib.patch - -echo "dnl From libcharset $VERSION" > ../../aclibcharset.m4 - - diff --git a/lib/win32/glib-2.20.4/glib/makefile.msc b/lib/win32/glib-2.20.4/glib/makefile.msc deleted file mode 100644 index f355d9325c2bf..0000000000000 --- a/lib/win32/glib-2.20.4/glib/makefile.msc +++ /dev/null @@ -1,141 +0,0 @@ -## Makefile for building the GLib dlls with Microsoft C -## Use: nmake -f makefile.msc - -TOP = ..\.. - -!INCLUDE ..\build\win32\make.msc - -################################################################ - -INCLUDES = -FImsvc_recommended_pragmas.h -I . -I .. -DEFINES = -DHAVE_CONFIG_H -DGLIB_COMPILATION -DG_LOG_DOMAIN=\"GLib\" -DG_ENABLE_DEBUG -DPCRE_STATIC -DEPCFLAGS = -Zm400 $(INTL_CFLAGS) $(DIRENT_CFLAGS) - -all : \ - ..\config.h \ - ..\glibconfig.h \ - galias.h \ - galiasdef.c \ - gnulib\gnulib.lib \ - pcre\pcre.lib \ - libglib-2.0-0.dll \ - glib-2.20s.lib \ - gspawn-win32-helper.exe \ - - -gnulib\gnulib.lib : - cd gnulib - nmake -f makefile.msc - cd .. - -pcre\pcre.lib : - cd pcre - nmake -f makefile.msc - cd .. - -glib_OBJECTS = \ - garray.obj \ - gasyncqueue.obj \ - gatomic.obj \ - gbacktrace.obj \ - gbase64.obj \ - gbookmarkfile.obj \ - gcache.obj \ - gchecksum.obj \ - gcompletion.obj \ - gconvert.obj \ - gdataset.obj \ - gdate.obj \ - gdir.obj \ - gerror.obj \ - gfileutils.obj \ - ghash.obj \ - ghook.obj \ - giochannel.obj \ - giowin32.obj \ - gkeyfile.obj \ - glist.obj \ - gmain.obj \ - gmappedfile.obj \ - gmarkup.obj \ - gmem.obj \ - gmessages.obj \ - gnode.obj \ - goption.obj \ - gpattern.obj \ - gprimes.obj \ - gprintf.obj \ - gqsort.obj \ - gqueue.obj \ - grand.obj \ - gregex.obj \ - grel.obj \ - gscanner.obj \ - gsequence.obj \ - gshell.obj \ - gslice.obj \ - gslist.obj \ - gspawn-win32.obj \ - gstdio.obj \ - gstrfuncs.obj \ - gstring.obj \ - gtestutils.obj \ - gthread.obj \ - gthreadpool.obj \ - gtimer.obj \ - gtree.obj \ - gunibreak.obj \ - gunicollate.obj \ - gunidecomp.obj \ - guniprop.obj \ - gurifuncs.obj \ - gutf8.obj \ - gutils.obj \ - gwin32.obj \ - localcharset.obj - -..\glibconfig.h: ..\glibconfig.h.win32 - copy ..\glibconfig.h.win32 ..\glibconfig.h - -..\config.h: ..\config.h.win32 - copy ..\config.h.win32 ..\config.h - -galias.h: glib.symbols - perl makegalias.pl < glib.symbols > galias.h - -galiasdef.c: glib.symbols - perl makegalias.pl -def < glib.symbols > galiasdef.c - -localcharset.c : libcharset/localcharset.c - copy libcharset\localcharset.c localcharset.c - -glib.def: glib.symbols - echo EXPORTS > glib.def - cl /EP -DINCLUDE_VARIABLES -DG_OS_WIN32 -DINCLUDE_INTERNAL_SYMBOLS -DALL_FILES \ - -DG_GNUC_MALLOC= -DG_GNUC_CONST= -DG_GNUC_NULL_TERMINATED= -DG_GNUC_NORETURN= \ - -DG_GNUC_PRINTF=;G_GNUC_PRINTF glib.symbols >> glib.def - -glib.res : glib.rc - rc -DBUILDNUMBER=0 -r -fo glib.res glib.rc - -################ glib - -# create a static libary -# static library can well have the real version number in the name -glib-2.20s.lib : $(glib_OBJECTS) gnulib\gnulib.lib pcre\pcre.lib - lib /out:glib-2.20s.lib $(glib_OBJECTS) gnulib\gnulib.lib pcre\pcre.lib - -libglib-2.0-0.dll : $(glib_OBJECTS) gnulib\gnulib.lib pcre\pcre.lib glib.def glib.res - $(CC) $(CFLAGS) -LD -Fe$@ $(glib_OBJECTS) glib.res $(INTL_LIBS) \ - gnulib\gnulib.lib pcre\pcre.lib $(DIRENT_LIBS) user32.lib advapi32.lib shell32.lib wsock32.lib ole32.lib ws2_32.lib \ - $(LDFLAGS) /implib:glib-2.0.lib /def:glib.def - -gspawn-win32-helper.exe : gspawn-win32-helper.c libglib-2.0-0.dll - $(CC) $(CFLAGS) -Fe$@ -DG_LOG_DOMAIN=\"gspawn-win32-helper\" gspawn-win32-helper.c glib-2.0.lib $(LDFLAGS) /subsystem:windows user32.lib - -################ other stuff - -clean:: - del ..\config.h - del ..\glibconfig.h - diff --git a/lib/win32/glib-2.20.4/glib/makefile.msc.in b/lib/win32/glib-2.20.4/glib/makefile.msc.in deleted file mode 100644 index ebaeff30862e0..0000000000000 --- a/lib/win32/glib-2.20.4/glib/makefile.msc.in +++ /dev/null @@ -1,141 +0,0 @@ -## Makefile for building the GLib dlls with Microsoft C -## Use: nmake -f makefile.msc - -TOP = ..\.. - -!INCLUDE ..\build\win32\make.msc - -################################################################ - -INCLUDES = -FImsvc_recommended_pragmas.h -I . -I .. -DEFINES = -DHAVE_CONFIG_H -DGLIB_COMPILATION -DG_LOG_DOMAIN=\"GLib\" -DG_ENABLE_DEBUG -DPCRE_STATIC -DEPCFLAGS = -Zm400 $(INTL_CFLAGS) $(DIRENT_CFLAGS) - -all : \ - ..\config.h \ - ..\glibconfig.h \ - galias.h \ - galiasdef.c \ - gnulib\gnulib.lib \ - pcre\pcre.lib \ - libglib-2.0-0.dll \ - glib-@GLIB_MAJOR_VERSION@.@GLIB_MINOR_VERSION@s.lib \ - gspawn-win32-helper.exe \ - - -gnulib\gnulib.lib : - cd gnulib - nmake -f makefile.msc - cd .. - -pcre\pcre.lib : - cd pcre - nmake -f makefile.msc - cd .. - -glib_OBJECTS = \ - garray.obj \ - gasyncqueue.obj \ - gatomic.obj \ - gbacktrace.obj \ - gbase64.obj \ - gbookmarkfile.obj \ - gcache.obj \ - gchecksum.obj \ - gcompletion.obj \ - gconvert.obj \ - gdataset.obj \ - gdate.obj \ - gdir.obj \ - gerror.obj \ - gfileutils.obj \ - ghash.obj \ - ghook.obj \ - giochannel.obj \ - giowin32.obj \ - gkeyfile.obj \ - glist.obj \ - gmain.obj \ - gmappedfile.obj \ - gmarkup.obj \ - gmem.obj \ - gmessages.obj \ - gnode.obj \ - goption.obj \ - gpattern.obj \ - gprimes.obj \ - gprintf.obj \ - gqsort.obj \ - gqueue.obj \ - grand.obj \ - gregex.obj \ - grel.obj \ - gscanner.obj \ - gsequence.obj \ - gshell.obj \ - gslice.obj \ - gslist.obj \ - gspawn-win32.obj \ - gstdio.obj \ - gstrfuncs.obj \ - gstring.obj \ - gtestutils.obj \ - gthread.obj \ - gthreadpool.obj \ - gtimer.obj \ - gtree.obj \ - gunibreak.obj \ - gunicollate.obj \ - gunidecomp.obj \ - guniprop.obj \ - gurifuncs.obj \ - gutf8.obj \ - gutils.obj \ - gwin32.obj \ - localcharset.obj - -..\glibconfig.h: ..\glibconfig.h.win32 - copy ..\glibconfig.h.win32 ..\glibconfig.h - -..\config.h: ..\config.h.win32 - copy ..\config.h.win32 ..\config.h - -galias.h: glib.symbols - perl makegalias.pl < glib.symbols > galias.h - -galiasdef.c: glib.symbols - perl makegalias.pl -def < glib.symbols > galiasdef.c - -localcharset.c : libcharset/localcharset.c - copy libcharset\localcharset.c localcharset.c - -glib.def: glib.symbols - echo EXPORTS > glib.def - cl /EP -DINCLUDE_VARIABLES -DG_OS_WIN32 -DINCLUDE_INTERNAL_SYMBOLS -DALL_FILES \ - -DG_GNUC_MALLOC= -DG_GNUC_CONST= -DG_GNUC_NULL_TERMINATED= -DG_GNUC_NORETURN= \ - -DG_GNUC_PRINTF=;G_GNUC_PRINTF glib.symbols >> glib.def - -glib.res : glib.rc - rc -DBUILDNUMBER=0 -r -fo glib.res glib.rc - -################ glib - -# create a static libary -# static library can well have the real version number in the name -glib-@GLIB_MAJOR_VERSION@.@GLIB_MINOR_VERSION@s.lib : $(glib_OBJECTS) gnulib\gnulib.lib pcre\pcre.lib - lib /out:glib-@GLIB_MAJOR_VERSION@.@GLIB_MINOR_VERSION@s.lib $(glib_OBJECTS) gnulib\gnulib.lib pcre\pcre.lib - -libglib-2.0-0.dll : $(glib_OBJECTS) gnulib\gnulib.lib pcre\pcre.lib glib.def glib.res - $(CC) $(CFLAGS) -LD -Fe$@ $(glib_OBJECTS) glib.res $(INTL_LIBS) \ - gnulib\gnulib.lib pcre\pcre.lib $(DIRENT_LIBS) user32.lib advapi32.lib shell32.lib wsock32.lib ole32.lib ws2_32.lib \ - $(LDFLAGS) /implib:glib-2.0.lib /def:glib.def - -gspawn-win32-helper.exe : gspawn-win32-helper.c libglib-2.0-@LT_CURRENT_MINUS_AGE@.dll - $(CC) $(CFLAGS) -Fe$@ -DG_LOG_DOMAIN=\"gspawn-win32-helper\" gspawn-win32-helper.c glib-2.0.lib $(LDFLAGS) /subsystem:windows user32.lib - -################ other stuff - -clean:: - del ..\config.h - del ..\glibconfig.h - diff --git a/lib/win32/glib-2.20.4/glib/makegalias.pl b/lib/win32/glib-2.20.4/glib/makegalias.pl deleted file mode 100644 index 622026a91be37..0000000000000 --- a/lib/win32/glib-2.20.4/glib/makegalias.pl +++ /dev/null @@ -1,136 +0,0 @@ -#!/usr/bin/perl -w - -my $do_def = 0; - -if (($#ARGV >= 0) && ($ARGV[0] eq "-def")) { - shift; - $do_def = 1; -} - -print <) { - - # ignore empty lines - next if /^\s*$/; - - # skip comments - if ($_ =~ /^\s*\/\*/) - { - $in_comment = 1; - } - - if ($in_comment) - { - if ($_ =~ /\*\/\s$/) - { - $in_comment = 0; - } - - next; - } - - # handle ifdefs - if ($_ =~ /^\#endif/) - { - if (!$in_skipped_section) - { - print $_; - } - - $in_skipped_section = 0; - - next; - } - - if ($_ =~ /^\#ifdef\s+(INCLUDE_VARIABLES|INCLUDE_INTERNAL_SYMBOLS|ALL_FILES)/) - { - $in_skipped_section = 1; - } - - if ($in_skipped_section) - { - next; - } - - if ($_ =~ /^\#ifn?def\s+(G|DISABLE_MEM_POOLS|_WIN64)/) - { - print $_; - - next; - } - - if ($_ =~ /^\#if.*(G_STDIO_NO_WRAP_ON_UNIX|IN_FILE|IN_HEADER|IN_FILE)/) - { - print $_; - - next; - } - - chop; - my $str = $_; - my @words; - my $attributes = ""; - - @words = split(/ /, $str); - $str = shift(@words); - chomp($str); - my $alias = "IA__".$str; - - # Drop any Win32 specific .def file syntax, but keep attributes - foreach $word (@words) { - $attributes = "$attributes $word" unless $word eq "PRIVATE"; - } - - if (!$do_def) { - print </dev/null >/dev/null; then - echo "'readelf' not found; skipping test" - exit 0 -fi - -for so in .libs/lib*.so; do - echo Checking $so for local PLT entries - # g_string_insert_c is used in g_string_append_c_inline - # unaliased. Couldn't find a way to fix it. - # Same for g_once_init_enter - readelf -r $so | grep 'JU\?MP_SLOT\?' | \ - grep -v '\' | \ - grep -v '\' | \ - grep -v '\' | \ - grep -v '\ - * - * If $WINICONV_LIBICONV_DLL environment variable was defined, win_iconv - * loads the specified DLL dynamically and uses it. If loading the DLL - * or iconv_open() failed, falls back to internal conversion. - * $WINICONV_LIBICONV_DLL is a comma separated list. The first loadable - * DLL is used. The specified DLL should have iconv_open(), - * iconv_close() and iconv() functions. Or these functions can be - * libiconv_open(), libiconv_close() and libiconv(). - * - * Win32 API does not support strict encoding conversion for some - * codepage. And MLang function drop or replace invalid bytes and does - * not return useful error status as iconv. This implementation cannot - * be used for encoding validation purpose. - */ - -/* for WC_NO_BEST_FIT_CHARS */ -#ifndef WINVER -# define WINVER 0x0500 -#endif - -#define STRICT -#include -#include -#include -#include - -#if 0 -# define MAKE_EXE -# define MAKE_DLL -# define USE_LIBICONV_DLL -#endif - -#if !defined(DEFAULT_LIBICONV_DLL) -# define DEFAULT_LIBICONV_DLL "" -#endif - -#define MB_CHAR_MAX 16 - -#define UNICODE_MODE_BOM_DONE 1 -#define UNICODE_MODE_SWAPPED 2 - -#define FLAG_USE_BOM_ENDIAN 1 -#define FLAG_TRANSLIT 2 /* //TRANSLIT */ -#define FLAG_IGNORE 4 /* //IGNORE (not implemented) */ - -#define return_error(code) \ - do { \ - errno = code; \ - return -1; \ - } while (0) - -#define xstrlcpy(dst, src, size) \ - do { \ - strncpy(dst, src, size); \ - dst[size - 1] = 0; \ - } while (0) - -#define xstrlcpyn(dst, src, srclen, size) \ - xstrlcpy(dst, src, xmin((srclen) + 1, size)) - -#define xmin(a, b) ((a) < (b) ? (a) : (b)) -#define xmax(a, b) ((a) > (b) ? (a) : (b)) - -#define STATIC_STRLEN(arr) (sizeof(arr) - 1) - -typedef unsigned char uchar; -typedef unsigned short ushort; -typedef unsigned int uint; - -typedef void* iconv_t; - -iconv_t iconv_open(const char *tocode, const char *fromcode); -int iconv_close(iconv_t cd); -size_t iconv(iconv_t cd, const char **inbuf, size_t *inbytesleft, char **outbuf, size_t *outbytesleft); - -/* libiconv interface for vim */ -#if defined(MAKE_DLL) -int -iconvctl (iconv_t cd, int request, void* argument) -{ - /* not supported */ - return 0; -} -#endif - -typedef struct compat_t compat_t; -typedef struct csconv_t csconv_t; -typedef struct rec_iconv_t rec_iconv_t; - -typedef iconv_t (*f_iconv_open)(const char *tocode, const char *fromcode); -typedef int (*f_iconv_close)(iconv_t cd); -typedef size_t (*f_iconv)(iconv_t cd, const char **inbuf, size_t *inbytesleft, char **outbuf, size_t *outbytesleft); -typedef int* (*f_errno)(void); -typedef int (*f_mbtowc)(csconv_t *cv, const uchar *buf, int bufsize, ushort *wbuf, int *wbufsize); -typedef int (*f_wctomb)(csconv_t *cv, ushort *wbuf, int wbufsize, uchar *buf, int bufsize); -typedef int (*f_mblen)(csconv_t *cv, const uchar *buf, int bufsize); -typedef int (*f_flush)(csconv_t *cv, uchar *buf, int bufsize); - -#define COMPAT_IN 1 -#define COMPAT_OUT 2 - -/* unicode mapping for compatibility with other conversion table. */ -struct compat_t { - uint in; - uint out; - uint flag; -}; - -struct csconv_t { - int codepage; - int flags; - f_mbtowc mbtowc; - f_wctomb wctomb; - f_mblen mblen; - f_flush flush; - DWORD mode; - compat_t *compat; -}; - -struct rec_iconv_t { - iconv_t cd; - f_iconv_close iconv_close; - f_iconv iconv; - f_errno _errno; - csconv_t from; - csconv_t to; -#if defined(USE_LIBICONV_DLL) - HMODULE hlibiconv; -#endif -}; - -static int win_iconv_open(rec_iconv_t *cd, const char *tocode, const char *fromcode); -static int win_iconv_close(iconv_t cd); -static size_t win_iconv(iconv_t cd, const char **inbuf, size_t *inbytesleft, char **outbuf, size_t *outbytesleft); - -static int load_mlang(); -static csconv_t make_csconv(const char *name); -static int name_to_codepage(const char *name); -static uint utf16_to_ucs4(const ushort *wbuf); -static void ucs4_to_utf16(uint wc, ushort *wbuf, int *wbufsize); -static int is_unicode(int codepage); -static int mbtowc_flags(int codepage); -static int must_use_null_useddefaultchar(int codepage); -static void check_utf_bom(rec_iconv_t *cd, ushort *wbuf, int *wbufsize); -static char *strrstr(const char *str, const char *token); - -#if defined(USE_LIBICONV_DLL) -static int libiconv_iconv_open(rec_iconv_t *cd, const char *tocode, const char *fromcode); -static PVOID MyImageDirectoryEntryToData(LPVOID Base, BOOLEAN MappedAsImage, USHORT DirectoryEntry, PULONG Size); -static HMODULE find_imported_module_by_funcname(HMODULE hModule, const char *funcname); - -static HMODULE hwiniconv; -static HMODULE hlastdll; /* keep dll loaded for efficiency (unnecessary?) */ -#endif - -static int sbcs_mblen(csconv_t *cv, const uchar *buf, int bufsize); -static int dbcs_mblen(csconv_t *cv, const uchar *buf, int bufsize); -static int mbcs_mblen(csconv_t *cv, const uchar *buf, int bufsize); -static int utf8_mblen(csconv_t *cv, const uchar *buf, int bufsize); -static int eucjp_mblen(csconv_t *cv, const uchar *buf, int bufsize); - -static int kernel_mbtowc(csconv_t *cv, const uchar *buf, int bufsize, ushort *wbuf, int *wbufsize); -static int kernel_wctomb(csconv_t *cv, ushort *wbuf, int wbufsize, uchar *buf, int bufsize); -static int mlang_mbtowc(csconv_t *cv, const uchar *buf, int bufsize, ushort *wbuf, int *wbufsize); -static int mlang_wctomb(csconv_t *cv, ushort *wbuf, int wbufsize, uchar *buf, int bufsize); -static int utf16_mbtowc(csconv_t *cv, const uchar *buf, int bufsize, ushort *wbuf, int *wbufsize); -static int utf16_wctomb(csconv_t *cv, ushort *wbuf, int wbufsize, uchar *buf, int bufsize); -static int utf32_mbtowc(csconv_t *cv, const uchar *buf, int bufsize, ushort *wbuf, int *wbufsize); -static int utf32_wctomb(csconv_t *cv, ushort *wbuf, int wbufsize, uchar *buf, int bufsize); -static int iso2022jp_mbtowc(csconv_t *cv, const uchar *buf, int bufsize, ushort *wbuf, int *wbufsize); -static int iso2022jp_wctomb(csconv_t *cv, ushort *wbuf, int wbufsize, uchar *buf, int bufsize); -static int iso2022jp_flush(csconv_t *cv, uchar *buf, int bufsize); - -static struct { - int codepage; - const char *name; -} codepage_alias[] = { - {65001, "CP65001"}, - {65001, "UTF8"}, - {65001, "UTF-8"}, - - {1200, "CP1200"}, - {1200, "UTF16LE"}, - {1200, "UTF-16LE"}, - {1200, "UCS2LE"}, - {1200, "UCS-2LE"}, - - {1201, "CP1201"}, - {1201, "UTF16BE"}, - {1201, "UTF-16BE"}, - {1201, "UCS2BE"}, - {1201, "UCS-2BE"}, - {1201, "unicodeFFFE"}, - - {12000, "CP12000"}, - {12000, "UTF32LE"}, - {12000, "UTF-32LE"}, - {12000, "UCS4LE"}, - {12000, "UCS-4LE"}, - - {12001, "CP12001"}, - {12001, "UTF32BE"}, - {12001, "UTF-32BE"}, - {12001, "UCS4BE"}, - {12001, "UCS-4BE"}, - -#ifndef GLIB_COMPILATION - /* - * Default is big endian. - * See rfc2781 4.3 Interpreting text labelled as UTF-16. - */ - {1201, "UTF16"}, - {1201, "UTF-16"}, - {12001, "UTF32"}, - {12001, "UTF-32"}, - {12001, "UCS-4"}, - {12001, "UCS4"}, -#else - /* Default is little endian, because the platform is */ - {1200, "UTF16"}, - {1200, "UTF-16"}, - {1200, "UCS2"}, - {1200, "UCS-2"}, - {12000, "UTF32"}, - {12000, "UTF-32"}, - {12000, "UCS4"}, - {12000, "UCS-4"}, -#endif - - /* copy from libiconv `iconv -l` */ - /* !IsValidCodePage(367) */ - {20127, "ANSI_X3.4-1968"}, - {20127, "ANSI_X3.4-1986"}, - {20127, "ASCII"}, - {20127, "CP367"}, - {20127, "IBM367"}, - {20127, "ISO-IR-6"}, - {20127, "ISO646-US"}, - {20127, "ISO_646.IRV:1991"}, - {20127, "US"}, - {20127, "US-ASCII"}, - {20127, "CSASCII"}, - - /* !IsValidCodePage(819) */ - {1252, "CP819"}, - {1252, "IBM819"}, - {28591, "ISO-8859-1"}, - {28591, "ISO-IR-100"}, - {28591, "ISO8859-1"}, - {28591, "ISO_8859-1"}, - {28591, "ISO_8859-1:1987"}, - {28591, "L1"}, - {28591, "LATIN1"}, - {28591, "CSISOLATIN1"}, - - {1250, "CP1250"}, - {1250, "MS-EE"}, - {1250, "WINDOWS-1250"}, - - {1251, "CP1251"}, - {1251, "MS-CYRL"}, - {1251, "WINDOWS-1251"}, - - {1252, "CP1252"}, - {1252, "MS-ANSI"}, - {1252, "WINDOWS-1252"}, - - {1253, "CP1253"}, - {1253, "MS-GREEK"}, - {1253, "WINDOWS-1253"}, - - {1254, "CP1254"}, - {1254, "MS-TURK"}, - {1254, "WINDOWS-1254"}, - - {1255, "CP1255"}, - {1255, "MS-HEBR"}, - {1255, "WINDOWS-1255"}, - - {1256, "CP1256"}, - {1256, "MS-ARAB"}, - {1256, "WINDOWS-1256"}, - - {1257, "CP1257"}, - {1257, "WINBALTRIM"}, - {1257, "WINDOWS-1257"}, - - {1258, "CP1258"}, - {1258, "WINDOWS-1258"}, - - {850, "850"}, - {850, "CP850"}, - {850, "IBM850"}, - {850, "CSPC850MULTILINGUAL"}, - - /* !IsValidCodePage(862) */ - {862, "862"}, - {862, "CP862"}, - {862, "IBM862"}, - {862, "CSPC862LATINHEBREW"}, - - {866, "866"}, - {866, "CP866"}, - {866, "IBM866"}, - {866, "CSIBM866"}, - - /* !IsValidCodePage(154) */ - {154, "CP154"}, - {154, "CYRILLIC-ASIAN"}, - {154, "PT154"}, - {154, "PTCP154"}, - {154, "CSPTCP154"}, - - /* !IsValidCodePage(1133) */ - {1133, "CP1133"}, - {1133, "IBM-CP1133"}, - - {874, "CP874"}, - {874, "WINDOWS-874"}, - - /* !IsValidCodePage(51932) */ - {51932, "CP51932"}, - {51932, "MS51932"}, - {51932, "WINDOWS-51932"}, - {51932, "EUC-JP"}, - - {932, "CP932"}, - {932, "MS932"}, - {932, "SHIFFT_JIS"}, - {932, "SHIFFT_JIS-MS"}, - {932, "SJIS"}, - {932, "SJIS-MS"}, - {932, "SJIS-OPEN"}, - {932, "SJIS-WIN"}, - {932, "WINDOWS-31J"}, - {932, "WINDOWS-932"}, - {932, "CSWINDOWS31J"}, - - {50221, "CP50221"}, - {50221, "ISO-2022-JP"}, - {50221, "ISO-2022-JP-MS"}, - {50221, "ISO2022-JP"}, - {50221, "ISO2022-JP-MS"}, - {50221, "MS50221"}, - {50221, "WINDOWS-50221"}, - - {936, "CP936"}, - {936, "GBK"}, - {936, "MS936"}, - {936, "WINDOWS-936"}, - - {950, "CP950"}, - {950, "BIG5"}, - - {949, "CP949"}, - {949, "UHC"}, - {949, "EUC-KR"}, - - {1361, "CP1361"}, - {1361, "JOHAB"}, - - {437, "437"}, - {437, "CP437"}, - {437, "IBM437"}, - {437, "CSPC8CODEPAGE437"}, - - {737, "CP737"}, - - {775, "CP775"}, - {775, "IBM775"}, - {775, "CSPC775BALTIC"}, - - {852, "852"}, - {852, "CP852"}, - {852, "IBM852"}, - {852, "CSPCP852"}, - - /* !IsValidCodePage(853) */ - {853, "CP853"}, - - {855, "855"}, - {855, "CP855"}, - {855, "IBM855"}, - {855, "CSIBM855"}, - - {857, "857"}, - {857, "CP857"}, - {857, "IBM857"}, - {857, "CSIBM857"}, - - /* !IsValidCodePage(858) */ - {858, "CP858"}, - - {860, "860"}, - {860, "CP860"}, - {860, "IBM860"}, - {860, "CSIBM860"}, - - {861, "861"}, - {861, "CP-IS"}, - {861, "CP861"}, - {861, "IBM861"}, - {861, "CSIBM861"}, - - {863, "863"}, - {863, "CP863"}, - {863, "IBM863"}, - {863, "CSIBM863"}, - - {864, "CP864"}, - {864, "IBM864"}, - {864, "CSIBM864"}, - - {865, "865"}, - {865, "CP865"}, - {865, "IBM865"}, - {865, "CSIBM865"}, - - {869, "869"}, - {869, "CP-GR"}, - {869, "CP869"}, - {869, "IBM869"}, - {869, "CSIBM869"}, - - /* !IsValidCodePage(1152) */ - {1125, "CP1125"}, - - /* - * Code Page Identifiers - * http://msdn2.microsoft.com/en-us/library/ms776446.aspx - */ - {37, "IBM037"}, /* IBM EBCDIC US-Canada */ - {437, "IBM437"}, /* OEM United States */ - {500, "IBM500"}, /* IBM EBCDIC International */ - {708, "ASMO-708"}, /* Arabic (ASMO 708) */ - /* 709 Arabic (ASMO-449+, BCON V4) */ - /* 710 Arabic - Transparent Arabic */ - {720, "DOS-720"}, /* Arabic (Transparent ASMO); Arabic (DOS) */ - {737, "ibm737"}, /* OEM Greek (formerly 437G); Greek (DOS) */ - {775, "ibm775"}, /* OEM Baltic; Baltic (DOS) */ - {850, "ibm850"}, /* OEM Multilingual Latin 1; Western European (DOS) */ - {852, "ibm852"}, /* OEM Latin 2; Central European (DOS) */ - {855, "IBM855"}, /* OEM Cyrillic (primarily Russian) */ - {857, "ibm857"}, /* OEM Turkish; Turkish (DOS) */ - {858, "IBM00858"}, /* OEM Multilingual Latin 1 + Euro symbol */ - {860, "IBM860"}, /* OEM Portuguese; Portuguese (DOS) */ - {861, "ibm861"}, /* OEM Icelandic; Icelandic (DOS) */ - {862, "DOS-862"}, /* OEM Hebrew; Hebrew (DOS) */ - {863, "IBM863"}, /* OEM French Canadian; French Canadian (DOS) */ - {864, "IBM864"}, /* OEM Arabic; Arabic (864) */ - {865, "IBM865"}, /* OEM Nordic; Nordic (DOS) */ - {866, "cp866"}, /* OEM Russian; Cyrillic (DOS) */ - {869, "ibm869"}, /* OEM Modern Greek; Greek, Modern (DOS) */ - {870, "IBM870"}, /* IBM EBCDIC Multilingual/ROECE (Latin 2); IBM EBCDIC Multilingual Latin 2 */ - {874, "windows-874"}, /* ANSI/OEM Thai (same as 28605, ISO 8859-15); Thai (Windows) */ - {875, "cp875"}, /* IBM EBCDIC Greek Modern */ - {932, "shift_jis"}, /* ANSI/OEM Japanese; Japanese (Shift-JIS) */ - {932, "shift-jis"}, /* alternative name for it */ - {936, "gb2312"}, /* ANSI/OEM Simplified Chinese (PRC, Singapore); Chinese Simplified (GB2312) */ - {949, "ks_c_5601-1987"}, /* ANSI/OEM Korean (Unified Hangul Code) */ - {950, "big5"}, /* ANSI/OEM Traditional Chinese (Taiwan; Hong Kong SAR, PRC); Chinese Traditional (Big5) */ - {1026, "IBM1026"}, /* IBM EBCDIC Turkish (Latin 5) */ - {1047, "IBM01047"}, /* IBM EBCDIC Latin 1/Open System */ - {1140, "IBM01140"}, /* IBM EBCDIC US-Canada (037 + Euro symbol); IBM EBCDIC (US-Canada-Euro) */ - {1141, "IBM01141"}, /* IBM EBCDIC Germany (20273 + Euro symbol); IBM EBCDIC (Germany-Euro) */ - {1142, "IBM01142"}, /* IBM EBCDIC Denmark-Norway (20277 + Euro symbol); IBM EBCDIC (Denmark-Norway-Euro) */ - {1143, "IBM01143"}, /* IBM EBCDIC Finland-Sweden (20278 + Euro symbol); IBM EBCDIC (Finland-Sweden-Euro) */ - {1144, "IBM01144"}, /* IBM EBCDIC Italy (20280 + Euro symbol); IBM EBCDIC (Italy-Euro) */ - {1145, "IBM01145"}, /* IBM EBCDIC Latin America-Spain (20284 + Euro symbol); IBM EBCDIC (Spain-Euro) */ - {1146, "IBM01146"}, /* IBM EBCDIC United Kingdom (20285 + Euro symbol); IBM EBCDIC (UK-Euro) */ - {1147, "IBM01147"}, /* IBM EBCDIC France (20297 + Euro symbol); IBM EBCDIC (France-Euro) */ - {1148, "IBM01148"}, /* IBM EBCDIC International (500 + Euro symbol); IBM EBCDIC (International-Euro) */ - {1149, "IBM01149"}, /* IBM EBCDIC Icelandic (20871 + Euro symbol); IBM EBCDIC (Icelandic-Euro) */ - {1250, "windows-1250"}, /* ANSI Central European; Central European (Windows) */ - {1251, "windows-1251"}, /* ANSI Cyrillic; Cyrillic (Windows) */ - {1252, "windows-1252"}, /* ANSI Latin 1; Western European (Windows) */ - {1253, "windows-1253"}, /* ANSI Greek; Greek (Windows) */ - {1254, "windows-1254"}, /* ANSI Turkish; Turkish (Windows) */ - {1255, "windows-1255"}, /* ANSI Hebrew; Hebrew (Windows) */ - {1256, "windows-1256"}, /* ANSI Arabic; Arabic (Windows) */ - {1257, "windows-1257"}, /* ANSI Baltic; Baltic (Windows) */ - {1258, "windows-1258"}, /* ANSI/OEM Vietnamese; Vietnamese (Windows) */ - {1361, "Johab"}, /* Korean (Johab) */ - {10000, "macintosh"}, /* MAC Roman; Western European (Mac) */ - {10001, "x-mac-japanese"}, /* Japanese (Mac) */ - {10002, "x-mac-chinesetrad"}, /* MAC Traditional Chinese (Big5); Chinese Traditional (Mac) */ - {10003, "x-mac-korean"}, /* Korean (Mac) */ - {10004, "x-mac-arabic"}, /* Arabic (Mac) */ - {10005, "x-mac-hebrew"}, /* Hebrew (Mac) */ - {10006, "x-mac-greek"}, /* Greek (Mac) */ - {10007, "x-mac-cyrillic"}, /* Cyrillic (Mac) */ - {10008, "x-mac-chinesesimp"}, /* MAC Simplified Chinese (GB 2312); Chinese Simplified (Mac) */ - {10010, "x-mac-romanian"}, /* Romanian (Mac) */ - {10017, "x-mac-ukrainian"}, /* Ukrainian (Mac) */ - {10021, "x-mac-thai"}, /* Thai (Mac) */ - {10029, "x-mac-ce"}, /* MAC Latin 2; Central European (Mac) */ - {10079, "x-mac-icelandic"}, /* Icelandic (Mac) */ - {10081, "x-mac-turkish"}, /* Turkish (Mac) */ - {10082, "x-mac-croatian"}, /* Croatian (Mac) */ - {20000, "x-Chinese_CNS"}, /* CNS Taiwan; Chinese Traditional (CNS) */ - {20001, "x-cp20001"}, /* TCA Taiwan */ - {20002, "x_Chinese-Eten"}, /* Eten Taiwan; Chinese Traditional (Eten) */ - {20003, "x-cp20003"}, /* IBM5550 Taiwan */ - {20004, "x-cp20004"}, /* TeleText Taiwan */ - {20005, "x-cp20005"}, /* Wang Taiwan */ - {20105, "x-IA5"}, /* IA5 (IRV International Alphabet No. 5, 7-bit); Western European (IA5) */ - {20106, "x-IA5-German"}, /* IA5 German (7-bit) */ - {20107, "x-IA5-Swedish"}, /* IA5 Swedish (7-bit) */ - {20108, "x-IA5-Norwegian"}, /* IA5 Norwegian (7-bit) */ - {20127, "us-ascii"}, /* US-ASCII (7-bit) */ - {20261, "x-cp20261"}, /* T.61 */ - {20269, "x-cp20269"}, /* ISO 6937 Non-Spacing Accent */ - {20273, "IBM273"}, /* IBM EBCDIC Germany */ - {20277, "IBM277"}, /* IBM EBCDIC Denmark-Norway */ - {20278, "IBM278"}, /* IBM EBCDIC Finland-Sweden */ - {20280, "IBM280"}, /* IBM EBCDIC Italy */ - {20284, "IBM284"}, /* IBM EBCDIC Latin America-Spain */ - {20285, "IBM285"}, /* IBM EBCDIC United Kingdom */ - {20290, "IBM290"}, /* IBM EBCDIC Japanese Katakana Extended */ - {20297, "IBM297"}, /* IBM EBCDIC France */ - {20420, "IBM420"}, /* IBM EBCDIC Arabic */ - {20423, "IBM423"}, /* IBM EBCDIC Greek */ - {20424, "IBM424"}, /* IBM EBCDIC Hebrew */ - {20833, "x-EBCDIC-KoreanExtended"}, /* IBM EBCDIC Korean Extended */ - {20838, "IBM-Thai"}, /* IBM EBCDIC Thai */ - {20866, "koi8-r"}, /* Russian (KOI8-R); Cyrillic (KOI8-R) */ - {20871, "IBM871"}, /* IBM EBCDIC Icelandic */ - {20880, "IBM880"}, /* IBM EBCDIC Cyrillic Russian */ - {20905, "IBM905"}, /* IBM EBCDIC Turkish */ - {20924, "IBM00924"}, /* IBM EBCDIC Latin 1/Open System (1047 + Euro symbol) */ - {20932, "EUC-JP"}, /* Japanese (JIS 0208-1990 and 0121-1990) */ - {20936, "x-cp20936"}, /* Simplified Chinese (GB2312); Chinese Simplified (GB2312-80) */ - {20949, "x-cp20949"}, /* Korean Wansung */ - {21025, "cp1025"}, /* IBM EBCDIC Cyrillic Serbian-Bulgarian */ - /* 21027 (deprecated) */ - {21866, "koi8-u"}, /* Ukrainian (KOI8-U); Cyrillic (KOI8-U) */ - {28591, "iso-8859-1"}, /* ISO 8859-1 Latin 1; Western European (ISO) */ - {28591, "iso8859-1"}, /* ISO 8859-1 Latin 1; Western European (ISO) */ - {28592, "iso-8859-2"}, /* ISO 8859-2 Central European; Central European (ISO) */ - {28592, "iso8859-2"}, /* ISO 8859-2 Central European; Central European (ISO) */ - {28593, "iso-8859-3"}, /* ISO 8859-3 Latin 3 */ - {28593, "iso8859-3"}, /* ISO 8859-3 Latin 3 */ - {28594, "iso-8859-4"}, /* ISO 8859-4 Baltic */ - {28594, "iso8859-4"}, /* ISO 8859-4 Baltic */ - {28595, "iso-8859-5"}, /* ISO 8859-5 Cyrillic */ - {28595, "iso8859-5"}, /* ISO 8859-5 Cyrillic */ - {28596, "iso-8859-6"}, /* ISO 8859-6 Arabic */ - {28596, "iso8859-6"}, /* ISO 8859-6 Arabic */ - {28597, "iso-8859-7"}, /* ISO 8859-7 Greek */ - {28597, "iso8859-7"}, /* ISO 8859-7 Greek */ - {28598, "iso-8859-8"}, /* ISO 8859-8 Hebrew; Hebrew (ISO-Visual) */ - {28598, "iso8859-8"}, /* ISO 8859-8 Hebrew; Hebrew (ISO-Visual) */ - {28599, "iso-8859-9"}, /* ISO 8859-9 Turkish */ - {28599, "iso8859-9"}, /* ISO 8859-9 Turkish */ - {28603, "iso-8859-13"}, /* ISO 8859-13 Estonian */ - {28603, "iso8859-13"}, /* ISO 8859-13 Estonian */ - {28605, "iso-8859-15"}, /* ISO 8859-15 Latin 9 */ - {28605, "iso8859-15"}, /* ISO 8859-15 Latin 9 */ - {29001, "x-Europa"}, /* Europa 3 */ - {38598, "iso-8859-8-i"}, /* ISO 8859-8 Hebrew; Hebrew (ISO-Logical) */ - {38598, "iso8859-8-i"}, /* ISO 8859-8 Hebrew; Hebrew (ISO-Logical) */ - {50220, "iso-2022-jp"}, /* ISO 2022 Japanese with no halfwidth Katakana; Japanese (JIS) */ - {50221, "csISO2022JP"}, /* ISO 2022 Japanese with halfwidth Katakana; Japanese (JIS-Allow 1 byte Kana) */ - {50222, "iso-2022-jp"}, /* ISO 2022 Japanese JIS X 0201-1989; Japanese (JIS-Allow 1 byte Kana - SO/SI) */ - {50225, "iso-2022-kr"}, /* ISO 2022 Korean */ - {50225, "iso2022-kr"}, /* ISO 2022 Korean */ - {50227, "x-cp50227"}, /* ISO 2022 Simplified Chinese; Chinese Simplified (ISO 2022) */ - /* 50229 ISO 2022 Traditional Chinese */ - /* 50930 EBCDIC Japanese (Katakana) Extended */ - /* 50931 EBCDIC US-Canada and Japanese */ - /* 50933 EBCDIC Korean Extended and Korean */ - /* 50935 EBCDIC Simplified Chinese Extended and Simplified Chinese */ - /* 50936 EBCDIC Simplified Chinese */ - /* 50937 EBCDIC US-Canada and Traditional Chinese */ - /* 50939 EBCDIC Japanese (Latin) Extended and Japanese */ - {51932, "euc-jp"}, /* EUC Japanese */ - {51936, "EUC-CN"}, /* EUC Simplified Chinese; Chinese Simplified (EUC) */ - {51949, "euc-kr"}, /* EUC Korean */ - /* 51950 EUC Traditional Chinese */ - {52936, "hz-gb-2312"}, /* HZ-GB2312 Simplified Chinese; Chinese Simplified (HZ) */ - {54936, "GB18030"}, /* Windows XP and later: GB18030 Simplified Chinese (4 byte); Chinese Simplified (GB18030) */ - {57002, "x-iscii-de"}, /* ISCII Devanagari */ - {57003, "x-iscii-be"}, /* ISCII Bengali */ - {57004, "x-iscii-ta"}, /* ISCII Tamil */ - {57005, "x-iscii-te"}, /* ISCII Telugu */ - {57006, "x-iscii-as"}, /* ISCII Assamese */ - {57007, "x-iscii-or"}, /* ISCII Oriya */ - {57008, "x-iscii-ka"}, /* ISCII Kannada */ - {57009, "x-iscii-ma"}, /* ISCII Malayalam */ - {57010, "x-iscii-gu"}, /* ISCII Gujarati */ - {57011, "x-iscii-pa"}, /* ISCII Punjabi */ - - {0, NULL} -}; - -/* - * SJIS SHIFTJIS table CP932 table - * ---- --------------------------- -------------------------------- - * 5C U+00A5 YEN SIGN U+005C REVERSE SOLIDUS - * 7E U+203E OVERLINE U+007E TILDE - * 815C U+2014 EM DASH U+2015 HORIZONTAL BAR - * 815F U+005C REVERSE SOLIDUS U+FF3C FULLWIDTH REVERSE SOLIDUS - * 8160 U+301C WAVE DASH U+FF5E FULLWIDTH TILDE - * 8161 U+2016 DOUBLE VERTICAL LINE U+2225 PARALLEL TO - * 817C U+2212 MINUS SIGN U+FF0D FULLWIDTH HYPHEN-MINUS - * 8191 U+00A2 CENT SIGN U+FFE0 FULLWIDTH CENT SIGN - * 8192 U+00A3 POUND SIGN U+FFE1 FULLWIDTH POUND SIGN - * 81CA U+00AC NOT SIGN U+FFE2 FULLWIDTH NOT SIGN - * - * EUC-JP and ISO-2022-JP should be compatible with CP932. - * - * Kernel and MLang have different Unicode mapping table. Make sure - * which API is used. - */ -static compat_t cp932_compat[] = { - {0x00A5, 0x005C, COMPAT_OUT}, - {0x203E, 0x007E, COMPAT_OUT}, - {0x2014, 0x2015, COMPAT_OUT}, - {0x301C, 0xFF5E, COMPAT_OUT}, - {0x2016, 0x2225, COMPAT_OUT}, - {0x2212, 0xFF0D, COMPAT_OUT}, - {0x00A2, 0xFFE0, COMPAT_OUT}, - {0x00A3, 0xFFE1, COMPAT_OUT}, - {0x00AC, 0xFFE2, COMPAT_OUT}, - {0, 0, 0} -}; - -static compat_t cp20932_compat[] = { - {0x00A5, 0x005C, COMPAT_OUT}, - {0x203E, 0x007E, COMPAT_OUT}, - {0x2014, 0x2015, COMPAT_OUT}, - {0xFF5E, 0x301C, COMPAT_OUT|COMPAT_IN}, - {0x2225, 0x2016, COMPAT_OUT|COMPAT_IN}, - {0xFF0D, 0x2212, COMPAT_OUT|COMPAT_IN}, - {0xFFE0, 0x00A2, COMPAT_OUT|COMPAT_IN}, - {0xFFE1, 0x00A3, COMPAT_OUT|COMPAT_IN}, - {0xFFE2, 0x00AC, COMPAT_OUT|COMPAT_IN}, - {0, 0, 0} -}; - -static compat_t *cp51932_compat = cp932_compat; - -/* cp20932_compat for kernel. cp932_compat for mlang. */ -static compat_t *cp5022x_compat = cp932_compat; - -typedef HRESULT (WINAPI *CONVERTINETSTRING)( - LPDWORD lpdwMode, - DWORD dwSrcEncoding, - DWORD dwDstEncoding, - LPCSTR lpSrcStr, - LPINT lpnSrcSize, - LPBYTE lpDstStr, - LPINT lpnDstSize -); -typedef HRESULT (WINAPI *CONVERTINETMULTIBYTETOUNICODE)( - LPDWORD lpdwMode, - DWORD dwSrcEncoding, - LPCSTR lpSrcStr, - LPINT lpnMultiCharCount, - LPWSTR lpDstStr, - LPINT lpnWideCharCount -); -typedef HRESULT (WINAPI *CONVERTINETUNICODETOMULTIBYTE)( - LPDWORD lpdwMode, - DWORD dwEncoding, - LPCWSTR lpSrcStr, - LPINT lpnWideCharCount, - LPSTR lpDstStr, - LPINT lpnMultiCharCount -); -typedef HRESULT (WINAPI *ISCONVERTINETSTRINGAVAILABLE)( - DWORD dwSrcEncoding, - DWORD dwDstEncoding -); -typedef HRESULT (WINAPI *LCIDTORFC1766A)( - LCID Locale, - LPSTR pszRfc1766, - int nChar -); -typedef HRESULT (WINAPI *LCIDTORFC1766W)( - LCID Locale, - LPWSTR pszRfc1766, - int nChar -); -typedef HRESULT (WINAPI *RFC1766TOLCIDA)( - LCID *pLocale, - LPSTR pszRfc1766 -); -typedef HRESULT (WINAPI *RFC1766TOLCIDW)( - LCID *pLocale, - LPWSTR pszRfc1766 -); -static CONVERTINETSTRING ConvertINetString; -static CONVERTINETMULTIBYTETOUNICODE ConvertINetMultiByteToUnicode; -static CONVERTINETUNICODETOMULTIBYTE ConvertINetUnicodeToMultiByte; -static ISCONVERTINETSTRINGAVAILABLE IsConvertINetStringAvailable; -static LCIDTORFC1766A LcidToRfc1766A; -static RFC1766TOLCIDA Rfc1766ToLcidA; - -static int -load_mlang() -{ - HMODULE h; - if (ConvertINetString != NULL) - return TRUE; - h = LoadLibrary("mlang.dll"); - if (!h) - return FALSE; - ConvertINetString = (CONVERTINETSTRING)GetProcAddress(h, "ConvertINetString"); - ConvertINetMultiByteToUnicode = (CONVERTINETMULTIBYTETOUNICODE)GetProcAddress(h, "ConvertINetMultiByteToUnicode"); - ConvertINetUnicodeToMultiByte = (CONVERTINETUNICODETOMULTIBYTE)GetProcAddress(h, "ConvertINetUnicodeToMultiByte"); - IsConvertINetStringAvailable = (ISCONVERTINETSTRINGAVAILABLE)GetProcAddress(h, "IsConvertINetStringAvailable"); - LcidToRfc1766A = (LCIDTORFC1766A)GetProcAddress(h, "LcidToRfc1766A"); - Rfc1766ToLcidA = (RFC1766TOLCIDA)GetProcAddress(h, "Rfc1766ToLcidA"); - return TRUE; -} - -iconv_t -iconv_open(const char *tocode, const char *fromcode) -{ - rec_iconv_t *cd; - - cd = (rec_iconv_t *)calloc(1, sizeof(rec_iconv_t)); - if (cd == NULL) - { - errno = ENOMEM; - return (iconv_t)(-1); - } - -#if defined(USE_LIBICONV_DLL) - if (libiconv_iconv_open(cd, tocode, fromcode)) - return (iconv_t)cd; -#endif - - if (win_iconv_open(cd, tocode, fromcode)) - return (iconv_t)cd; - - free(cd); - errno = EINVAL; - return (iconv_t)(-1); -} - -int -iconv_close(iconv_t _cd) -{ - rec_iconv_t *cd = (rec_iconv_t *)_cd; - int r = cd->iconv_close(cd->cd); - int e = *(cd->_errno()); -#if defined(USE_LIBICONV_DLL) - if (cd->hlibiconv != NULL) - FreeLibrary(cd->hlibiconv); -#endif - free(cd); - errno = e; - return r; -} - -size_t -iconv(iconv_t _cd, const char **inbuf, size_t *inbytesleft, char **outbuf, size_t *outbytesleft) -{ - rec_iconv_t *cd = (rec_iconv_t *)_cd; - size_t r = cd->iconv(cd->cd, inbuf, inbytesleft, outbuf, outbytesleft); - errno = *(cd->_errno()); - return r; -} - -static int -win_iconv_open(rec_iconv_t *cd, const char *tocode, const char *fromcode) -{ - cd->from = make_csconv(fromcode); - cd->to = make_csconv(tocode); - if (cd->from.codepage == -1 || cd->to.codepage == -1) - return FALSE; - cd->iconv_close = win_iconv_close; - cd->iconv = win_iconv; - cd->_errno = _errno; - cd->cd = (iconv_t)cd; - return TRUE; -} - -static int -win_iconv_close(iconv_t cd) -{ - return 0; -} - -static size_t -win_iconv(iconv_t _cd, const char **inbuf, size_t *inbytesleft, char **outbuf, size_t *outbytesleft) -{ - rec_iconv_t *cd = (rec_iconv_t *)_cd; - ushort wbuf[MB_CHAR_MAX]; /* enough room for one character */ - int insize; - int outsize; - int wsize; - DWORD mode; - uint wc; - compat_t *cp; - int i; - - if (inbuf == NULL || *inbuf == NULL) - { - if (outbuf != NULL && *outbuf != NULL && cd->to.flush != NULL) - { - outsize = cd->to.flush(&cd->to, (uchar *)*outbuf, *outbytesleft); - if (outsize == -1) - return (size_t)(-1); - *outbuf += outsize; - *outbytesleft -= outsize; - } - if (is_unicode(cd->from.codepage) && (cd->from.mode & UNICODE_MODE_SWAPPED)) - cd->from.codepage ^= 1; - cd->from.mode = 0; - cd->to.mode = 0; - return 0; - } - - while (*inbytesleft != 0) - { - mode = cd->from.mode; - wsize = MB_CHAR_MAX; - - insize = cd->from.mbtowc(&cd->from, (const uchar *)*inbuf, *inbytesleft, wbuf, &wsize); - if (insize == -1) - return (size_t)(-1); - - if (is_unicode(cd->from.codepage) && !(cd->from.mode & UNICODE_MODE_BOM_DONE)) - { - check_utf_bom(cd, wbuf, &wsize); - cd->from.mode |= UNICODE_MODE_BOM_DONE; - } - - if (wsize == 0) - { - *inbuf += insize; - *inbytesleft -= insize; - continue; - } - - if (cd->from.compat != NULL) - { - wc = utf16_to_ucs4(wbuf); - cp = cd->from.compat; - for (i = 0; cp[i].in != 0; ++i) - { - if ((cp[i].flag & COMPAT_IN) && cp[i].out == wc) - { - ucs4_to_utf16(cp[i].in, wbuf, &wsize); - break; - } - } - } - - if (cd->to.compat != NULL) - { - wc = utf16_to_ucs4(wbuf); - cp = cd->to.compat; - for (i = 0; cp[i].in != 0; ++i) - { - if ((cp[i].flag & COMPAT_OUT) && cp[i].in == wc) - { - ucs4_to_utf16(cp[i].out, wbuf, &wsize); - break; - } - } - } - - outsize = cd->to.wctomb(&cd->to, wbuf, wsize, (uchar *)*outbuf, *outbytesleft); - if (outsize == -1) - { - cd->from.mode = mode; - return (size_t)(-1); - } - - *inbuf += insize; - *outbuf += outsize; - *inbytesleft -= insize; - *outbytesleft -= outsize; - } - - return 0; -} - -static csconv_t -make_csconv(const char *_name) -{ - CPINFOEX cpinfoex; - csconv_t cv; - int use_compat = TRUE; - int flag = 0; - char name[128]; - char *p; - - xstrlcpy(name, _name, sizeof(name)); - - /* check for option "enc_name//opt1//opt2" */ - while ((p = strrstr(name, "//")) != NULL) - { - if (_stricmp(p + 2, "nocompat") == 0) - use_compat = FALSE; - else if (_stricmp(p + 2, "translit") == 0) - flag |= FLAG_TRANSLIT; - else if (_stricmp(p + 2, "ignore") == 0) - flag |= FLAG_IGNORE; - *p = 0; - } - - cv.mode = 0; - cv.flags = flag; - cv.mblen = NULL; - cv.flush = NULL; - cv.compat = NULL; - cv.codepage = name_to_codepage(name); - if (cv.codepage == 1200 || cv.codepage == 1201) - { - cv.mbtowc = utf16_mbtowc; - cv.wctomb = utf16_wctomb; - if (_stricmp(name, "UTF-16") == 0 || - _stricmp(name, "UTF16") == 0 || - _stricmp(name, "UCS-2") == 0 || - _stricmp(name, "UCS2") == 0) - cv.flags |= FLAG_USE_BOM_ENDIAN; - } - else if (cv.codepage == 12000 || cv.codepage == 12001) - { - cv.mbtowc = utf32_mbtowc; - cv.wctomb = utf32_wctomb; - if (_stricmp(name, "UTF-32") == 0 || - _stricmp(name, "UTF32") == 0 || - _stricmp(name, "UCS-4") == 0 || - _stricmp(name, "UCS4") == 0) - cv.flags |= FLAG_USE_BOM_ENDIAN; - } - else if (cv.codepage == 65001) - { - cv.mbtowc = kernel_mbtowc; - cv.wctomb = kernel_wctomb; - cv.mblen = utf8_mblen; - } - else if ((cv.codepage == 50220 || cv.codepage == 50221 || cv.codepage == 50222) && load_mlang()) - { - cv.mbtowc = iso2022jp_mbtowc; - cv.wctomb = iso2022jp_wctomb; - cv.flush = iso2022jp_flush; - } - else if (cv.codepage == 51932 && load_mlang()) - { - cv.mbtowc = mlang_mbtowc; - cv.wctomb = mlang_wctomb; - cv.mblen = eucjp_mblen; - } - else if (IsValidCodePage(cv.codepage) - && GetCPInfoEx(cv.codepage, 0, &cpinfoex) != 0) - { - cv.mbtowc = kernel_mbtowc; - cv.wctomb = kernel_wctomb; - if (cpinfoex.MaxCharSize == 1) - cv.mblen = sbcs_mblen; - else if (cpinfoex.MaxCharSize == 2) - cv.mblen = dbcs_mblen; - else - cv.mblen = mbcs_mblen; - } - else - { - /* not supported */ - cv.codepage = -1; - } - if (use_compat) - { - switch (cv.codepage) - { - case 932: cv.compat = cp932_compat; break; - case 20932: cv.compat = cp20932_compat; break; - case 51932: cv.compat = cp51932_compat; break; - case 50220: case 50221: case 50222: cv.compat = cp5022x_compat; break; - } - } - return cv; -} - -static int -name_to_codepage(const char *name) -{ - int i; - - if (*name == '\0' || - strcmp(name, "char") == 0) - return GetACP(); - else if (strcmp(name, "wchar_t") == 0) - return 1200; - else if (_strnicmp(name, "cp", 2) == 0) - return atoi(name + 2); /* CP123 */ - else if ('0' <= name[0] && name[0] <= '9') - return atoi(name); /* 123 */ - else if (_strnicmp(name, "xx", 2) == 0) - return atoi(name + 2); /* XX123 for debug */ - - for (i = 0; codepage_alias[i].name != NULL; ++i) - if (_stricmp(name, codepage_alias[i].name) == 0) - return codepage_alias[i].codepage; - return -1; -} - -/* - * http://www.faqs.org/rfcs/rfc2781.html - */ -static uint -utf16_to_ucs4(const ushort *wbuf) -{ - uint wc = wbuf[0]; - if (0xD800 <= wbuf[0] && wbuf[0] <= 0xDBFF) - wc = ((wbuf[0] & 0x3FF) << 10) + (wbuf[1] & 0x3FF) + 0x10000; - return wc; -} - -static void -ucs4_to_utf16(uint wc, ushort *wbuf, int *wbufsize) -{ - if (wc < 0x10000) - { - wbuf[0] = wc; - *wbufsize = 1; - } - else - { - wc -= 0x10000; - wbuf[0] = 0xD800 | ((wc >> 10) & 0x3FF); - wbuf[1] = 0xDC00 | (wc & 0x3FF); - *wbufsize = 2; - } -} - -static int -is_unicode(int codepage) -{ - return (codepage == 1200 || codepage == 1201 || - codepage == 12000 || codepage == 12001 || - codepage == 65000 || codepage == 65001); -} - -/* - * Check if codepage is one of those for which the dwFlags parameter - * to MultiByteToWideChar() must be zero. Return zero or - * MB_ERR_INVALID_CHARS. The docs in Platform SDK for for Windows - * Server 2003 R2 claims that also codepage 65001 is one of these, but - * that doesn't seem to be the case. The MSDN docs for MSVS2008 leave - * out 65001 (UTF-8), and that indeed seems to be the case on XP, it - * works fine to pass MB_ERR_INVALID_CHARS in dwFlags when converting - * from UTF-8. - */ -static int -mbtowc_flags(int codepage) -{ - return (codepage == 50220 || codepage == 50221 || - codepage == 50222 || codepage == 50225 || - codepage == 50227 || codepage == 50229 || - codepage == 52936 || codepage == 54936 || - (codepage >= 57002 && codepage <= 57011) || - codepage == 65000 || codepage == 42) ? 0 : MB_ERR_INVALID_CHARS; -} - -/* - * Check if codepage is one those for which the lpUsedDefaultChar - * parameter to WideCharToMultiByte() must be NULL. The docs in - * Platform SDK for for Windows Server 2003 R2 claims that this is the - * list below, while the MSDN docs for MSVS2008 claim that it is only - * for 65000 (UTF-7) and 65001 (UTF-8). This time the earlier Platform - * SDK seems to be correct, at least for XP. - */ -static int -must_use_null_useddefaultchar(int codepage) -{ - return (codepage == 65000 || codepage == 65001 || - codepage == 50220 || codepage == 50221 || - codepage == 50222 || codepage == 50225 || - codepage == 50227 || codepage == 50229 || - codepage == 52936 || codepage == 54936 || - (codepage >= 57002 && codepage <= 57011) || - codepage == 42); -} - -static void -check_utf_bom(rec_iconv_t *cd, ushort *wbuf, int *wbufsize) -{ - /* If we have a BOM, trust it, despite what the caller said */ - if (wbuf[0] == 0xFFFE && (cd->from.flags & FLAG_USE_BOM_ENDIAN)) - { - /* swap endian: 1200 <-> 1201 or 12000 <-> 12001 */ - cd->from.codepage ^= 1; - cd->from.mode |= UNICODE_MODE_SWAPPED; - wbuf[0] = 0xFEFF; - } - - /* - * Remove BOM. - * Don't do this if "to" is Unicode, - * except if "to" is UTF-8. - */ - if (wbuf[0] == 0xFEFF && (!is_unicode(cd->to.codepage) || cd->to.codepage == 65001)) - *wbufsize = 0; -} - -static char * -strrstr(const char *str, const char *token) -{ - int len = strlen(token); - const char *p = str + strlen(str); - - while (str <= --p) - if (p[0] == token[0] && strncmp(p, token, len) == 0) - return (char *)p; - return NULL; -} - -#if defined(USE_LIBICONV_DLL) -static int -libiconv_iconv_open(rec_iconv_t *cd, const char *fromcode, const char *tocode) -{ - HMODULE hlibiconv = NULL; - HMODULE hmsvcrt = NULL; - char dllname[_MAX_PATH]; - const char *p; - const char *e; - f_iconv_open _iconv_open; - - /* - * always try to load dll, so that we can switch dll in runtime. - */ - - /* XXX: getenv() can't get variable set by SetEnvironmentVariable() */ - p = getenv("WINICONV_LIBICONV_DLL"); - if (p == NULL) - p = DEFAULT_LIBICONV_DLL; - /* parse comma separated value */ - for ( ; *p != 0; p = (*e == ',') ? e + 1 : e) - { - e = strchr(p, ','); - if (p == e) - continue; - else if (e == NULL) - e = p + strlen(p); - xstrlcpyn(dllname, p, e - p, sizeof(dllname)); - hlibiconv = LoadLibrary(dllname); - if (hlibiconv != NULL) - { - if (hlibiconv == hwiniconv) - { - FreeLibrary(hlibiconv); - hlibiconv = NULL; - continue; - } - break; - } - } - - if (hlastdll != NULL) - { - /* decrement reference count */ - FreeLibrary(hlastdll); - hlastdll = NULL; - } - - if (hlibiconv == NULL) - goto failed; - - hmsvcrt = find_imported_module_by_funcname(hlibiconv, "_errno"); - if (hmsvcrt == NULL) - goto failed; - - _iconv_open = (f_iconv_open)GetProcAddress(hlibiconv, "libiconv_open"); - if (_iconv_open == NULL) - _iconv_open = (f_iconv_open)GetProcAddress(hlibiconv, "iconv_open"); - cd->iconv_close = (f_iconv_close)GetProcAddress(hlibiconv, "libiconv_close"); - if (cd->iconv_close == NULL) - cd->iconv_close = (f_iconv_close)GetProcAddress(hlibiconv, "iconv_close"); - cd->iconv = (f_iconv)GetProcAddress(hlibiconv, "libiconv"); - if (cd->iconv == NULL) - cd->iconv = (f_iconv)GetProcAddress(hlibiconv, "iconv"); - cd->_errno = (f_errno)GetProcAddress(hmsvcrt, "_errno"); - if (_iconv_open == NULL || cd->iconv_close == NULL - || cd->iconv == NULL || cd->_errno == NULL) - goto failed; - - /* increment reference count */ - hlastdll = LoadLibrary(dllname); - - cd->cd = _iconv_open(tocode, fromcode); - if (cd->cd == (iconv_t)(-1)) - goto failed; - - cd->hlibiconv = hlibiconv; - return TRUE; - -failed: - if (hlibiconv != NULL) - FreeLibrary(hlibiconv); - /* do not free hmsvcrt which is obtained by GetModuleHandle() */ - return FALSE; -} - -/* - * Reference: - * http://forums.belution.com/ja/vc/000/234/78s.shtml - * http://nienie.com/~masapico/api_ImageDirectoryEntryToData.html - * - * The formal way is - * imagehlp.h or dbghelp.h - * imagehlp.lib or dbghelp.lib - * ImageDirectoryEntryToData() - */ -#define TO_DOS_HEADER(base) ((PIMAGE_DOS_HEADER)(base)) -#define TO_NT_HEADERS(base) ((PIMAGE_NT_HEADERS)((LPBYTE)(base) + TO_DOS_HEADER(base)->e_lfanew)) -static PVOID -MyImageDirectoryEntryToData(LPVOID Base, BOOLEAN MappedAsImage, USHORT DirectoryEntry, PULONG Size) -{ - /* TODO: MappedAsImage? */ - PIMAGE_DATA_DIRECTORY p; - p = TO_NT_HEADERS(Base)->OptionalHeader.DataDirectory + DirectoryEntry; - if (p->VirtualAddress == 0) { - *Size = 0; - return NULL; - } - *Size = p->Size; - return (PVOID)((LPBYTE)Base + p->VirtualAddress); -} - -static HMODULE -find_imported_module_by_funcname(HMODULE hModule, const char *funcname) -{ - DWORD Base; - ULONG Size; - PIMAGE_IMPORT_DESCRIPTOR Imp; - PIMAGE_THUNK_DATA Name; /* Import Name Table */ - PIMAGE_IMPORT_BY_NAME ImpName; - - Base = (DWORD)hModule; - Imp = MyImageDirectoryEntryToData( - (LPVOID)Base, - TRUE, - IMAGE_DIRECTORY_ENTRY_IMPORT, - &Size); - if (Imp == NULL) - return NULL; - for ( ; Imp->OriginalFirstThunk != 0; ++Imp) - { - Name = (PIMAGE_THUNK_DATA)(Base + Imp->OriginalFirstThunk); - for ( ; Name->u1.Ordinal != 0; ++Name) - { - if (!IMAGE_SNAP_BY_ORDINAL(Name->u1.Ordinal)) - { - ImpName = (PIMAGE_IMPORT_BY_NAME) - (Base + (DWORD)Name->u1.AddressOfData); - if (strcmp((char *)ImpName->Name, funcname) == 0) - return GetModuleHandle((char *)(Base + Imp->Name)); - } - } - } - return NULL; -} -#endif - -static int -sbcs_mblen(csconv_t *cv, const uchar *buf, int bufsize) -{ - return 1; -} - -static int -dbcs_mblen(csconv_t *cv, const uchar *buf, int bufsize) -{ - int len = IsDBCSLeadByteEx(cv->codepage, buf[0]) ? 2 : 1; - if (bufsize < len) - return_error(EINVAL); - return len; -} - -static int -mbcs_mblen(csconv_t *cv, const uchar *buf, int bufsize) -{ - int len = 0; - - if (cv->codepage == 54936) { - if (buf[0] <= 0x7F) len = 1; - else if (buf[0] >= 0x81 && buf[0] <= 0xFE && - bufsize >= 2 && - ((buf[1] >= 0x40 && buf[1] <= 0x7E) || - (buf[1] >= 0x80 && buf[1] <= 0xFE))) len = 2; - else if (buf[0] >= 0x81 && buf[0] <= 0xFE && - bufsize >= 4 && - buf[1] >= 0x30 && buf[1] <= 0x39) len = 4; - else - return_error(EINVAL); - return len; - } - else - return_error(EINVAL); -} - -static int -utf8_mblen(csconv_t *cv, const uchar *buf, int bufsize) -{ - int len = 0; - - if (buf[0] < 0x80) len = 1; - else if ((buf[0] & 0xE0) == 0xC0) len = 2; - else if ((buf[0] & 0xF0) == 0xE0) len = 3; - else if ((buf[0] & 0xF8) == 0xF0) len = 4; - else if ((buf[0] & 0xFC) == 0xF8) len = 5; - else if ((buf[0] & 0xFE) == 0xFC) len = 6; - - if (len == 0) - return_error(EILSEQ); - else if (bufsize < len) - return_error(EINVAL); - return len; -} - -static int -eucjp_mblen(csconv_t *cv, const uchar *buf, int bufsize) -{ - if (buf[0] < 0x80) /* ASCII */ - return 1; - else if (buf[0] == 0x8E) /* JIS X 0201 */ - { - if (bufsize < 2) - return_error(EINVAL); - else if (!(0xA1 <= buf[1] && buf[1] <= 0xDF)) - return_error(EILSEQ); - return 2; - } - else if (buf[0] == 0x8F) /* JIS X 0212 */ - { - if (bufsize < 3) - return_error(EINVAL); - else if (!(0xA1 <= buf[1] && buf[1] <= 0xFE) - || !(0xA1 <= buf[2] && buf[2] <= 0xFE)) - return_error(EILSEQ); - return 3; - } - else /* JIS X 0208 */ - { - if (bufsize < 2) - return_error(EINVAL); - else if (!(0xA1 <= buf[0] && buf[0] <= 0xFE) - || !(0xA1 <= buf[1] && buf[1] <= 0xFE)) - return_error(EILSEQ); - return 2; - } -} - -static int -kernel_mbtowc(csconv_t *cv, const uchar *buf, int bufsize, ushort *wbuf, int *wbufsize) -{ - int len; - - len = cv->mblen(cv, buf, bufsize); - if (len == -1) - return -1; - /* If converting from ASCII, reject 8bit - * chars. MultiByteToWideChar() doesn't. Note that for ASCII we - * know that the mblen function is sbcs_mblen() so len is 1. - */ - if (cv->codepage == 20127 && buf[0] >= 0x80) - return_error(EILSEQ); - *wbufsize = MultiByteToWideChar(cv->codepage, mbtowc_flags (cv->codepage), - (const char *)buf, len, (wchar_t *)wbuf, *wbufsize); - if (*wbufsize == 0) - return_error(EILSEQ); - return len; -} - -static int -kernel_wctomb(csconv_t *cv, ushort *wbuf, int wbufsize, uchar *buf, int bufsize) -{ - BOOL usedDefaultChar = 0; - BOOL *p = NULL; - int flags = 0; - int len; - - if (bufsize == 0) - return_error(E2BIG); - if (!must_use_null_useddefaultchar(cv->codepage)) - { - p = &usedDefaultChar; -#ifdef WC_NO_BEST_FIT_CHARS - if (!(cv->flags & FLAG_TRANSLIT)) - flags |= WC_NO_BEST_FIT_CHARS; -#endif - } - len = WideCharToMultiByte(cv->codepage, flags, - (const wchar_t *)wbuf, wbufsize, (char *)buf, bufsize, NULL, p); - if (len == 0) - { - if (GetLastError() == ERROR_INSUFFICIENT_BUFFER) - return_error(E2BIG); - return_error(EILSEQ); - } - else if (usedDefaultChar) - return_error(EILSEQ); - else if (cv->mblen(cv, buf, len) != len) /* validate result */ - return_error(EILSEQ); - return len; -} - -/* - * It seems that the mode (cv->mode) is fixnum. - * For example, when converting iso-2022-jp(cp50221) to unicode: - * in ascii sequence: mode=0xC42C0000 - * in jisx0208 sequence: mode=0xC42C0001 - * "C42C" is same for each convert session. - * It should be: ((codepage-1)<<16)|state - */ -static int -mlang_mbtowc(csconv_t *cv, const uchar *buf, int bufsize, ushort *wbuf, int *wbufsize) -{ - int len; - int insize; - HRESULT hr; - - len = cv->mblen(cv, buf, bufsize); - if (len == -1) - return -1; - insize = len; - hr = ConvertINetMultiByteToUnicode(&cv->mode, cv->codepage, - (const char *)buf, &insize, (wchar_t *)wbuf, wbufsize); - if (hr != S_OK || insize != len) - return_error(EILSEQ); - return len; -} - -static int -mlang_wctomb(csconv_t *cv, ushort *wbuf, int wbufsize, uchar *buf, int bufsize) -{ - char tmpbuf[MB_CHAR_MAX]; /* enough room for one character */ - int tmpsize = MB_CHAR_MAX; - int insize = wbufsize; - HRESULT hr; - - hr = ConvertINetUnicodeToMultiByte(&cv->mode, cv->codepage, - (const wchar_t *)wbuf, &wbufsize, tmpbuf, &tmpsize); - if (hr != S_OK || insize != wbufsize) - return_error(EILSEQ); - else if (bufsize < tmpsize) - return_error(E2BIG); - else if (cv->mblen(cv, (uchar *)tmpbuf, tmpsize) != tmpsize) - return_error(EILSEQ); - memcpy(buf, tmpbuf, tmpsize); - return tmpsize; -} - -static int -utf16_mbtowc(csconv_t *cv, const uchar *buf, int bufsize, ushort *wbuf, int *wbufsize) -{ - if (bufsize < 2) - return_error(EINVAL); - if (cv->codepage == 1200) /* little endian */ - wbuf[0] = (buf[1] << 8) | buf[0]; - else if (cv->codepage == 1201) /* big endian */ - wbuf[0] = (buf[0] << 8) | buf[1]; - if (0xDC00 <= wbuf[0] && wbuf[0] <= 0xDFFF) - return_error(EILSEQ); - if (0xD800 <= wbuf[0] && wbuf[0] <= 0xDBFF) - { - if (bufsize < 4) - return_error(EINVAL); - if (cv->codepage == 1200) /* little endian */ - wbuf[1] = (buf[3] << 8) | buf[2]; - else if (cv->codepage == 1201) /* big endian */ - wbuf[1] = (buf[2] << 8) | buf[3]; - if (!(0xDC00 <= wbuf[1] && wbuf[1] <= 0xDFFF)) - return_error(EILSEQ); - *wbufsize = 2; - return 4; - } - *wbufsize = 1; - return 2; -} - -static int -utf16_wctomb(csconv_t *cv, ushort *wbuf, int wbufsize, uchar *buf, int bufsize) -{ - if (bufsize < 2) - return_error(E2BIG); - if (cv->codepage == 1200) /* little endian */ - { - buf[0] = (wbuf[0] & 0x00FF); - buf[1] = (wbuf[0] & 0xFF00) >> 8; - } - else if (cv->codepage == 1201) /* big endian */ - { - buf[0] = (wbuf[0] & 0xFF00) >> 8; - buf[1] = (wbuf[0] & 0x00FF); - } - if (0xD800 <= wbuf[0] && wbuf[0] <= 0xDBFF) - { - if (bufsize < 4) - return_error(E2BIG); - if (cv->codepage == 1200) /* little endian */ - { - buf[2] = (wbuf[1] & 0x00FF); - buf[3] = (wbuf[1] & 0xFF00) >> 8; - } - else if (cv->codepage == 1201) /* big endian */ - { - buf[2] = (wbuf[1] & 0xFF00) >> 8; - buf[3] = (wbuf[1] & 0x00FF); - } - return 4; - } - return 2; -} - -static int -utf32_mbtowc(csconv_t *cv, const uchar *buf, int bufsize, ushort *wbuf, int *wbufsize) -{ - uint wc; - - if (bufsize < 4) - return_error(EINVAL); - if (cv->codepage == 12000) /* little endian */ - wc = (buf[3] << 24) | (buf[2] << 16) | (buf[1] << 8) | buf[0]; - else if (cv->codepage == 12001) /* big endian */ - wc = (buf[0] << 24) | (buf[1] << 16) | (buf[2] << 8) | buf[3]; - if ((0xD800 <= wc && wc <= 0xDFFF) || 0x10FFFF < wc) - return_error(EILSEQ); - ucs4_to_utf16(wc, wbuf, wbufsize); - return 4; -} - -static int -utf32_wctomb(csconv_t *cv, ushort *wbuf, int wbufsize, uchar *buf, int bufsize) -{ - uint wc; - - if (bufsize < 4) - return_error(E2BIG); - wc = utf16_to_ucs4(wbuf); - if (cv->codepage == 12000) /* little endian */ - { - buf[0] = wc & 0x000000FF; - buf[1] = (wc & 0x0000FF00) >> 8; - buf[2] = (wc & 0x00FF0000) >> 16; - buf[3] = (wc & 0xFF000000) >> 24; - } - else if (cv->codepage == 12001) /* big endian */ - { - buf[0] = (wc & 0xFF000000) >> 24; - buf[1] = (wc & 0x00FF0000) >> 16; - buf[2] = (wc & 0x0000FF00) >> 8; - buf[3] = wc & 0x000000FF; - } - return 4; -} - -/* - * 50220: ISO 2022 Japanese with no halfwidth Katakana; Japanese (JIS) - * 50221: ISO 2022 Japanese with halfwidth Katakana; Japanese (JIS-Allow - * 1 byte Kana) - * 50222: ISO 2022 Japanese JIS X 0201-1989; Japanese (JIS-Allow 1 byte - * Kana - SO/SI) - * - * MultiByteToWideChar() and WideCharToMultiByte() behave differently - * depending on Windows version. On XP, WideCharToMultiByte() doesn't - * terminate result sequence with ascii escape. But Vista does. - * Use MLang instead. - */ - -#define ISO2022_MODE(cs, shift) (((cs) << 8) | (shift)) -#define ISO2022_MODE_CS(mode) (((mode) >> 8) & 0xFF) -#define ISO2022_MODE_SHIFT(mode) ((mode) & 0xFF) - -#define ISO2022_SI 0 -#define ISO2022_SO 1 - -/* shift in */ -static const char iso2022_SI_seq[] = "\x0F"; -/* shift out */ -static const char iso2022_SO_seq[] = "\x0E"; - -typedef struct iso2022_esc_t iso2022_esc_t; -struct iso2022_esc_t { - const char *esc; - int esc_len; - int len; - int cs; -}; - -#define ISO2022JP_CS_ASCII 0 -#define ISO2022JP_CS_JISX0201_ROMAN 1 -#define ISO2022JP_CS_JISX0201_KANA 2 -#define ISO2022JP_CS_JISX0208_1978 3 -#define ISO2022JP_CS_JISX0208_1983 4 -#define ISO2022JP_CS_JISX0212 5 - -static iso2022_esc_t iso2022jp_esc[] = { - {"\x1B\x28\x42", 3, 1, ISO2022JP_CS_ASCII}, - {"\x1B\x28\x4A", 3, 1, ISO2022JP_CS_JISX0201_ROMAN}, - {"\x1B\x28\x49", 3, 1, ISO2022JP_CS_JISX0201_KANA}, - {"\x1B\x24\x40", 3, 2, ISO2022JP_CS_JISX0208_1983}, /* unify 1978 with 1983 */ - {"\x1B\x24\x42", 3, 2, ISO2022JP_CS_JISX0208_1983}, - {"\x1B\x24\x28\x44", 4, 2, ISO2022JP_CS_JISX0212}, - {NULL, 0, 0, 0} -}; - -static int -iso2022jp_mbtowc(csconv_t *cv, const uchar *buf, int bufsize, ushort *wbuf, int *wbufsize) -{ - iso2022_esc_t *iesc = iso2022jp_esc; - char tmp[MB_CHAR_MAX]; - int insize; - HRESULT hr; - DWORD dummy = 0; - int len; - int esc_len; - int cs; - int shift; - int i; - - if (buf[0] == 0x1B) - { - for (i = 0; iesc[i].esc != NULL; ++i) - { - esc_len = iesc[i].esc_len; - if (bufsize < esc_len) - { - if (strncmp((char *)buf, iesc[i].esc, bufsize) == 0) - return_error(EINVAL); - } - else - { - if (strncmp((char *)buf, iesc[i].esc, esc_len) == 0) - { - cv->mode = ISO2022_MODE(iesc[i].cs, ISO2022_SI); - *wbufsize = 0; - return esc_len; - } - } - } - /* not supported escape sequence */ - return_error(EILSEQ); - } - else if (buf[0] == iso2022_SO_seq[0]) - { - cv->mode = ISO2022_MODE(ISO2022_MODE_CS(cv->mode), ISO2022_SO); - *wbufsize = 0; - return 1; - } - else if (buf[0] == iso2022_SI_seq[0]) - { - cv->mode = ISO2022_MODE(ISO2022_MODE_CS(cv->mode), ISO2022_SI); - *wbufsize = 0; - return 1; - } - - cs = ISO2022_MODE_CS(cv->mode); - shift = ISO2022_MODE_SHIFT(cv->mode); - - /* reset the mode for informal sequence */ - if (buf[0] < 0x20) - { - cs = ISO2022JP_CS_ASCII; - shift = ISO2022_SI; - } - - len = iesc[cs].len; - if (bufsize < len) - return_error(EINVAL); - for (i = 0; i < len; ++i) - if (!(buf[i] < 0x80)) - return_error(EILSEQ); - esc_len = iesc[cs].esc_len; - memcpy(tmp, iesc[cs].esc, esc_len); - if (shift == ISO2022_SO) - { - memcpy(tmp + esc_len, iso2022_SO_seq, 1); - esc_len += 1; - } - memcpy(tmp + esc_len, buf, len); - - if ((cv->codepage == 50220 || cv->codepage == 50221 - || cv->codepage == 50222) && shift == ISO2022_SO) - { - /* XXX: shift-out cannot be used for mbtowc (both kernel and - * mlang) */ - esc_len = iesc[ISO2022JP_CS_JISX0201_KANA].esc_len; - memcpy(tmp, iesc[ISO2022JP_CS_JISX0201_KANA].esc, esc_len); - memcpy(tmp + esc_len, buf, len); - } - - insize = len + esc_len; - hr = ConvertINetMultiByteToUnicode(&dummy, cv->codepage, - (const char *)tmp, &insize, (wchar_t *)wbuf, wbufsize); - if (hr != S_OK || insize != len + esc_len) - return_error(EILSEQ); - - /* Check for conversion error. Assuming defaultChar is 0x3F. */ - /* ascii should be converted from ascii */ - if (wbuf[0] == buf[0] - && cv->mode != ISO2022_MODE(ISO2022JP_CS_ASCII, ISO2022_SI)) - return_error(EILSEQ); - - /* reset the mode for informal sequence */ - if (cv->mode != ISO2022_MODE(cs, shift)) - cv->mode = ISO2022_MODE(cs, shift); - - return len; -} - -static int -iso2022jp_wctomb(csconv_t *cv, ushort *wbuf, int wbufsize, uchar *buf, int bufsize) -{ - iso2022_esc_t *iesc = iso2022jp_esc; - char tmp[MB_CHAR_MAX]; - int tmpsize = MB_CHAR_MAX; - int insize = wbufsize; - HRESULT hr; - DWORD dummy = 0; - int len; - int esc_len; - int cs; - int shift; - int i; - - /* - * MultiByte = [escape sequence] + character + [escape sequence] - * - * Whether trailing escape sequence is added depends on which API is - * used (kernel or MLang, and its version). - */ - hr = ConvertINetUnicodeToMultiByte(&dummy, cv->codepage, - (const wchar_t *)wbuf, &wbufsize, tmp, &tmpsize); - if (hr != S_OK || insize != wbufsize) - return_error(EILSEQ); - else if (bufsize < tmpsize) - return_error(E2BIG); - - if (tmpsize == 1) - { - cs = ISO2022JP_CS_ASCII; - esc_len = 0; - } - else - { - for (i = 1; iesc[i].esc != NULL; ++i) - { - esc_len = iesc[i].esc_len; - if (strncmp(tmp, iesc[i].esc, esc_len) == 0) - { - cs = iesc[i].cs; - break; - } - } - if (iesc[i].esc == NULL) - /* not supported escape sequence */ - return_error(EILSEQ); - } - - shift = ISO2022_SI; - if (tmp[esc_len] == iso2022_SO_seq[0]) - { - shift = ISO2022_SO; - esc_len += 1; - } - - len = iesc[cs].len; - - /* Check for converting error. Assuming defaultChar is 0x3F. */ - /* ascii should be converted from ascii */ - if (cs == ISO2022JP_CS_ASCII && !(wbuf[0] < 0x80)) - return_error(EILSEQ); - else if (tmpsize < esc_len + len) - return_error(EILSEQ); - - if (cv->mode == ISO2022_MODE(cs, shift)) - { - /* remove escape sequence */ - if (esc_len != 0) - memmove(tmp, tmp + esc_len, len); - esc_len = 0; - } - else - { - if (cs == ISO2022JP_CS_ASCII) - { - esc_len = iesc[ISO2022JP_CS_ASCII].esc_len; - memmove(tmp + esc_len, tmp, len); - memcpy(tmp, iesc[ISO2022JP_CS_ASCII].esc, esc_len); - } - if (ISO2022_MODE_SHIFT(cv->mode) == ISO2022_SO) - { - /* shift-in before changing to other mode */ - memmove(tmp + 1, tmp, len + esc_len); - memcpy(tmp, iso2022_SI_seq, 1); - esc_len += 1; - } - } - - if (bufsize < len + esc_len) - return_error(E2BIG); - memcpy(buf, tmp, len + esc_len); - cv->mode = ISO2022_MODE(cs, shift); - return len + esc_len; -} - -static int -iso2022jp_flush(csconv_t *cv, uchar *buf, int bufsize) -{ - iso2022_esc_t *iesc = iso2022jp_esc; - int esc_len; - - if (cv->mode != ISO2022_MODE(ISO2022JP_CS_ASCII, ISO2022_SI)) - { - esc_len = 0; - if (ISO2022_MODE_SHIFT(cv->mode) != ISO2022_SI) - esc_len += 1; - if (ISO2022_MODE_CS(cv->mode) != ISO2022JP_CS_ASCII) - esc_len += iesc[ISO2022JP_CS_ASCII].esc_len; - if (bufsize < esc_len) - return_error(E2BIG); - - esc_len = 0; - if (ISO2022_MODE_SHIFT(cv->mode) != ISO2022_SI) - { - memcpy(buf, iso2022_SI_seq, 1); - esc_len += 1; - } - if (ISO2022_MODE_CS(cv->mode) != ISO2022JP_CS_ASCII) - { - memcpy(buf + esc_len, iesc[ISO2022JP_CS_ASCII].esc, - iesc[ISO2022JP_CS_ASCII].esc_len); - esc_len += iesc[ISO2022JP_CS_ASCII].esc_len; - } - return esc_len; - } - return 0; -} - -#if defined(MAKE_DLL) && defined(USE_LIBICONV_DLL) -BOOL WINAPI -DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpReserved) -{ - switch( fdwReason ) - { - case DLL_PROCESS_ATTACH: - hwiniconv = (HMODULE)hinstDLL; - break; - case DLL_THREAD_ATTACH: - case DLL_THREAD_DETACH: - case DLL_PROCESS_DETACH: - break; - } - return TRUE; -} -#endif - -#if defined(MAKE_EXE) -#include -#include -#include -int -main(int argc, char **argv) -{ - char *fromcode = NULL; - char *tocode = NULL; - int i; - char inbuf[BUFSIZ]; - char outbuf[BUFSIZ]; - const char *pin; - char *pout; - size_t inbytesleft; - size_t outbytesleft; - size_t rest = 0; - iconv_t cd; - size_t r; - FILE *in = stdin; - - _setmode(_fileno(stdin), _O_BINARY); - _setmode(_fileno(stdout), _O_BINARY); - - for (i = 1; i < argc; ++i) - { - if (strcmp(argv[i], "-l") == 0) - { - for (i = 0; codepage_alias[i].name != NULL; ++i) - printf("%s\n", codepage_alias[i].name); - return 0; - } - - if (strcmp(argv[i], "-f") == 0) - fromcode = argv[++i]; - else if (strcmp(argv[i], "-t") == 0) - tocode = argv[++i]; - else - { - in = fopen(argv[i], "rb"); - if (in == NULL) - { - fprintf(stderr, "cannot open %s\n", argv[i]); - return 1; - } - break; - } - } - - if (fromcode == NULL || tocode == NULL) - { - printf("usage: %s -f from-enc -t to-enc [file]\n", argv[0]); - return 0; - } - - cd = iconv_open(tocode, fromcode); - if (cd == (iconv_t)(-1)) - { - perror("iconv_open error"); - return 1; - } - - while ((inbytesleft = fread(inbuf + rest, 1, sizeof(inbuf) - rest, in)) != 0 - || rest != 0) - { - inbytesleft += rest; - pin = inbuf; - pout = outbuf; - outbytesleft = sizeof(outbuf); - r = iconv(cd, &pin, &inbytesleft, &pout, &outbytesleft); - fwrite(outbuf, 1, sizeof(outbuf) - outbytesleft, stdout); - if (r == (size_t)(-1) && errno != EINVAL && errno != E2BIG) - { - perror("conversion error"); - return 1; - } - memmove(inbuf, pin, inbytesleft); - rest = inbytesleft; - } - pout = outbuf; - outbytesleft = sizeof(outbuf); - r = iconv(cd, NULL, NULL, &pout, &outbytesleft); - fwrite(outbuf, 1, sizeof(outbuf) - outbytesleft, stdout); - if (r == (size_t)(-1)) - { - perror("conversion error"); - return 1; - } - - iconv_close(cd); - - return 0; -} -#endif - diff --git a/lib/win32/glib-2.20.4/glibconfig.h b/lib/win32/glib-2.20.4/glibconfig.h deleted file mode 100644 index 4d161069d4d42..0000000000000 --- a/lib/win32/glib-2.20.4/glibconfig.h +++ /dev/null @@ -1,255 +0,0 @@ -/* glibconfig.h.win32.in Merged from two versions generated by configure for gcc and MSVC. */ -/* glibconfig.h - * - * This is a generated file. Please modify 'configure.in' - */ - -#ifndef __G_LIBCONFIG_H__ -#define __G_LIBCONFIG_H__ - -#include - -#include -#include - -G_BEGIN_DECLS - -#define G_MINFLOAT FLT_MIN -#define G_MAXFLOAT FLT_MAX -#define G_MINDOUBLE DBL_MIN -#define G_MAXDOUBLE DBL_MAX -#define G_MINSHORT SHRT_MIN -#define G_MAXSHORT SHRT_MAX -#define G_MAXUSHORT USHRT_MAX -#define G_MININT INT_MIN -#define G_MAXINT INT_MAX -#define G_MAXUINT UINT_MAX -#define G_MINLONG LONG_MIN -#define G_MAXLONG LONG_MAX -#define G_MAXULONG ULONG_MAX - -typedef signed char gint8; -typedef unsigned char guint8; -typedef signed short gint16; -typedef unsigned short guint16; -#define G_GINT16_MODIFIER "h" -#define G_GINT16_FORMAT "hi" -#define G_GUINT16_FORMAT "hu" -typedef signed int gint32; -typedef unsigned int guint32; -#define G_GINT32_MODIFIER "" -#define G_GINT32_FORMAT "i" -#define G_GUINT32_FORMAT "u" -#define G_HAVE_GINT64 1 /* deprecated, always true */ - -#ifndef _MSC_VER -G_GNUC_EXTENSION typedef signed long long gint64; -G_GNUC_EXTENSION typedef unsigned long long guint64; -#else /* _MSC_VER */ -typedef signed __int64 gint64; -typedef unsigned __int64 guint64; -#endif /* _MSC_VER */ - -#ifndef _MSC_VER -#define G_GINT64_CONSTANT(val) (G_GNUC_EXTENSION (val##LL)) -#else /* _MSC_VER */ -#define G_GINT64_CONSTANT(val) (val##i64) -#endif /* _MSC_VER */ -#ifndef _MSC_VER -#define G_GUINT64_CONSTANT(val) (G_GNUC_EXTENSION (val##ULL)) -#else /* _MSC_VER */ -#define G_GUINT64_CONSTANT(val) (val##Ui64) -#endif /* _MSC_VER */ -#define G_GINT64_MODIFIER "I64" -#define G_GINT64_FORMAT "I64i" -#define G_GUINT64_FORMAT "I64u" - -#if defined(_WIN64) || defined(_M_X64) || defined(_M_AMD64) - -#define GLIB_SIZEOF_VOID_P 8 -#define GLIB_SIZEOF_LONG 4 -#define GLIB_SIZEOF_SIZE_T 8 - -typedef signed long long gssize; -typedef unsigned long long gsize; -#define G_GSIZE_MODIFIER "I64" -#define G_GSSIZE_FORMAT "I64d" -#define G_GSIZE_FORMAT "I64u" - -#define G_MAXSIZE G_MAXUINT64 -#define G_MINSSIZE G_MININT64 -#define G_MAXSSIZE G_MAXINT64 - -#else - -#define GLIB_SIZEOF_VOID_P 4 -#define GLIB_SIZEOF_LONG 4 -#define GLIB_SIZEOF_SIZE_T 4 - -typedef signed int gssize; -typedef unsigned int gsize; -#define G_GSIZE_MODIFIER "" -#define G_GSSIZE_FORMAT "i" -#define G_GSIZE_FORMAT "u" - -#define G_MAXSIZE G_MAXUINT -#define G_MINSSIZE G_MININT -#define G_MAXSSIZE G_MAXINT - -#endif - -typedef gint64 goffset; -#define G_MINOFFSET G_MININT64 -#define G_MAXOFFSET G_MAXINT64 - -#ifndef _WIN64 - -#define GPOINTER_TO_INT(p) ((gint) (p)) -#define GPOINTER_TO_UINT(p) ((guint) (p)) - -#define GINT_TO_POINTER(i) ((gpointer) (i)) -#define GUINT_TO_POINTER(u) ((gpointer) (u)) - -typedef signed int gintptr; -typedef unsigned int guintptr; - -#else - -#define GPOINTER_TO_INT(p) ((gint) (gint64) (p)) -#define GPOINTER_TO_UINT(p) ((guint) (guint64) (p)) - -#define GINT_TO_POINTER(i) ((gpointer) (gint64) (i)) -#define GUINT_TO_POINTER(u) ((gpointer) (guint64) (u)) - -#ifndef _MSC_VER -typedef signed long long gintptr; -typedef unsigned long long guintptr; -#else -typedef signed __int64 gintptr; -typedef unsigned __int64 guintptr; -#endif - -#endif - -#ifdef NeXT /* @#%@! NeXTStep */ -# define g_ATEXIT(proc) (!atexit (proc)) -#else -# define g_ATEXIT(proc) (atexit (proc)) -#endif - -#define g_memmove(dest,src,len) G_STMT_START { memmove ((dest), (src), (len)); } G_STMT_END - -#define GLIB_MAJOR_VERSION 2 -#define GLIB_MINOR_VERSION 20 -#define GLIB_MICRO_VERSION 4 - -#define G_OS_WIN32 -#define G_PLATFORM_WIN32 - - -#ifndef _MSC_VER -#define G_VA_COPY va_copy -#endif /* not _MSC_VER */ - -#ifdef __cplusplus -#define G_HAVE_INLINE 1 -#else /* !__cplusplus */ -#ifndef _MSC_VER -#define G_HAVE_INLINE 1 -#endif /* _MSC_VER */ -#define G_HAVE___INLINE 1 -#if !defined(_MSC_VER) && !defined(__DMC__) -#define G_HAVE___INLINE__ 1 -#endif /* !_MSC_VER and !__DMC__ */ -#endif /* !__cplusplus */ - -#define G_CAN_INLINE 1 - -#ifndef _MSC_VER -#define G_HAVE_ISO_VARARGS 1 - -/* gcc-2.95.x supports both gnu style and ISO varargs, but if -ansi - * is passed ISO vararg support is turned off, and there is no work - * around to turn it on, so we unconditionally turn it off. - */ -#if __GNUC__ == 2 && __GNUC_MINOR__ == 95 -# undef G_HAVE_ISO_VARARGS -#endif - -#define G_HAVE_GNUC_VARARGS 1 -#else /* _MSC_VER */ -/* varargs macros available since msvc8 (vs2005) */ -# if _MSC_VER >= 1400 -# define G_HAVE_ISO_VARARGS 1 -# endif -#endif /* not _MSC_VER */ -#define G_HAVE_GROWING_STACK 0 - -#define G_GNUC_INTERNAL - -#define G_THREADS_ENABLED -#define G_THREADS_IMPL_WIN32 -typedef struct _GMutex* GStaticMutex; -#define G_STATIC_MUTEX_INIT NULL -#define g_static_mutex_get_mutex(mutex) \ - (g_static_mutex_get_mutex_impl_shortcut (mutex)) -/* This represents a system thread as used by the implementation. An - * alien implementaion, as loaded by g_thread_init can only count on - * "sizeof (gpointer)" bytes to store their info. We however need more - * for some of our native implementations. */ -typedef union _GSystemThread GSystemThread; -union _GSystemThread -{ -#ifndef _WIN64 - char data[4]; -#else - char data[8]; -#endif - double dummy_double; - void *dummy_pointer; - long dummy_long; -}; - -#define GINT16_TO_LE(val) ((gint16) (val)) -#define GUINT16_TO_LE(val) ((guint16) (val)) -#define GINT16_TO_BE(val) ((gint16) GUINT16_SWAP_LE_BE (val)) -#define GUINT16_TO_BE(val) (GUINT16_SWAP_LE_BE (val)) -#define GINT32_TO_LE(val) ((gint32) (val)) -#define GUINT32_TO_LE(val) ((guint32) (val)) -#define GINT32_TO_BE(val) ((gint32) GUINT32_SWAP_LE_BE (val)) -#define GUINT32_TO_BE(val) (GUINT32_SWAP_LE_BE (val)) -#define GINT64_TO_LE(val) ((gint64) (val)) -#define GUINT64_TO_LE(val) ((guint64) (val)) -#define GINT64_TO_BE(val) ((gint64) GUINT64_SWAP_LE_BE (val)) -#define GUINT64_TO_BE(val) (GUINT64_SWAP_LE_BE (val)) -#define GLONG_TO_LE(val) ((glong) GINT32_TO_LE (val)) -#define GULONG_TO_LE(val) ((gulong) GUINT32_TO_LE (val)) -#define GLONG_TO_BE(val) ((glong) GINT32_TO_BE (val)) -#define GULONG_TO_BE(val) ((gulong) GUINT32_TO_BE (val)) -#define GINT_TO_LE(val) ((gint) GINT32_TO_LE (val)) -#define GUINT_TO_LE(val) ((guint) GUINT32_TO_LE (val)) -#define GINT_TO_BE(val) ((gint) GINT32_TO_BE (val)) -#define GUINT_TO_BE(val) ((guint) GUINT32_TO_BE (val)) -#define G_BYTE_ORDER G_LITTLE_ENDIAN - -#define GLIB_SYSDEF_POLLIN =1 -#define GLIB_SYSDEF_POLLOUT =4 -#define GLIB_SYSDEF_POLLPRI =2 -#define GLIB_SYSDEF_POLLHUP =16 -#define GLIB_SYSDEF_POLLERR =8 -#define GLIB_SYSDEF_POLLNVAL =32 - -#define G_MODULE_SUFFIX "dll" - -/* A GPid is an abstraction for a process "handle". It is *not* an - * abstraction for a process identifier in general. GPid is used in - * GLib only for descendant processes spawned with the g_spawn* - * functions. On POSIX there is no "process handle" concept as such, - * but on Windows a GPid is a handle to a process, a kind of pointer, - * not a process identifier. - */ -typedef void * GPid; - -G_END_DECLS - -#endif /* GLIBCONFIG_H */ diff --git a/lib/win32/glib-2.20.4/msvc_recommended_pragmas.h b/lib/win32/glib-2.20.4/msvc_recommended_pragmas.h deleted file mode 100644 index cb9370cc643c8..0000000000000 --- a/lib/win32/glib-2.20.4/msvc_recommended_pragmas.h +++ /dev/null @@ -1,31 +0,0 @@ -#ifndef _MSC_VER -#pragma error "This header is for Microsoft VC only." -#endif /* _MSC_VER */ - -/* Make MSVC more pedantic, this is a recommended pragma list - * from _Win32_Programming_ by Rector and Newcomer. - */ -#pragma warning(error:4002) /* too many actual parameters for macro */ -#pragma warning(error:4003) /* not enough actual parameters for macro */ -#pragma warning(1:4010) /* single-line comment contains line-continuation character */ -#pragma warning(error:4013) /* 'function' undefined; assuming extern returning int */ -#pragma warning(1:4016) /* no function return type; using int as default */ -#pragma warning(error:4020) /* too many actual parameters */ -#pragma warning(error:4021) /* too few actual parameters */ -#pragma warning(error:4027) /* function declared without formal parameter list */ -#pragma warning(error:4029) /* declared formal parameter list different from definition */ -#pragma warning(error:4033) /* 'function' must return a value */ -#pragma warning(error:4035) /* 'function' : no return value */ -#pragma warning(error:4045) /* array bounds overflow */ -#pragma warning(error:4047) /* different levels of indirection */ -#pragma warning(error:4049) /* terminating line number emission */ -#pragma warning(error:4053) /* An expression of type void was used as an operand */ -#pragma warning(error:4071) /* no function prototype given */ -#pragma warning(disable:4101) /* unreferenced local variable */ -#pragma warning(error:4150) - -#pragma warning(disable:4244) /* No possible loss of data warnings */ -#pragma warning(disable:4305) /* No truncation from int to char warnings */ - -/* work around Microsoft's premature attempt to deprecate the C-Library */ -#pragma warning(disable:4996) /* This function or variable may be unsafe. */ diff --git a/project/VS2010Express/XBMC for Windows.sln b/project/VS2010Express/XBMC for Windows.sln index ed28b5c245d64..ac308df744182 100644 --- a/project/VS2010Express/XBMC for Windows.sln +++ b/project/VS2010Express/XBMC for Windows.sln @@ -11,8 +11,6 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "UnrarXLib", "UnrarXLib.vcxp EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libhts", "..\..\lib\libhts\Win32\libhts_2010.vcxproj", "{00700E12-A63B-4E54-B962-4011A90584BD}" EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "glib", "..\..\lib\win32\glib-2.20.4\build\win32\vs10\glib.vcxproj", "{12BCA020-EABF-429E-876A-A476BC9C10C0}" -EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libass_dll", "..\..\lib\libass\xbmc\libass_win32\libass_win32_vs2010.vcxproj", "{BA5B08FC-2ECB-4571-9F25-F8054522FC65}" ProjectSection(ProjectDependencies) = postProject {78B079BD-9FC7-4B9E-B4A6-96DA0F00248B} = {78B079BD-9FC7-4B9E-B4A6-96DA0F00248B} @@ -164,14 +162,6 @@ Global {00700E12-A63B-4E54-B962-4011A90584BD}.Release (DirectX)|Win32.Build.0 = Release|Win32 {00700E12-A63B-4E54-B962-4011A90584BD}.Release (OpenGL)|Win32.ActiveCfg = Release|Win32 {00700E12-A63B-4E54-B962-4011A90584BD}.Release (OpenGL)|Win32.Build.0 = Release|Win32 - {12BCA020-EABF-429E-876A-A476BC9C10C0}.Debug (DirectX)|Win32.ActiveCfg = Debug|Win32 - {12BCA020-EABF-429E-876A-A476BC9C10C0}.Debug (DirectX)|Win32.Build.0 = Debug|Win32 - {12BCA020-EABF-429E-876A-A476BC9C10C0}.Debug (OpenGL)|Win32.ActiveCfg = Debug|Win32 - {12BCA020-EABF-429E-876A-A476BC9C10C0}.Debug (OpenGL)|Win32.Build.0 = Debug|Win32 - {12BCA020-EABF-429E-876A-A476BC9C10C0}.Release (DirectX)|Win32.ActiveCfg = Release|Win32 - {12BCA020-EABF-429E-876A-A476BC9C10C0}.Release (DirectX)|Win32.Build.0 = Release|Win32 - {12BCA020-EABF-429E-876A-A476BC9C10C0}.Release (OpenGL)|Win32.ActiveCfg = Release|Win32 - {12BCA020-EABF-429E-876A-A476BC9C10C0}.Release (OpenGL)|Win32.Build.0 = Release|Win32 {BA5B08FC-2ECB-4571-9F25-F8054522FC65}.Debug (DirectX)|Win32.ActiveCfg = Debug|Win32 {BA5B08FC-2ECB-4571-9F25-F8054522FC65}.Debug (DirectX)|Win32.Build.0 = Debug|Win32 {BA5B08FC-2ECB-4571-9F25-F8054522FC65}.Debug (OpenGL)|Win32.ActiveCfg = Debug|Win32 From 149e1e76ac551115d9b1c522526bcd0e2aa5aee2 Mon Sep 17 00:00:00 2001 From: spiff Date: Sun, 6 Feb 2011 23:55:24 +0100 Subject: [PATCH 5/5] sync osx project --- XBMC.xcodeproj/project.pbxproj | 8 -------- 1 file changed, 8 deletions(-) diff --git a/XBMC.xcodeproj/project.pbxproj b/XBMC.xcodeproj/project.pbxproj index f89d3136f5b2e..0fd9e723bae14 100644 --- a/XBMC.xcodeproj/project.pbxproj +++ b/XBMC.xcodeproj/project.pbxproj @@ -1811,8 +1811,6 @@ F5D8D735102BB3B1004A11AB /* OverlayRenderer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F5D8D731102BB3B1004A11AB /* OverlayRenderer.cpp */; }; F5D8EF5B103912A4004A11AB /* DVDSubtitleParserVplayer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F5D8EF59103912A4004A11AB /* DVDSubtitleParserVplayer.cpp */; }; F5D8EF5C103912A4004A11AB /* DVDSubtitleParserVplayer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F5D8EF59103912A4004A11AB /* DVDSubtitleParserVplayer.cpp */; }; - F5D8F86C104CD1C0004A11AB /* DVDInputStreamMMS.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F5D8F86B104CD1C0004A11AB /* DVDInputStreamMMS.cpp */; }; - F5D8F86D104CD1C0004A11AB /* DVDInputStreamMMS.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F5D8F86B104CD1C0004A11AB /* DVDInputStreamMMS.cpp */; }; F5D8F881104CD40B004A11AB /* liblzo2.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = F5D8F880104CD40B004A11AB /* liblzo2.dylib */; }; F5D8F882104CD40B004A11AB /* liblzo2.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = F5D8F880104CD40B004A11AB /* liblzo2.dylib */; }; F5D8F88C104CD47D004A11AB /* libmms.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = F5D8F88B104CD47D004A11AB /* libmms.dylib */; }; @@ -3792,8 +3790,6 @@ F5D8D731102BB3B1004A11AB /* OverlayRenderer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = OverlayRenderer.cpp; sourceTree = ""; }; F5D8EF59103912A4004A11AB /* DVDSubtitleParserVplayer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = DVDSubtitleParserVplayer.cpp; sourceTree = ""; }; F5D8EF5A103912A4004A11AB /* DVDSubtitleParserVplayer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DVDSubtitleParserVplayer.h; sourceTree = ""; }; - F5D8F86A104CD1C0004A11AB /* DVDInputStreamMMS.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DVDInputStreamMMS.h; sourceTree = ""; }; - F5D8F86B104CD1C0004A11AB /* DVDInputStreamMMS.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = DVDInputStreamMMS.cpp; sourceTree = ""; }; F5D8F880104CD40B004A11AB /* liblzo2.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = liblzo2.dylib; path = /opt/local/lib/liblzo2.dylib; sourceTree = ""; }; F5D8F88B104CD47D004A11AB /* libmms.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libmms.dylib; path = /opt/local/lib/libmms.dylib; sourceTree = ""; }; F5DC87E0110A287400EE1B15 /* RingBuffer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RingBuffer.h; sourceTree = ""; }; @@ -5450,8 +5446,6 @@ E38E15620D25F9FA00618676 /* DVDInputStreamHttp.h */, E38E15630D25F9FA00618676 /* DVDInputStreamMemory.cpp */, E38E15640D25F9FA00618676 /* DVDInputStreamMemory.h */, - F5D8F86A104CD1C0004A11AB /* DVDInputStreamMMS.h */, - F5D8F86B104CD1C0004A11AB /* DVDInputStreamMMS.cpp */, E38E15650D25F9FA00618676 /* DVDInputStreamNavigator.cpp */, E38E15660D25F9FA00618676 /* DVDInputStreamNavigator.h */, E38E15670D25F9FA00618676 /* dvdnav */, @@ -7899,7 +7893,6 @@ 7C779E3E104A57E500F444C4 /* WinSystemOSX.mm in Sources */, 7C779E3F104A57E500F444C4 /* WinSystemOSXGL.mm in Sources */, 7C779E54104A58F900F444C4 /* GUIWindowTestPatternGL.cpp in Sources */, - F5D8F86C104CD1C0004A11AB /* DVDInputStreamMMS.cpp in Sources */, 7C62F24210505BC7002AD2C1 /* Bookmark.cpp in Sources */, 7C62F45E1057A62D002AD2C1 /* DirectoryNodeSingles.cpp in Sources */, 7CCF7E721067643800992676 /* DirectoryNodeSets.cpp in Sources */, @@ -8778,7 +8771,6 @@ 7C779E49104A57E500F444C4 /* WinSystemOSX.mm in Sources */, 7C779E4A104A57E500F444C4 /* WinSystemOSXGL.mm in Sources */, 7C779E56104A58F900F444C4 /* GUIWindowTestPatternGL.cpp in Sources */, - F5D8F86D104CD1C0004A11AB /* DVDInputStreamMMS.cpp in Sources */, 7C62F24310505BC7002AD2C1 /* Bookmark.cpp in Sources */, 7C62F45F1057A62D002AD2C1 /* DirectoryNodeSingles.cpp in Sources */, 7CCF7E731067643800992676 /* DirectoryNodeSets.cpp in Sources */,